1 #ifndef __DRAWABLE_HPP__
2 #define __DRAWABLE_HPP__
5 #include <sigc++/signal.h>
6 #include <cairomm/context.h>
12 typedef sigc::signal
<void, T
> changed_signal_t
;
15 virtual ~Drawable(void) { }
16 virtual changed_signal_t
get_changed_signal(void) const;
17 virtual void draw(Cairo::RefPtr
<Cairo::Context
> cr
) = 0;
18 virtual bool select(Cairo::RefPtr
<Cairo::Context
> cr
, gdouble x
, gdouble y
) = 0;
19 virtual void deselect(void) = 0;
21 virtual void _set_changed(void);
23 changed_signal_t _changed_signal
;
27 inline typename Drawable
<T
>::changed_signal_t Drawable
<T
>::get_changed_signal(void) const
29 return _changed_signal
;
33 inline void Drawable
<T
>::_set_changed(void)
35 _changed_signal
.emit((T
)this);