33 template <
typename Interface = i_w
idget>
56 using typename base_type::no_parent;
57 using typename base_type::no_root;
58 using typename base_type::no_surface;
59 using typename base_type::no_children;
60 using typename base_type::not_child;
61 using typename base_type::no_update_rect;
62 using typename base_type::widget_not_entered;
63 using typename base_type::widget_cannot_capture;
64 using typename base_type::widget_not_focused;
65 using typename base_type::widget_cannot_defer_layout;
66 using typename base_type::layout_already_set;
67 using typename base_type::no_layout;
157 void move(
const point& aPosition)
override;
158 void moved()
override;
166 bool part_active(widget_part aPart)
const override;
167 widget_part
part(
const point& aPosition)
const override;
188 bool update(
bool aIncludeNonClient = false) override;
189 bool update(const
rect& aUpdateRect) override;
194 void render(i_graphics_context& aGc) const override;
196 void paint(i_graphics_context& aGc) const override;
199 double opacity() const override;
205 const i_palette&
palette() const override;
206 void set_palette(const i_palette& aPalette) override;
216 void set_font(optional_font const& aFont) override;
220 bool hidden() const override;
222 bool show(
bool aVisible) override;
227 bool enable(
bool aEnable) override;
228 bool entered(
bool aChildEntered = false) const override;
233 void release_capture(capture_reason aReason = capture_reason::Other)
override;
241 bool can_set_focus(focus_reason aFocusReason)
const override;
244 bool set_focus(focus_reason aFocusReason = focus_reason::Other)
override;
247 void focus_lost(focus_reason aFocusReason)
override;
268 bool text_input(i_string
const& aText)
override;
275 using base_type::set_size_policy;
277 using base_type::is_surface;
278 using base_type::has_surface;
279 using base_type::surface;
280 using base_type::same_surface;
282 using base_type::is_parent_of;
283 using base_type::is_ancestor_of;
284 using base_type::is_descendent_of;
285 using base_type::is_sibling_of;
286 using base_type::remove;
288 using base_type::to_window_coordinates;
289 using base_type::to_client_coordinates;
291 using base_type::can_update;
292 using base_type::update;
294 using base_type::show;
295 using base_type::hide;
296 using base_type::enable;
297 using base_type::disable;
299 using base_type::has_background_color;
300 using base_type::background_color;
301 using base_type::set_background_color;
302 using base_type::has_foreground_color;
303 using base_type::foreground_color;
304 using base_type::set_foreground_color;
305 using base_type::has_base_color;
306 using base_type::base_color;
307 using base_type::set_base_color;
308 using base_type::has_alternate_base_color;
309 using base_type::alternate_base_color;
310 using base_type::set_alternate_base_color;
315 mutable std::optional<const i_window*> iRoot;
316 mutable std::optional<const i_device_metrics*> iDeviceMetrics;
319 i_widget* iLinkBefore;
320 i_widget* iLinkAfter;
321 i_layout* iParentLayout;
324 uint32_t iLayoutInProgress;
325 optional<neogfx::layout_reason> iLayoutReason;
326 ref_ptr<i_layout> iLayout;
327 mutable std::pair<optional_rect, optional_rect> iDefaultClipRect;
331 std::optional<int32_t> iRenderLayer;
logical_coordinate_system
basic_mouse_event< mouse_event_location::NonClient > non_client_mouse_event
optional< point > optional_point
optional< color > optional_color
basic_delta< coordinate > delta
optional< focus_policy > optional_focus_policy
optional< font_role > optional_font_role
optional< logical_coordinate_system > optional_logical_coordinate_system
basic_point< coordinate > point
basic_size< coordinate > size
#define define_declared_event(name, declName,...)
#define define_property(category, type, name, calculator,...)