gladish: Menu entry for JACK configuration (starts ladiconf)

This commit is contained in:
Nedko Arnaudov 2009-08-31 23:23:07 +03:00
parent 090d8e30e7
commit c9c349ae8c
2 changed files with 61 additions and 0 deletions

View File

@ -302,6 +302,35 @@
</child>
</widget>
</child>
<child>
<widget class="GtkMenuItem" id="tools_menu_item">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">_Tools</property>
<property name="use_underline">True</property>
<child>
<widget class="GtkMenu" id="menu1">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<child>
<widget class="GtkImageMenuItem" id="menu_item_jack_configure">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">_Configure JACK</property>
<property name="use_underline">True</property>
<child internal-child="image">
<widget class="GtkImage" id="menu-item-image17">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="stock">gtk-preferences</property>
</widget>
</child>
</widget>
</child>
</widget>
</child>
</widget>
</child>
<child>
<widget class="GtkMenuItem" id="help_menu_item">
<property name="visible">True</property>

View File

@ -59,6 +59,7 @@ GtkWidget * g_menu_item_destroy_room;
GtkWidget * g_menu_item_load_project;
GtkWidget * g_menu_item_start_app;
GtkWidget * g_menu_item_daemon_exit;
GtkWidget * g_menu_item_jack_configure;
GtkWidget * g_name_dialog;
@ -243,6 +244,35 @@ static void daemon_exit(GtkWidget * item)
}
}
static void jack_configure(GtkWidget * item)
{
GError * error_ptr;
gchar * argv[] = {"ladiconf", NULL};
GtkWidget * dialog;
lash_info("JACK configure request");
error_ptr = NULL;
if (!g_spawn_async(
NULL, /* working directory */
argv,
NULL, /* envp */
G_SPAWN_SEARCH_PATH, /* flags */
NULL, /* child_setup callback */
NULL, /* user_data */
NULL,
&error_ptr))
{
dialog = get_glade_widget("error_dialog");
gtk_message_dialog_set_markup(GTK_MESSAGE_DIALOG(dialog), "<b><big>Error executing ladiconf.\nAre LADI Tools installed?</big></b>");
gtk_message_dialog_format_secondary_markup(GTK_MESSAGE_DIALOG(dialog), "%s", error_ptr->message);
gtk_widget_show(dialog);
gtk_dialog_run(GTK_DIALOG(dialog));
gtk_widget_hide(dialog);
g_error_free(error_ptr);
}
}
static void on_load_studio(GtkWidget * item)
{
const char * studio_name;
@ -580,6 +610,7 @@ int main(int argc, char** argv)
g_menu_item_load_project = get_glade_widget("menu_item_load_project");
g_menu_item_start_app = get_glade_widget("menu_item_start_app");
g_menu_item_daemon_exit = get_glade_widget("menu_item_daemon_exit");
g_menu_item_jack_configure = get_glade_widget("menu_item_jack_configure");
g_name_dialog = get_glade_widget("name_dialog");
@ -622,6 +653,7 @@ int main(int argc, char** argv)
g_signal_connect(G_OBJECT(g_menu_item_save_studio), "activate", G_CALLBACK(save_studio), NULL);
g_signal_connect(G_OBJECT(g_menu_item_rename_studio), "activate", G_CALLBACK(rename_studio), NULL);
g_signal_connect(G_OBJECT(g_menu_item_daemon_exit), "activate", G_CALLBACK(daemon_exit), NULL);
g_signal_connect(G_OBJECT(g_menu_item_jack_configure), "activate", G_CALLBACK(jack_configure), NULL);
gtk_widget_show(g_main_win);