From fbc1bb5aa1c5c5843d8d30554c781d2163ca933f Mon Sep 17 00:00:00 2001 From: Nedko Arnaudov Date: Sun, 7 Feb 2010 19:37:23 +0200 Subject: [PATCH] gladish: switch from libglade to GtkBuilder GTK 2.16 is required now. Warnings during conversion: [main_win:main_vbox:menubar:view_menu_item:view_menu:menu_item_view_arrange] Property 'Tooltip' of object class 'Widget' is only supported in libglade format [main_win:main_vbox:toolbar:toolitem28:alignment2:hbox4:buffer_size_combo] Property 'Tooltip' of object class 'Widget' is only supported in libglade format [main_win:main_vbox:toolbar:toolitem28:alignment2:hbox4:buffer_size_combo] Property 'Items' of object class 'Combo Box' is only supported in libglade format [main_win:main_vbox:toolbar:clear_load_button] Property 'Tooltip' of object class 'Widget' is only supported in libglade format [main_win:main_vbox:toolbar:toolitem30:alignment3:xrun_progress_bar] Property 'Tooltip' of object class 'Widget' is only supported in libglade format --- gui/ask_dialog.c | 6 +- gui/{gui.glade => gladish.ui} | 989 +++++++++++++++------------------ gui/graph_view.c | 6 +- gui/{glade.c => gtk_builder.c} | 44 +- gui/{glade.h => gtk_builder.h} | 16 +- gui/main.c | 92 +-- gui/world_tree.c | 20 +- wscript | 10 +- 8 files changed, 562 insertions(+), 621 deletions(-) rename gui/{gui.glade => gladish.ui} (61%) rename gui/{glade.c => gtk_builder.c} (62%) rename gui/{glade.h => gtk_builder.h} (68%) diff --git a/gui/ask_dialog.c b/gui/ask_dialog.c index 25bb0c98..be426af1 100644 --- a/gui/ask_dialog.c +++ b/gui/ask_dialog.c @@ -2,7 +2,7 @@ /* * LADI Session Handler (ladish) * - * Copyright (C) 2009 Nedko Arnaudov + * Copyright (C) 2009, 2010 Nedko Arnaudov * ************************************************************************** * This file contains the code that implements ask dialog @@ -26,7 +26,7 @@ #include #include "ask_dialog.h" -#include "glade.h" +#include "gtk_builder.h" bool ask_dialog( @@ -40,7 +40,7 @@ ask_dialog( gchar * msg; va_list ap; - dialog = get_glade_widget("ask_dialog"); + dialog = get_gtk_builder_widget("ask_dialog"); va_start(ap, secondary_text_format); msg = g_markup_vprintf_escaped(secondary_text_format, ap); diff --git a/gui/gui.glade b/gui/gladish.ui similarity index 61% rename from gui/gui.glade rename to gui/gladish.ui index c85a4fe0..53bb77f1 100644 --- a/gui/gui.glade +++ b/gui/gladish.ui @@ -1,452 +1,342 @@ - - - - - - 0 + + + + + LADI Session Handler 800 600 - + True - GTK_ORIENTATION_VERTICAL + vertical - + True - + True _Studio True - - + + - + + _New Studio... True - _New Studio... True - - - - True - gtk-new - 1 - - - + True + + - + + _Load Studio True - _Load Studio True + True - - - True - gtk-open - 1 - - - + - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - + - + + Start Studio True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Start Studio True - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - gtk-media-play - - - + True + + - + + Stop Studio True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Stop Studio True - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - gtk-media-stop - - - + True + + - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - + - + + _Rename Studio... True False - _Rename Studio... True - - - - True - gtk-edit - 1 - - - + True + + - + + _Save Studio True False - _Save Studio True - - - - True - gtk-save - 1 - - - + True + + - + + _Save Studio As... True False - _Save Studio As... True - - - - True - gtk-save - 1 - - - + True + + - + + _Unload Studio True False - _Unload Studio True - - - - True - gtk-close - 1 - - - + True + + - + + _Delete Studio True - _Delete Studio True + True - - - True - gtk-delete - 1 - - - + - + + _Create Room True False - _Create Room True - - - - True - gtk-add - 1 - - - + True + + - + True - + - - True + gtk-quit + True True True - + - + - + - + True _Room True - - + + - + + _Destroy Room True False - _Destroy Room True - - - - True - gtk-delete - 1 - - - + True + + - + + _Load Project... True False - _Load Project... True - - - - True - gtk-open - 1 - - - + True + + - + - + - + True _Application True - - + + True - + + Run... True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Run... True - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - gtk-execute - - - + True + + - + - + - + True _View True - - + + - + True _Toolbar True True + - - + - + + _Arrange True - Automatically organize canvas - _Arrange True + True + - - - - True - gtk-sort-ascending - 1 - - - + - + - + - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK _Tools True - - + + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - + + _Configure JACK True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - _Configure JACK True - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - gtk-preferences - - - + True + - + + Reactivate ladishd True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Reactivate ladishd True - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - gtk-refresh - - - + True + - + - + - + True _Help True - - + + - - True + gtk-about + True True True - + - + - + - + False False + 0 - + True - GTK_TOOLBAR_ICONS + icons False 4 True - + True False - + True 0 - + True - + True Latency: - + False False + 0 - + True False - JACK latency 1 - 32 frames -64 frames -128 frames -256 frames -512 frames -1024 frames -2048 frames -4096 frames - - - False - - - + 1 1 - + 48 - + False False @@ -455,189 +345,185 @@ - + 1 kHz - + False False 3 - + - + - + False - False - + True 8 - + False - False - + True False - Clear the dropout indicator gtk-clear - + False + True - + True - + True 0 - + True - Drouput (XRun) Indicator - -The bar represents the percentage of available time used for audio processing (i.e. the DSP load). If the bar reaches 100%, a dropout will occur. 0.10000000149 Stopped - + - + - + False - False - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - + False - False - + True 1 - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - GTK_RESIZE_QUEUE + queue - + 150 True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK No studio loaded True - + - + - + False - False - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - + False - False - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK gtk-zoom-100 - + False - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - gtk-zoom-fit - - - False - - - - - True - - - - - True - - - True - gtk-dialog-warning - - - - True - + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + gtk-zoom-fit + + + False + True + + + + + True + + + False + + + + + True + + + True + gtk-dialog-warning + + + + + False + True + + + False 1 - + True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 204 - + True - GTK_RESIZE_QUEUE + queue - + True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - True - + - + False True - + True True True @@ -645,40 +531,40 @@ The bar represents the percentage of available time used for audio processing (i True True True - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC - GTK_SHADOW_IN + automatic + automatic + in - + True True - + 2 - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 2 - + False 3 - + - - + + True - GDK_WINDOW_TYPE_HINT_NORMAL + normal main_win LADI Session Handler http://ladish.org/ @@ -697,418 +583,460 @@ along with LADI Session Handler; if not, write to the Free Software Foundation, 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - + - - + False - GTK_PACK_END + end + 0 - + - - + + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 5 Load project True - GTK_WIN_POS_CENTER_ON_PARENT - GDK_WINDOW_TYPE_HINT_DIALOG + center-on-parent + dialog main_win False - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 2 - + 400 400 True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC + automatic + automatic - + True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - True - + - + 1 - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - GTK_BUTTONBOX_END + end - + + gtk-cancel True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - gtk-cancel True - 1 - + + + False + False + 0 + - + + gtk-ok True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - gtk-ok True - 2 - + + False + False 1 - + False - GTK_PACK_END + end + 0 - + - - + + load_project_cancel_button + load_project_ok_button + + + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 5 Project properties True - GTK_WIN_POS_CENTER_ON_PARENT - GDK_WINDOW_TYPE_HINT_DIALOG + center-on-parent + dialog main_win False - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 2 - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 10 - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 - GTK_SHADOW_NONE + none - + True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - + - - + + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK <b>Project name</b> True - - - label_item - + - + False + 0 - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 - GTK_SHADOW_NONE + none - + True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - + - - + + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK <b>Description</b> True - - - label_item - + - + False 1 - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 - GTK_SHADOW_NONE + none - + True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC + automatic + automatic - + 300 200 True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - + - + - - + + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK <b>Notes</b> True - - - label_item - + - + 2 - + 1 - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - GTK_BUTTONBOX_END + end - + + gtk-cancel True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - gtk-cancel True - 1 - + + + False + False + 0 + - + + gtk-ok True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - gtk-ok True - 2 - + + False + False 1 - + False - GTK_PACK_END + end + 0 - + - - + + project_properties_cancel_button + project_properties_ok_button + + + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 5 Set name True - GTK_WIN_POS_CENTER_ON_PARENT - GDK_WINDOW_TYPE_HINT_DIALOG + center-on-parent + dialog main_win False - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 2 - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 10 - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 - GTK_SHADOW_NONE + none - + True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True - + - - + + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK <b>Name</b> True - - - label_item - + - + False + 0 - + 1 - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - GTK_BUTTONBOX_END + end - + + gtk-cancel True True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - gtk-cancel True - 1 - + + + False + False + 0 + - + + gtk-ok True True True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - gtk-ok True - 2 - + + False + False 1 - + False - GTK_PACK_END + end + 0 - + - - + + name_cancel_button + name_ok_button + + + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - + + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - + + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 5 False - GTK_WIN_POS_CENTER_ON_PARENT - GDK_WINDOW_TYPE_HINT_DIALOG + center-on-parent + dialog True main_win - GTK_MESSAGE_QUESTION - GTK_BUTTONS_YES_NO - - + question + yes-no + + + + + + False + end + 0 + + + + + + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 5 False - GTK_WIN_POS_CENTER_ON_PARENT - GDK_WINDOW_TYPE_HINT_DIALOG + center-on-parent + dialog True main_win - GTK_MESSAGE_ERROR - GTK_BUTTONS_CLOSE - - + error + close + + + + + + False + end + 0 + + + + + + 5 - GTK_WIN_POS_CENTER_ON_PARENT + center-on-parent 400 - GDK_WINDOW_TYPE_HINT_DIALOG + dialog main_win - + True - GTK_ORIENTATION_VERTICAL + vertical 2 - GTK_ORIENTATION_VERTICAL - + True 7 2 5 5 - + True 0 0 Command: - + GTK_FILL GTK_FILL - + True 0 Name: - + 1 2 @@ -1117,12 +1045,12 @@ along with LADI Session Handler; if not, write to the Free Software Foundation, - + True True - + True - + 1 2 @@ -1133,13 +1061,13 @@ along with LADI Session Handler; if not, write to the Free Software Foundation, - + + Run in Terminal True True - Run in Terminal - 0 + False True - + 2 2 @@ -1149,14 +1077,14 @@ along with LADI Session Handler; if not, write to the Free Software Foundation, - + + Level 0 True True - Level 0 - 0 + False True True - + 2 3 @@ -1166,16 +1094,15 @@ along with LADI Session Handler; if not, write to the Free Software Foundation, - - True - True - True + Level 1 - 0 + True + True + False True True app_level0 - + 2 4 @@ -1185,13 +1112,13 @@ along with LADI Session Handler; if not, write to the Free Software Foundation, - + True True True - + True - + 1 2 @@ -1199,16 +1126,16 @@ along with LADI Session Handler; if not, write to the Free Software Foundation, - + + Level 2 True False True - Level 2 - 0 + False True True app_level0 - + 2 5 @@ -1218,16 +1145,16 @@ along with LADI Session Handler; if not, write to the Free Software Foundation, - + + Level 3 True False True - Level 3 - 0 + False True True app_level0 - + 2 6 @@ -1236,55 +1163,59 @@ along with LADI Session Handler; if not, write to the Free Software Foundation, GTK_FILL - + 1 - + True - GTK_BUTTONBOX_END + end - + + gtk-cancel True True True True - gtk-cancel True - 1 - + False False + 0 - + + gtk-ok True True True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - gtk-ok True - 2 - + False False 1 - + False - GTK_PACK_END + end + 0 - + - - + + button1 + button2 + + + diff --git a/gui/graph_view.c b/gui/graph_view.c index 7d7dfecf..90bf2e83 100644 --- a/gui/graph_view.c +++ b/gui/graph_view.c @@ -2,7 +2,7 @@ /* * LADI Session Handler (ladish) * - * Copyright (C) 2009 Nedko Arnaudov + * Copyright (C) 2009, 2010 Nedko Arnaudov * ************************************************************************** * This file contains implementation of the graph view object @@ -26,7 +26,7 @@ #include "common.h" #include "graph_view.h" -#include "glade.h" +#include "gtk_builder.h" #include "world_tree.h" struct graph_view @@ -56,7 +56,7 @@ const char * g_view_lavel_text = void view_init(void) { - g_main_scrolledwin = GTK_SCROLLED_WINDOW(get_glade_widget("main_scrolledwin")); + g_main_scrolledwin = GTK_SCROLLED_WINDOW(get_gtk_builder_widget("main_scrolledwin")); INIT_LIST_HEAD(&g_views); g_view_label = gtk_label_new(g_view_lavel_text); diff --git a/gui/glade.c b/gui/gtk_builder.c similarity index 62% rename from gui/glade.c rename to gui/gtk_builder.c index ef024a92..53495100 100644 --- a/gui/glade.c +++ b/gui/gtk_builder.c @@ -2,10 +2,10 @@ /* * LADI Session Handler (ladish) * - * Copyright (C) 2009 Nedko Arnaudov + * Copyright (C) 2009, 2010 Nedko Arnaudov * ************************************************************************** - * This file contains the glade (gtk_builder) helpers + * This file contains the GtkBuilder helpers ************************************************************************** * * LADI Session Handler is free software; you can redistribute it and/or modify @@ -25,50 +25,66 @@ */ #include "common.h" -#include "glade.h" +#include "gtk_builder.h" #include #include #include -#include -GladeXML * g_glade; +GtkBuilder * g_builder; -bool init_glade(void) +bool init_gtk_builder(void) { const char * path; struct stat st; + GError * error_ptr; - path = "./gui/gui.glade"; + path = "./gui/gladish.ui"; if (stat(path, &st) == 0) { goto found; } - path = DATA_DIR "/gui.glade"; + path = DATA_DIR "/gladish.ui"; if (stat(path, &st) == 0) { goto found; } - log_error("Unable to find the gui.glade file"); - uninit_glade(); + log_error("Unable to find the gladish.ui file"); return false; found: log_info("Loading glade from %s", path); - g_glade = glade_xml_new(path, NULL, NULL); + + g_builder = gtk_builder_new(); + if (g_builder == NULL) + { + log_error("gtk_builder_new() failed."); + return false; + } + + error_ptr = NULL; + if (gtk_builder_add_from_file(g_builder, path, &error_ptr) == 0) + { + log_error("gtk_builder_add_from_file(\"%s\") failed: %s", path, error_ptr->message); + g_error_free(error_ptr); + g_object_unref(g_builder); + return false; + } + return true; } -void uninit_glade(void) +void uninit_gtk_builder(void) { + g_object_unref(g_builder); } -GtkWidget * get_glade_widget(const char * name) +GtkWidget * get_gtk_builder_widget(const char * name) { GtkWidget * ptr; - ptr = GTK_WIDGET(glade_xml_get_widget(g_glade, name)); + ptr = GTK_WIDGET(gtk_builder_get_object(g_builder, name)); if (ptr == NULL) { diff --git a/gui/glade.h b/gui/gtk_builder.h similarity index 68% rename from gui/glade.h rename to gui/gtk_builder.h index 82982933..f11e0a20 100644 --- a/gui/glade.h +++ b/gui/gtk_builder.h @@ -2,10 +2,10 @@ /* * LADI Session Handler (ladish) * - * Copyright (C) 2009 Nedko Arnaudov + * Copyright (C) 2009, 2010 Nedko Arnaudov * ************************************************************************** - * This file contains the interface to the glade (gtk_builder) helpers + * This file contains the interface to the GtkBuilder helpers ************************************************************************** * * LADI Session Handler is free software; you can redistribute it and/or modify @@ -24,11 +24,11 @@ * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. */ -#ifndef GLADE_H__E2BF7CFC_1B04_4160_9165_A1B433C6B3C2__INCLUDED -#define GLADE_H__E2BF7CFC_1B04_4160_9165_A1B433C6B3C2__INCLUDED +#ifndef GTK_BUILDER_H__E2BF7CFC_1B04_4160_9165_A1B433C6B3C2__INCLUDED +#define GTK_BUILDER_H__E2BF7CFC_1B04_4160_9165_A1B433C6B3C2__INCLUDED -bool init_glade(void); -void uninit_glade(void); -GtkWidget * get_glade_widget(const char * name); +bool init_gtk_builder(void); +void uninit_gtk_builder(void); +GtkWidget * get_gtk_builder_widget(const char * name); -#endif /* #ifndef GLADE_H__E2BF7CFC_1B04_4160_9165_A1B433C6B3C2__INCLUDED */ +#endif /* #ifndef GTK_BUILDER_H__E2BF7CFC_1B04_4160_9165_A1B433C6B3C2__INCLUDED */ diff --git a/gui/main.c b/gui/main.c index d8ad5b96..39245718 100644 --- a/gui/main.c +++ b/gui/main.c @@ -2,7 +2,7 @@ /* * LADI Session Handler (ladish) * - * Copyright (C) 2008, 2009 Nedko Arnaudov + * Copyright (C) 2008, 2009, 2010 Nedko Arnaudov * Copyright (C) 2007 Dave Robillard * ************************************************************************** @@ -37,7 +37,7 @@ #include #include -#include "glade.h" +#include "gtk_builder.h" #include "canvas.h" #include "graph_canvas.h" #include "../proxies/jack_proxy.h" @@ -149,7 +149,7 @@ static void set_buffer_size_combo_width(void) static void buffer_size_clear() { - gtk_entry_set_text(GTK_ENTRY(get_glade_widget("comboboxentry")), ""); + gtk_entry_set_text(GTK_ENTRY(get_gtk_builder_widget("comboboxentry")), ""); } static void buffer_size_set(uint32_t size) @@ -217,13 +217,13 @@ bool name_dialog(const char * title, const char * object, const char * old_name, { guint result; bool ok; - GtkEntry * entry = GTK_ENTRY(get_glade_widget("name_entry")); + GtkEntry * entry = GTK_ENTRY(get_gtk_builder_widget("name_entry")); gtk_window_set_title(GTK_WINDOW(g_app_dialog), title); gtk_widget_show(g_name_dialog); - gtk_label_set_text(GTK_LABEL(get_glade_widget("name_label")), object); + gtk_label_set_text(GTK_LABEL(get_gtk_builder_widget("name_label")), object); gtk_entry_set_text(entry, old_name); gtk_editable_select_region(GTK_EDITABLE(entry), 0, -1); @@ -247,7 +247,7 @@ bool name_dialog(const char * title, const char * object, const char * old_name, void error_message_box(const char * failed_operation) { GtkWidget * dialog; - dialog = get_glade_widget("error_dialog"); + dialog = get_gtk_builder_widget("error_dialog"); gtk_message_dialog_set_markup(GTK_MESSAGE_DIALOG(dialog), "Error"); gtk_message_dialog_format_secondary_markup(GTK_MESSAGE_DIALOG(dialog), "%s", failed_operation); gtk_widget_show(dialog); @@ -258,13 +258,13 @@ void error_message_box(const char * failed_operation) void run_custom_command_dialog(void) { guint result; - GtkEntry * command_entry = GTK_ENTRY(get_glade_widget("app_command_entry")); - GtkEntry * name_entry = GTK_ENTRY(get_glade_widget("app_name_entry")); - GtkToggleButton * terminal_button = GTK_TOGGLE_BUTTON(get_glade_widget("app_terminal_check_button")); - GtkToggleButton * level0_button = GTK_TOGGLE_BUTTON(get_glade_widget("app_level0")); - GtkToggleButton * level1_button = GTK_TOGGLE_BUTTON(get_glade_widget("app_level1")); - GtkToggleButton * level2_button = GTK_TOGGLE_BUTTON(get_glade_widget("app_level2")); - GtkToggleButton * level3_button = GTK_TOGGLE_BUTTON(get_glade_widget("app_level3")); + GtkEntry * command_entry = GTK_ENTRY(get_gtk_builder_widget("app_command_entry")); + GtkEntry * name_entry = GTK_ENTRY(get_gtk_builder_widget("app_name_entry")); + GtkToggleButton * terminal_button = GTK_TOGGLE_BUTTON(get_gtk_builder_widget("app_terminal_check_button")); + GtkToggleButton * level0_button = GTK_TOGGLE_BUTTON(get_gtk_builder_widget("app_level0")); + GtkToggleButton * level1_button = GTK_TOGGLE_BUTTON(get_gtk_builder_widget("app_level1")); + GtkToggleButton * level2_button = GTK_TOGGLE_BUTTON(get_gtk_builder_widget("app_level2")); + GtkToggleButton * level3_button = GTK_TOGGLE_BUTTON(get_gtk_builder_widget("app_level3")); uint8_t level; gtk_entry_set_text(name_entry, ""); @@ -364,7 +364,7 @@ static void jack_configure(GtkWidget * item) NULL, &error_ptr)) { - dialog = get_glade_widget("error_dialog"); + dialog = get_gtk_builder_widget("error_dialog"); gtk_message_dialog_set_markup(GTK_MESSAGE_DIALOG(dialog), "Error executing ladiconf.\nAre LADI Tools installed?"); gtk_message_dialog_format_secondary_markup(GTK_MESSAGE_DIALOG(dialog), "%s", error_ptr->message); gtk_widget_show(dialog); @@ -892,8 +892,8 @@ init_studio_list( void (* item_activate_callback)(GtkWidget * item)) { studio_list_ptr->count = 0; - studio_list_ptr->menu_item = get_glade_widget(menu_item); - studio_list_ptr->menu = get_glade_widget(menu); + studio_list_ptr->menu_item = get_gtk_builder_widget(menu_item); + studio_list_ptr->menu = get_gtk_builder_widget(menu); studio_list_ptr->item_activate_callback = item_activate_callback; gtk_menu_item_set_submenu(GTK_MENU_ITEM(studio_list_ptr->menu_item), studio_list_ptr->menu); g_signal_connect(G_OBJECT(studio_list_ptr->menu_item), "activate", G_CALLBACK(populate_studio_list_menu), studio_list_ptr); @@ -968,7 +968,7 @@ static void show_about(void) license = read_file_contents(DATA_DIR "/COPYING"); - dialog = get_glade_widget("about_win"); + dialog = get_gtk_builder_widget("about_win"); gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(dialog), PACKAGE_VERSION); if (pixbuf != NULL) @@ -1030,36 +1030,36 @@ int main(int argc, char** argv) return 1; } - if (!init_glade()) + if (!init_gtk_builder()) { return 1; } - g_main_win = get_glade_widget("main_win"); - g_clear_load_button = get_glade_widget("clear_load_button"); - g_xrun_progress_bar = get_glade_widget("xrun_progress_bar"); - g_buffer_size_combo = get_glade_widget("buffer_size_combo"); - g_menu_item_new_studio = get_glade_widget("menu_item_new_studio"); - g_menu_item_start_app = get_glade_widget("menu_item_start_app"); - g_menu_item_start_studio = get_glade_widget("menu_item_start_studio"); - g_menu_item_stop_studio = get_glade_widget("menu_item_stop_studio"); - g_menu_item_save_studio = get_glade_widget("menu_item_save_studio"); - g_menu_item_save_as_studio = get_glade_widget("menu_item_save_as_studio"); - g_menu_item_unload_studio = get_glade_widget("menu_item_unload_studio"); - g_menu_item_rename_studio = get_glade_widget("menu_item_rename_studio"); - g_menu_item_create_room = get_glade_widget("menu_item_create_room"); - g_menu_item_destroy_room = get_glade_widget("menu_item_destroy_room"); - g_menu_item_load_project = get_glade_widget("menu_item_load_project"); - 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_studio_status_label = get_glade_widget("studio_status_label"); - g_menu_item_view_toolbar = get_glade_widget("menu_item_view_toolbar"); - g_toolbar = get_glade_widget("toolbar"); - g_status_image = get_glade_widget("startstop"); - g_status_tool_item = get_glade_widget("startstop_item"); + g_main_win = get_gtk_builder_widget("main_win"); + g_clear_load_button = get_gtk_builder_widget("clear_load_button"); + g_xrun_progress_bar = get_gtk_builder_widget("xrun_progress_bar"); + g_buffer_size_combo = get_gtk_builder_widget("buffer_size_combo"); + g_menu_item_new_studio = get_gtk_builder_widget("menu_item_new_studio"); + g_menu_item_start_app = get_gtk_builder_widget("menu_item_start_app"); + g_menu_item_start_studio = get_gtk_builder_widget("menu_item_start_studio"); + g_menu_item_stop_studio = get_gtk_builder_widget("menu_item_stop_studio"); + g_menu_item_save_studio = get_gtk_builder_widget("menu_item_save_studio"); + g_menu_item_save_as_studio = get_gtk_builder_widget("menu_item_save_as_studio"); + g_menu_item_unload_studio = get_gtk_builder_widget("menu_item_unload_studio"); + g_menu_item_rename_studio = get_gtk_builder_widget("menu_item_rename_studio"); + g_menu_item_create_room = get_gtk_builder_widget("menu_item_create_room"); + g_menu_item_destroy_room = get_gtk_builder_widget("menu_item_destroy_room"); + g_menu_item_load_project = get_gtk_builder_widget("menu_item_load_project"); + g_menu_item_daemon_exit = get_gtk_builder_widget("menu_item_daemon_exit"); + g_menu_item_jack_configure = get_gtk_builder_widget("menu_item_jack_configure"); + g_studio_status_label = get_gtk_builder_widget("studio_status_label"); + g_menu_item_view_toolbar = get_gtk_builder_widget("menu_item_view_toolbar"); + g_toolbar = get_gtk_builder_widget("toolbar"); + g_status_image = get_gtk_builder_widget("startstop"); + g_status_tool_item = get_gtk_builder_widget("startstop_item"); - g_name_dialog = get_glade_widget("name_dialog"); - g_app_dialog = get_glade_widget("app_dialog"); + g_name_dialog = get_gtk_builder_widget("name_dialog"); + g_app_dialog = get_gtk_builder_widget("app_dialog"); init_studio_list(&g_load_studio_list, "menu_item_load_studio", "load_studio_menu", on_load_studio); init_studio_list(&g_delete_studio_list, "menu_item_delete_studio", "delete_studio_menu", on_delete_studio); @@ -1091,10 +1091,10 @@ int main(int argc, char** argv) set_buffer_size_combo_width(); g_signal_connect(G_OBJECT(g_main_win), "destroy", G_CALLBACK(gtk_main_quit), NULL); - g_signal_connect(G_OBJECT(get_glade_widget("menu_item_quit")), "activate", G_CALLBACK(gtk_main_quit), NULL); + g_signal_connect(G_OBJECT(get_gtk_builder_widget("menu_item_quit")), "activate", G_CALLBACK(gtk_main_quit), NULL); g_signal_connect(G_OBJECT(g_buffer_size_combo), "changed", G_CALLBACK(buffer_size_change_request), NULL); g_signal_connect(G_OBJECT(g_clear_load_button), "clicked", G_CALLBACK(clear_load), NULL); - g_signal_connect(G_OBJECT(get_glade_widget("menu_item_view_arrange")), "activate", G_CALLBACK(arrange), NULL); + g_signal_connect(G_OBJECT(get_gtk_builder_widget("menu_item_view_arrange")), "activate", G_CALLBACK(arrange), NULL); g_signal_connect(G_OBJECT(g_menu_item_view_toolbar), "activate", G_CALLBACK(toggle_toolbar), NULL); g_signal_connect(G_OBJECT(g_menu_item_new_studio), "activate", G_CALLBACK(new_studio), NULL); g_signal_connect(G_OBJECT(g_menu_item_start_studio), "activate", G_CALLBACK(start_studio), NULL); @@ -1105,7 +1105,7 @@ int main(int argc, char** argv) 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); - g_signal_connect(G_OBJECT(get_glade_widget("menu_item_help_about")), "activate", G_CALLBACK(show_about), NULL); + g_signal_connect(G_OBJECT(get_gtk_builder_widget("menu_item_help_about")), "activate", G_CALLBACK(show_about), NULL); g_signal_connect(G_OBJECT(g_menu_item_start_app), "activate", G_CALLBACK(start_app), NULL); gtk_widget_show(g_main_win); @@ -1117,7 +1117,7 @@ int main(int argc, char** argv) studio_proxy_uninit(); control_proxy_uninit(); dbus_uninit(); - uninit_glade(); + uninit_gtk_builder(); return 0; } diff --git a/gui/world_tree.c b/gui/world_tree.c index fad2effb..83d675f2 100644 --- a/gui/world_tree.c +++ b/gui/world_tree.c @@ -2,7 +2,7 @@ /* * LADI Session Handler (ladish) * - * Copyright (C) 2008, 2009 Nedko Arnaudov + * Copyright (C) 2008, 2009, 2010 Nedko Arnaudov * ************************************************************************** * This file contains implementation of the project_list class @@ -26,7 +26,7 @@ #include "common.h" #include "world_tree.h" -#include "glade.h" +#include "gtk_builder.h" #include "../catdup.h" enum entry_type @@ -208,13 +208,13 @@ void on_popup_menu_action_app_properties(GtkWidget * menuitem, gpointer userdata bool terminal; uint8_t level; guint result; - GtkEntry * command_entry = GTK_ENTRY(get_glade_widget("app_command_entry")); - GtkEntry * name_entry = GTK_ENTRY(get_glade_widget("app_name_entry")); - GtkToggleButton * terminal_button = GTK_TOGGLE_BUTTON(get_glade_widget("app_terminal_check_button")); - GtkToggleButton * level0_button = GTK_TOGGLE_BUTTON(get_glade_widget("app_level0")); - GtkToggleButton * level1_button = GTK_TOGGLE_BUTTON(get_glade_widget("app_level1")); - GtkToggleButton * level2_button = GTK_TOGGLE_BUTTON(get_glade_widget("app_level2")); - GtkToggleButton * level3_button = GTK_TOGGLE_BUTTON(get_glade_widget("app_level3")); + GtkEntry * command_entry = GTK_ENTRY(get_gtk_builder_widget("app_command_entry")); + GtkEntry * name_entry = GTK_ENTRY(get_gtk_builder_widget("app_name_entry")); + GtkToggleButton * terminal_button = GTK_TOGGLE_BUTTON(get_gtk_builder_widget("app_terminal_check_button")); + GtkToggleButton * level0_button = GTK_TOGGLE_BUTTON(get_gtk_builder_widget("app_level0")); + GtkToggleButton * level1_button = GTK_TOGGLE_BUTTON(get_gtk_builder_widget("app_level1")); + GtkToggleButton * level2_button = GTK_TOGGLE_BUTTON(get_gtk_builder_widget("app_level2")); + GtkToggleButton * level3_button = GTK_TOGGLE_BUTTON(get_gtk_builder_widget("app_level3")); if (!get_selected_app_id(&view, &id)) { @@ -423,7 +423,7 @@ void world_tree_init(void) GtkCellRenderer * renderer; GtkTreeSelection * selection; - g_world_tree_widget = get_glade_widget("world_tree"); + g_world_tree_widget = get_gtk_builder_widget("world_tree"); gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(g_world_tree_widget), FALSE); col = gtk_tree_view_column_new(); diff --git a/wscript b/wscript index f7e83bd3..b0ef23dd 100644 --- a/wscript +++ b/wscript @@ -109,17 +109,11 @@ def configure(conf): if build_gui and not conf.check_cfg( package = 'gtk+-2.0', mandatory = False, + atleast_version = '2.16.0', errmsg = "not installed, see http://www.gtk.org/", args = '--cflags --libs'): build_gui = False - if build_gui and not conf.check_cfg( - package = 'libglade-2.0', - mandatory = False, - errmsg = "not installed, see http://ftp.gnome.org/pub/GNOME/sources/libglade/", - args = '--cflags --libs'): - build_gui = False - if build_gui and not conf.check_cfg( package = 'flowcanvas', mandatory = False, @@ -309,7 +303,7 @@ def build(bld): #'session.cpp', 'canvas.cpp', 'graph_canvas.c', - 'glade.c', + 'gtk_builder.c', 'ask_dialog.c', ]: gladish.source.append(os.path.join("gui", source))