]> git.saurik.com Git - wxWidgets.git/blame - interface/wx/collpane.h
Fixed initial layout bug when using dynamically created bitmap on wxGTK
[wxWidgets.git] / interface / wx / collpane.h
CommitLineData
23324ae1
FM
1/////////////////////////////////////////////////////////////////////////////
2// Name: collpane.h
968f15e2 3// Purpose: interface of wxCollapsiblePane
23324ae1
FM
4// Author: wxWidgets team
5// RCS-ID: $Id$
6// Licence: wxWindows license
7/////////////////////////////////////////////////////////////////////////////
8
9/**
10 @class wxCollapsiblePaneEvent
7c913512 11
968f15e2
BP
12 This event class is used for the events generated by wxCollapsiblePane.
13
14 @beginEventTable{wxCollapsiblePaneEvent}
15 @event{EVT_COLLAPSIBLEPANE_CHANGED(id, func)}
16 The user expanded or collapsed the collapsible pane.
17 @endEventTable
7c913512 18
23324ae1 19 @library{wxcore}
968f15e2 20 @category{events}
7c913512 21
e54c96f1 22 @see wxCollapsiblePane
23324ae1
FM
23*/
24class wxCollapsiblePaneEvent : public wxCommandEvent
25{
26public:
27 /**
28 The constructor is not normally used by the user code.
29 */
968f15e2 30 wxCollapsiblePaneEvent(wxObject* generator, int id, bool collapsed);
23324ae1
FM
31
32 /**
33 Returns @true if the pane has been collapsed.
34 */
328f5751 35 bool GetCollapsed() const;
23324ae1
FM
36
37 /**
4cc4bfaf 38 Sets this as a collapsed pane event (if @a collapsed is @true) or as an
968f15e2 39 expanded pane event (if @a collapsed is @false).
23324ae1
FM
40 */
41 void SetCollapsed(bool collapsed);
42};
43
44
e54c96f1 45
23324ae1
FM
46/**
47 @class wxCollapsiblePane
7c913512 48
968f15e2
BP
49 A collapsible pane is a container with an embedded button-like control
50 which can be used by the user to collapse or expand the pane's contents.
7c913512 51
968f15e2
BP
52 Once constructed you should use the GetPane() function to access the pane
53 and add your controls inside it (i.e. use the returned pointer from
54 GetPane() as parent for the controls which must go in the pane, @b not the
55 wxCollapsiblePane itself!).
7c913512 56
23324ae1 57 Note that because of its nature of control which can dynamically (and
968f15e2
BP
58 drastically) change its size at run-time under user-input, when putting
59 wxCollapsiblePane inside a wxSizer you should be careful to add it with a
60 proportion value of zero; this is because otherwise all other windows with
61 non-null proportion values will automatically resize each time the user
62 expands or collapse the pane window usually resulting in a weird,
63 flickering effect.
7c913512 64
23324ae1 65 Usage sample:
7c913512 66
23324ae1 67 @code
968f15e2
BP
68 wxCollapsiblePane *collpane = new wxCollapsiblePane(this, wxID_ANY, wxT("Details:"));
69
70 // add the pane with a zero proportion value to the 'sz' sizer which contains it
71 sz->Add(collpane, 0, wxGROW|wxALL, 5);
72
73 // now add a test label in the collapsible pane using a sizer to layout it:
74 wxWindow *win = collpane->GetPane();
75 wxSizer *paneSz = new wxBoxSizer(wxVERTICAL);
76 paneSz->Add(new wxStaticText(win, wxID_ANY, wxT("test!")), 1, wxGROW|wxALL, 2);
77 win->SetSizer(paneSz);
78 paneSz->SetSizeHints(win);
23324ae1 79 @endcode
7c913512 80
23324ae1 81 It is only available if @c wxUSE_COLLPANE is set to 1 (the default).
7c913512 82
23324ae1 83 @beginStyleTable
8c6791e4 84 @style{wxCP_DEFAULT_STYLE}
23324ae1
FM
85 The default style: 0.
86 @endStyleTable
7c913512 87
968f15e2
BP
88 @beginEventTable{wxCollapsiblePaneEvent}
89 @event{EVT_COLLAPSIBLEPANE_CHANGED(id, func)}
90 The user expanded or collapsed the collapsible pane.
91 @endEventTable
92
23324ae1
FM
93 @library{wxcore}
94 @category{ctrl}
968f15e2 95 <!-- @appearance{collapsiblepane.png} -->
7c913512 96
e54c96f1 97 @see wxPanel, wxCollapsiblePaneEvent
23324ae1
FM
98*/
99class wxCollapsiblePane : public wxControl
100{
101public:
c559feea
RR
102 /**
103 Default constructor.
104 */
105 wxCollapsiblePane();
106
23324ae1 107 /**
968f15e2 108 Initializes the object and calls Create() with all the parameters.
23324ae1 109 */
4cc4bfaf 110 wxCollapsiblePane(wxWindow* parent, wxWindowID id,
23324ae1
FM
111 const wxString& label,
112 const wxPoint& pos = wxDefaultPosition,
113 const wxSize& size = wxDefaultSize,
114 long style = wxCP_DEFAULT_STYLE,
115 const wxValidator& validator = wxDefaultValidator,
116 const wxString& name = "collapsiblePane");
117
23324ae1 118 /**
7c913512 119 @param parent
4cc4bfaf 120 Parent window, must not be non-@NULL.
7c913512 121 @param id
4cc4bfaf 122 The identifier for the control.
7c913512 123 @param label
968f15e2
BP
124 The initial label shown in the button which allows the user to
125 expand or collapse the pane window.
7c913512 126 @param pos
4cc4bfaf 127 Initial position.
7c913512 128 @param size
4cc4bfaf 129 Initial size.
7c913512 130 @param style
4cc4bfaf 131 The window style, see wxCP_* flags.
7c913512 132 @param validator
4cc4bfaf 133 Validator which can be used for additional date checks.
7c913512 134 @param name
4cc4bfaf 135 Control name.
3c4f71cc 136
d29a9a8a
BP
137 @return @true if the control was successfully created or @false if
138 creation failed.
23324ae1 139 */
4cc4bfaf 140 bool Create(wxWindow* parent, wxWindowID id,
23324ae1
FM
141 const wxString& label,
142 const wxPoint& pos = wxDefaultPosition,
143 const wxSize& size = wxDefaultSize,
144 long style = wxCP_DEFAULT_STYLE,
145 const wxValidator& validator = wxDefaultValidator,
146 const wxString& name = "collapsiblePane");
147
148 /**
968f15e2
BP
149 Collapses or expands the pane window.
150 */
151 void Collapse(bool collapse = true);
152
153 /**
154 Same as calling Collapse(@false).
23324ae1
FM
155 */
156 void Expand();
157
158 /**
968f15e2
BP
159 Returns a pointer to the pane window. Add controls to the returned
160 wxWindow to make them collapsible.
23324ae1 161 */
328f5751 162 wxWindow* GetPane() const;
23324ae1
FM
163
164 /**
165 Returns @true if the pane window is currently hidden.
166 */
328f5751 167 bool IsCollapsed() const;
23324ae1
FM
168
169 /**
170 Returns @true if the pane window is currently shown.
171 */
328f5751 172 bool IsExpanded() const;
23324ae1 173};
e54c96f1 174