X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/06f6df7d4657582a637ac79f3452b61b1cbb10cc..46d492a879f7fec474c0847dd0637593453746eb:/include/wx/window.h?ds=sidebyside diff --git a/include/wx/window.h b/include/wx/window.h index fae09c7ec0..bd26e0c557 100644 --- a/include/wx/window.h +++ b/include/wx/window.h @@ -96,6 +96,16 @@ WXDLLEXPORT_DATA(extern wxWindowList) wxTopLevelWindows; // temporarily switches event handlers). // ---------------------------------------------------------------------------- +// different window variants, on platforms like eg mac uses different rendering sizes + +enum wxWindowVariant +{ + wxWINDOW_VARIANT_NORMAL, // Normal size + wxWINDOW_VARIANT_SMALL, // Smaller size (about 25 % smaller than normal ) + wxWINDOW_VARIANT_MINI, // Mini size (about 33 % smaller than normal ) + wxWINDOW_VARIANT_LARGE, // Large size (about 25 % larger than normal ) +}; + class WXDLLEXPORT wxWindowBase : public wxEvtHandler { public: @@ -104,7 +114,7 @@ public: // default ctor, initializes everything which can be initialized before // Create() - wxWindowBase(); + wxWindowBase() ; // pseudo ctor (can't be virtual, called from ctor) bool CreateBase(wxWindowBase *parent, @@ -158,6 +168,11 @@ public: virtual void SetName( const wxString &name ) { m_windowName = name; } virtual wxString GetName() const { return m_windowName; } + // sets the window variant, calls internally DoSetVariant if variant has changed + void SetWindowVariant( wxWindowVariant variant ) ; + wxWindowVariant GetWindowVariant() const { return m_windowVariant ; } + + // window id uniquely identifies the window among its siblings unless // it is -1 which means "don't care" void SetId( wxWindowID winid ) { m_windowId = winid; } @@ -394,6 +409,14 @@ public: virtual void SetThemeEnabled(bool enableTheme) { m_themeEnabled = enableTheme; } virtual bool GetThemeEnabled() const { return m_themeEnabled; } + // Returns true if this class should have the background colour + // changed to match the parent window's theme. For example when a + // page is added to a notebook it and it's children may need to have + // the colours adjusted depending on the current theme settings, but + // not all windows/controls can do this without looking wrong. + virtual void ApplyParentThemeBackground(const wxColour& WXUNUSED(bg)) + { /* do nothing */ } + // returns true if this window should inherit its parent colours on // creation virtual bool ShouldInheritColours() const { return false; } @@ -1026,13 +1049,15 @@ protected: int m_minVirtualHeight; int m_maxVirtualWidth; int m_maxVirtualHeight; + + wxWindowVariant m_windowVariant ; // override this to change the default (i.e. used when no style is // specified) border for the window class virtual wxBorder GetDefaultBorder() const; - // get the default size for the new window if no explicit size given - // FIXME why 20 and not 30, 10 or ...? + // Get the default size for the new window if no explicit size given. TLWs + // have their own default size so this is just for non top-level windows. static int WidthDefault(int w) { return w == -1 ? 20 : w; } static int HeightDefault(int h) { return h == -1 ? 20 : h; } @@ -1123,6 +1148,8 @@ protected: virtual void AdjustForParentClientOrigin(int& x, int& y, int sizeFlags = 0) const; + // implements the window variants + virtual void DoSetWindowVariant( wxWindowVariant variant ) ; private: