[dconf] Use GtkBuilder
- From: Robert Ancell <rancell src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [dconf] Use GtkBuilder
- Date: Sat, 15 Jan 2011 06:20:24 +0000 (UTC)
commit c7809d6c5d12a7d409ac098f9a0a86acee89d94d
Author: Robert Ancell <robert ancell canonical com>
Date: Fri Jan 14 23:35:58 2011 -0600
Use GtkBuilder
autogen.sh | 1 +
configure.ac | 1 +
editor/Makefile.am | 7 ++-
editor/config.vapi | 7 +++
editor/dconf-editor.vala | 96 +++++++++++++--------------------------------
5 files changed, 42 insertions(+), 70 deletions(-)
---
diff --git a/autogen.sh b/autogen.sh
index e9eb405..aaf6544 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -17,6 +17,7 @@ fi
mkdir -p m4 aux
gtkdocize --docdir docs --flavour no-tmpl
aclocal${automake_suffix} ${ACLOCAL_FLAGS}
+autoheader
automake${automake_suffix} --add-missing --foreign
autoconf
diff --git a/configure.ac b/configure.ac
index ec9ec5b..da1af8d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -6,6 +6,7 @@ AC_INIT([dconf],
AC_CONFIG_SRCDIR([configure.ac])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_AUX_DIR([aux])
+AC_CONFIG_HEADERS([config.h])
AM_INIT_AUTOMAKE([1.11 -Wno-portability])
AM_SILENT_RULES([yes])
diff --git a/editor/Makefile.am b/editor/Makefile.am
index ecbd7e7..d6fb60f 100644
--- a/editor/Makefile.am
+++ b/editor/Makefile.am
@@ -1,11 +1,14 @@
bin_PROGRAMS = dconf-editor
-AM_CFLAGS = $(gtk_CFLAGS) $(libxml_CFLAGS) -I$(top_srcdir)/common -I$(top_srcdir)/client
+AM_CFLAGS = $(gtk_CFLAGS) $(libxml_CFLAGS) -I$(top_srcdir)/common -I$(top_srcdir)/client -DPKGDATADIR=\"@datadir@/dconf-editor\"
AM_VALAFLAGS = --vapidir ../client --pkg gtk+-3.0 --pkg libxml-2.0 --pkg dconf
CFLAGS += -Wno-error
dconf_editor_LDADD = ../client/libdconf.so.0 $(gtk_LIBS) $(gee_LIBS) $(libxml_LIBS)
-dconf_editor_SOURCES = dconf-editor.vala dconf-model.vala dconf-schema.vala dconf-view.vala
+dconf_editor_SOURCES = config.vapi dconf-editor.vala dconf-model.vala dconf-schema.vala dconf-view.vala
desktopdir = $(datadir)/applications
desktop_in_files = dconf-editor.desktop.in.in
desktop_DATA = $(desktop_in_files:.desktop.in.in=.desktop)
+
+uidir = $(datadir)/dconf-editor
+ui_DATA = dconf-editor.ui
diff --git a/editor/config.vapi b/editor/config.vapi
new file mode 100644
index 0000000..f697a31
--- /dev/null
+++ b/editor/config.vapi
@@ -0,0 +1,7 @@
+[CCode (cprefix = "", lower_case_cprefix = "", cheader_filename = "config.h")]
+namespace Config
+{
+ public const string PKGDATADIR;
+ public const string GETTEXT_PACKAGE;
+ public const string VERSION;
+}
diff --git a/editor/dconf-editor.vala b/editor/dconf-editor.vala
index 6b1f967..5a94320 100644
--- a/editor/dconf-editor.vala
+++ b/editor/dconf-editor.vala
@@ -1,7 +1,9 @@
-public class EditorWindow : Gtk.Window
+class ConfigurationEditor
{
- public SettingsModel model;
+ private SettingsModel model;
+ private Gtk.Builder ui;
+ private Gtk.Window window;
private Gtk.TreeView dir_tree_view;
private Gtk.TreeView key_tree_view;
private Gtk.Label schema_label;
@@ -10,80 +12,50 @@ public class EditorWindow : Gtk.Window
private Gtk.Label type_label;
private Gtk.Label default_label;
- public EditorWindow()
+ public ConfigurationEditor()
{
- set_title("Configuration Editor");
- set_default_size(600, 300);
- set_border_width(6);
-
- var hbox = new Gtk.HBox(false, 6);
- hbox.show();
- add(hbox);
-
model = new SettingsModel();
- var scroll = new Gtk.ScrolledWindow(null, null);
- scroll.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC);
- scroll.show();
- hbox.pack_start(scroll, false, false, 0);
+ ui = new Gtk.Builder();
+ try
+ {
+ ui.add_from_file(Path.build_filename(Config.PKGDATADIR, "dconf-editor.ui"));
+ }
+ catch (Error e)
+ {
+ critical("Failed to load UI: %s", e.message);
+ }
+ window = (Gtk.Window)ui.get_object("main_window");
+ window.destroy.connect(Gtk.main_quit);
dir_tree_view = new DConfDirView();
dir_tree_view.set_model(model);
dir_tree_view.get_selection().changed.connect(dir_selected_cb); // FIXME: Put in view
dir_tree_view.show();
+ var scroll = (Gtk.ScrolledWindow)ui.get_object("directory_scrolledwindow");
scroll.add(dir_tree_view);
- var vbox = new Gtk.VBox(false, 6);
- vbox.show();
- hbox.pack_start(vbox, true, true, 0);
-
- scroll = new Gtk.ScrolledWindow(null, null);
- scroll.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC);
- scroll.show();
- vbox.pack_start(scroll, true, true, 0);
-
key_tree_view = new DConfKeyView();
key_tree_view.show();
key_tree_view.get_selection().changed.connect(key_selected_cb);
+ scroll = (Gtk.ScrolledWindow)ui.get_object("key_scrolledwindow");
scroll.add(key_tree_view);
- var schema_table = new Gtk.Table(0, 2, false);
- schema_table.set_row_spacings(6);
- schema_table.set_col_spacings(6);
- schema_table.show();
- vbox.pack_start(schema_table, false, true, 0);
-
- schema_label = add_row(schema_table, 0, "Schema:");
- summary_label = add_row(schema_table, 1, "Summary:");
- description_label = add_row(schema_table, 2, "Description:");
- type_label = add_row(schema_table, 3, "Type:");
- default_label = add_row(schema_table, 4, "Default:");
+ schema_label = (Gtk.Label)ui.get_object("schema_label");
+ summary_label = (Gtk.Label)ui.get_object("summary_label");
+ description_label = (Gtk.Label)ui.get_object("description_label");
+ type_label = (Gtk.Label)ui.get_object("type_label");
+ default_label = (Gtk.Label)ui.get_object("default_label");
/* Always select something */
Gtk.TreeIter iter;
if (model.get_iter_first(out iter))
dir_tree_view.get_selection().select_iter(iter);
}
-
- private Gtk.Label add_row(Gtk.Table table, int row, string title)
+
+ public void show()
{
- var name_label = new Gtk.Label(title);
- name_label.set_alignment(0.0f, 0.0f);
- table.attach(name_label, 0, 1, row, row+1,
- Gtk.AttachOptions.FILL,
- Gtk.AttachOptions.SHRINK | Gtk.AttachOptions.FILL, 0, 0);
-
- var value_label = new Gtk.Label("");
- value_label.set_alignment(0.0f, 0.0f);
- value_label.wrap = true;
- table.attach(value_label, 1, 2, row, row+1,
- Gtk.AttachOptions.EXPAND | Gtk.AttachOptions.FILL,
- Gtk.AttachOptions.SHRINK | Gtk.AttachOptions.FILL, 0, 0);
-
- name_label.show();
- value_label.show();
-
- return value_label;
+ window.show();
}
private void dir_selected_cb()
@@ -160,25 +132,13 @@ public class EditorWindow : Gtk.Window
type_label.set_text(type);
default_label.set_text(default_value);
}
-}
-
-class ConfigurationEditor
-{
- private EditorWindow window;
-
- public ConfigurationEditor()
- {
- window = new EditorWindow();
- window.destroy.connect(Gtk.main_quit);
-
- window.show();
- }
public static int main(string[] args)
{
Gtk.init(ref args);
- new ConfigurationEditor();
+ var editor = new ConfigurationEditor();
+ editor.show ();
Gtk.main();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]