Edges are clickable now.
[av.git] / gtk / src / edge.hpp
blob89e41c063c4f577ef988f49efb388055dbcde512
1 #ifndef __EDGE_HPP__
2 #define __EDGE_HPP__
4 #include <cairomm/context.h>
6 #include "drawable.hpp"
7 #include "vertex.hpp"
9 class Edge : public Drawable<Edge *>
11 public:
12 Edge(Vertex &source, Vertex &target);
13 virtual ~Edge(void);
14 virtual void draw(Cairo::RefPtr<Cairo::Context> cr);
15 virtual bool select(Cairo::RefPtr<Cairo::Context> cr, gdouble x, gdouble y);
16 virtual void deselect(void);
17 void change_source(Vertex &source);
18 void change_target(Vertex &target);
19 void change_source_follow_mouse(void);
20 void change_target_follow_mouse(void);
21 private:
22 bool _is_in_region(Cairo::RefPtr<Cairo::Context> cr, gdouble x, gdouble y) const;
23 Vertex *_source;
24 Vertex *_target;
27 #endif