40 template <
typename W
idgetType, w
idget_part_e W
idgetPart>
41 class non_client_item :
public WidgetType
44 template <
typename... Args>
45 non_client_item(Args&&... aArgs) :
46 WidgetType{ std::forward<Args>(aArgs)... }
52 return widget_part{ this->root().as_widget(), WidgetPart};
54 bool ignore_non_client_mouse_events(
bool aConsiderAncestors =
true)
const override
89 void update_textures();
94 non_client_item<image_widget, widget_part::SystemMenu> iIcon;
95 non_client_item<text_widget, widget_part::TitleBar> iTitle;
97 non_client_item<push_button, widget_part::MinimizeButton> iMinimizeButton;
98 non_client_item<push_button, widget_part::MaximizeButton> iMaximizeButton;
99 non_client_item<push_button, widget_part::MaximizeButton> iRestoreButton;
100 non_client_item<push_button, widget_part::CloseButton> iCloseButton;
102 mutable std::optional<std::pair<color, texture>> iTextures[4];