]> Creatis software - bbtk.git/blob - kernel/src/ThirdParty/wx/treemultictrl/TreeMultiItemWindow.cpp
dfa9b0dbe80be28e86321d210cf866a265417aaa
[bbtk.git] / kernel / src / ThirdParty / wx / treemultictrl / TreeMultiItemWindow.cpp
1 //---------------------------------------------------------------------------\r
2 // $RCSfile: TreeMultiItemWindow.cpp,v $\r
3 // $Source: /cvs/creatis/bbtk/kernel/src/ThirdParty/wx/treemultictrl/TreeMultiItemWindow.cpp,v $\r
4 // $Revision: 1.1 $\r
5 // $Date: 2008/03/28 13:42:18 $\r
6 //---------------------------------------------------------------------------\r
7 // Author:      Jorgen Bodde\r
8 // Copyright:   (c) Jorgen Bodde\r
9 // License:     wxWidgets License\r
10 //---------------------------------------------------------------------------\r
11 \r
12 #ifdef __GNUG__\r
13     #pragma implementation "TreeMultiItemWindow.cpp"\r
14 #endif\r
15 \r
16 /* for compilers that support precompilation\r
17    includes "wx/wx.h" */\r
18 \r
19 #include "wx/wxprec.h"\r
20 \r
21 #ifdef __BORLANDC__\r
22     #pragma hdrstop\r
23 #endif\r
24 \r
25 #include "wx/treemultictrl/TreeMultiItemWindow.h"\r
26 \r
27 /** TreeMultiItemWindow\r
28   *     This class is a possible end node for the tree. If you want multiple\r
29   *     types of end-nodes you should copy this file and adjust it with a \r
30   *     different class name.\r
31   */\r
32 \r
33 TreeMultiItemWindow::TreeMultiItemWindow(TreeMultiItemNode *parent, const wxString &name)\r
34         :  TreeMultiItemBase(parent)\r
35         , _window(0)\r
36         , _topSpacing(0)\r
37         , _frontSpacing(0)\r
38         , _span(false)\r
39 {\r
40     _name = name;\r
41 \r
42         // TODO: Enter your constructor code here\r
43 }\r
44 \r
45 TreeMultiItemWindow::~TreeMultiItemWindow()\r
46 {\r
47         if(_window)\r
48                 _window->Destroy();\r
49 }\r
50 \r
51 void TreeMultiItemWindow::AssignWindow(wxWindow *wnd)\r
52 {\r
53         // delete previous, assign new (even if zero)\r
54         if(_window)\r
55                 _window->Destroy();\r
56 \r
57         _window = wnd;\r
58 \r
59         // recalculate the size\r
60         if(wnd)\r
61         {\r
62                 wxSize size; \r
63 \r
64                 // resize the sized control by sizer or \r
65                 // by single window. For a sizer handled window\r
66                 // GetBestSize returns the optimal size\r
67 \r
68                 /// \todo This might need rivision for retaining the sizer size\r
69                 /// maybe we need to check whether size is <> 0,0 before get best size\r
70 \r
71                 if(wnd->GetSizer())\r
72                         size = wnd->GetBestSize();\r
73                 else\r
74                         size = wnd->GetSize();\r
75 \r
76                 _height = size.GetHeight();\r
77                 _width = size.GetWidth();\r
78 \r
79         }\r
80         else\r
81         {\r
82                 _height = 0;\r
83                 _width = 0;\r
84         }\r
85 }\r
86 \r
87 #if(CHECKBOXVIEW)\r
88 \r
89 void TreeMultiItemWindow::SetCheckboxState(int state) {\r
90         TreeMultiItemBase::SetCheckboxState(state);\r
91 \r
92         // enable or disable the window\r
93         if(GetCheckbox() && GetWindow() && state != 2)\r
94                 GetWindow()->Enable(state == 1);\r
95 };\r
96 \r
97 #endif // #if(CHECKBOXVIEW)\r