[gnome-builder] editor: use gtk widget template for editor workspace.
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] editor: use gtk widget template for editor workspace.
- Date: Sat, 22 Nov 2014 12:53:56 +0000 (UTC)
commit e1e1ed1c2ecf518b370618fb86500ddf78283cf8
Author: Christian Hergert <christian hergert me>
Date: Sat Nov 22 04:53:09 2014 -0800
editor: use gtk widget template for editor workspace.
src/editor/gb-editor-workspace-private.h | 1 +
src/editor/gb-editor-workspace.c | 22 ++++++++++----------
src/resources/gnome-builder.gresource.xml | 1 +
src/resources/ui/gb-editor-workspace.ui | 30 +++++++++++++++++++++++++++++
4 files changed, 43 insertions(+), 11 deletions(-)
---
diff --git a/src/editor/gb-editor-workspace-private.h b/src/editor/gb-editor-workspace-private.h
index e159e5e..24cc6c3 100644
--- a/src/editor/gb-editor-workspace-private.h
+++ b/src/editor/gb-editor-workspace-private.h
@@ -32,6 +32,7 @@ struct _GbEditorWorkspacePrivate
GSimpleActionGroup *actions;
GHashTable *command_map;
GbMultiNotebook *multi_notebook;
+ GtkPaned *paned;
};
G_END_DECLS
diff --git a/src/editor/gb-editor-workspace.c b/src/editor/gb-editor-workspace.c
index 57dee44..eeaeed0 100644
--- a/src/editor/gb-editor-workspace.c
+++ b/src/editor/gb-editor-workspace.c
@@ -21,6 +21,8 @@
#include "gb-editor-commands.h"
#include "gb-editor-workspace.h"
#include "gb-editor-workspace-private.h"
+#include "gb-multi-notebook.h"
+#include "gb-tree.h"
enum {
PROP_0,
@@ -102,6 +104,14 @@ gb_editor_workspace_class_init (GbEditorWorkspaceClass *klass)
workspace_class->get_actions = gb_editor_workspace_get_actions;
widget_class->grab_focus = gb_editor_workspace_grab_focus;
+
+ gtk_widget_class_set_template_from_resource (widget_class,
+ "/org/gnome/builder/ui/gb-editor-workspace.ui");
+ gtk_widget_class_bind_template_child_private (widget_class, GbEditorWorkspace, multi_notebook);
+ gtk_widget_class_bind_template_child_private (widget_class, GbEditorWorkspace, paned);
+
+ g_type_ensure (GB_TYPE_MULTI_NOTEBOOK);
+ g_type_ensure (GB_TYPE_TREE);
}
static void
@@ -112,16 +122,6 @@ gb_editor_workspace_init (GbEditorWorkspace *workspace)
workspace->priv->actions = g_simple_action_group_new ();
workspace->priv->command_map = g_hash_table_new (g_str_hash, g_str_equal);
- /*
- * TODO: make this be done with GtkBuilder.
- */
- workspace->priv->multi_notebook =
- g_object_new (GB_TYPE_MULTI_NOTEBOOK,
- "visible", TRUE,
- "group-name", "GB_EDITOR_WORKSPACE",
- NULL);
- gtk_container_add (GTK_CONTAINER (workspace),
- GTK_WIDGET (workspace->priv->multi_notebook));
-
+ gtk_widget_init_template (GTK_WIDGET (workspace));
gb_editor_commands_init (workspace);
}
diff --git a/src/resources/gnome-builder.gresource.xml b/src/resources/gnome-builder.gresource.xml
index c5120f3..3f83c33 100644
--- a/src/resources/gnome-builder.gresource.xml
+++ b/src/resources/gnome-builder.gresource.xml
@@ -24,6 +24,7 @@
<file>ui/gb-devhelp-tab.ui</file>
<file>ui/gb-editor-settings-widget.ui</file>
<file>ui/gb-editor-tab.ui</file>
+ <file>ui/gb-editor-workspace.ui</file>
<file>ui/gb-preferences-window.ui</file>
<file>ui/gb-preferences-page-editor.ui</file>
<file>ui/gb-preferences-page-git.ui</file>
diff --git a/src/resources/ui/gb-editor-workspace.ui b/src/resources/ui/gb-editor-workspace.ui
new file mode 100644
index 0000000..26e4635
--- /dev/null
+++ b/src/resources/ui/gb-editor-workspace.ui
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <!-- interface-requires gtk+ 3.8 -->
+ <template class="GbEditorWorkspace" parent="GbWorkspace">
+ <child>
+ <object class="GtkPaned" id="paned">
+ <property name="visible">True</property>
+ <property name="orientation">horizontal</property>
+ <property name="position">250</property>
+ <child>
+ <object class="GtkScrolledWindow" id="scroller">
+ <property name="visible">False</property>
+ <child>
+ <object class="GbTree" id="tree">
+ <property name="headers-visible">False</property>
+ <property name="visible">True</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GbMultiNotebook" id="multi_notebook">
+ <property name="group-name">GB_EDITOR_WORKSPACE</property>
+ <property name="visible">True</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </template>
+</interface>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]