]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/sashwin.h
wxDataViewCtrl::IsExpanded should work now under OS X, as well
[wxWidgets.git] / interface / wx / sashwin.h
index a8fdb750769cd64bb9e21b14e8999c265fd9ee84..da59269f0a9e8e33228e070fe3806bf217d05124 100644 (file)
@@ -6,16 +6,38 @@
 // Licence:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
+
+/**
+    See wxSashWindow.
+*/
+enum wxSashEdgePosition
+{
+    wxSASH_TOP = 0,
+    wxSASH_RIGHT,
+    wxSASH_BOTTOM,
+    wxSASH_LEFT,
+    wxSASH_NONE = 100
+};
+
+/**
+    See wxSashEvent.
+*/
+enum wxSashDragStatus
+{
+    wxSASH_STATUS_OK,
+    wxSASH_STATUS_OUT_OF_RANGE
+};
+
+
 /**
     @class wxSashWindow
-    @wxheader{sashwin.h}
 
     wxSashWindow allows any of its edges to have a sash which can be dragged
     to resize the window. The actual content window will be created by the
-    application
-    as a child of wxSashWindow. The window (or an ancestor) will be notified of a
-    drag
-    via a wxSashEvent notification.
+    application as a child of wxSashWindow.
+
+    The window (or an ancestor) will be notified of a drag via a
+    wxSashEvent notification.
 
     @beginStyleTable
     @style{wxSW_3D}
 class wxSashWindow : public wxWindow
 {
 public:
-    //@{
+    /**
+        Default ctor.
+    */
+    wxSashWindow();
+
     /**
         Constructs a sash window, which can be a child of a frame, dialog or any other
         non-control window.
@@ -57,10 +83,8 @@ public:
             Window identifier. If -1, will automatically create an identifier.
         @param pos
             Window position. wxDefaultPosition is (-1, -1) which indicates that
-        wxSashWindows
-            should generate a default position for the window. If using the
-        wxSashWindow class directly, supply
-            an actual position.
+            wxSashWindows should generate a default position for the window.
+            If using the wxSashWindow class directly, supply an actual position.
         @param size
             Window size. wxDefaultSize is (-1, -1) which indicates that wxSashWindows
             should generate a default size for the window.
@@ -69,38 +93,36 @@ public:
         @param name
             Window name.
     */
-    wxSashWindow();
     wxSashWindow(wxWindow* parent, wxWindowID id,
                  const wxPoint& pos = wxDefaultPosition,
                  const wxSize& size = wxDefaultSize,
                  long style = wxCLIP_CHILDREN | wxSW_3D,
                  const wxString& name = "sashWindow");
-    //@}
 
     /**
         Destructor.
     */
-    ~wxSashWindow();
+    virtual ~wxSashWindow();
 
     /**
         Gets the maximum window size in the x direction.
     */
-    int GetMaximumSizeX() const;
+    virtual int GetMaximumSizeX() const;
 
     /**
         Gets the maximum window size in the y direction.
     */
-    int GetMaximumSizeY() const;
+    virtual int GetMaximumSizeY() const;
 
     /**
         Gets the minimum window size in the x direction.
     */
-    int GetMinimumSizeX();
+    virtual int GetMinimumSizeX() const;
 
     /**
         Gets the minimum window size in the y direction.
     */
-    int GetMinimumSizeY() const;
+    virtual int GetMinimumSizeY() const;
 
     /**
         Returns @true if a sash is visible on the given edge, @false otherwise.
@@ -126,22 +148,22 @@ public:
     /**
         Sets the maximum window size in the x direction.
     */
-    void SetMaximumSizeX(int min);
+    virtual void SetMaximumSizeX(int min);
 
     /**
         Sets the maximum window size in the y direction.
     */
-    void SetMaximumSizeY(int min);
+    virtual void SetMaximumSizeY(int min);
 
     /**
         Sets the minimum window size in the x direction.
     */
-    void SetMinimumSizeX(int min);
+    virtual void SetMinimumSizeX(int min);
 
     /**
         Sets the minimum window size in the y direction.
     */
-    void SetMinimumSizeY(int min);
+    virtual void SetMinimumSizeY(int min);
 
     /**
         Call this function to give the sash a border, or remove the border.
@@ -171,15 +193,36 @@ public:
 
 /**
     @class wxSashEvent
-    @wxheader{sashwin.h}
 
     A sash event is sent when the sash of a wxSashWindow has been
     dragged by the user.
 
+    @remarks
+    When a sash belonging to a sash window is dragged by the user, and then released,
+    this event is sent to the window, where it may be processed by an event table
+    entry in a derived class, a plug-in event handler or an ancestor class.
+    Note that the wxSashWindow doesn't change the window's size itself.
+    It relies on the application's event handler to do that.
+    This is because the application may have to handle other consequences of the resize,
+    or it may wish to veto it altogether. The event handler should look at the drag
+    rectangle: see wxSashEvent::GetDragRect to see what the new size of the window
+    would be if the resize were to be applied.
+    It should also call wxSashEvent::GetDragStatus to see whether the drag was
+    OK or out of the current allowed range.
+
+    @beginEventTable{wxSashEvent}
+    @event{EVT_SASH_DRAGGED(id, func)}
+        Process a wxEVT_SASH_DRAGGED event, when the user has finished dragging a sash.
+    @event{EVT_SASH_DRAGGED_RANGE(id1, id2, func)}
+        Process a wxEVT_SASH_DRAGGED_RANGE event, when the user has finished
+        dragging a sash. The event handler is called when windows with ids in
+        the given range have their sashes dragged.
+    @endEventTable
+
     @library{wxadv}
-    @category{FIXME}
+    @category{events}
 
-    @see wxSashWindow, @ref overview_eventhandlingoverview
+    @see wxSashWindow, @ref overview_eventhandling
 */
 class wxSashEvent : public wxCommandEvent
 {
@@ -191,22 +234,22 @@ public:
 
     /**
         Returns the rectangle representing the new size the window would be if the
-        resize was applied. It is
-        up to the application to set the window size if required.
+        resize was applied. It is up to the application to set the window size if required.
     */
     wxRect GetDragRect() const;
 
     /**
-        Returns the status of the sash: one of wxSASH_STATUS_OK,
-        wxSASH_STATUS_OUT_OF_RANGE.
+        Returns the status of the sash: one of wxSASH_STATUS_OK, wxSASH_STATUS_OUT_OF_RANGE.
+
         If the drag caused the notional bounding box of the window to flip over, for
         example, the drag will be out of rage.
     */
     wxSashDragStatus GetDragStatus() const;
 
     /**
-        Returns the dragged edge. The return value is one of wxSASH_TOP, wxSASH_RIGHT,
-        wxSASH_BOTTOM, wxSASH_LEFT.
+        Returns the dragged edge.
+
+        The return value is one of wxSASH_TOP, wxSASH_RIGHT, wxSASH_BOTTOM, wxSASH_LEFT.
     */
     wxSashEdgePosition GetEdge() const;
 };