18 #ifndef FLOWCANVAS_ITEM_HPP 19 #define FLOWCANVAS_ITEM_HPP 26 #include <boost/enable_shared_from_this.hpp> 27 #include <boost/shared_ptr.hpp> 29 #include <libgnomecanvasmm.h> 42 class Item :
public Gnome::Canvas::Group
43 ,
public boost::enable_shared_from_this<Item>
47 const std::string&
name,
61 virtual void move(
double dx,
double dy) = 0;
63 virtual void zoom(
double z) {}
70 _menu->popup(button, activate_time);
90 bool is_within(
const Gnome::Canvas::Rect& rect)
const;
124 virtual void on_drag(
double dx,
double dy);
126 virtual void on_click(GdkEventButton* ev);
149 typedef std::list<boost::shared_ptr<Item> >
ItemList;
157 return (x > property_x() && x < property_x() +
_width 158 && y > property_y() && y < property_y() +
_height);
165 const double x1 = rect.property_x1();
166 const double y1 = rect.property_y1();
167 const double x2 = rect.property_x2();
168 const double y2 = rect.property_y2();
170 if (x1 < x2 && y1 < y2) {
171 return (property_x() > x1
173 && property_x() +
width() < x2
174 && property_y() +
height() < y2);
175 }
else if (x2 < x1 && y2 < y1) {
176 return (property_x() > x2
178 && property_x() +
width() < x1
179 && property_y() +
height() < y1);
180 }
else if (x1 < x2 && y2 < y1) {
181 return (property_x() > x1
183 && property_x() +
width() < x2
184 && property_y() +
height() < y1);
185 }
else if (x2 < x1 && y1 < y2) {
186 return (property_x() > x2
188 && property_x() +
width() < x1
189 && property_y() +
height() < y2);
197 #endif // FLOWCANVAS_ITEM_HPP const std::string & name() const
Definition: Item.hpp:93
void set_partner(boost::shared_ptr< Item > partner)
Set the partner of this node.
Definition: Item.hpp:109
Gtk::Menu * _menu
Definition: Item.hpp:138
virtual void on_double_click(GdkEventButton *ev)
uint32_t _border_color
Definition: Item.hpp:143
virtual void set_default_base_color()=0
bool on_event(GdkEvent *event)
void set_menu(Gtk::Menu *m)
Definition: Item.hpp:80
std::list< boost::shared_ptr< Item > > ItemList
Definition: Item.hpp:149
const boost::weak_ptr< Canvas > _canvas
Definition: Item.hpp:134
sigc::signal< void, GdkEventButton * > signal_clicked
Definition: Item.hpp:117
virtual void set_base_color(uint32_t c)
Definition: Item.hpp:98
bool selected() const
Definition: Item.hpp:54
double _minimum_width
Definition: Item.hpp:140
bool is_within(const Gnome::Canvas::Rect &rect) const
Definition: Item.hpp:163
virtual void move(double dx, double dy)=0
virtual void set_border_color(uint32_t c)
Definition: Item.hpp:97
virtual void on_drag(double dx, double dy)
sigc::signal< void > signal_unselected
Definition: Item.hpp:115
virtual void zoom(double z)
Definition: Item.hpp:63
virtual ~Item()
Definition: Item.hpp:52
double _width
Definition: Item.hpp:141
Item(boost::shared_ptr< Canvas > canvas, const std::string &name, double x, double y, uint32_t color)
sigc::signal< void > signal_pointer_entered
Definition: Item.hpp:112
virtual void set_minimum_width(double w)
Definition: Item.hpp:57
uint32_t base_color() const
Definition: Item.hpp:96
std::string _name
Definition: Item.hpp:139
sigc::signal< void, GdkEventButton * > signal_double_clicked
Definition: Item.hpp:118
bool popup_menu(guint button, guint32 activate_time)
Definition: Item.hpp:66
An item on a Canvas.
Definition: Item.hpp:42
virtual void store_location()
Definition: Item.hpp:88
sigc::signal< void, double, double > signal_dropped
Definition: Item.hpp:121
virtual void create_menu()
Definition: Item.hpp:77
double width() const
Definition: Item.hpp:82
virtual void set_width(double w)=0
virtual void load_location()
Definition: Item.hpp:87
virtual void set_height(double h)=0
bool _selected
Definition: Item.hpp:145
uint32_t _color
Definition: Item.hpp:144
boost::weak_ptr< Item > partner()
Definition: Item.hpp:110
double _height
Definition: Item.hpp:142
virtual void select_tick()=0
virtual void set_name(const std::string &n)
Definition: Item.hpp:94
virtual void set_selected(bool s)
double height() const
Definition: Item.hpp:83
boost::weak_ptr< Item > _partner
Definition: Item.hpp:136
sigc::signal< void, double, double > signal_dragged
Definition: Item.hpp:120
boost::weak_ptr< Canvas > canvas() const
Definition: Item.hpp:64
sigc::signal< void > signal_pointer_exited
Definition: Item.hpp:113
bool point_is_within(double x, double y) const
Returns whether or not the point x, y (world units) is within the item.
Definition: Item.hpp:155
FlowCanvas namespace, everything is defined under this.
Definition: Canvas.hpp:38
Gtk::Menu * menu() const
Definition: Item.hpp:79
virtual void on_click(GdkEventButton *ev)
sigc::signal< void > signal_selected
Definition: Item.hpp:114