]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/functor.txx
creaButtonContainer: new structure to make easy the button settings
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / creaButtonContainer / model / functor.txx
1 /*!
2  * @file functor.cxx
3  * @brief Implements TFunctor class and it propose is Call_Back Functions
4  * @author Diego CACERES (diego.caceres[AT]creatis.insa-lyon.fr)
5  * @date  2011-05-24
6 */
7
8 namespace creaButtonContainer
9 {
10   namespace model
11   {
12           // constructor - takes pointer to an object and pointer to a member and stores
13           // them in two private variables
14           // -------------------------------------------------------------------------------
15           template< typename TClass >
16           TConcreteFunctor< TClass >::TConcreteFunctor( TClass* _pt2Object, void
17           (TClass::*_fpt)( const ButtonIDType &buttonName ) )
18           {
19                   this->pt2Object = _pt2Object;
20                   this->fpt = _fpt;
21           }
22           // -------------------------------------------------------------------------------
23           // override operator "()" // execute member functions
24           template< typename TClass >
25           void
26           TConcreteFunctor< TClass >::operator()( const ButtonIDType &buttonName )
27           {
28             try
29             {
30                   ( *pt2Object.*fpt )( buttonName );
31             }//yrt
32             catch ( std::exception& e )
33             {
34                   std::cerr<< "TConcreteFunctor< TClass >::operator()( const ButtonIDType &buttonName )"
35                                   <<" exception: " << e.what( ) << std::endl;
36             }//hctac
37           }
38           // -------------------------------------------------------------------------------
39           // override function "Call" // execute member function
40           template< typename TClass >
41           void
42           TConcreteFunctor< TClass >::Call( const ButtonIDType &buttonName )
43           {
44             try
45             {
46                   ( *pt2Object.*fpt )( buttonName );
47             }//yrt
48             catch ( std::exception& e )
49             {
50                   std::cerr<< "TConcreteFunctor< TClass >::Call( const ButtonIDType &buttonName )"
51                                   <<" exception: " << e.what( ) << std::endl;
52             }//hctac
53           }
54   }//ecapseman
55 }//ecapseman
56