00001
00010 #ifndef _PlotToolbar_h
00011 #define _PlotToolbar_h
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include "ClickToolAction.h"
00022 #include "PlotControl.h"
00023 #include "ToggleToolAction.h"
00024 #include "ToolbarTool.h"
00025
00026
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
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
00059
00060
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
00073
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
00101
00102
00103
00104
00105
00106 #endif // _PlotToolbar_h