diff options
author | Tim Moore <timoore@redhat.com> | 2009-04-15 18:43:23 +0200 |
---|---|---|
committer | Tim Moore <timoore@redhat.com> | 2009-04-15 19:00:00 +0200 |
commit | 2d45e339f3287cf0b4805ea91b3aa9f17b6d4752 (patch) | |
tree | abd4c3faf3c774702b85a0ff6fb50da184fd5023 /GraphWidget.hxx | |
parent | 7a51212ca1895b85f400fafe0e5198525996af1d (diff) | |
download | systemtap-steved-2d45e339f3287cf0b4805ea91b3aa9f17b6d4752.tar.gz systemtap-steved-2d45e339f3287cf0b4805ea91b3aa9f17b6d4752.tar.xz systemtap-steved-2d45e339f3287cf0b4805ea91b3aa9f17b6d4752.zip |
graphing widget and test harness
Diffstat (limited to 'GraphWidget.hxx')
-rw-r--r-- | GraphWidget.hxx | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/GraphWidget.hxx b/GraphWidget.hxx new file mode 100644 index 00000000..46075b78 --- /dev/null +++ b/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 |