From 2aa1cf33b26c76b024913d1994066c627075bbbd Mon Sep 17 00:00:00 2001 From: David Robillard Date: Tue, 7 Jan 2014 04:53:47 +0000 Subject: Factor out plugin menu code into a separate class. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5297 a436a847-0d15-0410-975c-d299462d15a1 --- src/gui/GraphCanvas.hpp | 32 ++++++-------------------------- 1 file changed, 6 insertions(+), 26 deletions(-) (limited to 'src/gui/GraphCanvas.hpp') diff --git a/src/gui/GraphCanvas.hpp b/src/gui/GraphCanvas.hpp index 6592106b..47d267d2 100644 --- a/src/gui/GraphCanvas.hpp +++ b/src/gui/GraphCanvas.hpp @@ -39,6 +39,7 @@ namespace Client { class GraphModel; } namespace GUI { class NodeModule; +class PluginMenu; /** Graph canvas widget. * @@ -86,9 +87,10 @@ private: const std::string& sym_base, std::string& sym, const std::string& name_base, std::string& name); - void menu_add_port( - const std::string& sym_base, const std::string& name_base, - const Raul::URI& type, bool is_output); + void menu_add_port(const std::string& sym_base, + const std::string& name_base, + const Raul::URI& type, + bool is_output); void menu_load_plugin(); void menu_new_graph(); @@ -98,21 +100,10 @@ private: void build_menus(); - void build_internal_menu(); - void build_classless_menu(); - void add_plugin_to_menu(Gtk::Menu* menu, SPtr p); - void auto_menu_position(int& x, int& y, bool& push_in); typedef std::multimap LV2Children; - void build_plugin_menu(); - size_t build_plugin_class_menu(Gtk::Menu* menu, - const LilvPluginClass* plugin_class, - const LilvPluginClasses* classes, - const LV2Children& children, - std::set& ancestors); - Node::Properties get_initial_data(Resource::Graph ctx=Resource::Graph::DEFAULT); Ganv::Port* get_port_view(SPtr port); @@ -139,20 +130,9 @@ private: // Track pasted objects so they can be selected when they arrive std::set _pastees; - struct MenuRecord { - MenuRecord(Gtk::MenuItem* i, Gtk::Menu* m) : item(i), menu(m) {} - Gtk::MenuItem* item; - Gtk::Menu* menu; - }; - - typedef std::multimap ClassMenus; - - ClassMenus _class_menus; - Gtk::Menu* _menu; Gtk::Menu* _internal_menu; - Gtk::Menu* _classless_menu; - Gtk::Menu* _plugin_menu; + PluginMenu* _plugin_menu; Gtk::MenuItem* _menu_add_audio_input; Gtk::MenuItem* _menu_add_audio_output; Gtk::MenuItem* _menu_add_control_input; -- cgit v1.2.1