[gnome-maps/wip/gtk-builder: 4/4] MainWindow: use more GtkBuilder



commit 8775772c0c5c16da1b512807bd7d80a5d5e48b75
Author: Mattias Bengtsson <mattias jc bengtsson gmail com>
Date:   Tue Jun 25 03:10:56 2013 +0200

    MainWindow: use more GtkBuilder
    
    Move the appwindow into the ui-file and load it with Utils.getUIObject.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=702657

 src/main-window.ui |   79 +++++++++++++++++++++++++++++-----------------------
 src/mainWindow.js  |   26 ++++++-----------
 2 files changed, 53 insertions(+), 52 deletions(-)
---
diff --git a/src/main-window.ui b/src/main-window.ui
index 2e4b4d3..b5082ed 100644
--- a/src/main-window.ui
+++ b/src/main-window.ui
@@ -15,42 +15,51 @@
       </item>
     </section>
   </menu>
-  <object class="GtkGrid" id="window-content">
-    <property name="visible">True</property>
-    <property name="orientation">vertical</property>
+  <object class="GtkApplicationWindow" id="app-window">
+    <property name="width_request">600</property>
+    <property name="height_request">500</property>
+    <property name="window_position">center</property>
+    <property name="hide_titlebar_when_maximized">True</property>
+    <property name="title" translatable="yes">Maps</property>
     <child>
-      <object class="GdHeaderBar" id="header-bar">
+         <object class="GtkGrid" id="window-content">
         <property name="visible">True</property>
-        <property name="can_focus">False</property>
-        <child type="title">
-          <object class="GdTaggedEntry" id="search-entry">
-            <property name="visible">True</property>
-            <property name="width_request">500</property>
-          </object>
-        </child>
-        <child>
-          <object class="GdHeaderToggleButton" id="track-user-button">
-            <property name="visible">True</property>
-            <property name="can_focus">True</property>
-            <property name="symbolic-icon-name">find-location-symbolic</property>
-          </object>
-          <packing>
-            <property name="pack_type">start</property>
-          </packing>
-        </child>
-        <child>
-          <object class="GdHeaderMenuButton" id="layer-menu-button">
-            <property name="visible">True</property>
-            <property name="can_focus">True</property>
-            <property name="symbolic-icon-name">emblem-system-symbolic</property>
-            <property name="menu-model">map-type-menu</property>
-            <property name="action_name">win.map-type-menu</property>
-          </object>
-          <packing>
-            <property name="pack_type">end</property>
-          </packing>
-        </child>
-      </object>
-    </child>
+       <property name="orientation">vertical</property>
+               <child>
+                 <object class="GdHeaderBar" id="header-bar">
+                       <property name="visible">True</property>
+                       <property name="can_focus">False</property>
+                       <child type="title">
+                         <object class="GdTaggedEntry" id="search-entry">
+                               <property name="visible">True</property>
+                               <property name="width_request">500</property>
+                         </object>
+                       </child>
+                       <child>
+                         <object class="GdHeaderToggleButton" id="track-user-button">
+                               <property name="visible">True</property>
+                               <property name="can_focus">True</property>
+                               <property name="symbolic-icon-name">find-location-symbolic</property>
+                         </object>
+                         <packing>
+                               <property name="pack_type">start</property>
+                         </packing>
+                       </child>
+                       <child>
+                         <object class="GdHeaderMenuButton" id="layer-menu-button">
+                               <property name="visible">True</property>
+                               <property name="can_focus">True</property>
+                               <property name="symbolic-icon-name">emblem-system-symbolic</property>
+                               <property name="menu-model">map-type-menu</property>
+                               <property name="action_name">win.map-type-menu</property>
+                         </object>
+                         <packing>
+                               <property name="pack_type">end</property>
+                         </packing>
+                       </child>
+                 </object>
+               </child>
+         </object>
+       </child>
   </object>
 </interface>
diff --git a/src/mainWindow.js b/src/mainWindow.js
index d52057f..b7100c4 100644
--- a/src/mainWindow.js
+++ b/src/mainWindow.js
@@ -46,13 +46,15 @@ const MainWindow = new Lang.Class({
 
     _init: function(app) {
         this._configureId = 0;
-
-        this.window = new Gtk.ApplicationWindow({ application: app,
-                                                  width_request: _WINDOW_MIN_WIDTH,
-                                                  height_request: _WINDOW_MIN_HEIGHT,
-                                                  window_position: Gtk.WindowPosition.CENTER,
-                                                  hide_titlebar_when_maximized: true,
-                                                  title: _("Maps") });
+        let ui = Utils.getUIObject('main-window', [ 'app-window',
+                                                    'window-content',
+                                                    'search-entry',
+                                                    'track-user-button']),
+            grid = ui.windowContent,
+            toggle = ui.trackUserButton;
+        this._searchEntry = ui.searchEntry;
+        this.window = ui.appWindow;
+        this.window.application = app;
 
         Utils.initActions(this.window, [
             { 
@@ -103,22 +105,12 @@ const MainWindow = new Lang.Class({
         this.window.connect('window-state-event',
                             Lang.bind(this, this._onWindowStateEvent));
 
-        let builder = new Gtk.Builder();
-        builder.add_from_resource('/org/gnome/maps/main-window.ui');
-
-        let grid = builder.get_object('window-content');
-        grid.set_orientation (Gtk.Orientation.VERTICAL);
-        this.window.add(grid);
-
-        this._searchEntry = builder.get_object('search-entry');
         this._searchEntry.connect('activate', Lang.bind(this, this._onSearchActivate));
 
         this.mapView = new MapView.MapView();
 
         let trackUserLocation = Application.settings.get_boolean('track-user-location');
 
-        let toggle = builder.get_object('track-user-button');
-
         let onViewMoved = Lang.bind(this,
             function () {
                 if (!this.mapView.userLocationVisible())


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