]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/sashwin.h
synchronize GTK2 minimum version in docs
[wxWidgets.git] / interface / wx / sashwin.h
index a8fdb750769cd64bb9e21b14e8999c265fd9ee84..3d5c1fd1366d0d170d9be36843bfcf74d9ffc8b1 100644 (file)
@@ -3,19 +3,50 @@
 // Purpose:     interface of wxSashWindow
 // Author:      wxWidgets team
 // RCS-ID:      $Id$
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
+/**
+   wxSashWindow flags
+*/
+#define wxSW_NOBORDER         0x0000
+#define wxSW_BORDER           0x0020
+#define wxSW_3DSASH           0x0040
+#define wxSW_3DBORDER         0x0080
+#define wxSW_3D (wxSW_3DSASH | wxSW_3DBORDER)
+
+
+/**
+    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}
            Draws a thin black border.
     @endStyleTable
 
-    @beginEventTable{wxSashEvent}
+    @beginEventEmissionTable{wxSashEvent}
     @event{EVT_SASH_DRAGGED(id, func)}
-           Process a wxEVT_SASH_DRAGGED event, when the user has finished
+           Process a @c 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
+           Process a @c 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{miscwnd}
 
-    @see wxSashEvent, wxSashLayoutWindow, @ref overview_eventhandling
+    @see wxSashEvent, wxSashLayoutWindow, @ref overview_events
 */
 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 +92,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 +102,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.
@@ -112,47 +143,25 @@ public:
     */
     bool GetSashVisible(wxSashEdgePosition edge) const;
 
-    /**
-        Returns @true if the sash has a border, @false otherwise.
-        This function is obsolete since the sash border property is unused.
-
-        @param edge
-            Edge. One of wxSASH_TOP, wxSASH_RIGHT, wxSASH_BOTTOM, wxSASH_LEFT.
-
-        @see SetSashBorder()
-    */
-    bool HasBorder(wxSashEdgePosition edge) const;
-
     /**
         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);
-
-    /**
-        Call this function to give the sash a border, or remove the border.
-        This function is obsolete since the sash border property is unused.
-
-        @param edge
-            Edge to change. One of wxSASH_TOP, wxSASH_RIGHT, wxSASH_BOTTOM, wxSASH_LEFT.
-        @param hasBorder
-            @true to give the sash a border visible, @false to remove it.
-    */
-    void SetSashBorder(wxSashEdgePosition edge, bool hasBorder);
+    virtual void SetMinimumSizeY(int min);
 
     /**
         Call this function to make a sash visible or invisible on a particular edge.
@@ -171,15 +180,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 @c wxEVT_SASH_DRAGGED event, when the user has finished dragging a sash.
+    @event{EVT_SASH_DRAGGED_RANGE(id1, id2, func)}
+        Process a @c 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_events
 */
 class wxSashEvent : public wxCommandEvent
 {
@@ -191,23 +221,29 @@ 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;
+
+    
+    void SetEdge(wxSashEdgePosition edge);
+    void SetDragRect(const wxRect& rect);
+    void SetDragStatus(wxSashDragStatus status);
 };
 
+wxEventType wxEVT_SASH_DRAGGED;