summaryrefslogtreecommitdiffstats
path: root/CairoWidget.hxx
blob: 077a4c7afc43ac6e60b3584ab7499166321c0a89 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#ifndef SYSTEMTAP_CAIROWIDGET_H
#define SYSTEMTAP_CAIROWIDGET_H 1

#include <cairomm/context.h>
namespace systemtap
{
  class CairoWidget
  {
  public:
    CairoWidget(bool visible = false)
      : _visible(visible), _size(50.0), _radius(5)
    {}
    bool isVisible() const { return _visible; }
    void setVisible(bool visible) { _visible = visible; }
    void getOrigin(double &x, double &y) const
    {
      x = _x0;
      y = _y0;
    }
    void setOrigin(double x, double y)
    {
      _x0 = x;
      _y0 = y;
    }
    virtual void draw(Cairo::RefPtr<Cairo::Context> cr) = 0;
    virtual bool containsPoint(double x, double y) { return false; }
  protected:
    bool _visible;
    double _x0;
    double _y0;
    double _size;
    double _radius;
  };

  class CairoPlayButton : public CairoWidget
  {
  public:
    virtual void draw(Cairo::RefPtr<Cairo::Context> cr);
    virtual bool containsPoint(double x, double y);
  };
}
#endif