xtd - Reference Guide  0.1.2
Modern c++17/20 framework to create console, GUI and unit test applications on Windows, macOS, Linux, iOS and android.
Loading...
Searching...
No Matches
renderer.h
Go to the documentation of this file.
1
4#pragma once
5#include <optional>
6#include <xtd/delegate.h>
7#include <xtd/object.h>
8#include <xtd/ustring.h>
9#include <xtd/drawing/color.h>
10#include <xtd/drawing/font.h>
12#include <xtd/drawing/image.h>
14#include "../forms_export.h"
15#include "text_format_flags.h"
19
21namespace xtd {
23 namespace forms {
30 class forms_export_ renderer : public object {
31 public:
32 using button_renderer = xtd::delegate<void(xtd::drawing::graphics, const xtd::drawing::rectangle&, const xtd::ustring&, const xtd::drawing::font&, xtd::forms::text_format_flags, const xtd::drawing::image&, const xtd::drawing::rectangle&, bool focused, xtd::forms::visual_styles::push_button_state, const std::optional<xtd::drawing::color>&, const std::optional<xtd::drawing::color>&)>;
33 using check_box_renderer = xtd::delegate<void(xtd::drawing::graphics, const xtd::drawing::rectangle&, const xtd::ustring&, const xtd::drawing::font&, xtd::forms::text_format_flags, const xtd::drawing::image&, const xtd::drawing::rectangle&, bool focused, xtd::forms::visual_styles::check_box_state, const std::optional<xtd::drawing::color>&, const std::optional<xtd::drawing::color>&)>;
34 using radio_button_renderer = xtd::delegate<void(xtd::drawing::graphics, const xtd::drawing::rectangle&, const xtd::ustring&, const xtd::drawing::font&, xtd::forms::text_format_flags, const xtd::drawing::image&, const xtd::drawing::rectangle&, bool focused, xtd::forms::visual_styles::radio_button_state, const std::optional<xtd::drawing::color>&, const std::optional<xtd::drawing::color>&)>;
35
36 renderer() = default;
37 explicit renderer(const xtd::ustring& name) : name_(name) {}
39 renderer(const renderer&) = default;
40 renderer& operator=(const renderer&) = default;
41 bool operator==(const renderer& value) const {return name_ == value.name_;}
42 bool operator!=(const renderer& value) const {return !operator==(value);}
43 friend std::ostream& operator<<(std::ostream& os, const renderer& theme) noexcept {return os << theme.to_string();}
45
46 virtual const xtd::ustring& name() const {return name_;}
47 renderer& name(const xtd::ustring& name) {
48 name_ = name;
49 return *this;
50 }
51
52 button_renderer button_render() const {return button_renderer_;}
53 void button_render(button_renderer button_renderer) {button_renderer_ = button_renderer;}
54
55 check_box_renderer check_box_render() const {return check_box_renderer_;}
56 void check_box_render(check_box_renderer check_box_renderer) {check_box_renderer_ = check_box_renderer;}
57
58 radio_button_renderer radio_button_render() const {return radio_button_renderer_;}
59 void radio_button_render(radio_button_renderer radio_button_renderer) {radio_button_renderer_ = radio_button_renderer;}
60
61 void draw_button(xtd::drawing::graphics g, const xtd::drawing::rectangle& bounds, const xtd::ustring& text, const xtd::drawing::font& font, xtd::forms::text_format_flags flags, const xtd::drawing::image& image, const xtd::drawing::rectangle& image_bounds, bool focused, xtd::forms::visual_styles::push_button_state state, const std::optional<xtd::drawing::color>& back_color, const std::optional<xtd::drawing::color>& fore_color) {button_renderer_(g, bounds, text, font, flags, image, image_bounds, focused, state, back_color, fore_color);}
62 void draw_check_box(xtd::drawing::graphics g, const xtd::drawing::rectangle& bounds, const xtd::ustring& text, const xtd::drawing::font& font, xtd::forms::text_format_flags flags, const xtd::drawing::image& image, const xtd::drawing::rectangle& image_bounds, bool focused, xtd::forms::visual_styles::check_box_state state, const std::optional<xtd::drawing::color>& back_color, const std::optional<xtd::drawing::color>& fore_color) {check_box_renderer_(g, bounds, text, font, flags, image, image_bounds, focused, state, back_color, fore_color);}
63 void draw_radio_button(xtd::drawing::graphics g, const xtd::drawing::rectangle& bounds, const xtd::ustring& text, const xtd::drawing::font& font, xtd::forms::text_format_flags flags, const xtd::drawing::image& image, const xtd::drawing::rectangle& image_bounds, bool focused, xtd::forms::visual_styles::radio_button_state state, const std::optional<xtd::drawing::color>& back_color, const std::optional<xtd::drawing::color>& fore_color) {radio_button_renderer_(g, bounds, text, font, flags, image, image_bounds, focused, state, back_color, fore_color);}
64
65 xtd::ustring to_string() const noexcept override {
66 if (!name_.empty()) return xtd::ustring::format("{}, name: {}", ustring::full_class_name(*this), name_);
68 }
69
70 static const renderer empty;
71
72 protected:
73
74 private:
75 static void default_button_renderer(xtd::drawing::graphics g, const xtd::drawing::rectangle& bounds, const xtd::ustring& text, const xtd::drawing::font& font, xtd::forms::text_format_flags flags, const xtd::drawing::image& image, const xtd::drawing::rectangle& image_bounds, bool focused, xtd::forms::visual_styles::push_button_state state, const std::optional<xtd::drawing::color>& back_color, const std::optional<xtd::drawing::color>& fore_color);
76 static void default_check_box_renderer(xtd::drawing::graphics g, const xtd::drawing::rectangle& bounds, const xtd::ustring& text, const xtd::drawing::font& font, xtd::forms::text_format_flags flags, const xtd::drawing::image& image, const xtd::drawing::rectangle& image_bounds, bool focused, xtd::forms::visual_styles::check_box_state state, const std::optional<xtd::drawing::color>& back_color, const std::optional<xtd::drawing::color>& fore_color);
77 static void default_radio_button_renderer(xtd::drawing::graphics g, const xtd::drawing::rectangle& bounds, const xtd::ustring& text, const xtd::drawing::font& font, xtd::forms::text_format_flags flags, const xtd::drawing::image& image, const xtd::drawing::rectangle& image_bounds, bool focused, xtd::forms::visual_styles::radio_button_state state, const std::optional<xtd::drawing::color>& back_color, const std::optional<xtd::drawing::color>& fore_color);
78
79 xtd::ustring name_;
80 button_renderer button_renderer_ = button_renderer(default_button_renderer);
81 check_box_renderer check_box_renderer_ = check_box_renderer(default_check_box_renderer);
82 radio_button_renderer radio_button_renderer_ = radio_button_renderer(default_radio_button_renderer);
83 };
84 }
85}
Contains xtd::forms::visual_styles::check_box_state enum class.
Defines a particular format for text, including font face, size, and style attributes....
Definition font.h:39
Defines an object used to draw lines and curves. This class cannot be inherited.
Definition graphics.h:48
An abstract base class that provides functionality for the bitmap and metafile descended classes.
Definition image.h:34
Stores a set of four integers that represent the location and size of a rectangle.
Definition rectangle.h:25
Provides button renderer methods.
Definition button_renderer.h:30
Provides check box renderer methods.
Definition check_box_renderer.h:29
Provides radio button renderer methods.
Definition radio_button_renderer.h:29
Provides control renderers methods.
Definition renderer.h:30
xtd::ustring to_string() const noexcept override
Returns a std::string that represents the current object.
Definition renderer.h:65
xtd::ustring to_string() const noexcept override
Returns a std::string that represents the current object.
Definition theme_base.h:41
Definition theme.h:14
Supports all classes in the xtd class hierarchy and provides low-level services to derived classes....
Definition object.h:26
Represents text as a sequence of UTF-8 code units.
Definition ustring.h:48
static ustring full_class_name()
Gets the fully qualified class name of the objec_t, including the namespace of the objec_t.
Definition ustring.h:427
Contains xtd::drawing::color class.
Contains xtd::delegate delegate.
Contains xtd::drawing::font class.
Contains xtd::drawing::graphics class.
static ustring format(const ustring &fmt, args_t &&... args)
Writes the text representation of the specified arguments list, to string using the specified format ...
Definition ustring.h:689
#define forms_export_
Define shared library export.
Definition forms_export.h:13
@ g
The G key.
text_format_flags
Specifies the display and layout information for text strings.
Definition text_format_flags.h:18
push_button_state
Specifies the visual state of a button that is drawn with visual styles.
Definition push_button_state.h:20
radio_button_state
Specifies the visual state of a radio button that is drawn with visual styles.
Definition radio_button_state.h:20
check_box_state
Specifies the visual state of a check box that is drawn with visual styles.
Definition check_box_state.h:20
Contains xtd::drawing::image class.
The xtd::forms namespace contains classes for creating Windows-based applications that take full adva...
Definition about_box.h:13
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition system_report.h:17
Contains xtd::object class.
Contains xtd::forms::visual_styles::push_button_state enum class.
Contains xtd::forms::visual_styles::radio_button_state enum class.
Contains xtd::drawing::rectangle class.
Contains xtd::forms::text_format_flags enum class.
Contains xtd::ustring class.