]> git.saurik.com Git - wxWidgets.git/blobdiff - contrib/include/wx/gizmos/dynamicsash.h
more const correctness (slightly modified patch 1655991)
[wxWidgets.git] / contrib / include / wx / gizmos / dynamicsash.h
index c2ae82eb286448b5f32bb0e4b96df53e96470918..2d5da5c8b0b72595a06fe873179bf83d945c54ef 100644 (file)
 #ifndef _WX_DYNAMICSASH_H_
 #define _WX_DYNAMICSASH_H_
 
+#include "wx/gizmos/gizmos.h"
+
+#if !wxUSE_MDI
+#    error "wxUSE_MDI must be defined for gizmos to compile."
+#endif /* !wxUSE_MDI */
+
+
 /*
 
     wxDynamicSashWindow
 */
 
 
-#include <wx/event.h>
-#include <wx/window.h>
-class wxScrollBar;
-
-
-#define wxEVT_DYNAMIC_SASH_BASE             (((int)('d' - 'a') << 11) | ((int)('s' - 'a') << 6) | ((int)('h' - 'a') << 1))
-#define wxEVT_DYNAMIC_SASH_SPLIT            (wxEVT_DYNAMIC_SASH_BASE + 1)
-#define wxEVT_DYNAMIC_SASH_UNIFY            (wxEVT_DYNAMIC_SASH_BASE + 2)
+#include "wx/event.h"
+#include "wx/window.h"
 
-#define EVT_DYNAMIC_SASH_SPLIT(id, func)    EVT_CUSTOM(wxEVT_DYNAMIC_SASH_SPLIT, (id), (func))
-#define EVT_DYNAMIC_SASH_UNIFY(id, func)    EVT_CUSTOM(wxEVT_DYNAMIC_SASH_UNIFY, (id), (func))
+class WXDLLIMPEXP_CORE wxScrollBar;
 
+// ----------------------------------------------------------------------------
+// dynamic sash styles
+// ----------------------------------------------------------------------------
 
 /*
     wxDS_MANAGE_SCROLLBARS is a default style of wxDynamicSashWindow which
@@ -87,6 +90,26 @@ class wxScrollBar;
 */
 #define wxDS_DRAG_CORNER        0x0020
 
+/*
+    Default style for wxDynamicSashWindow.
+ */
+#define wxDS_DEFAULT            wxDS_MANAGE_SCROLLBARS | wxDS_DRAG_CORNER
+
+// ----------------------------------------------------------------------------
+// dynamic sash events
+// ----------------------------------------------------------------------------
+
+extern WXDLLIMPEXP_GIZMOS const wxEventType wxEVT_DYNAMIC_SASH_SPLIT;
+extern WXDLLIMPEXP_GIZMOS const wxEventType wxEVT_DYNAMIC_SASH_UNIFY;
+
+#define EVT_DYNAMIC_SASH_SPLIT(id, func) \
+    wx__DECLARE_EVT1(wxEVT_DYNAMIC_SASH_SPLIT, id, \
+                        wxDynamicSashSplitEventHandler(func))
+
+#define EVT_DYNAMIC_SASH_UNIFY(id, func) \
+    wx__DECLARE_EVT1(wxEVT_DYNAMIC_SASH_UNIFY, id, \
+                        wxDynamicSashUnifyEventHandler(func))
+
 
 /*
     wxDynamicSashSplitEvents are sent to your view by wxDynamicSashWindow
@@ -95,10 +118,12 @@ class wxScrollBar;
     a child of the wxDynamicSashWindow.  wxDynamicSashWindow will
     automatically reparent it to the proper place in its window hierarchy.
 */
-class wxDynamicSashSplitEvent : public wxCommandEvent {
+class WXDLLIMPEXP_GIZMOS wxDynamicSashSplitEvent : public wxCommandEvent
+{
 public:
     wxDynamicSashSplitEvent();
-    wxDynamicSashSplitEvent(const wxDynamicSashSplitEvent& event): wxCommandEvent(event) { }
+    wxDynamicSashSplitEvent(const wxDynamicSashSplitEvent& event)
+        : wxCommandEvent(event) { }
     wxDynamicSashSplitEvent(wxObject *target);
 
     virtual wxEvent* Clone() const { return new wxDynamicSashSplitEvent(*this); }
@@ -117,7 +142,8 @@ private:
     the scrollbars' event handlers connected to your view's event handler
     class.
 */
-class wxDynamicSashUnifyEvent : public wxCommandEvent {
+class WXDLLIMPEXP_GIZMOS wxDynamicSashUnifyEvent : public wxCommandEvent
+{
 public:
     wxDynamicSashUnifyEvent();
     wxDynamicSashUnifyEvent(const wxDynamicSashUnifyEvent& event): wxCommandEvent(event) {}
@@ -126,25 +152,44 @@ public:
     virtual wxEvent* Clone() const { return new wxDynamicSashUnifyEvent(*this); }
 
 private:
-    DECLARE_DYNAMIC_CLASS(wxDynamicSashUnifyEvent);
+    DECLARE_DYNAMIC_CLASS(wxDynamicSashUnifyEvent)
 };
 
-/*
-    wxDynamicSashWindow.  See above.
-*/
-class wxDynamicSashWindow : public wxWindow {
+typedef void (wxEvtHandler::*wxDynamicSashSplitEventFunction)(wxDynamicSashSplitEvent&);
+typedef void (wxEvtHandler::*wxDynamicSashUnifyEventFunction)(wxDynamicSashUnifyEvent&);
+
+#define wxDynamicSashSplitEventHandler(func) \
+    (wxObjectEventFunction)(wxEventFunction) \
+        wxStaticCastEvent(wxDynamicSashSplitEventFunction, &func)
+
+#define wxDynamicSashUnifyEventHandler(func) \
+    (wxObjectEventFunction)(wxEventFunction) \
+        wxStaticCastEvent(wxDynamicSashUnifyEventFunction, &func)
+
+#define wx__DECLARE_TREEEVT(evt, id, fn) \
+    wx__DECLARE_EVT1(wxEVT_COMMAND_TREE_ ## evt, id, wxTreeEventHandler(fn))
+
+// ----------------------------------------------------------------------------
+// wxDynamicSashWindow itself
+// ----------------------------------------------------------------------------
+
+WXDLLIMPEXP_GIZMOS extern const wxChar* wxDynamicSashWindowNameStr;
+
+class WXDLLIMPEXP_GIZMOS wxDynamicSashWindow : public wxWindow
+{
 public:
     wxDynamicSashWindow();
     wxDynamicSashWindow(wxWindow *parent, wxWindowID id,
                         const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
-                        long style = wxCLIP_CHILDREN | wxDS_MANAGE_SCROLLBARS | wxDS_DRAG_CORNER,
-                        const wxString& name = "dynamicSashWindow");
+                        long style = wxDS_DEFAULT,
+                        const wxString& name = wxDynamicSashWindowNameStr);
     virtual ~wxDynamicSashWindow();
 
     virtual bool Create(wxWindow *parent, wxWindowID id,
-                        const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
-                        long style = wxCLIP_CHILDREN | wxDS_MANAGE_SCROLLBARS | wxDS_DRAG_CORNER,
-                        const wxString& name = "dynamicSashWindow");
+                        const wxPoint& pos = wxDefaultPosition,
+                        const wxSize& size = wxDefaultSize,
+                        long style = wxDS_DEFAULT,
+                        const wxString& name = wxDynamicSashWindowNameStr);
     virtual wxScrollBar *GetHScrollBar(const wxWindow *child) const;
     virtual wxScrollBar *GetVScrollBar(const wxWindow *child) const;
 
@@ -158,5 +203,5 @@ private:
     DECLARE_DYNAMIC_CLASS(wxDynamicSashWindow)
 };
 
+#endif // _WX_DYNAMICSASH_H_
 
-#endif