Rebake from clean wx tree.
[wxWidgets.git] / include / wx / window.h
index c9e0c59546059deb25590b7cf084cf50ced25ed8..2e1eee38393e01e1c9688965d85a4f758e9f732e 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();
@@ -615,7 +609,7 @@ public:
     virtual void SetWindowStyleFlag( long style ) { m_windowStyle = style; }
     virtual long GetWindowStyleFlag() const { return m_windowStyle; }
 
-        // just some (somewhat shorter) synonims
+        // just some (somewhat shorter) synonyms
     void SetWindowStyle( long style ) { SetWindowStyleFlag(style); }
     long GetWindowStyle() const { return GetWindowStyleFlag(); }
 
@@ -1158,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,7 +1411,31 @@ public:
     // used only by Windows
     virtual bool CanApplyThemeBorder() const { return true; }
 
+    // returns the main window of composite control; this is the window
+    // that FindFocus returns if the focus is in one of composite control's
+    // windows
+    virtual wxWindow *GetMainWindowOfCompositeControl()
+        { return (wxWindow*)this; }
+
 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);
@@ -1443,12 +1464,6 @@ protected:
     // to true
     void SendDestroyEvent();
 
-    // returns the main window of composite control; this is the window
-    // that FindFocus returns if the focus is in one of composite control's
-    // windows
-    virtual wxWindow *GetMainWindowOfCompositeControl()
-        { return (wxWindow*)this; }
-
     // this method should be implemented to use operating system specific code
     // to really enable/disable the widget, it will only be called when we
     // really need to enable/disable window and so no additional checks on the
@@ -1656,14 +1671,9 @@ protected:
     // 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 so far and
-    //     subject to change, don't use
-    virtual wxSize DoGetBorderSize() const
-    {
-        wxFAIL_MSG( "must be overridden if called" );
-
-        return wxDefaultSize;
-    }
+    // NB: this is currently only implemented by wxMSW and wxUniv so far and
+    //     simply asserts in the other ports
+    virtual wxSize DoGetBorderSize() const;
 
     // move the window to the specified location and resize it: this is called
     // from both DoSetSize() and DoSetClientSize() and would usually just