1///////////////////////////////////////////////////////////////////////////// 2// Name: wx/xrc/xh_treebk.h 3// Purpose: XML resource handler for wxTreebook 4// Author: Evgeniy Tarassov 5// Created: 2005/09/28 6// Copyright: (c) 2005 TT-Solutions <vadim@tt-solutions.com> 7// Licence: wxWindows licence 8///////////////////////////////////////////////////////////////////////////// 9 10#ifndef _WX_XH_TREEBK_H_ 11#define _WX_XH_TREEBK_H_ 12 13#include "wx/xrc/xmlres.h" 14 15#if wxUSE_XRC && wxUSE_TREEBOOK 16 17class WXDLLIMPEXP_FWD_CORE wxTreebook; 18#include "wx/dynarray.h" 19 20WX_DEFINE_USER_EXPORTED_ARRAY_SIZE_T(size_t, wxArrayTbkPageIndexes, 21 class WXDLLIMPEXP_XRC); 22 23// --------------------------------------------------------------------- 24// wxTreebookXmlHandler class 25// --------------------------------------------------------------------- 26// Resource xml structure have to be almost the "same" as for wxNotebook 27// except the additional (size_t)depth parameter for treebookpage nodes 28// which indicates the depth of the page in the tree. 29// There is only one logical constraint on this parameter : 30// it cannot be greater than the previous page depth plus one 31class WXDLLIMPEXP_XRC wxTreebookXmlHandler : public wxXmlResourceHandler 32{ 33 DECLARE_DYNAMIC_CLASS(wxTreebookXmlHandler) 34 35public: 36 wxTreebookXmlHandler(); 37 virtual wxObject *DoCreateResource(); 38 virtual bool CanHandle(wxXmlNode *node); 39 40private: 41 wxTreebook *m_tbk; 42 wxArrayTbkPageIndexes m_treeContext; 43 bool m_isInside; 44}; 45 46 47// Example: 48// ------- 49// Label 50// \--First 51// | \--Second 52// \--Third 53// 54//<resource> 55// ... 56// <object class="wxTreebook"> 57// <object class="treebookpage"> 58// <object class="wxWindow" /> 59// <label>My first page</label> 60// <depth>0</depth> 61// </object> 62// <object class="treebookpage"> 63// <object class="wxWindow" /> 64// <label>First</label> 65// <depth>1</depth> 66// </object> 67// <object class="treebookpage"> 68// <object class="wxWindow" /> 69// <label>Second</label> 70// <depth>2</depth> 71// </object> 72// <object class="treebookpage"> 73// <object class="wxWindow" /> 74// <label>Third</label> 75// <depth>1</depth> 76// </object> 77// </object> 78// ... 79//</resource> 80 81#endif // wxUSE_XRC && wxUSE_TREEBOOK 82 83#endif // _WX_XH_TREEBK_H_ 84