diff options
author | David Robillard <d@drobilla.net> | 2008-10-07 01:44:48 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2008-10-07 01:44:48 +0000 |
commit | 7f82c616aef73dc96885db8d3c689350f1c85c19 (patch) | |
tree | 10ade36c19e49370a899f88dc651a2abbe267835 /src/gui/PatchCanvas.hpp | |
parent | 0e887626dcaf3414a11fe0ed021fd1945c32a274 (diff) | |
download | ingen-7f82c616aef73dc96885db8d3c689350f1c85c19.tar.gz ingen-7f82c616aef73dc96885db8d3c689350f1c85c19.tar.bz2 ingen-7f82c616aef73dc96885db8d3c689350f1c85c19.zip |
Separate building skeleton plugin menu from adding plugins, and add plugins on the fly (fix invisible plugin menu on startup problem).
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@1628 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/gui/PatchCanvas.hpp')
-rw-r--r-- | src/gui/PatchCanvas.hpp | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/gui/PatchCanvas.hpp b/src/gui/PatchCanvas.hpp index 8885cb22..b1474495 100644 --- a/src/gui/PatchCanvas.hpp +++ b/src/gui/PatchCanvas.hpp @@ -97,13 +97,19 @@ private: void menu_load_plugin(); void menu_new_patch(); void menu_load_patch(); - void load_plugin(SharedPtr<PluginModel> plugin); + void load_plugin(WeakPtr<PluginModel> plugin); + + void build_menus(); void build_internal_menu(); + void build_classless_menu(); + #ifdef HAVE_SLV2 void build_plugin_menu(); - size_t build_plugin_class_menu(Gtk::Menu* menu, - SLV2PluginClass plugin_class, SLV2PluginClasses classes); + size_t build_plugin_class_menu( + Gtk::Menu* menu, + SLV2PluginClass plugin_class, + SLV2PluginClasses classes); #endif GraphObject::Variables get_initial_data(); @@ -125,11 +131,15 @@ private: int _last_click_x; int _last_click_y; + + typedef std::map<const std::string, Gtk::Menu*> ClassMenus; + ClassMenus _class_menus; bool _refresh_menu; bool _human_names; Gtk::Menu* _menu; Gtk::Menu* _internal_menu; + Gtk::Menu* _classless_menu; Gtk::Menu* _plugin_menu; /*Gtk::MenuItem* _menu_add_number_control; Gtk::MenuItem* _menu_add_button_control;*/ |