]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/buttonContainerPanel.cxx
Code cleaning done
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / creaButtonContainer / view / buttonContainerPanel.cxx
1 /*# ---------------------------------------------------------------------
2  #
3  # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
4  #                        pour la Sant�)
5  # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
6  # Previous Authors : Laurent Guigues, Jean-Pierre Roux
7  # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
8  #
9  #  This software is governed by the CeCILL-B license under French law and
10  #  abiding by the rules of distribution of free software. You can  use,
11  #  modify and/ or redistribute the software under the terms of the CeCILL-B
12  #  license as circulated by CEA, CNRS and INRIA at the following URL
13  #  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
14  #  or in the file LICENSE.txt.
15  #
16  #  As a counterpart to the access to the source code and  rights to copy,
17  #  modify and redistribute granted by the license, users are provided only
18  #  with a limited warranty  and the software's author,  the holder of the
19  #  economic rights,  and the successive licensors  have only  limited
20  #  liability.
21  #
22  #  The fact that you are presently reading this means that you have had
23  #  knowledge of the CeCILL-B license and that you accept its terms.
24  # ------------------------------------------------------------------------ */
25
26 /*!
27  * @file buttonGroup.cxx
28  * @brief Implements the ButtonGroup class.
29  * @author Diego CACERES (diego.caceres[AT]creatis.insa-lyon.fr)
30  * @date  2011-06-02
31  */
32
33 #include "buttonContainerPanel.h"
34
35 namespace creaButtonContainer
36 {
37         namespace view
38         {
39                 BEGIN_EVENT_TABLE(ButtonContainerPanel,wxScrolledWindow)
40                 //(*EventTable(ButtonContainerPanel)
41                 //*)
42                 END_EVENT_TABLE()
43
44                 // ----------------------------------------------------------------------------------
45                 ButtonContainerPanel::ButtonContainerPanel( wxWindow* parent, ButtonGroupSettings* settings )
46                 : wxScrolledWindow(parent,-1, wxDefaultPosition,wxDefaultSize, wxTAB_TRAVERSAL | wxVSCROLL | wxHSCROLL | wxFULL_REPAINT_ON_RESIZE, _T("creaButtonContainer") )
47                 {
48
49                         ButtonGroupFactory factory;
50
51                         this->SetButtonGroupContainer( factory.CreateButtonGroupContainer( this, settings ) );
52
53                         this->PanelInit( );
54                         this->m_ButtonCController = new BCController( this );
55                         this->m_ButtonCController->AddEvents( );
56                         this->SetEventHandler( this->m_ButtonCController );
57                 }
58
59                 // ----------------------------------------------------------------------------------
60                 ButtonContainerPanel::~ButtonContainerPanel()
61                 {
62                 }
63
64                 // ----------------------------------------------------------------------------------
65                 void ButtonContainerPanel::SetButtonGroupContainer(
66                                 ButtonGroupList groupContainer)
67                 {
68
69                         this->m_ButtonGroupList = groupContainer;
70                 }
71
72                 // ----------------------------------------------------------------------------------
73                 void ButtonContainerPanel::PanelInit()
74                 {
75                         try
76                         {
77
78 // EED 20/01/2012  flag 01
79                                 this->m_Sizer = new Sizer(0, 1, 0, 0);
80
81                                 for (ButtonGroupList::iterator it = this->m_ButtonGroupList.begin();
82                                                 it != this->m_ButtonGroupList.end(); ++it)
83                                 {
84                                         GroupManager* manager = new GroupManager(this, *it);
85                                         this->m_GroupManagerList[manager->GetButtonID()] = manager;
86                                         this->m_Sizer->Add(manager, 1, wxALL | wxALIGN_LEFT | wxALIGN_TOP, 5);
87                                 }
88
89                                 this->SetSizer(this->m_Sizer);
90                                 this->Layout();
91                                 this->FitSizer();
92                         }               //yrt
93                         catch (const std::exception& e)
94                         {
95                                 std::cerr << "ButtonContainerPanel::PanelInit( ) " << "exception: "
96                                                 << e.what() << std::endl;
97                         }               //hctac
98                 }
99
100                 // ----------------------------------------------------------------------------------
101                 void ButtonContainerPanel::FitSizer()
102                 {
103                         this->m_Sizer->Fit(this);
104                         this->m_Sizer->FitInside(this);
105                         this->SetScrollRate(20, 20);
106                         this->m_Sizer->SetSizeHints(this);
107                 }
108         // ----------------------------------------------------------------------------------
109         }//ecapseman
110 }               //ecapseman