]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/window.h
Fix crash when editing wxDVC items in place in wxOSX/Cocoa.
[wxWidgets.git] / include / wx / window.h
index 31dbf9587c8ce1f713e23beb157567ab45729756..4fff9c3cd81ef08368391ee63f6780807a468781 100644 (file)
@@ -118,6 +118,7 @@ enum wxWindowVariant
 // valid values for Show/HideWithEffect()
 enum wxShowEffect
 {
+    wxSHOW_EFFECT_NONE,
     wxSHOW_EFFECT_ROLL_TO_LEFT,
     wxSHOW_EFFECT_ROLL_TO_RIGHT,
     wxSHOW_EFFECT_ROLL_TO_TOP,
@@ -148,7 +149,9 @@ WX_DECLARE_LIST_3(wxWindow, wxWindowBase, wxWindowList, wxWindowListNode, class
 // ----------------------------------------------------------------------------
 
 extern WXDLLIMPEXP_DATA_CORE(wxWindowList) wxTopLevelWindows;
-extern WXDLLIMPEXP_DATA_CORE(wxList) wxPendingDelete;
+
+// declared here for compatibility only, main declaration is in wx/app.h
+extern WXDLLIMPEXP_DATA_BASE(wxList) wxPendingDelete;
 
 // ----------------------------------------------------------------------------
 // wxWindowBase is the base class for all GUI controls/widgets, this is the public
@@ -171,15 +174,6 @@ public:
         // Create()
     wxWindowBase() ;
 
-        // pseudo ctor (can't be virtual, called from ctor)
-    bool CreateBase(wxWindowBase *parent,
-                    wxWindowID winid,
-                    const wxPoint& pos = wxDefaultPosition,
-                    const wxSize& size = wxDefaultSize,
-                    long style = 0,
-                    const wxValidator& validator = wxDefaultValidator,
-                    const wxString& name = wxPanelNameStr);
-
     virtual ~wxWindowBase();
 
     // deleting the window
@@ -375,7 +369,7 @@ public:
         // acceptable size using which it will still look "nice" in
         // most situations)
     wxSize GetBestSize() const;
-    
+
     void GetBestSize(int *w, int *h) const
     {
         wxSize s = GetBestSize();
@@ -1032,9 +1026,10 @@ public:
     wxColour GetForegroundColour() const;
 
         // Set/get the background style.
-        // Pass one of wxBG_STYLE_SYSTEM, wxBG_STYLE_COLOUR, wxBG_STYLE_CUSTOM
-    virtual bool SetBackgroundStyle(wxBackgroundStyle style) { m_backgroundStyle = style; return true; }
-    virtual wxBackgroundStyle GetBackgroundStyle() const { return m_backgroundStyle; }
+    virtual bool SetBackgroundStyle(wxBackgroundStyle style)
+        { m_backgroundStyle = style; return true; }
+    wxBackgroundStyle GetBackgroundStyle() const
+        { return m_backgroundStyle; }
 
         // returns true if the control has "transparent" areas such as a
         // wxStaticText and wxCheckBox and the background should be adapted
@@ -1157,13 +1152,16 @@ public:
     // scrollbars
     // ----------
 
-        // does the window have the scrollbar for this orientation?
-    bool HasScrollbar(int orient) const
+        // can the window have the scrollbar in this orientation?
+    bool CanScroll(int orient) const
     {
         return (m_windowStyle &
                 (orient == wxHORIZONTAL ? wxHSCROLL : wxVSCROLL)) != 0;
     }
 
+        // does the window have the scrollbar in this orientation?
+    bool HasScrollbar(int orient) const;
+
         // configure the window scrollbars
     virtual void SetScrollbar( int orient,
                                int pos,
@@ -1414,6 +1412,24 @@ public:
     virtual bool CanApplyThemeBorder() const { return true; }
 
 protected:
+    // helper for the derived class Create() methods: the first overload, with
+    // validator parameter, should be used for child windows while the second
+    // one is used for top level ones
+    bool CreateBase(wxWindowBase *parent,
+                    wxWindowID winid,
+                    const wxPoint& pos = wxDefaultPosition,
+                    const wxSize& size = wxDefaultSize,
+                    long style = 0,
+                    const wxValidator& validator = wxDefaultValidator,
+                    const wxString& name = wxPanelNameStr);
+
+    bool CreateBase(wxWindowBase *parent,
+                    wxWindowID winid,
+                    const wxPoint& pos,
+                    const wxSize& size,
+                    long style,
+                    const wxString& name);
+
     // event handling specific to wxWindow
     virtual bool TryBefore(wxEvent& event);
     virtual bool TryAfter(wxEvent& event);
@@ -1632,6 +1648,11 @@ protected:
     // same size as it would have after a call to Fit()
     virtual wxSize DoGetBestSize() const;
 
+    // this method can be overridden instead of DoGetBestSize() if it computes
+    // the best size of the client area of the window only, excluding borders
+    // (GetBorderSize() will be used to add them)
+    virtual wxSize DoGetBestClientSize() const { return wxDefaultSize; }
+
     // this is the virtual function to be overriden in any derived class which
     // wants to change how SetSize() or Move() works - it is called by all
     // versions of these functions in the base class
@@ -1646,6 +1667,19 @@ protected:
                                  int maxW, int maxH,
                                  int incW, int incH );
 
+    // return the total size of the window borders, i.e. the sum of the widths
+    // of the left and the right border in the x component of the returned size
+    // and the sum of the heights of the top and bottom borders in the y one
+    //
+    // NB: this is new/temporary API only implemented by wxMSW and wxUniv so
+    //     far and subject to change, don't use
+    virtual wxSize DoGetBorderSize() const
+    {
+        wxFAIL_MSG( "must be overridden if called" );
+
+        return wxDefaultSize;
+    }
+
     // move the window to the specified location and resize it: this is called
     // from both DoSetSize() and DoSetClientSize() and would usually just
     // reposition this window except for composite controls which will want to