gui: accelerator infrastructure; 'c' shortcut for clearing xruns and load

This commit is contained in:
Nedko Arnaudov 2010-02-28 17:13:54 +02:00
parent 0d5a0067dd
commit e6881d679c
1 changed files with 30 additions and 0 deletions

View File

@ -1201,6 +1201,34 @@ void dbus_uninit(void)
}
}
void setup_accelerators(void)
{
static GtkActionGroup * action_group_ptr;
static GtkAccelGroup * accel_group_ptr;
struct
{
GtkAction * action_ptr;
const char * shortcut;
} * descriptor_ptr, descriptors [] =
{
{g_clear_xruns_and_max_dsp_action, "c"},
{NULL, NULL}
};
action_group_ptr = gtk_action_group_new("main");
accel_group_ptr = gtk_accel_group_new();
for (descriptor_ptr = descriptors; descriptor_ptr->action_ptr != NULL; descriptor_ptr++)
{
//log_info("action '%s' -> shortcut \"%s\"", gtk_action_get_name(descriptor_ptr->action_ptr), descriptor_ptr->shortcut);
gtk_action_group_add_action_with_accel(action_group_ptr, descriptor_ptr->action_ptr, descriptor_ptr->shortcut);
gtk_action_set_accel_group(descriptor_ptr->action_ptr, accel_group_ptr);
gtk_action_connect_accelerator(descriptor_ptr->action_ptr);
}
gtk_window_add_accel_group(GTK_WINDOW(g_main_win), accel_group_ptr);
}
int main(int argc, char** argv)
{
gtk_init(&argc, &argv);
@ -1287,6 +1315,8 @@ int main(int argc, char** argv)
world_tree_init();
view_init();
setup_accelerators();
dbus_init();
if (!jack_proxy_init(jack_started, jack_stopped, jack_appeared, jack_disappeared))