]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msw/window.h
#undef things which require other, disabled, ones, instead of re-#defining them as 1
[wxWidgets.git] / include / wx / msw / window.h
index 377afca91b5d180b5ecce87b4129505323200eaf..30d25ba4b7ac3439c270c2441b4ecbe3ed018c97 100644 (file)
@@ -50,6 +50,9 @@ class WXDLLEXPORT wxWindowMSW : public wxWindowBase
     friend class wxSpinCtrl;
     friend class wxSlider;
     friend class wxRadioBox;
+#if defined __VISUALC__ && __VISUALC__ <= 1200
+    friend class wxWindowMSW;
+#endif
 public:
     wxWindowMSW() { Init(); }
 
@@ -388,6 +391,14 @@ public:
         return false;
     }
 
+    // some controls (e.g. wxListBox) need to set the return value themselves
+    //
+    // return true to let parent handle it if we don't, false otherwise
+    virtual bool MSWShouldPropagatePrintChild()
+    {
+        return true;
+    }
+
 
     // Responds to colour changes: passes event on to children.
     void OnSysColourChanged(wxSysColourChangedEvent& event);
@@ -444,6 +455,14 @@ protected:
     // has the window been frozen by Freeze()?
     bool IsFrozen() const { return m_frozenness > 0; }
 
+    // this simply moves/resizes the given HWND which is supposed to be our
+    // sibling (this is useful for controls which are composite at MSW level
+    // and for which DoMoveWindow() is not enough)
+    //
+    // returns true if the window move was deferred, false if it was moved
+    // immediately (no error return)
+    bool DoMoveSibling(WXHWND hwnd, int x, int y, int width, int height);
+
     // move the window to the specified location and resize it: this is called
     // from both DoSetSize() and DoSetClientSize() and would usually just call
     // ::MoveWindow() except for composite controls which will want to arrange
@@ -491,6 +510,11 @@ private:
     // current defer window position operation handle (may be NULL)
     WXHANDLE m_hDWP;
 
+    // When deferred positioning is done these hold the pending changes, and
+    // are used for the default values if another size/pos changes is done on
+    // this window before the group of deferred changes is completed.
+    wxPoint     m_pendingPosition;
+    wxSize      m_pendingSize;
 
     DECLARE_DYNAMIC_CLASS(wxWindowMSW)
     DECLARE_NO_COPY_CLASS(wxWindowMSW)
@@ -544,17 +568,5 @@ WX_DECLARE_HASH(wxWindowMSW, wxWindowList, wxWinHashTable);
 
 extern wxWinHashTable *wxWinHandleHash;
 
-// ----------------------------------------------------------------------------
-// extra data needed for correcting problems with deferred positioning
-// ----------------------------------------------------------------------------
-
-struct wxExtraWindowData
-{
-    // Stored during deferred positioning
-    wxPoint m_pos;
-    wxSize  m_size;
-    bool    m_deferring:1;
-};
-
 #endif
     // _WX_WINDOW_H_