PlotToolbar.h

00001 
00010 #ifndef _PlotToolbar_h
00011 #define _PlotToolbar_h
00012 
00013 // SYSTEM INCLUDES
00014 //
00015 
00016 // PROJECT INCLUDES
00017 //
00018 
00019 // LOCAL INCLUDES
00020 //
00021 #include "ClickToolAction.h"
00022 #include "PlotControl.h"
00023 #include "ToggleToolAction.h"
00024 #include "ToolbarTool.h"
00025 
00026 // FORWARD REFERENCES
00027 //
00028 
00029 class PlotToolbar
00030     : public wxToolBar
00031 {
00032     enum {
00033         ID_TOOL_PAN = 1,
00034         ID_TOOL_ZOOMIN,
00035         ID_TOOL_ZOOMOUT,
00036         ID_TOOL_EXPORT,
00037 
00038         TOOL_MAX
00039     };
00040 
00041 public:
00042 // LIFECYCLE
00043 
00046     PlotToolbar(wxWindow*           pParent,
00047                 wxWindowID          id,
00048                 PlotControl*        pPlotControl,
00049                 const wxPoint&      position = wxDefaultPosition,
00050                 const wxSize&       size = wxDefaultSize);
00051 
00052 
00055     ~PlotToolbar(void);
00056 
00057 
00058 // OPERATORS
00059 
00060 // OPERATIONS
00061 
00063     void    AddCustomTool(const ToolbarTool& tool);
00064 
00065     void    OnClickTool(wxCommandEvent& event);
00066     void    OnToggleTool(wxCommandEvent& event);
00067 
00068     void    OnToolSelect(wxCommandEvent& event);
00069 
00070     void    OnExport(wxCommandEvent& event);
00071 
00072 // ACCESS
00073 // INQUIRY
00074 
00075 protected:
00076 
00079     void                SetUpBasicTools();
00080 
00081 private:
00082     int                 GenerateToolId();
00083 
00084     PlotControl*    mpPlotControl;
00085 
00086     typedef std::map<int, CountedPtr<ClickToolAction> >     ClickToolContainer;
00087     typedef std::map<int, CountedPtr<ToggleToolAction> >    ToggleToolContainer;
00088 
00089     ClickToolContainer  mClickTools;
00090     ToggleToolContainer mToggleTools;
00091 
00092     int         mLastId;    
00093 
00095     unsigned    mToolCount[ToolbarTool::GROUP_MAX];
00096 
00097     DECLARE_EVENT_TABLE()
00098 };
00099 
00100 // INLINE METHODS
00101 //
00102 
00103 // EXTERNAL REFERENCES
00104 //
00105 
00106 #endif  // _PlotToolbar_h

Wygenerowano Fri Sep 29 21:04:49 2006 dla EduOptim2 programem  doxygen 1.4.6