xtd 0.2.0
light_button.h
Go to the documentation of this file.
1 #pragma once
6 #include "appearance.h"
7 #include "button_base.h"
8 #include "check_state.h"
9 #include <xtd/drawing/system_colors>
10 
12 namespace xtd {
14  namespace forms {
43  class forms_export_ light_button : public xtd::forms::button_base {
44  struct data;
45 
46  public:
48 
52  light_button();
54 
56 
64  virtual bool auto_check() const noexcept;
68  virtual light_button& auto_check(bool auto_check);
69 
76  virtual bool checked() const noexcept;
80  virtual light_button& checked(bool checked);
81 
94  virtual forms::check_state check_state() const noexcept;
107 
110  virtual drawing::color default_light_off_color() const noexcept;
111 
114  virtual drawing::color default_light_on_color() const noexcept;
115 
118  virtual content_alignment light_align() const noexcept;
121  virtual light_button& light_align(content_alignment light_align);
122 
125  virtual drawing::color light_off_color() const noexcept;
128  virtual light_button& light_off_color(const drawing::color& value);
130  virtual light_button& light_off_color(std::nullptr_t);
132 
135  virtual drawing::color light_on_color() const noexcept;
138  virtual light_button& light_on_color(const drawing::color& value);
140  virtual light_button& light_on_color(std::nullptr_t);
142 
149  virtual bool three_state() const noexcept;
153  virtual light_button& three_state(bool three_state);
155 
157 
159  using control::create;
168  static light_button create(const xtd::ustring& text, bool three_state = false, xtd::forms::check_state check_state = xtd::forms::check_state::unchecked, const drawing::point& location = {-1, -1}, const drawing::size& size = {-1, -1}, const xtd::ustring& name = xtd::ustring::empty_string);
178  static light_button create(const control& parent, const xtd::ustring& text, bool three_state = false, xtd::forms::check_state check_state = xtd::forms::check_state::unchecked, const drawing::point& location = {-1, -1}, const drawing::size& size = {-1, -1}, const xtd::ustring& name = xtd::ustring::empty_string);
180 
182 
187 
192 
193  protected:
195 
197  forms::create_params create_params() const noexcept override;
198 
201  xtd::forms::visual_styles::check_box_state state() const noexcept;
203 
205 
207  drawing::size measure_control() const noexcept override;
208 
213  virtual void on_checked_changed(const event_args& e);
214 
219  virtual void on_check_state_changed(const event_args& e);
220 
221  void on_enabled_changed(const event_args& e) override;
222  void on_handle_created(const event_args& e) override;
223  void on_image_changed(const xtd::event_args& e) override;
224  void on_mouse_down(const mouse_event_args& e) override;
225  void on_mouse_enter(const event_args& e) override;
226  void on_mouse_leave(const event_args& e) override;
227  void on_mouse_up(const mouse_event_args& e) override;
228  void on_paint(paint_event_args& e) override;
229  void wnd_proc(message& message) override;
231 
232  private:
233  void wm_mouse_double_click(message& message);
234  void wm_mouse_down(message& message);
235  void wm_mouse_up(message& message);
236 
237  std::shared_ptr<data> data_;
238  };
239  }
240 }
check_state
Specifies the state of a control, such as a check box, that can be checked, unchecked, or set to an indeterminate state.
Definition: check_state.h:21
The control is unchecked.
Contains xtd::forms::appearance enum class.
Contains xtd::forms::button_base class.
Represents the base class for classes that contain event data, and provides a value to use for events...
Definition: event_args.h:18
The button has a checked or latched appearance. Use this appearance to show that a toggle button has ...
event< light_button, event_handler > check_state_changed
Occurs when the value of the check_state property changes.
Definition: light_button.h:190
Represents an ordered pair of integer x- and y-coordinates that defines a point in a two-dimensional ...
Definition: point.h:54
Contains xtd::forms::check_state enum class.
Stores an ordered pair of integers, which specify a height and width.
Definition: size.h:31
Implements the basic functionality common to button controls.
Definition: button_base.h:35
The xtd namespace contains all fundamental classes to access Hardware, Os, System, and more.
Definition: system_report.h:17
event< light_button, event_handler > checked_changed
Occurs when the value of the checked property changes.
Definition: light_button.h:186
Encapsulates the information needed when creating a control.
Definition: create_params.h:27
Represents text as a sequence of UTF-8 code units.
Definition: ustring.h:46
check_box_state
Specifies the visual state of a check box that is drawn with visual styles.
Definition: check_box_state.h:22
static control create(const drawing::point &location={-1, -1}, const drawing::size &size={-1, -1}, const xtd::ustring &name=xtd::ustring::empty_string)
A factory to create a specified control with specified location, size, and name.
Represents a Windows light_button.
Definition: light_button.h:43
Represents an ARGB (alpha, red, green, blue) color.
Definition: color.h:45
Represents an event.
Definition: event.h:21
Provides data for the xtd::forms::control::paint event.
Definition: paint_event_args.h:28
content_alignment
Specifies alignment of content on the drawing surface.
Definition: content_alignment.h:19
Implements a Windows message.
Definition: message.h:26
Defines the base class for controls, which are components with visual representation.
Definition: control.h:78
Contains xtd::forms::visual_styles::check_box_state enum class.
Provides data for the xtd::forms::control::mouse_up, xtd::forms::control::mouse_down, and xtd::forms::control::mouse_move events.
Definition: mouse_event_args.h:32
The xtd::forms namespace contains classes for creating Windows-based applications that take full adva...
Definition: about_box.h:13
static const ustring empty_string
Represents the empty string.
Definition: ustring.h:53
Specifies that both the x and y coordinates of the control are defined.
The xtd::forms::status_bar_panel displays text in the standard font.
size_t size
Represents a size of any object in bytes.
Definition: types.h:195