#if defined(Hiro_Widget) namespace hiro { struct pWidget : pSizable { Declare(Widget, Sizable) auto focused() const -> bool override; virtual auto minimumSize() -> Size; auto setEnabled(bool enabled) -> void override; auto setFocused() -> void; auto setFont(const Font& font) -> void override; virtual auto setGeometry(Geometry geometry) -> void; auto setToolTip(const string& toolTip) -> void; auto setVisible(bool visible) -> void override; virtual auto doMouseHover() -> void; virtual auto doMouseLeave() -> void; virtual auto doMouseMove(int x, int y) -> void; virtual auto windowProc(HWND, UINT, WPARAM, LPARAM) -> maybe; auto _parentHandle() -> HWND; auto _parentWidget() -> maybe; auto _parentWindow() -> maybe; auto _setState() -> void; bool abstract = false; WindowProc defaultWindowProc = nullptr; HWND hwnd = nullptr; HFONT hfont = nullptr; unique_pointer toolTip; }; } #endif