xtd 0.2.0
Loading...
Searching...
No Matches
domain_up_down.h
Go to the documentation of this file.
1
4#pragma once
5
6#include "up_down_base.h"
7#include "application.h"
8#include <xtd/iequatable>
9#include <xtd/size_object>
10
12namespace xtd {
14 namespace forms {
32 struct data;
33
34 public:
36 class item : public object, public icomparable<item>, public xtd::iequatable<item> {
37 public:
39
42 item() = default;
45 item(const xtd::ustring& value); // Can't be explicit by design.
49 item(const xtd::ustring& value, const std::any& tag);
51
53 item(const char* value); // Can't be explicit by design.
54 item(const item& value) = default;
55 item& operator =(const item& value) = default;
57
59
63 virtual const xtd::ustring& value() const noexcept;
64
67 virtual std::any tag() const noexcept;
69
71
73 int32 compare_to(const item& value) const noexcept override;
74 bool equals(const item& value) const noexcept override;
77 xtd::ustring to_string() const noexcept override;
79
80 private:
81 xtd::ustring value_;
82 std::any tag_;
83 };
84
86
89 using object_collection = layout::arranged_element_collection<item>;
91
93
96 static const size_t npos = size_object::max_value;
98
100
105
108 domain_up_down(const domain_up_down&) = default;
109 domain_up_down& operator =(const domain_up_down&) = default;
111
113
118 object_collection& items() noexcept;
121 const object_collection& items() const noexcept;
125 const domain_up_down& items(const object_collection& items);
128 virtual size_t selected_index() const noexcept;
132 virtual domain_up_down& selected_index(size_t selected_index);
133
136 const item& selected_item() const noexcept;
140 domain_up_down& selected_item(const item& selected_item);
141
144 virtual bool wrap() const noexcept;
148 virtual domain_up_down& wrap(bool value);
150
151
153
157 static domain_up_down create();
161 static domain_up_down create(const drawing::point& location);
166 static domain_up_down create(const drawing::point& location, const drawing::size& size);
172 static domain_up_down create(const drawing::point& location, const drawing::size& size, const xtd::ustring& name);
176 static domain_up_down create(const object_collection& items);
181 static domain_up_down create(const object_collection& items, const drawing::point& location);
187 static domain_up_down create(const object_collection& items, const drawing::point& location, const drawing::size& size);
194 static domain_up_down create(const object_collection& items, const drawing::point& location, const drawing::size& size, const xtd::ustring& name);
199 static domain_up_down create(const object_collection& items, size_t selected_index);
205 static domain_up_down create(const object_collection& items, size_t selected_index, const drawing::point& location);
212 static domain_up_down create(const object_collection& items, size_t selected_index, const drawing::point& location, const drawing::size& size);
220 static domain_up_down create(const object_collection& items, size_t selected_index, const drawing::point& location, const drawing::size& size, const xtd::ustring& name);
224 static domain_up_down create(const control& parent);
229 static domain_up_down create(const control& parent, const drawing::point& location);
235 static domain_up_down create(const control& parent, const drawing::point& location, const drawing::size& size);
242 static domain_up_down create(const control& parent, const drawing::point& location, const drawing::size& size, const xtd::ustring& name);
247 static domain_up_down create(const control& parent, const object_collection& items);
253 static domain_up_down create(const control& parent, const object_collection& items, const drawing::point& location);
260 static domain_up_down create(const control& parent, const object_collection& items, const drawing::point& location, const drawing::size& size);
268 static domain_up_down create(const control& parent, const object_collection& items, const drawing::point& location, const drawing::size& size, const xtd::ustring& name);
274 static domain_up_down create(const control& parent, const object_collection& items, size_t selected_index);
281 static domain_up_down create(const control& parent, const object_collection& items, size_t selected_index, const drawing::point& location);
289 static domain_up_down create(const control& parent, const object_collection& items, size_t selected_index, const drawing::point& location, const drawing::size& size);
298 static domain_up_down create(const control& parent, const object_collection& items, size_t selected_index, const drawing::point& location, const drawing::size& size, const xtd::ustring& name);
300
302
306 event<domain_up_down, event_handler> selected_item_changed;
307
312
313 protected:
315
317 forms::create_params create_params() const noexcept override;
318 drawing::color default_back_color() const noexcept override;
319 drawing::color default_fore_color() const noexcept override;
321
323
329 std::unique_ptr<xtd::object> clone() const override;
330
331 void on_handle_created(const event_args& e) override;
332 void on_lost_focus(const event_args& e) override;
333
336 virtual void on_selected_item_changed(const event_args& e);
337
338 void on_text_changed(const event_args& e) override;
339 void wnd_proc(message& message) override;
341
343 void wm_scroll_control(message& message);
345
346 private:
347 void on_items_item_added(size_t pos, const item& item);
348 void on_items_item_removed(size_t pos, const item& item);
349 void on_items_item_updated(size_t pos, const item& item);
350
351 std::shared_ptr<data> data_;
352 };
353 }
354}
Contains xtd::forms::application class.
Represents a boxed integer object.
Definition box_integer.h:50
Represents the base class for classes that contain event data, and provides a value to use for events...
Definition event_args.h:18
Represents an event.
Definition event.h:21
Defines the base class for controls, which are components with visual representation.
Definition control.h:79
Encapsulates the information needed when creating a control.
Definition create_params.h:27
Represent an item contained in the domain_up_down::object_collection collection.
Definition domain_up_down.h:36
virtual const xtd::ustring & value() const noexcept
Gets the value of the item.
item(const xtd::ustring &value)
Initializes a new instance of the item class with specified value.
item()=default
Initializes a new instance of the item class.
item(const xtd::ustring &value, const std::any &tag)
Initializes a new instance of the item class with specified value and tag.
Represents a Windows spin box (also known as an up-down control) that displays string values.
Definition domain_up_down.h:31
Represents a collection of objects.
Definition arranged_element_collection.h:32
Implements a Windows message.
Definition message.h:26
Implements the basic functionality required by a spin box (also known as an up-down control).
Definition up_down_base.h:21
Defines a generalized comparison method that a value type or class implements to create a type-specif...
Definition icomparable.h:17
Defines a generalized method that a value type or class implements to create a type-specific method f...
Definition iequatable.h:18
Supports all classes in the xtd class hierarchy and provides low-level services to derived classes....
Definition object.h:32
Represents text as a sequence of UTF-8 code units.
Definition ustring.h:47
generic_event_handler<> event_handler
Represents the method that will handle an event that has no event data.
Definition event_handler.h:32
#define forms_export_
Define shared library export.
Definition forms_export.h:13
int_least32_t int32
Represents a 32-bit signed integer.
Definition types.h:131
size_t size
Represents a size of any object in bytes.
Definition types.h:197
The xtd::forms namespace contains classes for creating Windows-based applications that take full adva...
Definition xtd_about_box.h:12
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition xtd_about_box.h:10
Contains xtd::forms::up_down_base control.