]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/window.h
Use the OOR typemap for wxTreeCtrls too.
[wxWidgets.git] / include / wx / window.h
index 1e4736b97b7e6fbb2ab20aaf0de5658b01ec2b57..1b7071d6264ab10acb7cec7cca3970463cc4b424 100644 (file)
@@ -293,11 +293,14 @@ public:
                                int maxW = -1, int maxH = -1,
                                int incW = -1, int incH = -1 );
 
-    int GetMinWidth() const { return m_minWidth; }
-    int GetMinHeight() const { return m_minHeight; }
+    virtual int GetMinWidth() const { return m_minWidth; }
+    virtual int GetMinHeight() const { return m_minHeight; }
     int GetMaxWidth() const { return m_maxWidth; }
     int GetMaxHeight() const { return m_maxHeight; }
 
+        // Override this method to control the values given to Sizers etc.
+    virtual wxSize GetMaxSize() const { return wxSize( m_maxWidth, m_maxHeight ); }
+
     // window state
     // ------------
 
@@ -327,7 +330,7 @@ public:
 
         // extra style: the less often used style bits which can't be set with
         // SetWindowStyleFlag()
-    void SetExtraStyle(long exStyle) { m_exStyle = exStyle; }
+    virtual void SetExtraStyle(long exStyle) { m_exStyle = exStyle; }
     long GetExtraStyle() const { return m_exStyle; }
 
         // make the window modal (all other windows unresponsive)
@@ -702,15 +705,6 @@ public:
     void SetConstraints( wxLayoutConstraints *constraints );
     wxLayoutConstraints *GetConstraints() const { return m_constraints; }
 
-        // when using constraints, it makes sense to update children positions
-        // automatically whenever the window is resized - this is done if
-        // autoLayout is on
-    void SetAutoLayout( bool autoLayout ) { m_autoLayout = autoLayout; }
-    bool GetAutoLayout() const { return m_autoLayout; }
-
-        // do layout the window and its children
-    virtual bool Layout();
-
         // implementation only
     void UnsetConstraints(wxLayoutConstraints *c);
     wxWindowList *GetConstraintsInvolvedIn() const
@@ -733,11 +727,24 @@ public:
     virtual void GetClientSizeConstraint(int *w, int *h) const ;
     virtual void GetPositionConstraint(int *x, int *y) const ;
 
+#endif // wxUSE_CONSTRAINTS
+
+        // when using constraints or sizers, it makes sense to update
+        // children positions automatically whenever the window is resized
+        // - this is done if autoLayout is on
+    void SetAutoLayout( bool autoLayout ) { m_autoLayout = autoLayout; }
+    bool GetAutoLayout() const { return m_autoLayout; }
+
+        // lay out the window and its children
+    virtual bool Layout();
+
         // sizers
-        // TODO: what are they and how do they work??
-    void SetSizer( wxSizer *sizer );
+    void SetSizer(wxSizer *sizer, bool deleteOld = TRUE );
     wxSizer *GetSizer() const { return m_windowSizer; }
-#endif // wxUSE_CONSTRAINTS
+
+    // Track if this window is a member of a sizer
+    void SetContainingSizer(wxSizer* sizer) { m_containingSizer = sizer; }
+    wxSizer *GetContainingSizer() const { return m_containingSizer; }
 
     // backward compatibility
     // ----------------------
@@ -770,15 +777,16 @@ public:
         // Store the palette used by DCs in wxWindow so that the dcs can share
         // a palette. And we can respond to palette messages.
     wxPalette GetPalette() const { return m_palette; }
+
         // When palette is changed tell the DC to set the system palette to the
         // new one.
-    void SetPalette(wxPalette &pal) {
-                       m_custompalette=true;
-                       m_palette=pal;
-            wxWindowDC d((wxWindow *) this);
-                       d.SetPalette(pal);
-                       }
-    bool HasCustomPalette() { return m_custompalette; }
+    void SetPalette(const wxPalette& pal);
+
+        // return true if we have a specific palette
+    bool HasCustomPalette() const { return m_hasCustomPalette; }
+
+        // return the first parent window with a custom palette or NULL
+    wxWindow *GetAncestorWithCustomPalette() const;
 #endif // wxUSE_PALETTE
 
 protected:
@@ -838,15 +846,16 @@ protected:
 
     // constraints this window is involved in
     wxWindowList        *m_constraintsInvolvedIn;
+#endif // wxUSE_CONSTRAINTS
 
-    // top level and the parent sizers
-    // TODO what's this and how does it work?)
+    // this window's sizer
     wxSizer             *m_windowSizer;
-    wxWindowBase        *m_sizerParent;
+
+    // The sizer this window is a member of, if any
+    wxSizer             *m_containingSizer;
 
     // Layout() window automatically when its size changes?
     bool                 m_autoLayout:1;
-#endif // wxUSE_CONSTRAINTS
 
     // window state
     bool                 m_isShown:1;
@@ -864,10 +873,10 @@ protected:
     wxString             m_windowName;
     bool                 m_themeEnabled;
 
-#ifdef wxUSE_PALETTE
+#if wxUSE_PALETTE
     wxPalette            m_palette;
-    bool                 m_custompalette;
-#endif
+    bool                 m_hasCustomPalette;
+#endif // wxUSE_PALETTE
 
 protected:
 
@@ -959,12 +968,8 @@ protected:
 
     // Makes an adjustment to the window position (for example, a frame that has
     // a toolbar that it manages itself).
-    virtual void AdjustForParentClientOrigin(int& x, int& y, int sizeFlags);
+    virtual void AdjustForParentClientOrigin(int& x, int& y, int sizeFlags) const;
 
-#ifdef __WXPM__
-    // extra OS/2 layout processing
-    virtual void OS2Layout(int width, int height) { };
-#endif
 
 private:
 
@@ -1075,3 +1080,5 @@ inline int NewControlId() { return wxWindowBase::NewControlId(); }
 
 #endif
     // _WX_WINDOW_H_BASE_
+
+// vi:sts=4:sw=4:et