]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/window.h
wxMenuBase changes:
[wxWidgets.git] / include / wx / window.h
index b02a9ecf44c21f8d0ebd24a20e85688e88f75ddb..bd26e0c557c6fe58d18a0ecdf44ef605422ad9ff 100644 (file)
@@ -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:
@@ -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; }
@@ -399,7 +414,8 @@ public:
         // 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 bool CanApplyParentThemeBackground() const { return false; }
+    virtual void ApplyParentThemeBackground(const wxColour& WXUNUSED(bg))
+        { /* do nothing */ }
     
         // returns true if this window should inherit its parent colours on
         // creation
@@ -1033,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; }
 
@@ -1130,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: