[SCM] calf/master: Add a somewhat provisional configuration dialog.
js at users.alioth.debian.org
js at users.alioth.debian.org
Tue May 7 15:40:21 UTC 2013
The following commit has been merged in the master branch:
commit feb4becf99cfb22a6f9ca9938187fdd51ecfb06c
Author: Krzysztof Foltman <wdev at foltman.com>
Date: Sat Sep 11 13:40:25 2010 +0100
Add a somewhat provisional configuration dialog.
diff --git a/calf-gui.xml b/calf-gui.xml
index 1aacabb..e829426 100644
--- a/calf-gui.xml
+++ b/calf-gui.xml
@@ -1,10 +1,11 @@
-<?xml version="1.0"?>
-<!--*- mode: xml -*-->
+<?xml version="1.0" encoding="UTF-8"?>
<interface>
+ <!-- interface-requires gtk+ 2.12 -->
+ <!-- interface-naming-policy toplevel-contextual -->
<object class="GtkDialog" id="store_preset">
<property name="visible">True</property>
<property name="title" translatable="yes">Store preset</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+ <property name="type_hint">dialog</property>
<child internal-child="vbox">
<object class="GtkVBox" id="dialog-vbox1">
<property name="visible">True</property>
@@ -23,16 +24,13 @@
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkComboBoxEntry" id="preset_name">
<property name="visible">True</property>
<property name="has_frame">False</property>
- <child internal-child="entry">
- <object class="GtkEntry" id="comboboxentry-entry1">
- </object>
- </child>
</object>
<packing>
<property name="padding">15</property>
@@ -48,26 +46,29 @@
<child internal-child="action_area">
<object class="GtkHButtonBox" id="dialog-action_area1">
<property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
+ <property name="layout_style">end</property>
<child>
<object class="GtkButton" id="cancelbutton1">
+ <property name="label">gtk-cancel</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="can_default">True</property>
- <property name="label">gtk-cancel</property>
+ <property name="receives_default">False</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="okbutton1">
+ <property name="label">gtk-ok</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="can_default">True</property>
- <property name="label">gtk-ok</property>
+ <property name="receives_default">False</property>
<property name="use_stock">True</property>
</object>
<packing>
@@ -80,7 +81,8 @@
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
- <property name="pack_type">GTK_PACK_END</property>
+ <property name="pack_type">end</property>
+ <property name="position">0</property>
</packing>
</child>
</object>
@@ -90,4 +92,128 @@
<action-widget response="-5">okbutton1</action-widget>
</action-widgets>
</object>
+ <object class="GtkDialog" id="preferences">
+ <property name="border_width">5</property>
+ <property name="title" translatable="yes">Calf Preferences</property>
+ <property name="window_position">center</property>
+ <property name="type_hint">dialog</property>
+ <property name="has_separator">False</property>
+ <child internal-child="vbox">
+ <object class="GtkVBox" id="dialog-vbox2">
+ <property name="visible">True</property>
+ <property name="spacing">2</property>
+ <child>
+ <object class="GtkTable" id="table1">
+ <property name="visible">True</property>
+ <property name="n_rows">3</property>
+ <property name="n_columns">2</property>
+ <child>
+ <object class="GtkCheckButton" id="show-rack-ears">
+ <property name="label" translatable="yes">Show rack ears</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="right_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="prefs_label_cols">
+ <property name="visible">False</property>
+ <property name="label" translatable="yes">Force columns</property>
+ </object>
+ <packing>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="prefs_label_rows">
+ <property name="visible">False</property>
+ <property name="label" translatable="yes">Force rows</property>
+ </object>
+ <packing>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="force-columns">
+ <property name="visible">False</property>
+ <property name="can_focus">True</property>
+ <property name="invisible_char">●</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="force-rows">
+ <property name="visible">False</property>
+ <property name="can_focus">True</property>
+ <property name="invisible_char">●</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child internal-child="action_area">
+ <object class="GtkHButtonBox" id="dialog-action_area2">
+ <property name="visible">True</property>
+ <property name="layout_style">end</property>
+ <child>
+ <object class="GtkButton" id="prefs_cancel">
+ <property name="label">gtk-cancel</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_stock">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="prefs_ok">
+ <property name="label">gtk-ok</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_stock">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="pack_type">end</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="-6">prefs_cancel</action-widget>
+ <action-widget response="-5">prefs_ok</action-widget>
+ </action-widgets>
+ </object>
</interface>
diff --git a/src/calf/main_win.h b/src/calf/main_win.h
index 31a185e..b2da016 100644
--- a/src/calf/main_win.h
+++ b/src/calf/main_win.h
@@ -94,6 +94,7 @@ namespace calf_plugins {
static void on_open_action(GtkWidget *widget, main_window *main);
static void on_save_action(GtkWidget *widget, main_window *main);
static void on_save_as_action(GtkWidget *widget, main_window *main);
+ static void on_preferences_action(GtkWidget *widget, main_window *main);
static void on_exit_action(GtkWidget *widget, main_window *main);
};
};
diff --git a/src/main_win.cpp b/src/main_win.cpp
index 3e3a354..971dc79 100644
--- a/src/main_win.cpp
+++ b/src/main_win.cpp
@@ -44,6 +44,8 @@ static const char *ui_xml =
" <menuitem action=\"FileSave\"/>\n"
" <menuitem action=\"FileSaveAs\"/>\n"
" <separator/>\n"
+" <menuitem action=\"Preferences\"/>\n"
+" <separator/>\n"
" <menuitem action=\"FileQuit\"/>\n"
" </menu>\n"
" <menu action=\"AddPluginMenuAction\" />\n"
@@ -58,6 +60,7 @@ const GtkActionEntry main_window::actions[] = {
{ "FileSaveAs", GTK_STOCK_SAVE_AS, "Save _as...", NULL, "Save a rack file as", (GCallback)on_save_as_action },
{ "HostMenuAction", NULL, "_Host", NULL, "Host-related operations", NULL },
{ "AddPluginMenuAction", NULL, "_Add plugin", NULL, "Add a plugin to the rack", NULL },
+ { "Preferences", GTK_STOCK_PREFERENCES, "_Preferences...", NULL, "Adjust preferences", (GCallback)on_preferences_action },
{ "FileQuit", GTK_STOCK_QUIT, "_Quit", "<Ctrl>Q", "Exit application", (GCallback)on_exit_action },
};
@@ -76,6 +79,36 @@ void main_window::on_save_as_action(GtkWidget *widget, main_window *main)
main->save_file_as();
}
+void main_window::on_preferences_action(GtkWidget *widget, main_window *main)
+{
+ GtkBuilder *prefs_builder = gtk_builder_new();
+ GError *error = NULL;
+ const gchar *objects[] = { "preferences", NULL };
+ if (!gtk_builder_add_objects_from_file(prefs_builder, PKGLIBDIR "/calf-gui.xml", (gchar **)objects, &error))
+ {
+ g_warning("Cannot load preferences dialog: %s", error->message);
+ g_error_free(error);
+ g_object_unref(G_OBJECT(prefs_builder));
+ return;
+ }
+ GtkWidget *preferences_dlg = GTK_WIDGET(gtk_builder_get_object(prefs_builder, "preferences"));
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(prefs_builder, "show-rack-ears")), main->get_config()->rack_ears);
+ gtk_spin_button_set_range(GTK_SPIN_BUTTON(gtk_builder_get_object(prefs_builder, "force-columns")), 0, 3);
+ gtk_spin_button_set_range(GTK_SPIN_BUTTON(gtk_builder_get_object(prefs_builder, "force-rows")), 0, 3);
+ gtk_spin_button_set_value(GTK_SPIN_BUTTON(gtk_builder_get_object(prefs_builder, "force-columns")), main->get_config()->cols);
+ gtk_spin_button_set_value(GTK_SPIN_BUTTON(gtk_builder_get_object(prefs_builder, "force-rows")), main->get_config()->rows);
+ int response = gtk_dialog_run(GTK_DIALOG(preferences_dlg));
+ if (response == GTK_RESPONSE_OK)
+ {
+ main->get_config()->rack_ears = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(prefs_builder, "show-rack-ears")));
+ main->get_config()->cols = gtk_spin_button_get_value(GTK_SPIN_BUTTON(gtk_builder_get_object(prefs_builder, "force-columns")));
+ main->get_config()->rows = gtk_spin_button_get_value(GTK_SPIN_BUTTON(gtk_builder_get_object(prefs_builder, "force-rows")));
+ main->get_config()->save(main->get_config_db());
+ }
+ gtk_widget_destroy(preferences_dlg);
+ g_object_unref(G_OBJECT(prefs_builder));
+}
+
void main_window::on_exit_action(GtkWidget *widget, main_window *main)
{
gtk_widget_destroy(GTK_WIDGET(main->toplevel));
diff --git a/src/preset_gui.cpp b/src/preset_gui.cpp
index 9f0d577..2c2cc13 100644
--- a/src/preset_gui.cpp
+++ b/src/preset_gui.cpp
@@ -52,8 +52,12 @@ void gui_preset_access::store_preset()
return;
}
GtkBuilder *store_preset_builder = gtk_builder_new();
- if (!gtk_builder_add_from_file(store_preset_builder, PKGLIBDIR "/calf-gui.xml", NULL))
+ const gchar *objects[] = { "store_preset", NULL };
+ GError *error = NULL;
+ if (!gtk_builder_add_objects_from_file(store_preset_builder, PKGLIBDIR "/calf-gui.xml", (gchar **)objects, &error))
{
+ g_warning("Cannot load preset GUI dialog: %s", error->message);
+ g_error_free(error);
g_object_unref(G_OBJECT(store_preset_builder));
return;
}
--
calf audio plugins packaging
More information about the pkg-multimedia-commits
mailing list