]> Creatis software - bbtk.git/blob - kernel/src/ThirdParty/wx/treemultictrl/TreeMultiItemWindow.cpp
Feature #1774
[bbtk.git] / kernel / src / ThirdParty / wx / treemultictrl / TreeMultiItemWindow.cpp
1 /*
2  # ---------------------------------------------------------------------
3  #
4  # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
5  #                        pour la SantÈ)
6  # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
7  # Previous Authors : Laurent Guigues, Jean-Pierre Roux
8  # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
9  #
10  #  This software is governed by the CeCILL-B license under French law and
11  #  abiding by the rules of distribution of free software. You can  use,
12  #  modify and/ or redistribute the software under the terms of the CeCILL-B
13  #  license as circulated by CEA, CNRS and INRIA at the following URL
14  #  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
15  #  or in the file LICENSE.txt.
16  #
17  #  As a counterpart to the access to the source code and  rights to copy,
18  #  modify and redistribute granted by the license, users are provided only
19  #  with a limited warranty  and the software's author,  the holder of the
20  #  economic rights,  and the successive licensors  have only  limited
21  #  liability.
22  #
23  #  The fact that you are presently reading this means that you have had
24  #  knowledge of the CeCILL-B license and that you accept its terms.
25  # ------------------------------------------------------------------------ */
26
27
28 //---------------------------------------------------------------------------
29 // $RCSfile: TreeMultiItemWindow.cpp,v $
30 // $Source: /cvs/creatis/bbtk/kernel/src/ThirdParty/wx/treemultictrl/TreeMultiItemWindow.cpp,v $
31 // $Revision: 1.2 $
32 // $Date: 2012/11/16 08:49:16 $
33 //---------------------------------------------------------------------------
34 // Author:      Jorgen Bodde
35 // Copyright:   (c) Jorgen Bodde
36 // License:     wxWidgets License
37 //---------------------------------------------------------------------------
38
39 #ifdef __GNUG__
40     #pragma implementation "TreeMultiItemWindow.cpp"
41 #endif
42
43 /* for compilers that support precompilation
44    includes "wx/wx.h" */
45
46 #include "wx/wxprec.h"
47
48 #ifdef __BORLANDC__
49     #pragma hdrstop
50 #endif
51
52 #include "wx/treemultictrl/TreeMultiItemWindow.h"
53
54 /** TreeMultiItemWindow
55   *     This class is a possible end node for the tree. If you want multiple
56   *     types of end-nodes you should copy this file and adjust it with a 
57   *     different class name.
58   */
59
60 TreeMultiItemWindow::TreeMultiItemWindow(TreeMultiItemNode *parent, const wxString &name)
61         :  TreeMultiItemBase(parent)
62         , _window(0)
63         , _topSpacing(0)
64         , _frontSpacing(0)
65         , _span(false)
66 {
67     _name = name;
68
69         // TODO: Enter your constructor code here
70 }
71
72 TreeMultiItemWindow::~TreeMultiItemWindow()
73 {
74         if(_window)
75                 _window->Destroy();
76 }
77
78 void TreeMultiItemWindow::AssignWindow(wxWindow *wnd)
79 {
80         // delete previous, assign new (even if zero)
81         if(_window)
82                 _window->Destroy();
83
84         _window = wnd;
85
86         // recalculate the size
87         if(wnd)
88         {
89                 wxSize size; 
90
91                 // resize the sized control by sizer or 
92                 // by single window. For a sizer handled window
93                 // GetBestSize returns the optimal size
94
95                 /// \todo This might need rivision for retaining the sizer size
96                 /// maybe we need to check whether size is <> 0,0 before get best size
97
98                 if(wnd->GetSizer())
99                         size = wnd->GetBestSize();
100                 else
101                         size = wnd->GetSize();
102
103                 _height = size.GetHeight();
104                 _width = size.GetWidth();
105
106         }
107         else
108         {
109                 _height = 0;
110                 _width = 0;
111         }
112 }
113
114 #if(CHECKBOXVIEW)
115
116 void TreeMultiItemWindow::SetCheckboxState(int state) {
117         TreeMultiItemBase::SetCheckboxState(state);
118
119         // enable or disable the window
120         if(GetCheckbox() && GetWindow() && state != 2)
121                 GetWindow()->Enable(state == 1);
122 };
123
124 #endif // #if(CHECKBOXVIEW)