Interactive Gtk canvas widget for graph-based interfaces