[SCM] calf/master: + GUI: use the same menu for built-in and user presets
js at users.alioth.debian.org
js at users.alioth.debian.org
Tue May 7 15:37:23 UTC 2013
The following commit has been merged in the master branch:
commit 2336dce5dd6aca855f1cb87615c788daba38f2ae
Author: kfoltman <kfoltman at 78b06b96-2940-0410-b7fc-879d825d01d8>
Date: Fri Jul 4 22:57:02 2008 +0000
+ GUI: use the same menu for built-in and user presets
git-svn-id: https://calf.svn.sourceforge.net/svnroot/calf/trunk@223 78b06b96-2940-0410-b7fc-879d825d01d8
diff --git a/src/calf/gui.h b/src/calf/gui.h
index c00849b..fb6a34d 100644
--- a/src/calf/gui.h
+++ b/src/calf/gui.h
@@ -279,9 +279,9 @@ public:
int source_id;
plugin_gui_window(main_window_iface *_main);
- std::string make_gui_preset_list(GtkActionGroup *grp, bool builtin);
+ std::string make_gui_preset_list(GtkActionGroup *grp, bool builtin, char &ch);
std::string make_gui_command_list(GtkActionGroup *grp);
- void fill_gui_presets(bool builtin);
+ void fill_gui_presets(bool builtin, char &ch);
void create(plugin_ctl_iface *_plugin, const char *title, const char *effect);
void close();
static gboolean on_idle(void *data);
diff --git a/src/gui.cpp b/src/gui.cpp
index 4aa56c5..f7a4b62 100644
--- a/src/gui.cpp
+++ b/src/gui.cpp
@@ -808,7 +808,7 @@ static const GtkActionEntry actions[] = {
{ "BuiltinPresetMenuAction", "", "_Built-in", NULL, "Built-in (factory) presets", NULL },
{ "UserPresetMenuAction", "", "_User", NULL, "User (your) presets", NULL },
{ "CommandMenuAction", "", "_Command", NULL, "Plugin-related commands", NULL },
- { "store-preset", "", "_Store preset", NULL, "Store a current setting as preset", (GCallback)store_preset_action },
+ { "store-preset", "", "Store preset", NULL, "Store a current setting as preset", (GCallback)store_preset_action },
};
/***************************** GUI window ********************************************/
@@ -819,12 +819,9 @@ static const char *ui_xml =
" <menu action=\"PresetMenuAction\">\n"
" <menuitem action=\"store-preset\"/>\n"
" <separator/>\n"
-" <menu action=\"BuiltinPresetMenuAction\">\n"
-" <placeholder name=\"builtin_presets\"/>\n"
-" </menu>\n"
-" <menu action=\"UserPresetMenuAction\">\n"
-" <placeholder name=\"user_presets\"/>\n"
-" </menu>\n"
+" <placeholder name=\"builtin_presets\"/>\n"
+" <separator/>\n"
+" <placeholder name=\"user_presets\"/>\n"
" </menu>\n"
" <placeholder name=\"commands\"/>\n"
" </menubar>\n"
@@ -837,16 +834,16 @@ static const char *general_preset_pre_xml =
" <menu action=\"PresetMenuAction\">\n";
static const char *builtin_preset_pre_xml =
-" <menu action=\"BuiltinPresetMenuAction\">\n"
+// " <menu action=\"BuiltinPresetMenuAction\">\n"
" <placeholder name=\"builtin_presets\">\n";
static const char *user_preset_pre_xml =
-" <menu action=\"UserPresetMenuAction\">\n"
+// " <menu action=\"UserPresetMenuAction\">\n"
" <placeholder name=\"user_presets\">\n";
static const char *preset_post_xml =
" </placeholder>\n"
-" </menu>\n"
+// " </menu>\n"
" </menu>\n"
" </menubar>\n"
"</ui>\n"
@@ -877,7 +874,7 @@ plugin_gui_window::plugin_gui_window(main_window_iface *_main)
assert(main);
}
-string plugin_gui_window::make_gui_preset_list(GtkActionGroup *grp, bool builtin)
+string plugin_gui_window::make_gui_preset_list(GtkActionGroup *grp, bool builtin, char &ch)
{
string preset_xml = string(general_preset_pre_xml) + (builtin ? builtin_preset_pre_xml : user_preset_pre_xml);
preset_vector &pvec = (builtin ? get_builtin_presets() : get_user_presets()).presets;
@@ -888,10 +885,15 @@ string plugin_gui_window::make_gui_preset_list(GtkActionGroup *grp, bool builtin
continue;
stringstream ss;
ss << (builtin ? "builtin_preset" : "user_preset") << i;
- preset_xml += " <menuitem name=\""+pvec[i].name+"\" action=\""+ss.str()+"\"/>\n";
+ preset_xml += " <menuitem name=\"" + pvec[i].name+"\" action=\""+ss.str()+"\"/>\n";
+ if (ch != ' ' && ++ch == ':')
+ ch = 'A';
+ if (ch > 'Z')
+ ch = ' ';
string sv = ss.str();
- GtkActionEntry ae = { sv.c_str(), NULL, pvec[i].name.c_str(), NULL, NULL, (GCallback)activate_preset };
+ string prefix = ch == ' ' ? string() : string("_")+ch+" ";
+ GtkActionEntry ae = { sv.c_str(), NULL, (prefix + pvec[i].name).c_str(), NULL, NULL, (GCallback)activate_preset };
gtk_action_group_add_actions_full(preset_actions, &ae, 1, (gpointer)new activate_preset_params(gui, i, builtin), action_destroy_notify);
}
preset_xml += preset_post_xml;
@@ -917,7 +919,7 @@ string plugin_gui_window::make_gui_command_list(GtkActionGroup *grp)
return command_xml;
}
-void plugin_gui_window::fill_gui_presets(bool builtin)
+void plugin_gui_window::fill_gui_presets(bool builtin, char &ch)
{
GtkActionGroup *&preset_actions = builtin ? builtin_preset_actions : user_preset_actions;
if(preset_actions) {
@@ -929,7 +931,7 @@ void plugin_gui_window::fill_gui_presets(bool builtin)
builtin_preset_actions = gtk_action_group_new("builtin_presets");
else
user_preset_actions = gtk_action_group_new("user_presets");
- string preset_xml = make_gui_preset_list(preset_actions, builtin);
+ string preset_xml = make_gui_preset_list(preset_actions, builtin, ch);
gtk_ui_manager_insert_action_group(ui_mgr, preset_actions, 0);
GError *error = NULL;
gtk_ui_manager_add_ui_from_string(ui_mgr, preset_xml.c_str(), -1, &error);
@@ -964,8 +966,9 @@ void plugin_gui_window::create(plugin_ctl_iface *_jh, const char *title, const c
command_actions = gtk_action_group_new("commands");
- fill_gui_presets(true);
- fill_gui_presets(false);
+ char ch = '0';
+ fill_gui_presets(true, ch);
+ fill_gui_presets(false, ch);
gtk_box_pack_start(GTK_BOX(vbox), gtk_ui_manager_get_widget(ui_mgr, "/ui/menubar"), false, false, 0);
diff --git a/src/main_win.cpp b/src/main_win.cpp
index 50f8e27..9b4902d 100644
--- a/src/main_win.cpp
+++ b/src/main_win.cpp
@@ -143,9 +143,9 @@ void main_window::refresh_all_presets(bool builtin_too)
for (std::map<plugin_ctl_iface *, plugin_strip *>::iterator i = plugins.begin(); i != plugins.end(); i++)
{
if (i->second && i->second->gui_win) {
- i->second->gui_win->fill_gui_presets(false);
- if (builtin_too)
- i->second->gui_win->fill_gui_presets(true);
+ char ch = '0';
+ i->second->gui_win->fill_gui_presets(true, ch);
+ i->second->gui_win->fill_gui_presets(false, ch);
}
}
}
--
calf audio plugins packaging
More information about the pkg-multimedia-commits
mailing list