]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/splitter.h
Add missing RemoveHandler
[wxWidgets.git] / interface / wx / splitter.h
index 3561831d42326a8e355813f2a8c59150086cf5f6..864c2135af81b24f49ab3577f496dbccaaaa7991 100644 (file)
@@ -3,9 +3,35 @@
 // Purpose:     interface of wxSplitterWindow
 // Author:      wxWidgets team
 // RCS-ID:      $Id$
 // Purpose:     interface of wxSplitterWindow
 // Author:      wxWidgets team
 // RCS-ID:      $Id$
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 /////////////////////////////////////////////////////////////////////////////
 
+
+#define wxSP_NOBORDER         0x0000
+#define wxSP_THIN_SASH        0x0000    // NB: the default is 3D sash
+#define wxSP_NOSASH           0x0010
+#define wxSP_PERMIT_UNSPLIT   0x0040
+#define wxSP_LIVE_UPDATE      0x0080
+#define wxSP_3DSASH           0x0100
+#define wxSP_3DBORDER         0x0200
+#define wxSP_NO_XP_THEME      0x0400
+#define wxSP_BORDER           wxSP_3DBORDER
+#define wxSP_3D               (wxSP_3DBORDER | wxSP_3DSASH)
+
+
+enum wxSplitMode
+{
+    wxSPLIT_HORIZONTAL = 1,
+    wxSPLIT_VERTICAL
+};
+
+enum
+{
+    wxSPLIT_DRAG_NONE,
+    wxSPLIT_DRAG_DRAGGING,
+    wxSPLIT_DRAG_LEFT_DOWN
+};
+
 /**
     @class wxSplitterWindow
 
 /**
     @class wxSplitterWindow
 
     @endStyleTable
 
 
     @endStyleTable
 
 
-    @beginEventTable{wxSplitterEvent}
+    @beginEventEmissionTable{wxSplitterEvent}
     @event{EVT_SPLITTER_SASH_POS_CHANGING(id, func)}
         The sash position is in the process of being changed.
         May be used to modify the position of the tracking bar to properly
         reflect the position that would be set if the drag were to be completed
     @event{EVT_SPLITTER_SASH_POS_CHANGING(id, func)}
         The sash position is in the process of being changed.
         May be used to modify the position of the tracking bar to properly
         reflect the position that would be set if the drag were to be completed
-        at this point. Processes a wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGING event.
+        at this point. Processes a @c wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGING event.
     @event{EVT_SPLITTER_SASH_POS_CHANGED(id, func)}
         The sash position was changed. May be used to modify the sash position
         before it is set, or to prevent the change from taking place.
     @event{EVT_SPLITTER_SASH_POS_CHANGED(id, func)}
         The sash position was changed. May be used to modify the sash position
         before it is set, or to prevent the change from taking place.
-        Processes a wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGED event.
+        Processes a @c wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGED event.
     @event{EVT_SPLITTER_UNSPLIT(id, func)}
     @event{EVT_SPLITTER_UNSPLIT(id, func)}
-        The splitter has been just unsplit. Processes a wxEVT_COMMAND_SPLITTER_UNSPLIT event.
+        The splitter has been just unsplit. Processes a @c wxEVT_COMMAND_SPLITTER_UNSPLIT event.
     @event{EVT_SPLITTER_DCLICK(id, func)}
         The sash was double clicked. The default behaviour is to unsplit the
         window when this happens (unless the minimum pane size has been set
     @event{EVT_SPLITTER_DCLICK(id, func)}
         The sash was double clicked. The default behaviour is to unsplit the
         window when this happens (unless the minimum pane size has been set
-        to a value greater than zero). Processes a wxEVT_COMMAND_SPLITTER_DOUBLECLICKED event.
+        to a value greater than zero). Processes a @c wxEVT_COMMAND_SPLITTER_DOUBLECLICKED event.
     @endEventTable
 
 
     @endEventTable
 
 
@@ -95,7 +121,7 @@ public:
 
         @see Initialize(), SplitVertically(), SplitHorizontally(), Create()
     */
 
         @see Initialize(), SplitVertically(), SplitHorizontally(), Create()
     */
-    wxSplitterWindow(wxWindow* parent, wxWindowID id,
+    wxSplitterWindow(wxWindow* parent, wxWindowID id = wxID_ANY,
                      const wxPoint& pos = wxDefaultPosition,
                      const wxSize& size = wxDefaultSize,
                      long style = wxSP_3D,
                      const wxPoint& pos = wxDefaultPosition,
                      const wxSize& size = wxDefaultSize,
                      long style = wxSP_3D,
@@ -110,11 +136,10 @@ public:
         Creation function, for two-step construction.
         See wxSplitterWindow() for details.
     */
         Creation function, for two-step construction.
         See wxSplitterWindow() for details.
     */
-    bool Create(wxWindow* parent, wxWindowID id,
+    bool Create(wxWindow* parent, wxWindowID id = wxID_ANY,
                 const wxPoint& point = wxDefaultPosition,
                 const wxPoint& point = wxDefaultPosition,
-                const wxSize& size = wxDefaultSize,
-                long style = wxSP_3D,
-                const wxString& name = "splitterWindow");
+                const wxSize& size = wxDefaultSize, long style = wxSP_3D,
+                const wxString& name = "splitter");
 
     /**
         Returns the current minimum pane size (defaults to zero).
 
     /**
         Returns the current minimum pane size (defaults to zero).
@@ -137,12 +162,24 @@ public:
     */
     int GetSashPosition() const;
 
     */
     int GetSashPosition() const;
 
+    /**
+        Returns the sash size in pixels.
+
+        The size of the sash is its width for a vertically split window and its
+        height for a horizontally split one. Its other direction is the same as
+        the client size of the window in the corresponding direction.
+
+        The sash size is platform-dependent because it conforms to the current
+        platform look-and-feel and cannot be changed.
+     */
+    int GetSashSize() const;
+
     /**
         Gets the split mode.
 
         @see SetSplitMode(), SplitVertically(), SplitHorizontally().
     */
     /**
         Gets the split mode.
 
         @see SetSplitMode(), SplitVertically(), SplitHorizontally().
     */
-    int GetSplitMode() const;
+    wxSplitMode GetSplitMode() const;
 
     /**
         Returns the left/top or only pane.
 
     /**
         Returns the left/top or only pane.
@@ -284,16 +321,7 @@ public:
 
         @see GetSashPosition()
     */
 
         @see GetSashPosition()
     */
-    void SetSashPosition(int position, const bool redraw = true);
-
-    /**
-        Sets the sash size. Normally, the sash size is determined according to the
-        metrics
-        of each platform, but the application can override this, for example to show
-        a thin sash that the user is not expected to drag. If @a size is more -1,
-        the custom sash size will be used.
-    */
-    void SetSashSize(int size);
+    void SetSashPosition(int position, bool redraw = true);
 
     /**
         Sets the split mode.
 
     /**
         Sets the split mode.
@@ -408,23 +436,23 @@ public:
         The sash position is in the process of being changed.
         May be used to modify the position of the tracking bar to properly
         reflect the position that would be set if the drag were to be completed
         The sash position is in the process of being changed.
         May be used to modify the position of the tracking bar to properly
         reflect the position that would be set if the drag were to be completed
-        at this point. Processes a wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGING event.
+        at this point. Processes a @c wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGING event.
     @event{EVT_SPLITTER_SASH_POS_CHANGED(id, func)}
         The sash position was changed. May be used to modify the sash position
         before it is set, or to prevent the change from taking place.
     @event{EVT_SPLITTER_SASH_POS_CHANGED(id, func)}
         The sash position was changed. May be used to modify the sash position
         before it is set, or to prevent the change from taking place.
-        Processes a wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGED event.
+        Processes a @c wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGED event.
     @event{EVT_SPLITTER_UNSPLIT(id, func)}
     @event{EVT_SPLITTER_UNSPLIT(id, func)}
-        The splitter has been just unsplit. Processes a wxEVT_COMMAND_SPLITTER_UNSPLIT event.
+        The splitter has been just unsplit. Processes a @c wxEVT_COMMAND_SPLITTER_UNSPLIT event.
     @event{EVT_SPLITTER_DCLICK(id, func)}
         The sash was double clicked. The default behaviour is to unsplit the
         window when this happens (unless the minimum pane size has been set
     @event{EVT_SPLITTER_DCLICK(id, func)}
         The sash was double clicked. The default behaviour is to unsplit the
         window when this happens (unless the minimum pane size has been set
-        to a value greater than zero). Processes a wxEVT_COMMAND_SPLITTER_DOUBLECLICKED event.
+        to a value greater than zero). Processes a @c wxEVT_COMMAND_SPLITTER_DOUBLECLICKED event.
     @endEventTable
 
     @library{wxcore}
     @category{events}
 
     @endEventTable
 
     @library{wxcore}
     @category{events}
 
-    @see wxSplitterWindow, @ref overview_eventhandling
+    @see wxSplitterWindow, @ref overview_events
 */
 class wxSplitterEvent : public wxNotifyEvent
 {
 */
 class wxSplitterEvent : public wxNotifyEvent
 {
@@ -487,3 +515,8 @@ public:
     void SetSashPosition(int pos);
 };
 
     void SetSashPosition(int pos);
 };
 
+
+wxEventType wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGED;
+wxEventType wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGING;
+wxEventType wxEVT_COMMAND_SPLITTER_DOUBLECLICKED;
+wxEventType wxEVT_COMMAND_SPLITTER_UNSPLIT;