1 /***************************************************************
 
   2  * Name:      ButtonContainerPanel.h
 
   3  * Purpose:   Defines the  main panel of the button container
 
   4  * Author:    Diego CACERES (diego.caceres[AT]creatis.insa-lyon.fr)
 
   6  * Copyright: Diego CACERES (http://www.creatis.insa-lyon.fr/~caceres/)
 
   8  **************************************************************/
 
  10 #ifndef BUTTONCONTAINERPANEL_H
 
  11 #define BUTTONCONTAINERPANEL_H
 
  13 #include <wx/scrolwin.h>
 
  14 #include <wx/button.h>
 
  19 #include "buttonGroup.h"
 
  20 #include "groupManager.h"
 
  21 #include "buttonGroupFactory.h"
 
  22 #include "containerSettings.h"
 
  23 #include "buttonContainerController.h"
 
  25 namespace creaButtonContainer
 
  29                 class ButtonContainerController;
 
  36                 class ButtonContainerPanel : public wxScrolledWindow
 
  40                                 typedef creaButtonContainer::view::ButtonGroup ButtonGroup;
 
  41                                 typedef creaButtonContainer::view::GroupManager GroupManager;
 
  42                                 typedef std::list< ButtonGroup* > ButtonGroupList;
 
  43                                 typedef std::map< long, GroupManager* > GroupManagerList;
 
  44                                 typedef wxFlexGridSizer Sizer;
 
  45                                 typedef std::list< long > KeyList;
 
  46                                 typedef creaButtonContainer::model::ContainerSettings
 
  48                                 typedef creaButtonContainer::model::ButtonGroupFactory
 
  50                                 typedef creaButtonContainer::controller::ButtonContainerController
 
  52                                 //end of typedef definition
 
  54                                 ButtonContainerPanel( wxWindow* parent, ButtonGroupSettings* settings );
 
  56                                 ~ButtonContainerPanel( );
 
  58                                 SetGroupContainer( ButtonGroupList groupContainer );
 
  64                                 friend class creaButtonContainer::controller::ButtonContainerController;
 
  66                                 GroupManagerList m_GroupManagerList;
 
  67                                 ButtonGroupList m_ButtonGroupList;
 
  68                                 BCController* m_ButtonCController;
 
  74 #endif // BUTTONCONTAINERPANEL_H