diff options
author | David Smith <dsmith@redhat.com> | 2009-04-20 13:55:45 -0500 |
---|---|---|
committer | David Smith <dsmith@redhat.com> | 2009-04-20 13:55:45 -0500 |
commit | d1b6c2866b35575219fb36fa2307c9f87e876750 (patch) | |
tree | 4cc6d22bb879f302259074da840c279ee0b3c185 /grapher/GraphWidget.hxx | |
parent | cfee927fb9fc96fa06c55219abce6349a15d47e6 (diff) | |
parent | 555b11c26094bafa5e450d8ad70b72a8fcbea10f (diff) | |
download | systemtap-steved-d1b6c2866b35575219fb36fa2307c9f87e876750.tar.gz systemtap-steved-d1b6c2866b35575219fb36fa2307c9f87e876750.tar.xz systemtap-steved-d1b6c2866b35575219fb36fa2307c9f87e876750.zip |
Merge branch 'master' of ssh://sources.redhat.com/git/systemtap
Diffstat (limited to 'grapher/GraphWidget.hxx')
-rw-r--r-- | grapher/GraphWidget.hxx | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/grapher/GraphWidget.hxx b/grapher/GraphWidget.hxx new file mode 100644 index 00000000..46075b78 --- /dev/null +++ b/grapher/GraphWidget.hxx @@ -0,0 +1,62 @@ +#ifndef SYSTEMTAP_GRAPHWIDGET_H +#define SYSTEMTAP_GRAPHWIDGET_H + +#include <string> +#include <vector> +#include <tr1/memory> + +#include <gtkmm/drawingarea.h> +#include "GraphData.hxx" + +namespace systemtap +{ + class CairoPlayButton; + + class GraphWidget : public Gtk::DrawingArea + { + public: + GraphWidget(); + virtual ~GraphWidget(); + void addGraphData(std::tr1::shared_ptr<GraphData> data); + void getExtents(double& left, double& right, double& top, double& bottom) const; + void setExtents(double left, double right, double top, double bottom); + double getLineWidth() { return _lineWidth; } + void setLineWidth(double lineWidth) { _lineWidth = lineWidth; } + bool getAutoScaling() const { return _autoScaling; } + void setAutoScaling(bool val) { _autoScaling = val; } + std::string getTitle() const { return _title; } + void setTitle(const std::string& title) { _title = title; } + std::string getXAxisText() const { return _xAxisText; } + void setXAxisText(const std::string& text) { _xAxisText = text; } + std::string getYAxisText() const { return _yAxisText; } + void setYAxisText(const std::string& text) { _yAxisText = text; } + protected: + //Override default signal handler: + virtual bool on_expose_event(GdkEventExpose* event); + virtual bool on_motion_notify_event(GdkEventMotion* event); + virtual bool on_button_press_event(GdkEventButton* event); + virtual bool on_button_release_event(GdkEventButton* event); + virtual bool on_scroll_event(GdkEventScroll* event); + bool on_timeout(); + typedef std::vector<std::tr1::shared_ptr<GraphData> > DatasetList; + DatasetList _datasets; + double _left; + double _right; + double _top; + double _bottom; + double _lineWidth; + bool _autoScaling; + bool _autoScrolling; + double _zoomFactor; + bool _trackingDrag; + double _dragOriginX; + double _dragOriginY; + double _dragOrigLeft; + double _dragOrigRight; + std::string _title; + std::string _xAxisText; + std::string _yAxisText; + std::tr1::shared_ptr<CairoPlayButton> _playButton; + }; +} +#endif // SYSTEMTAP_GRAPHWIDGET_H |