18 #ifndef FLOWCANVAS_MODULE_HPP
19 #define FLOWCANVAS_MODULE_HPP
23 #include <boost/shared_ptr.hpp>
24 #include <libgnomecanvasmm.h>
41 const std::string&
name,
44 bool show_title =
true,
52 inline boost::shared_ptr<Port>
get_port(
const std::string& name)
const;
54 void add_port(boost::shared_ptr<Port> port);
56 boost::shared_ptr<Port>
port_at(
double x,
double y);
64 virtual void move(
double dx,
double dy);
65 virtual void move_to(
double x,
double y);
67 virtual void set_name(
const std::string& n);
80 void set_icon(
const Glib::RefPtr<Gdk::Pixbuf>& icon);
100 void embed(Gtk::Container* widget);
126 struct PortComparator {
127 explicit PortComparator(
const std::string& name) :
_name(name) {}
128 inline bool operator()(
const boost::shared_ptr<Port> port)
129 {
return (port && port->name() ==
_name); }
130 const std::string&
_name;
133 void embed_size_request(Gtk::Requisition* req,
bool force);
142 inline boost::shared_ptr<Port>
145 PortComparator comp(port_name);
146 PortVector::const_iterator i = std::find_if(_ports.begin(), _ports.end(), comp);
147 return (i != _ports.end()) ? *i : boost::shared_ptr<Port>();
153 #endif // FLOWCANVAS_MODULE_HPP
const std::string & name() const
Definition: Item.hpp:93
void set_highlighted(bool b)
virtual void set_height(double h)
Gnome::Canvas::Widget * _embed_item
Definition: Module.hpp:109
double _embed_width
Definition: Module.hpp:112
Gnome::Canvas::Rect _module_box
Definition: Module.hpp:104
double _title_width
Definition: Module.hpp:117
virtual void set_width(double w)
void embed(Gtk::Container *widget)
double _widest_input
Definition: Module.hpp:115
virtual void move_to(double x, double y)
std::vector< boost::shared_ptr< Port > > PortVector
Definition: Port.hpp:172
boost::shared_ptr< Port > get_port(const std::string &name) const
Find a port on this module.
Definition: Module.hpp:143
double _widest_output
Definition: Module.hpp:116
Gnome::Canvas::Text _canvas_title
Definition: Module.hpp:105
double empty_port_depth() const
void set_border_width(double w)
boost::shared_ptr< Port > port_at(double x, double y)
virtual void move(double dx, double dy)
bool show_port_labels(bool b)
Definition: Module.hpp:61
PortVector _ports
Definition: Module.hpp:102
bool _show_port_labels
Definition: Module.hpp:121
const PortVector & ports() const
Definition: Module.hpp:49
std::string _name
Definition: Item.hpp:139
An item on a Canvas.
Definition: Item.hpp:42
double _embed_height
Definition: Module.hpp:113
size_t num_ports() const
Definition: Module.hpp:82
Gtk::Container * _embed_container
Definition: Module.hpp:108
double _icon_size
Definition: Module.hpp:114
virtual bool on_event(GdkEvent *ev)
void port_renamed()
Definition: Module.hpp:98
void set_border_color(uint32_t c)
bool _port_renamed
Definition: Module.hpp:120
void set_stacked_border(bool b)
void add_port(boost::shared_ptr< Port > port)
virtual void set_name(const std::string &n)
PortVector & ports()
Definition: Module.hpp:50
double empty_port_breadth() const
void set_base_color(uint32_t c)
Gnome::Canvas::Rect * _stacked_border
Definition: Module.hpp:106
Gnome::Canvas::Pixbuf * _icon_box
Definition: Module.hpp:107
void set_icon(const Glib::RefPtr< Gdk::Pixbuf > &icon)
void set_show_port_labels(bool b)
void set_default_base_color()
The 'master' canvas widget which contains all other objects.
Definition: Canvas.hpp:58
void set_selected(bool b)
Module(boost::shared_ptr< Canvas > canvas, const std::string &name, double x=0, double y=0, bool show_title=true, bool show_port_labels=true)
void remove_port(boost::shared_ptr< Port > port)
boost::weak_ptr< Canvas > canvas() const
Definition: Item.hpp:64
FlowCanvas namespace, everything is defined under this.
Definition: Canvas.hpp:38
bool _title_visible
Definition: Module.hpp:119
A named block (possibly) containing input and output ports.
Definition: Module.hpp:37
double border_width() const
Definition: Module.hpp:69
double _title_height
Definition: Module.hpp:118
double _border_width
Definition: Module.hpp:111