Go to the documentation of this file.
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
virtual void load_location()
Definition: Item.hpp:87
virtual void set_width(double w)=0
virtual void select_tick()=0
double width() const
Definition: Item.hpp:82
virtual ~Item()
Definition: Item.hpp:52
sigc::signal< void, double, double > signal_dropped
Definition: Item.hpp:121
bool on_event(GdkEvent *event)
std::list< boost::shared_ptr< Item > > ItemList
Definition: Item.hpp:149
Item(boost::shared_ptr< Canvas > canvas, const std::string &name, double x, double y, uint32_t color)
const boost::weak_ptr< Canvas > _canvas
Definition: Item.hpp:134
boost::weak_ptr< Item > _partner
Definition: Item.hpp:136
virtual void set_border_color(uint32_t c)
Definition: Item.hpp:97
virtual void on_click(GdkEventButton *ev)
Gtk::Menu * _menu
Definition: Item.hpp:138
virtual void set_height(double h)=0
virtual void set_base_color(uint32_t c)
Definition: Item.hpp:98
const std::string & name() const
Definition: Item.hpp:93
virtual void on_double_click(GdkEventButton *ev)
virtual void zoom(double z)
Definition: Item.hpp:63
An item on a Canvas.
Definition: Item.hpp:42
std::string _name
Definition: Item.hpp:139
double _width
Definition: Item.hpp:141
double _minimum_width
Definition: Item.hpp:140
sigc::signal< void, double, double > signal_dragged
Definition: Item.hpp:120
virtual void move(double dx, double dy)=0
bool selected() const
Definition: Item.hpp:54
sigc::signal< void > signal_pointer_entered
Definition: Item.hpp:112
virtual void set_name(const std::string &n)
Definition: Item.hpp:94
virtual void set_minimum_width(double w)
Definition: Item.hpp:57
virtual void store_location()
Definition: Item.hpp:88
sigc::signal< void > signal_selected
Definition: Item.hpp:114
bool popup_menu(guint button, guint32 activate_time)
Definition: Item.hpp:66
sigc::signal< void > signal_pointer_exited
Definition: Item.hpp:113
double _height
Definition: Item.hpp:142
void set_partner(boost::shared_ptr< Item > partner)
Set the partner of this node.
Definition: Item.hpp:109
virtual void create_menu()
Definition: Item.hpp:77
uint32_t _color
Definition: Item.hpp:144
FlowCanvas namespace, everything is defined under this.
Definition: Canvas.hpp:38
sigc::signal< void, GdkEventButton * > signal_double_clicked
Definition: Item.hpp:118
bool _selected
Definition: Item.hpp:145
boost::weak_ptr< Item > partner()
Definition: Item.hpp:110
uint32_t _border_color
Definition: Item.hpp:143
uint32_t base_color() const
Definition: Item.hpp:96
double height() const
Definition: Item.hpp:83
virtual void set_selected(bool s)
bool is_within(const Gnome::Canvas::Rect &rect) const
Definition: Item.hpp:163
sigc::signal< void, GdkEventButton * > signal_clicked
Definition: Item.hpp:117
sigc::signal< void > signal_unselected
Definition: Item.hpp:115
virtual void set_default_base_color()=0
void set_menu(Gtk::Menu *m)
Definition: Item.hpp:80
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
Gtk::Menu * menu() const
Definition: Item.hpp:79
boost::weak_ptr< Canvas > canvas() const
Definition: Item.hpp:64
virtual void on_drag(double dx, double dy)