]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/controller/buttonContainerController.cxx
creaButtonContainer: Documentation updates :) :). If you turns on the documentation...
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / creaButtonContainer / controller / buttonContainerController.cxx
1 /*!
2  * @file buttonContainerController.cxx
3  * @brief This contains the ButtonContainerController class implementation
4  * @author Diego CACERES (diego.caceres[AT]creatis.insa-lyon.fr)
5  * @date  2011-05-19
6  */
7
8 #include "buttonContainerController.h"
9
10 namespace creaButtonContainer
11 {
12         namespace controller
13         {
14                 // ----------------------------------------------------------------------------------
15                 ButtonContainerController::ButtonContainerController( BCPanel* panel )
16                 {
17                         this->m_BCPanel = panel;
18                 }
19                 // ----------------------------------------------------------------------------------
20                 ButtonContainerController::~ButtonContainerController( )
21                 {
22                         delete this->m_BCPanel;
23                 }
24                 // ----------------------------------------------------------------------------------
25                 void
26                 ButtonContainerController::AddEvents( )
27                 {
28                         try
29                         {
30                                 //Adding ButtonManagerEvents
31                                 for( GroupManagerList::iterator it =
32                                     this->m_BCPanel->m_GroupManagerList.begin( ); it
33                                     != this->m_BCPanel->m_GroupManagerList.end( ); ++it )
34                                 {
35                                         this->Connect(
36                                             ( *it ).first,
37                                             wxEVT_COMMAND_BUTTON_CLICKED,
38                                             (wxObjectEventFunction) &ButtonContainerController::ButtonExpEvent );
39                                 }//rof
40
41                                 //Adding ButtonEvents
42                                 for( ButtonGroupList::iterator it =
43                                     this->m_BCPanel->m_ButtonGroupList.begin( ); it
44                                     != this->m_BCPanel->m_ButtonGroupList.end( ); ++it )
45                                 {
46                                         KeyList keylist = ( *it )->GetButtonIdContainer( );
47                                         for( KeyList::iterator it2 = keylist.begin( ); it2 != keylist.end( ); ++it2 )
48                                         {
49                                                 this->Connect( ( *it2 ), wxEVT_COMMAND_BUTTON_CLICKED,
50                                                     (wxObjectEventFunction) &ButtonContainerController::ButtonEvent );
51                                         }//rof
52                                 }//rof
53                         }//yrt
54                         catch ( std::exception& e )
55                         {
56                                 std::cerr
57                                     << "ButtonContainerController::ButtonExpEvent( wxCommandEvent& event ) exception: "
58                                     << e.what( ) << std::endl;
59                         }//hctac
60                 }
61                 // ----------------------------------------------------------------------------------
62                 void
63                 ButtonContainerController::ButtonExpEvent( wxCommandEvent& event )
64                 {
65                         long id = event.GetId( );
66                         try
67                         {
68                                 if ( this->m_BCPanel->m_GroupManagerList[ id ]->GetButton( )->GetLabel( ).Cmp(
69                                     _( "+" ) ) == 0 )
70                                 {
71                                         this->m_BCPanel->m_GroupManagerList[ id ]->GetButton( )->SetLabel(
72                                             _( "-" ) );
73                                         this->m_BCPanel->m_GroupManagerList[ id ]->HideSubPanel( false );
74                                 }//fi
75                                 else if ( this->m_BCPanel->m_GroupManagerList[ id ]->GetButton( )->GetLabel( ).Cmp(
76                                     _( "-" ) ) == 0 )
77                                 {
78                                         this->m_BCPanel->m_GroupManagerList[ id ]->GetButton( )->SetLabel(
79                                             _( "+" ) );
80                                         this->m_BCPanel->m_GroupManagerList[ id ]->HideSubPanel( true );
81                                 }//fi esle
82                                 this->m_BCPanel->FitSizer( );
83                         }//yrt
84                         catch ( std::exception& e )
85                         {
86                                 std::cerr << "ButtonContainerController::AddEvents( ) exception: "
87                                     << e.what( ) << std::endl;
88                         }//hctac
89                 }
90                 // ----------------------------------------------------------------------------------
91                 void
92                 ButtonContainerController::ButtonEvent( wxCommandEvent& event )
93                 {
94                         try
95                         {
96                                 for( ButtonGroupList::iterator it =
97                                     this->m_BCPanel->m_ButtonGroupList.begin( ); it
98                                     != this->m_BCPanel->m_ButtonGroupList.end( ); ++it )
99                                 {
100
101                                         ( *it )->GetButton( event.GetId( ) )->Execute( );
102
103                                 }//rof
104                         }//yrt
105                         catch ( std::exception& e )
106                         {
107                                 std::cerr
108                                     << "ButtonContainerController::ButtonExpEvent( wxCommandEvent& event ) exception: "
109                                     << e.what( ) << std::endl;
110                         }//hctac
111                 }
112         // ----------------------------------------------------------------------------------
113         }//ecapsename
114 }//ecapsename
115