summaryrefslogtreecommitdiffstats
path: root/src/gui/PatchCanvas.hpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2008-10-07 01:44:48 +0000
committerDavid Robillard <d@drobilla.net>2008-10-07 01:44:48 +0000
commit7f82c616aef73dc96885db8d3c689350f1c85c19 (patch)
tree10ade36c19e49370a899f88dc651a2abbe267835 /src/gui/PatchCanvas.hpp
parent0e887626dcaf3414a11fe0ed021fd1945c32a274 (diff)
downloadingen-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.hpp16
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;*/