]> git.saurik.com Git - wxWidgets.git/blob - include/wx/xrc/xh_sizer.h
Fix wxPropertyGrid::GetPropertyRect when the last item is collapsed.
[wxWidgets.git] / include / wx / xrc / xh_sizer.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: wx/xrc/xh_sizer.h
3 // Purpose: XML resource handler for wxBoxSizer
4 // Author: Vaclav Slavik
5 // Created: 2000/04/24
6 // Copyright: (c) 2000 Vaclav Slavik
7 // Licence: wxWindows licence
8 /////////////////////////////////////////////////////////////////////////////
9
10 #ifndef _WX_XH_SIZER_H_
11 #define _WX_XH_SIZER_H_
12
13 #include "wx/xrc/xmlres.h"
14
15 #if wxUSE_XRC
16
17 #include "wx/sizer.h"
18 #include "wx/gbsizer.h"
19
20 class WXDLLIMPEXP_XRC wxSizerXmlHandler : public wxXmlResourceHandler
21 {
22 DECLARE_DYNAMIC_CLASS(wxSizerXmlHandler)
23
24 public:
25 wxSizerXmlHandler();
26 virtual wxObject *DoCreateResource();
27 virtual bool CanHandle(wxXmlNode *node);
28
29 protected:
30 virtual wxSizer* DoCreateSizer(const wxString& name);
31 virtual bool IsSizerNode(wxXmlNode *node) const;
32
33 private:
34 bool m_isInside;
35 bool m_isGBS;
36
37 wxSizer *m_parentSizer;
38
39
40 wxObject* Handle_sizeritem();
41 wxObject* Handle_spacer();
42 wxObject* Handle_sizer();
43 wxSizer* Handle_wxBoxSizer();
44 #if wxUSE_STATBOX
45 wxSizer* Handle_wxStaticBoxSizer();
46 #endif
47 wxSizer* Handle_wxGridSizer();
48 wxFlexGridSizer* Handle_wxFlexGridSizer();
49 wxGridBagSizer* Handle_wxGridBagSizer();
50 wxSizer* Handle_wxWrapSizer();
51
52 bool ValidateGridSizerChildren();
53 void SetFlexibleMode(wxFlexGridSizer* fsizer);
54 void SetGrowables(wxFlexGridSizer* fsizer, const wxChar* param, bool rows);
55 wxGBPosition GetGBPos(const wxString& param);
56 wxGBSpan GetGBSpan(const wxString& param);
57 wxSizerItem* MakeSizerItem();
58 void SetSizerItemAttributes(wxSizerItem* sitem);
59 void AddSizerItem(wxSizerItem* sitem);
60 };
61
62 #if wxUSE_BUTTON
63
64 class WXDLLIMPEXP_XRC wxStdDialogButtonSizerXmlHandler
65 : public wxXmlResourceHandler
66 {
67 DECLARE_DYNAMIC_CLASS(wxStdDialogButtonSizerXmlHandler)
68
69 public:
70 wxStdDialogButtonSizerXmlHandler();
71 virtual wxObject *DoCreateResource();
72 virtual bool CanHandle(wxXmlNode *node);
73
74 private:
75 bool m_isInside;
76 wxStdDialogButtonSizer *m_parentSizer;
77 };
78
79 #endif // wxUSE_BUTTON
80
81 #endif // wxUSE_XRC
82
83 #endif // _WX_XH_SIZER_H_