[gnome-weather/gnome-3-8] Use a .ui file for new "new location" dialog



commit 661e2e5e5c997c4e3fdeedc6f84371e006ecd3d0
Author: Paolo Borelli <pborelli gnome org>
Date:   Mon Mar 11 21:30:39 2013 +0100

    Use a .ui file for new "new location" dialog
    
    Also rework the dialog slightly (a proper label, larger entry etc).
    
    https://bugzilla.gnome.org/show_bug.cgi?id=695457

 data/gnome-weather.gresource.xml |    1 +
 data/new-location-dialog.ui      |   26 ++++++++++++++++++++++++++
 src/window.js                    |   17 +++++++++++++++--
 3 files changed, 42 insertions(+), 2 deletions(-)
---
diff --git a/data/gnome-weather.gresource.xml b/data/gnome-weather.gresource.xml
index 1a64e59..61f405e 100644
--- a/data/gnome-weather.gresource.xml
+++ b/data/gnome-weather.gresource.xml
@@ -3,6 +3,7 @@
   <gresource prefix="/org/gnome/weather">
     <file preprocess="xml-stripblanks">app-menu.ui</file>
     <file preprocess="xml-stripblanks">window.ui</file>
+    <file preprocess="xml-stripblanks">new-location-dialog.ui</file>
     <file>application.css</file>
     <file>weather-clear.jpg</file>
     <file>weather-clear-night.jpg</file>
diff --git a/data/new-location-dialog.ui b/data/new-location-dialog.ui
new file mode 100644
index 0000000..e2a4ea2
--- /dev/null
+++ b/data/new-location-dialog.ui
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <!-- interface-requires gtk+ 3.0 -->
+  <object class="GtkGrid" id="location-dialog-content">
+    <property name="visible">True</property>
+    <property name="can_focus">False</property>
+    <property name="halign">center</property>
+    <property name="valign">center</property>
+    <property name="border_width">5</property>
+    <property name="row_spacing">6</property>
+    <child>
+      <object class="GtkLabel" id="label2">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="xalign">0</property>
+        <property name="label" translatable="yes">Search for a city:</property>
+      </object>
+      <packing>
+        <property name="left_attach">0</property>
+        <property name="top_attach">0</property>
+        <property name="width">1</property>
+        <property name="height">1</property>
+      </packing>
+    </child>
+  </object>
+</interface>
diff --git a/src/window.js b/src/window.js
index 1f8aabd..dcfc366 100644
--- a/src/window.js
+++ b/src/window.js
@@ -264,10 +264,23 @@ const MainWindow = new Lang.Class({
         let dialog = new Gtk.Dialog({ title: _("New Location"),
                                       transient_for: this.get_toplevel(),
                                       modal: true });
+
+        let builder = new Gtk.Builder();
+        builder.add_from_resource('/org/gnome/weather/new-location-dialog.ui');
+
+        let grid = builder.get_object('location-dialog-content');
+
+        let find_icon = Gio.ThemedIcon.new_with_default_fallbacks("edit-find-symbolic");
         let entry = new GWeather.LocationEntry({ top: this._world });
+        entry.set_size_request(400, -1);
+        entry.set_icon_from_gicon(Gtk.EntryIconPosition.SECONDARY, find_icon);
+        entry.set_activates_default(true);
+
+        grid.attach(entry, 0, 1, 1, 1);
+        dialog.get_content_area().add(grid);
 
-        dialog.get_content_area().add(entry);
-        dialog.add_button('gtk-add', Gtk.ResponseType.OK);
+        dialog.add_button(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL);
+        dialog.add_button(Gtk.STOCK_ADD, Gtk.ResponseType.OK);
 
         dialog.connect('response', Lang.bind(this, function(dialog, response) {
             dialog.destroy();


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