]> git.saurik.com Git - wxWidgets.git/blob - include/wx/gtk/collpane.h
f0b6af1ab0d22a2ecd7d48f4ae373acf77f474b4
[wxWidgets.git] / include / wx / gtk / collpane.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: wx/gtk/collpane.h
3 // Purpose: wxCollapsiblePane
4 // Author: Francesco Montorsi
5 // Modified by:
6 // Created: 8/10/2006
7 // RCS-ID: $Id$
8 // Copyright: (c) Francesco Montorsi
9 // Licence: wxWindows Licence
10 /////////////////////////////////////////////////////////////////////////////
11
12 #ifndef _WX_COLLAPSABLE_PANEL_H_GTK_
13 #define _WX_COLLAPSABLE_PANEL_H_GTK_
14
15 // ----------------------------------------------------------------------------
16 // wxCollapsiblePane
17 // ----------------------------------------------------------------------------
18
19 class WXDLLIMPEXP_CORE wxCollapsiblePane : public wxCollapsiblePaneBase
20 {
21 public:
22 wxCollapsiblePane() { Init(); }
23
24 wxCollapsiblePane(wxWindow *parent,
25 wxWindowID winid,
26 const wxString& label,
27 const wxPoint& pos = wxDefaultPosition,
28 const wxSize& size = wxDefaultSize,
29 long style = wxCP_DEFAULT_STYLE,
30 const wxValidator& val = wxDefaultValidator,
31 const wxString& name = wxCollapsiblePaneNameStr)
32 {
33 Init();
34
35 Create(parent, winid, label, pos, size, style, val, name);
36 }
37
38 bool Create(wxWindow *parent,
39 wxWindowID winid,
40 const wxString& label,
41 const wxPoint& pos = wxDefaultPosition,
42 const wxSize& size = wxDefaultSize,
43 long style = wxCP_DEFAULT_STYLE,
44 const wxValidator& val = wxDefaultValidator,
45 const wxString& name = wxCollapsiblePaneNameStr);
46
47 virtual void Collapse(bool collapse = true);
48 virtual bool IsCollapsed() const;
49 virtual void SetLabel(const wxString& str);
50
51 virtual wxWindow *GetPane() const { return m_pPane; }
52 virtual wxString GetLabel() const { return m_strLabel; }
53
54 protected:
55 virtual wxSize DoGetBestSize() const;
56
57 public: // used by GTK callbacks
58 bool m_bIgnoreNextChange;
59 wxSize m_szCollapsed;
60
61 wxWindow *m_pPane;
62
63 // the button label without ">>" or "<<"
64 wxString m_strLabel;
65
66 private:
67 void Init()
68 {
69 m_bIgnoreNextChange = false;
70 }
71
72 void OnSize(wxSizeEvent&);
73 virtual void AddChildGTK(wxWindowGTK* child);
74 GdkWindow *GTKGetWindow(wxArrayGdkWindows& windows) const;
75
76 DECLARE_DYNAMIC_CLASS(wxCollapsiblePane)
77 DECLARE_EVENT_TABLE()
78 };
79
80 #endif // _WX_COLLAPSABLE_PANEL_H_GTK_