diff options
author | Dave Brolley <brolley@redhat.com> | 2009-04-21 11:11:02 -0400 |
---|---|---|
committer | Dave Brolley <brolley@redhat.com> | 2009-04-21 11:11:02 -0400 |
commit | 09fd19d66b9e3318e9e33f604eb2dbe623955123 (patch) | |
tree | 073dc18e4ca3ca4bac674c7225a9a54e5fafc7f7 /grapher/CairoWidget.cxx | |
parent | d4935c2f80122827a02d9f66c020d7e8ef6d6ade (diff) | |
parent | 9a6d143c6e2c79cee1082d0455da92cfa78b03c7 (diff) | |
download | systemtap-steved-09fd19d66b9e3318e9e33f604eb2dbe623955123.tar.gz systemtap-steved-09fd19d66b9e3318e9e33f604eb2dbe623955123.tar.xz systemtap-steved-09fd19d66b9e3318e9e33f604eb2dbe623955123.zip |
Merge branch 'master' of git://sources.redhat.com/git/systemtap
Conflicts:
aclocal.m4
configure
Diffstat (limited to 'grapher/CairoWidget.cxx')
-rw-r--r-- | grapher/CairoWidget.cxx | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/grapher/CairoWidget.cxx b/grapher/CairoWidget.cxx new file mode 100644 index 00000000..86498a4f --- /dev/null +++ b/grapher/CairoWidget.cxx @@ -0,0 +1,42 @@ +#include "CairoWidget.hxx" + +#include <math.h> + +namespace systemtap +{ + void CairoPlayButton::draw(Cairo::RefPtr<Cairo::Context> cr) + { + if (!_visible) + return; + cr->save(); + cr->set_line_width(1.0); + // square with rounded corners + cr->move_to(_x0, _y0 + _radius); + cr->arc(_x0 + _radius, _y0 + _radius, _radius, M_PI, -M_PI_2); + cr->line_to(_x0 + _size - _radius, _y0); + cr->arc(_x0 + _size - _radius, _y0 + _radius, _radius, -M_PI_2, 0.0); + cr->line_to(_x0 + _size, _y0 + _size - _radius); + cr->arc(_x0 + _size - _radius, _y0 + _size - _radius, _radius, 0.0, M_PI_2); + cr->line_to(_x0 + _radius, _y0 + _size); + cr->arc(_x0 + _radius, _y0 + _size - _radius, _radius, M_PI_2, M_PI); + cr->close_path(); + //cr->rectangle(_x0, _y0, 50.0, 50.0); + cr->set_source_rgba(1.0, 1.0, 1.0, .8); + cr->stroke(); + // play equalateral triangle + cr->move_to(_x0 + .25 * _size, _y0 + (.5 - 1.0 / (sqrt(3.0) * 2.0)) * _size); + cr->line_to(_x0 + .75 * _size, _y0 + .5 * _size); + cr->line_to(_x0 + .25 * _size, _y0 + (.5 + 1.0 / (sqrt(3.0) * 2.0)) * _size); + cr->close_path(); + cr->fill(); + cr->restore(); + } + + bool CairoPlayButton::containsPoint(double x, double y) + { + if (x >= _x0 && (x < (_x0 + 50.0)) && (y >= _y0) && (y < (_y0 + 50))) + return true; + else + return false; + } +} |