[gtranslator] Begin moving message table to GtkBuilder



commit 92ae114b25ccd1581f229cc50d803b85da451abf
Author: Seán de Búrca <leftmostcat gmail com>
Date:   Thu Sep 5 13:51:37 2013 -0600

    Begin moving message table to GtkBuilder

 src/Makefile.am               |    1 +
 src/gtr-message-table.c       |   29 +++++++++++++++--------------
 src/gtr-message-table.h       |    5 ++++-
 src/gtr-message-table.ui      |   33 +++++++++++++++++++++++++++++++++
 src/gtr-tab.c                 |    2 ++
 src/gtranslator.gresource.xml |    1 +
 6 files changed, 56 insertions(+), 15 deletions(-)
---
diff --git a/src/Makefile.am b/src/Makefile.am
index 91a3f41..566b3df 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -189,6 +189,7 @@ EXTRA_DIST = \
        gtr-header-dialog.ui \
        gtr-jump-dialog.ui \
        gtr-languages-fetcher.ui \
+       gtr-message-table.ui \
        gtr-notebook.ui \
        gtr-preferences-dialog.ui \
        gtr-profile-dialog.ui \
diff --git a/src/gtr-message-table.c b/src/gtr-message-table.c
index 752d28a..32f2f4c 100644
--- a/src/gtr-message-table.c
+++ b/src/gtr-message-table.c
@@ -155,7 +155,6 @@ model_compare_by_status (GtkTreeModel * model,
 static void
 gtr_message_table_init (GtrMessageTable * table)
 {
-  GtkWidget *scrolledwindow;
   GtkTreeViewColumn *column;
   GtkCellRenderer *renderer;
   GtkTreeSelection *selection;
@@ -167,9 +166,7 @@ gtr_message_table_init (GtrMessageTable * table)
 
   GtrMessageTablePrivate *priv = table->priv;
 
-  priv->treeview = gtk_tree_view_new ();
-
-  gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (priv->treeview), TRUE);
+  gtk_widget_init_template (GTK_WIDGET (table));
 
   renderer = gtk_cell_renderer_pixbuf_new ();
   column = gtk_tree_view_column_new_with_attributes (_("Status"),
@@ -231,13 +228,6 @@ gtr_message_table_init (GtrMessageTable * table)
 
   g_signal_connect (G_OBJECT (selection), "changed",
                     G_CALLBACK (gtr_message_table_selection_changed), table);
-
-  scrolledwindow = gtk_scrolled_window_new (NULL, NULL);
-  gtk_box_pack_start (GTK_BOX (table), scrolledwindow, TRUE, TRUE, 0);
-  gtk_widget_show (scrolledwindow);
-
-  gtk_container_add (GTK_CONTAINER (scrolledwindow), table->priv->treeview);
-  gtk_widget_show (table->priv->treeview);
 }
 
 static void
@@ -252,26 +242,31 @@ static void
 gtr_message_table_class_init (GtrMessageTableClass * klass)
 {
   GObjectClass *object_class = G_OBJECT_CLASS (klass);
+  GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
 
   g_type_class_add_private (klass, sizeof (GtrMessageTablePrivate));
 
   object_class->finalize = gtr_message_table_finalize;
+
+  gtk_widget_class_set_template_from_resource (widget_class,
+                                               "/org/gnome/gtranslator/ui/gtr-message-table.ui");
+
+  gtk_widget_class_bind_template_child_private (widget_class, GtrMessageTable, treeview);
 }
 
 /**
  * gtr_message_table_new:
- * @tab: a #GtrTab
  *
  * Creates a new #GtrMessageTable object.
  *
  * Returns: the newly created #GtrMessageTable
  */
 GtkWidget *
-gtr_message_table_new (GtkWidget * tab)
+gtr_message_table_new (void)
 {
   GtrMessageTable *obj =
     GTR_MESSAGE_TABLE (g_object_new (GTR_TYPE_MESSAGE_TABLE, NULL));
-  obj->priv->tab = GTR_TAB (tab);
+
   g_signal_connect (obj->priv->tab,
                     "showed-message", G_CALLBACK (showed_message_cb), obj);
   g_signal_connect (obj->priv->tab,
@@ -280,6 +275,12 @@ gtr_message_table_new (GtkWidget * tab)
   return GTK_WIDGET (obj);
 }
 
+void
+gtr_message_table_set_tab (GtrMessageTable *table, GtrTab *tab)
+{
+  table->priv->tab = tab;
+}
+
 /**
  * gtr_message_table_populate:
  * @table: a #GtrMessageTable
diff --git a/src/gtr-message-table.h b/src/gtr-message-table.h
index fca2191..9c01725 100644
--- a/src/gtr-message-table.h
+++ b/src/gtr-message-table.h
@@ -24,6 +24,7 @@
 
 #include "gtr-message-container.h"
 #include "gtr-msg.h"
+#include "gtr-tab.h"
 
 G_BEGIN_DECLS
 /*
@@ -78,7 +79,9 @@ gtr_message_table_get_type (void)
 
      GType gtr_message_table_register_type (GTypeModule * module);
 
-     GtkWidget *gtr_message_table_new (GtkWidget * tab);
+     GtkWidget *gtr_message_table_new (void);
+
+     void gtr_message_table_set_tab (GtrMessageTable *table, GtrTab *tab);
 
      void gtr_message_table_populate (GtrMessageTable * table,
                                       GtrMessageContainer * container);
diff --git a/src/gtr-message-table.ui b/src/gtr-message-table.ui
new file mode 100644
index 0000000..53a22ea
--- /dev/null
+++ b/src/gtr-message-table.ui
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.15.3 on Thu Sep  5 03:07:11 2013 -->
+<interface>
+  <!-- interface-requires gtk+ 3.10 -->
+  <template class="GtrMessageTable" parent="GtkBox">
+    <property name="visible">True</property>
+    <property name="can_focus">False</property>
+    <property name="orientation">vertical</property>
+    <child>
+      <object class="GtkScrolledWindow" id="scrolledwindow1">
+        <property name="visible">True</property>
+        <property name="can_focus">True</property>
+        <property name="shadow_type">in</property>
+        <child>
+          <object class="GtkTreeView" id="treeview">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="rules_hint">True</property>
+            <child internal-child="selection">
+              <object class="GtkTreeSelection" id="treeview-selection"/>
+            </child>
+          </object>
+        </child>
+      </object>
+      <packing>
+        <property name="expand">True</property>
+        <property name="fill">True</property>
+        <property name="position">0</property>
+      </packing>
+    </child>
+  </template>
+  <object class="GtkCellRendererPixbuf" id="cellrendererpixbuf1"/>
+</interface>
diff --git a/src/gtr-tab.c b/src/gtr-tab.c
index 3af7d76..4db0cfe 100644
--- a/src/gtr-tab.c
+++ b/src/gtr-tab.c
@@ -781,6 +781,8 @@ gtr_tab_new (GtrPo * po)
   /* Now we have to initialize the number of msgstr tabs */
   gtr_tab_add_msgstr_tabs (tab);
 
+  gtr_message_table_set_tab (GTR_MESSAGE_TABLE (tab->priv->message_table), tab);
+
   gtr_message_table_populate (GTR_MESSAGE_TABLE (tab->priv->message_table),
                               GTR_MESSAGE_CONTAINER (tab->priv->po));
 
diff --git a/src/gtranslator.gresource.xml b/src/gtranslator.gresource.xml
index 1db290e..b8bd4bc 100644
--- a/src/gtranslator.gresource.xml
+++ b/src/gtranslator.gresource.xml
@@ -6,6 +6,7 @@
   <file preprocess="xml-stripblanks">gtr-header-dialog.ui</file>
   <file preprocess="xml-stripblanks">gtr-jump-dialog.ui</file>
   <file preprocess="xml-stripblanks">gtr-languages-fetcher.ui</file>
+  <file preprocess="xml-stripblanks">gtr-message-table.ui</file>
   <file preprocess="xml-stripblanks">gtr-notebook.ui</file>
   <file preprocess="xml-stripblanks">gtr-preferences-dialog.ui</file>
   <file preprocess="xml-stripblanks">gtr-profile-dialog.ui</file>


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