]> git.saurik.com Git - wxWidgets.git/blob - interface/sashwin.h
store selected indices as unsigned int, not size_t, in wxSelectionStore, we don't...
[wxWidgets.git] / interface / sashwin.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: sashwin.h
3 // Purpose: interface of wxSashWindow
4 // Author: wxWidgets team
5 // RCS-ID: $Id$
6 // Licence: wxWindows license
7 /////////////////////////////////////////////////////////////////////////////
8
9 /**
10 @class wxSashWindow
11 @wxheader{sashwin.h}
12
13 wxSashWindow allows any of its edges to have a sash which can be dragged
14 to resize the window. The actual content window will be created by the
15 application
16 as a child of wxSashWindow. The window (or an ancestor) will be notified of a
17 drag
18 via a wxSashEvent notification.
19
20 @beginStyleTable
21 @style{wxSW_3D}:
22 Draws a 3D effect sash and border.
23 @style{wxSW_3DSASH}:
24 Draws a 3D effect sash.
25 @style{wxSW_3DBORDER}:
26 Draws a 3D effect border.
27 @style{wxSW_BORDER}:
28 Draws a thin black border.
29 @endStyleTable
30
31 @beginEventTable{wxSashEvent}
32 @event{EVT_SASH_DRAGGED(id, func)}:
33 Process a wxEVT_SASH_DRAGGED event, when the user has finished
34 dragging a sash.
35 @event{EVT_SASH_DRAGGED_RANGE(id1, id2, func)}:
36 Process a wxEVT_SASH_DRAGGED_RANGE event, when the user has
37 finished dragging a sash. The event handler is called when windows
38 with ids in the given range have their sashes dragged.
39 @endEventTable
40
41 @library{wxadv}
42 @category{miscwnd}
43
44 @see wxSashEvent, wxSashLayoutWindow, @ref overview_eventhandling
45 */
46 class wxSashWindow : public wxWindow
47 {
48 public:
49 //@{
50 /**
51 Constructs a sash window, which can be a child of a frame, dialog or any other
52 non-control window.
53
54 @param parent
55 Pointer to a parent window.
56 @param id
57 Window identifier. If -1, will automatically create an identifier.
58 @param pos
59 Window position. wxDefaultPosition is (-1, -1) which indicates that
60 wxSashWindows
61 should generate a default position for the window. If using the
62 wxSashWindow class directly, supply
63 an actual position.
64 @param size
65 Window size. wxDefaultSize is (-1, -1) which indicates that wxSashWindows
66 should generate a default size for the window.
67 @param style
68 Window style. For window styles, please see wxSashWindow.
69 @param name
70 Window name.
71 */
72 wxSashWindow();
73 wxSashWindow(wxWindow* parent, wxWindowID id,
74 const wxPoint& pos = wxDefaultPosition,
75 const wxSize& size = wxDefaultSize,
76 long style = wxCLIP_CHILDREN | wxSW_3D,
77 const wxString& name = "sashWindow");
78 //@}
79
80 /**
81 Destructor.
82 */
83 ~wxSashWindow();
84
85 /**
86 Gets the maximum window size in the x direction.
87 */
88 int GetMaximumSizeX() const;
89
90 /**
91 Gets the maximum window size in the y direction.
92 */
93 int GetMaximumSizeY() const;
94
95 /**
96 Gets the minimum window size in the x direction.
97 */
98 int GetMinimumSizeX();
99
100 /**
101 Gets the minimum window size in the y direction.
102 */
103 int GetMinimumSizeY() const;
104
105 /**
106 Returns @true if a sash is visible on the given edge, @false otherwise.
107
108 @param edge
109 Edge. One of wxSASH_TOP, wxSASH_RIGHT, wxSASH_BOTTOM, wxSASH_LEFT.
110
111 @see SetSashVisible()
112 */
113 bool GetSashVisible(wxSashEdgePosition edge) const;
114
115 /**
116 Returns @true if the sash has a border, @false otherwise.
117 This function is obsolete since the sash border property is unused.
118
119 @param edge
120 Edge. One of wxSASH_TOP, wxSASH_RIGHT, wxSASH_BOTTOM, wxSASH_LEFT.
121
122 @see SetSashBorder()
123 */
124 bool HasBorder(wxSashEdgePosition edge) const;
125
126 /**
127 Sets the maximum window size in the x direction.
128 */
129 void SetMaximumSizeX(int min);
130
131 /**
132 Sets the maximum window size in the y direction.
133 */
134 void SetMaximumSizeY(int min);
135
136 /**
137 Sets the minimum window size in the x direction.
138 */
139 void SetMinimumSizeX(int min);
140
141 /**
142 Sets the minimum window size in the y direction.
143 */
144 void SetMinimumSizeY(int min);
145
146 /**
147 Call this function to give the sash a border, or remove the border.
148 This function is obsolete since the sash border property is unused.
149
150 @param edge
151 Edge to change. One of wxSASH_TOP, wxSASH_RIGHT, wxSASH_BOTTOM, wxSASH_LEFT.
152 @param hasBorder
153 @true to give the sash a border visible, @false to remove it.
154 */
155 void SetSashBorder(wxSashEdgePosition edge, bool hasBorder);
156
157 /**
158 Call this function to make a sash visible or invisible on a particular edge.
159
160 @param edge
161 Edge to change. One of wxSASH_TOP, wxSASH_RIGHT, wxSASH_BOTTOM, wxSASH_LEFT.
162 @param visible
163 @true to make the sash visible, @false to make it invisible.
164
165 @see GetSashVisible()
166 */
167 void SetSashVisible(wxSashEdgePosition edge, bool visible);
168 };
169
170
171
172 /**
173 @class wxSashEvent
174 @wxheader{sashwin.h}
175
176 A sash event is sent when the sash of a wxSashWindow has been
177 dragged by the user.
178
179 @library{wxadv}
180 @category{FIXME}
181
182 @see wxSashWindow, @ref overview_eventhandlingoverview
183 */
184 class wxSashEvent : public wxCommandEvent
185 {
186 public:
187 /**
188 Constructor.
189 */
190 wxSashEvent(int id = 0, wxSashEdgePosition edge = wxSASH_NONE);
191
192 /**
193 Returns the rectangle representing the new size the window would be if the
194 resize was applied. It is
195 up to the application to set the window size if required.
196 */
197 wxRect GetDragRect() const;
198
199 /**
200 Returns the status of the sash: one of wxSASH_STATUS_OK,
201 wxSASH_STATUS_OUT_OF_RANGE.
202 If the drag caused the notional bounding box of the window to flip over, for
203 example, the drag will be out of rage.
204 */
205 wxSashDragStatus GetDragStatus() const;
206
207 /**
208 Returns the dragged edge. The return value is one of wxSASH_TOP, wxSASH_RIGHT,
209 wxSASH_BOTTOM, wxSASH_LEFT.
210 */
211 wxSashEdgePosition GetEdge() const;
212 };
213