]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/window.h
wxMenuBase changes:
[wxWidgets.git] / include / wx / window.h
index 0f1d01072dc6926f081afdadd09d42e6e2387aa1..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; }
@@ -1034,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; }
 
@@ -1131,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: