]> Creatis software - bbtk.git/blobdiff - kernel/src/ThirdParty/wx/treemultictrl/TreeMultiItemWindow.cpp
Started the devel of a wx package browser
[bbtk.git] / kernel / src / ThirdParty / wx / treemultictrl / TreeMultiItemWindow.cpp
diff --git a/kernel/src/ThirdParty/wx/treemultictrl/TreeMultiItemWindow.cpp b/kernel/src/ThirdParty/wx/treemultictrl/TreeMultiItemWindow.cpp
new file mode 100644 (file)
index 0000000..dfa9b0d
--- /dev/null
@@ -0,0 +1,97 @@
+//---------------------------------------------------------------------------\r
+// $RCSfile: TreeMultiItemWindow.cpp,v $\r
+// $Source: /cvs/creatis/bbtk/kernel/src/ThirdParty/wx/treemultictrl/TreeMultiItemWindow.cpp,v $\r
+// $Revision: 1.1 $\r
+// $Date: 2008/03/28 13:42:18 $\r
+//---------------------------------------------------------------------------\r
+// Author:      Jorgen Bodde\r
+// Copyright:   (c) Jorgen Bodde\r
+// License:     wxWidgets License\r
+//---------------------------------------------------------------------------\r
+\r
+#ifdef __GNUG__\r
+    #pragma implementation "TreeMultiItemWindow.cpp"\r
+#endif\r
+\r
+/* for compilers that support precompilation\r
+   includes "wx/wx.h" */\r
+\r
+#include "wx/wxprec.h"\r
+\r
+#ifdef __BORLANDC__\r
+    #pragma hdrstop\r
+#endif\r
+\r
+#include "wx/treemultictrl/TreeMultiItemWindow.h"\r
+\r
+/** TreeMultiItemWindow\r
+  *    This class is a possible end node for the tree. If you want multiple\r
+  *    types of end-nodes you should copy this file and adjust it with a \r
+  *    different class name.\r
+  */\r
+\r
+TreeMultiItemWindow::TreeMultiItemWindow(TreeMultiItemNode *parent, const wxString &name)\r
+       :  TreeMultiItemBase(parent)\r
+       , _window(0)\r
+       , _topSpacing(0)\r
+       , _frontSpacing(0)\r
+       , _span(false)\r
+{\r
+    _name = name;\r
+\r
+       // TODO: Enter your constructor code here\r
+}\r
+\r
+TreeMultiItemWindow::~TreeMultiItemWindow()\r
+{\r
+       if(_window)\r
+               _window->Destroy();\r
+}\r
+\r
+void TreeMultiItemWindow::AssignWindow(wxWindow *wnd)\r
+{\r
+       // delete previous, assign new (even if zero)\r
+       if(_window)\r
+               _window->Destroy();\r
+\r
+       _window = wnd;\r
+\r
+       // recalculate the size\r
+       if(wnd)\r
+       {\r
+               wxSize size; \r
+\r
+               // resize the sized control by sizer or \r
+               // by single window. For a sizer handled window\r
+               // GetBestSize returns the optimal size\r
+\r
+               /// \todo This might need rivision for retaining the sizer size\r
+               /// maybe we need to check whether size is <> 0,0 before get best size\r
+\r
+               if(wnd->GetSizer())\r
+                       size = wnd->GetBestSize();\r
+               else\r
+                       size = wnd->GetSize();\r
+\r
+               _height = size.GetHeight();\r
+               _width = size.GetWidth();\r
+\r
+       }\r
+       else\r
+       {\r
+               _height = 0;\r
+               _width = 0;\r
+       }\r
+}\r
+\r
+#if(CHECKBOXVIEW)\r
+\r
+void TreeMultiItemWindow::SetCheckboxState(int state) {\r
+       TreeMultiItemBase::SetCheckboxState(state);\r
+\r
+       // enable or disable the window\r
+       if(GetCheckbox() && GetWindow() && state != 2)\r
+               GetWindow()->Enable(state == 1);\r
+};\r
+\r
+#endif // #if(CHECKBOXVIEW)\r