]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/generic/sashwin.h
Window management and sizer layout corrections
[wxWidgets.git] / include / wx / generic / sashwin.h
index d1dfdbfefb8c129b77cbd1b72bb0392b57163700..2e90124cc75229c2c2ea7db6cfadbed2caf79bbe 100644 (file)
@@ -55,8 +55,11 @@ public:
  */
 
 #define wxSW_NOBORDER         0x0000
-#define wxSW_3D               0x0010
+//#define wxSW_3D               0x0010
 #define wxSW_BORDER           0x0020
+#define wxSW_3DSASH           0x0040
+#define wxSW_3DBORDER         0x0080
+#define wxSW_3D (wxSW_3DSASH | wxSW_3DBORDER)
 
 /*
  * wxSashWindow allows any of its edges to have a sash which can be dragged
@@ -74,13 +77,24 @@ public:
 // Public API
 
     // Default constructor
-    wxSashWindow();
+    wxSashWindow()
+    {
+        Init();
+    }
 
     // Normal constructor
     wxSashWindow(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition,
-        const wxSize& size = wxDefaultSize, long style = wxSW_3D|wxCLIP_CHILDREN, const wxString& name = "sashWindow");
+        const wxSize& size = wxDefaultSize, long style = wxSW_3D|wxCLIP_CHILDREN, const wxString& name = "sashWindow")
+    {
+        Init();
+        Create(parent, id, pos, size, style, name);
+    }
+
     ~wxSashWindow();
 
+    bool Create(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition,
+        const wxSize& size = wxDefaultSize, long style = wxSW_3D|wxCLIP_CHILDREN, const wxString& name = "sashWindow");
+
     // Set whether there's a sash in this position
     void SetSashVisible(wxSashEdgePosition edge, bool sash);
 
@@ -151,7 +165,9 @@ public:
     // Initialize colours
     void InitColours();
 
-protected:
+private:
+    void Init();
+
     wxSashEdge  m_sashes[4];
     int         m_dragMode;
     wxSashEdgePosition m_draggingEdge;
@@ -172,11 +188,16 @@ protected:
     wxColour    m_darkShadowColour;
     wxColour    m_hilightColour;
     wxColour    m_faceColour;
+    bool        m_mouseCaptured;
 
 DECLARE_EVENT_TABLE()
 };
 
-#define wxEVT_SASH_DRAGGED (wxEVT_FIRST + 1200)
+BEGIN_DECLARE_EVENT_TYPES()
+    DECLARE_EVENT_TYPE(wxEVT_SASH_DRAGGED, wxEVT_FIRST + 1200)
+END_DECLARE_EVENT_TYPES()
+
+// #define wxEVT_SASH_DRAGGED (wxEVT_FIRST + 1200)
 
 enum wxSashDragStatus
 {
@@ -211,8 +232,10 @@ class WXDLLEXPORT wxSashEvent: public wxCommandEvent
 
 typedef void (wxEvtHandler::*wxSashEventFunction)(wxSashEvent&);
 
-#define EVT_SASH_DRAGGED(id, fn) { wxEVT_SASH_DRAGGED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSashEventFunction) & fn, NULL },
-#define EVT_SASH_DRAGGED_RANGE(id1, id2, fn) { wxEVT_SASH_DRAGGED, id1, id2, (wxObjectEventFunction) (wxEventFunction) (wxSashEventFunction) & fn, NULL },
+#define EVT_SASH_DRAGGED(id, fn) \
+    DECLARE_EVENT_TABLE_ENTRY( wxEVT_SASH_DRAGGED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSashEventFunction) & fn, NULL ),
+#define EVT_SASH_DRAGGED_RANGE(id1, id2, fn) \
+    DECLARE_EVENT_TABLE_ENTRY( wxEVT_SASH_DRAGGED, id1, id2, (wxObjectEventFunction) (wxEventFunction) (wxSashEventFunction) & fn, NULL ),
 
 #endif // wxUSE_SASH