[gnome-terminal] window: Add template



commit 741d1c22392373cbd5ba28574944d70d872674ba
Author: Christian Persch <chpe gnome org>
Date:   Sun May 26 23:37:03 2013 +0200

    window: Add template
    
    Make TerminalWindow a templated widget. Minimal infrastructure only; nothing moved
    over yet.

 configure.ac               |    2 +-
 src/Makefile.am            |    1 +
 src/terminal-window.c      |   10 ++++++----
 src/terminal-window.ui     |   17 +++++++++++++++++
 src/terminal.gresource.xml |    1 +
 5 files changed, 26 insertions(+), 5 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 71b4bc6..f782b5c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -54,7 +54,7 @@ AC_MSG_RESULT([$with_gtk])
 
 case "$with_gtk" in
   3.0) GTK_API_VERSION=3.0
-       GTK_REQUIRED=3.6.0
+       GTK_REQUIRED=3.9.0
        VTE_PC_VERSION=-2.90
        VTE_REQUIRED=0.34.6
        ;;
diff --git a/src/Makefile.am b/src/Makefile.am
index 2368820..8490a69 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -317,6 +317,7 @@ EXTRA_DIST = \
        terminal.about \
        terminal.xml \
        terminal-appmenu.ui \
+       terminal-window.ui \
        terminal.gresource.xml \
        terminal-marshal.list \
        terminal-type-builtins.c.template \
diff --git a/src/terminal-window.c b/src/terminal-window.c
index c1ecd9f..9cce9cc 100644
--- a/src/terminal-window.c
+++ b/src/terminal-window.c
@@ -1749,6 +1749,8 @@ terminal_window_init (TerminalWindow *window)
 
   priv = window->priv = G_TYPE_INSTANCE_GET_PRIVATE (window, TERMINAL_TYPE_WINDOW, TerminalWindowPrivate);
 
+  gtk_widget_init_template (GTK_WIDGET (window));
+
   uuid_generate (u);
   uuid_unparse (u, uuidstr);
   priv->uuid = g_strdup (uuidstr);
@@ -1768,9 +1770,7 @@ terminal_window_init (TerminalWindow *window)
 
   priv->active_screen = NULL;
 
-  main_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
-  gtk_container_add (GTK_CONTAINER (window), main_vbox);
-  gtk_widget_show (main_vbox);
+  main_vbox = gtk_bin_get_child (GTK_BIN (window));
 
   priv->mdi_container = TERMINAL_MDI_CONTAINER (terminal_notebook_new ());
 
@@ -1905,7 +1905,7 @@ terminal_window_class_init (TerminalWindowClass *klass)
 {
   GObjectClass *object_class = G_OBJECT_CLASS (klass);
   GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
-  
+
   object_class->dispose = terminal_window_dispose;
   object_class->finalize = terminal_window_finalize;
 
@@ -1916,6 +1916,8 @@ terminal_window_class_init (TerminalWindowClass *klass)
   widget_class->style_updated = terminal_window_style_updated;
 
   g_type_class_add_private (object_class, sizeof (TerminalWindowPrivate));
+
+  gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/terminal/ui/window.ui");
 }
 
 static void
diff --git a/src/terminal-window.ui b/src/terminal-window.ui
new file mode 100644
index 0000000..041f9a7
--- /dev/null
+++ b/src/terminal-window.ui
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <!-- interface-requires gtk+ 3.10 -->
+  <template class="TerminalWindow" parent="GtkWindow">
+    <property name="can_focus">False</property>
+    <child>
+      <object class="GtkBox" id="main_vbox">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="orientation">vertical</property>
+        <child>
+          <placeholder/>
+        </child>
+      </object>
+    </child>
+  </template>
+</interface>
diff --git a/src/terminal.gresource.xml b/src/terminal.gresource.xml
index ba87a8b..ec07643 100644
--- a/src/terminal.gresource.xml
+++ b/src/terminal.gresource.xml
@@ -23,5 +23,6 @@
     <file alias="ui/find-dialog.ui" compressed="true" preprocess="xml-stripblanks">find-dialog.ui</file>
     <file alias="ui/preferences.ui" compressed="true" preprocess="xml-stripblanks">preferences.ui</file>
     <file alias="ui/profile-preferences.ui" compressed="true" 
preprocess="xml-stripblanks">profile-preferences.ui</file>
+    <file alias="ui/window.ui" compressed="true" preprocess="xml-stripblanks">terminal-window.ui</file>
   </gresource>
 </gresources>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]