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;
56 boost::shared_ptr<Port>
port_at(
double x,
double y);
64 virtual void move(
double dx,
double dy);
80 void set_icon(
const Glib::RefPtr<Gdk::Pixbuf>& icon);
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);
142inline 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>();
The 'master' canvas widget which contains all other objects.
Definition: Canvas.hpp:61
An item on a Canvas.
Definition: Item.hpp:44
const std::string & name() const
Definition: Item.hpp:93
boost::weak_ptr< Canvas > canvas() const
Definition: Item.hpp:64
A named block (possibly) containing input and output ports.
Definition: Module.hpp:38
void set_border_width(double w)
void embed(Gtk::Container *widget)
bool show_port_labels(bool b)
Definition: Module.hpp:61
double _border_width
Definition: Module.hpp:111
bool _title_visible
Definition: Module.hpp:119
void remove_port(boost::shared_ptr< Port > port)
Gtk::Container * _embed_container
Definition: Module.hpp:108
virtual void set_width(double w)
double empty_port_depth() const
size_t num_ports() const
Definition: Module.hpp:82
void set_icon(const Glib::RefPtr< Gdk::Pixbuf > &icon)
bool _port_renamed
Definition: Module.hpp:120
virtual bool on_event(GdkEvent *ev)
Gnome::Canvas::Text _canvas_title
Definition: Module.hpp:105
Gnome::Canvas::Widget * _embed_item
Definition: Module.hpp:109
void set_default_base_color()
virtual void set_name(const std::string &n)
Gnome::Canvas::Rect * _stacked_border
Definition: Module.hpp:106
void set_show_port_labels(bool b)
virtual void set_height(double h)
virtual void move_to(double x, double y)
double empty_port_breadth() const
double _embed_height
Definition: Module.hpp:113
virtual void move(double dx, double dy)
void set_border_color(uint32_t c)
const PortVector & ports() const
Definition: Module.hpp:49
Gnome::Canvas::Rect _module_box
Definition: Module.hpp:104
double _embed_width
Definition: Module.hpp:112
void set_selected(bool b)
double _title_height
Definition: Module.hpp:118
void set_base_color(uint32_t c)
PortVector & ports()
Definition: Module.hpp:50
void set_highlighted(bool b)
void port_renamed()
Definition: Module.hpp:98
double _widest_output
Definition: Module.hpp:116
Gnome::Canvas::Pixbuf * _icon_box
Definition: Module.hpp:107
boost::shared_ptr< Port > port_at(double x, double y)
boost::shared_ptr< Port > get_port(const std::string &name) const
Find a port on this module.
Definition: Module.hpp:143
double _title_width
Definition: Module.hpp:117
void set_stacked_border(bool b)
PortVector _ports
Definition: Module.hpp:102
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 add_port(boost::shared_ptr< Port > port)
bool _show_port_labels
Definition: Module.hpp:121
double border_width() const
Definition: Module.hpp:69
double _widest_input
Definition: Module.hpp:115
double _icon_size
Definition: Module.hpp:114
FlowCanvas namespace, everything is defined under this.
Definition: Canvas.hpp:38
std::vector< boost::shared_ptr< Port > > PortVector
Definition: Port.hpp:172