gnome-panel r11189 - trunk/applets/clock



Author: danw
Date: Mon Aug  4 18:29:34 2008
New Revision: 11189
URL: http://svn.gnome.org/viewvc/gnome-panel?rev=11189&view=rev

Log:
	* clock.c: Use GWeatherLocationEntry and GWeatherTimezoneMenu in
	the add/edit location dialog. Remove all the old
	find-location-dialog code

	* clock.glade: Remove some old versions of dialogs, and update for
	new widgets

	* clock-country.c:
	* clock-zoneinfo.c:
	* clock-zonetable.c: Gone; GWeatherTimezone handles this now

	* Makefile.am (INCLUDES): remove refs to EVOLUTION_TEXTDOMAIN; we
	don't need to steal evolution's translations any more
	(CLOCK_SOURCES): remove stuff


Removed:
   trunk/applets/clock/clock-country.c
   trunk/applets/clock/clock-country.h
   trunk/applets/clock/clock-zoneinfo.c
   trunk/applets/clock/clock-zoneinfo.h
   trunk/applets/clock/clock-zonetable.c
   trunk/applets/clock/clock-zonetable.h
Modified:
   trunk/applets/clock/ChangeLog
   trunk/applets/clock/Makefile.am
   trunk/applets/clock/clock-location.h
   trunk/applets/clock/clock.c
   trunk/applets/clock/clock.glade

Modified: trunk/applets/clock/Makefile.am
==============================================================================
--- trunk/applets/clock/Makefile.am	(original)
+++ trunk/applets/clock/Makefile.am	Mon Aug  4 18:29:34 2008
@@ -18,7 +18,6 @@
 	-DGNOMELOCALEDIR=\""$(prefix)/$(DATADIRNAME)/locale"\"	\
 	-DCLOCK_EDS_ICONDIR="\"$(CLOCK_EDS_ICONDIR)\""		\
 	-DCLOCK_TIME_UTILITY="\"$(CLOCK_TIME_UTILITY)\""	\
-	-DEVOLUTION_TEXTDOMAIN=\"evolution-2.22\"		\
 	-DGWEATHER_I_KNOW_THIS_IS_UNSTABLE
 
 if HAVE_LIBECAL
@@ -47,8 +46,6 @@
 	obox.h			\
 	clock.c			\
 	clock.h			\
-	clock-country.c		\
-	clock-country.h		\
 	clock-face.c		\
 	clock-face.h		\
 	clock-location.c	\
@@ -61,10 +58,6 @@
 	clock-sunpos.h		\
 	clock-utils.c		\
 	clock-utils.h		\
-	clock-zoneinfo.c	\
-	clock-zoneinfo.h	\
-	clock-zonetable.c	\
-	clock-zonetable.h	\
 	system-timezone.c	\
 	system-timezone.h	\
 	$(BUILT_SOURCES)	\

Modified: trunk/applets/clock/clock-location.h
==============================================================================
--- trunk/applets/clock/clock-location.h	(original)
+++ trunk/applets/clock/clock-location.h	Mon Aug  4 18:29:34 2008
@@ -6,8 +6,6 @@
 #include <glib-object.h>
 #include <libgweather/weather.h>
 
-#include "clock-zonetable.h"
-
 G_BEGIN_DECLS
 
 #define CLOCK_LOCATION_TYPE         (clock_location_get_type ())

Modified: trunk/applets/clock/clock.c
==============================================================================
--- trunk/applets/clock/clock.c	(original)
+++ trunk/applets/clock/clock.c	Mon Aug  4 18:29:34 2008
@@ -52,6 +52,8 @@
 #include <glade/glade.h>
 #include <libgweather/gweather-prefs.h>
 #include <libgweather/gweather-xml.h>
+#include <libgweather/location-entry.h>
+#include <libgweather/timezone-menu.h>
 
 #include "clock.h"
 
@@ -60,7 +62,6 @@
 #include "clock-location-tile.h"
 #include "clock-map.h"
 #include "clock-utils.h"
-#include "clock-zonetable.h"
 #include "obox.h"
 #include "set-timezone.h"
 #include "system-timezone.h"
@@ -140,10 +141,8 @@
 	GtkWidget *prefs_location_edit_button;
 	GtkWidget *prefs_location_remove_button;
 
-	GtkWidget *location_tree;
-	GtkWidget *find_next_location_button;
-	GtkWidget *find_location_entry;
-	GtkWidget *find_location_ok_button;
+	GWeatherLocationEntry *location_entry;
+        GWeatherTimezoneMenu *zone_combo;
 
 	GtkWidget *time_settings_button;
 	GtkWidget *calendar;
@@ -157,8 +156,6 @@
         GtkWidget *map_section;
         GtkWidget *map_widget;
 
-	gulong zone_combo_changed;
-
         /* Window to set the time */
 	GtkWidget *set_time_window;
 	GtkWidget *current_time_label;
@@ -194,7 +191,6 @@
 	GtkAllocation      old_allocation;
 
 	SystemTimezone *systz;
-        ClockZoneTable *zones;
 
 	int fixed_width;
 	int fixed_height;
@@ -766,11 +762,6 @@
 		cd->systz = NULL;
 	}
 
-        if (cd->zones) {
-                g_object_unref (cd->zones);
-                cd->zones = NULL;
-        }
-
         if (cd->cities_store) {
                 g_object_unref (cd->cities_store);
                 cd->cities_store = NULL;
@@ -2768,8 +2759,6 @@
 	g_signal_connect (cd->systz, "changed",
 			  G_CALLBACK (clock_timezone_changed), cd);
 
-        cd->zones = clock_zonetable_new ();
-
         bonobo_ui_component_set_prop (popup_component,
                                       "/commands/ClockConfig",
                                       "hidden", can_set_system_time () ? "0" : "1",
@@ -2807,7 +2796,6 @@
 
 	g_object_unref (G_OBJECT (client));
 }
-#endif
 
 static void
 update_properties_for_format (ClockData   *cd,
@@ -2868,8 +2856,6 @@
 	}
 }
 
-/* FIXME old clock applet */
-#if 0
 static void
 set_format_cb (GtkComboBox *combo,
 	       ClockData   *cd)
@@ -2963,11 +2949,11 @@
 static void
 prefs_locations_changed (GtkTreeSelection *selection, ClockData *cd)
 {
-	gint n;
+        gint n;
 
-	n = gtk_tree_selection_count_selected_rows (selection);
-	gtk_widget_set_sensitive (cd->prefs_location_edit_button, n > 0);
-	gtk_widget_set_sensitive (cd->prefs_location_remove_button, n > 0);
+        n = gtk_tree_selection_count_selected_rows (selection);
+        gtk_widget_set_sensitive (cd->prefs_location_edit_button, n > 0);
+        gtk_widget_set_sensitive (cd->prefs_location_remove_button, n > 0);
 }
 
 static gchar *
@@ -3026,32 +3012,35 @@
 run_prefs_edit_save (GtkButton *button, ClockData *cd)
 {
         GtkWidget *edit_window = glade_xml_get_widget (cd->glade_xml, "edit-location-window");
-        ClockZoneTable *zones = cd->zones;
 
         ClockLocation *loc = g_object_get_data (G_OBJECT (edit_window), "clock-location");
-        GtkWidget *zone_combo = glade_xml_get_widget (cd->glade_xml, "edit-location-timezone-combo");
-        GtkWidget *name_entry = glade_xml_get_widget (cd->glade_xml, "edit-location-name-entry");
 
         GtkWidget *lat_entry = glade_xml_get_widget (cd->glade_xml, "edit-location-latitude-entry");
         GtkWidget *lon_entry = glade_xml_get_widget (cd->glade_xml, "edit-location-longitude-entry");
         GtkWidget *lat_combo = glade_xml_get_widget (cd->glade_xml, "edit-location-latitude-combo");
         GtkWidget *lon_combo = glade_xml_get_widget (cd->glade_xml, "edit-location-longitude-combo");
 
-        gchar *timezone_l10n = gtk_combo_box_get_active_text (GTK_COMBO_BOX (zone_combo));
-	gchar *weather_code = g_object_get_data (G_OBJECT (edit_window), "weather-code");
-
-        ClockZoneInfo *info = clock_zonetable_get_l10n_zone (zones, timezone_l10n);
+        const gchar *timezone, *weather_code;
+        gchar *name;
 
-        const gchar *name;
+        GWeatherLocation *gloc;
         gfloat lat = 0;
         gfloat lon = 0;
 
-        if (!info) {
+        timezone = gweather_timezone_menu_get_tzid (cd->zone_combo);
+        if (!timezone) {
                 edit_hide (NULL, cd);
                 return;
         }
 
-        name = gtk_entry_get_text (GTK_ENTRY (name_entry));
+        gloc = gweather_location_entry_get_location (cd->location_entry);
+        if (gloc) {
+                name = gweather_location_get_city_name (gloc);
+                weather_code = gweather_location_get_code (gloc);
+        } else {
+                name = gtk_editable_get_chars (GTK_EDITABLE (cd->location_entry), 0, -1);
+                weather_code = NULL;
+        }
 
         sscanf (gtk_entry_get_text (GTK_ENTRY (lat_entry)), "%f", &lat);
         sscanf (gtk_entry_get_text (GTK_ENTRY (lon_entry)), "%f", &lon);
@@ -3065,7 +3054,7 @@
         }
 
         if (loc) {
-                clock_location_set_timezone (loc, clock_zoneinfo_get_name (info));
+                clock_location_set_timezone (loc, timezone);
                 clock_location_set_name (loc, name);
                 clock_location_set_coords (loc, lat, lon);
 		clock_location_set_weather_code (loc, weather_code);
@@ -3074,8 +3063,8 @@
 
 		prefs.temperature_unit = cd->temperature_unit;
 		prefs.speed_unit = cd->speed_unit;
-
-                loc = clock_location_new (name, clock_zoneinfo_get_name (info), lat, lon, weather_code, &prefs);
+ 
+                loc = clock_location_new (name, timezone, lat, lon, weather_code, &prefs);
 		/* has the side-effect of setting the current location if
 		 * there's none and this one can be considered as a current one
 		 */
@@ -3083,6 +3072,7 @@
 
                 cd->locations = g_list_append (cd->locations, loc);
         }
+        g_free (name);
 
 	/* This will update everything related to locations to take into
 	 * account the new location (via the gconf notification) */
@@ -3092,22 +3082,6 @@
 }
 
 static void
-find_hide (GtkWidget *unused, ClockData *cd)
-{
-        GtkWidget *find_window = glade_xml_get_widget (cd->glade_xml, "find-location-window");
-
-	gtk_widget_hide (find_window);
-}
-
-static gboolean
-find_hide_event (GtkWidget *widget, GdkEvent *event, ClockData *cd)
-{
-        find_hide (NULL, cd);
-
-        return TRUE;
-}
-
-static void
 update_coords_helper (gfloat value, GtkWidget *entry, GtkWidget *combo)
 {
         gchar *tmp;
@@ -3144,488 +3118,54 @@
 	update_coords_helper (lon, lon_entry, lon_combo);
 }
 
-static gint
-revert_sort_zoneinfo_by_l10n_name (gconstpointer a, gconstpointer b)
-{
-        ClockZoneInfo *info_a = CLOCK_ZONEINFO (a);
-        ClockZoneInfo *info_b = CLOCK_ZONEINFO (b);
-
-        const char *name_a = clock_zoneinfo_get_l10n_name (info_a);
-        const char *name_b = clock_zoneinfo_get_l10n_name (info_b);
-
-        return strcmp (name_b, name_a); /* FIXME: should this be g_utf8_collate() ? */
-}
-
 static void
-fill_timezone_combo_from_location (ClockData *cd, GtkWidget *zone_combo, ClockLocation *loc)
+fill_timezone_combo_from_location (ClockData *cd, ClockLocation *loc)
 {
-        ClockZoneTable *zones = cd->zones;
-        GtkTreeModel *model;
-        GtkTreeIter iter;
-
-        int timezone_idx = -1;
-        int i = 0;
-
-        const gchar *loc_timezone = NULL;
-
         if (loc != NULL) {
-                ClockZoneInfo *info;
-
-                loc_timezone = clock_location_get_timezone (loc);
-                info = clock_zonetable_get_zone (zones, loc_timezone);
-
-                if (info) {
-                        loc_timezone = clock_zoneinfo_get_l10n_name (info);
-                }
-        }
-
-        model = gtk_combo_box_get_model (GTK_COMBO_BOX (zone_combo));
-
-	/* FIXME: not clearing the combo means if the list of timezones
-	 * changes, we won't have the right list. But right now, our list
-	 * will never change so it doesn't matter. */
-
-	/* Fill the combo if it's empty, and also remember the item that should
-	 * be selected if we have a location */
-	if (!gtk_tree_model_get_iter_first (model, &iter)) {
-		GList *list, *cur;
-		const gchar *timezone;
-
-		list = g_list_copy (clock_zonetable_get_zones (zones));
-		/* this is a revert sort because we prepend to the combo box */
-		list = g_list_sort (list, &revert_sort_zoneinfo_by_l10n_name);
-
-		cur = list;
-		while (cur) {
-			timezone = clock_zoneinfo_get_l10n_name (CLOCK_ZONEINFO (cur->data));
-
-			gtk_combo_box_prepend_text (GTK_COMBO_BOX (zone_combo),
-						    timezone);
-
-			if (loc_timezone && timezone_idx == -1
-			    && (strcmp (timezone, loc_timezone) == 0)) {
-				timezone_idx = i;
-			}
-
-			i++;
-			cur = g_list_next (cur);
-		}
-
-		g_list_free (list);
-	} else if (loc_timezone) {
-		/* Find the item to select */
-		gchar *timezone;
-		int count = 0;
-
-		do {
-			gtk_tree_model_get (model, &iter, 0, &timezone, -1);
-
-			if (strcmp (timezone, loc_timezone) == 0) {
-				timezone_idx = count;
-				g_free (timezone);
-				break;
-			}
-			count++;
-
-			g_free (timezone);
-		} while (gtk_tree_model_iter_next (model, &iter));
-	}
-
-        if (timezone_idx >= 0) {
-                gtk_combo_box_set_active (GTK_COMBO_BOX (zone_combo), timezone_idx);
-        } else if (loc_timezone) {
-                gtk_combo_box_prepend_text (GTK_COMBO_BOX (zone_combo), loc_timezone);
-                gtk_combo_box_set_active (GTK_COMBO_BOX (zone_combo), 0);
+                gweather_timezone_menu_set_tzid (cd->zone_combo, 
+                                                 clock_location_get_timezone (loc));
         } else {
-                /* unfortunately gtk doesn't have an easy way to clear
-                   a combo box */
-                gtk_combo_box_prepend_text (GTK_COMBO_BOX (zone_combo), "");
-                gtk_combo_box_set_active (GTK_COMBO_BOX (zone_combo), 0);
-                gtk_combo_box_remove_text (GTK_COMBO_BOX (zone_combo), 0);
-                gtk_combo_box_set_active (GTK_COMBO_BOX (zone_combo), -1);
-        }
-}
-
-static gdouble
-distance (gdouble lat1, gdouble lon1,
-          gdouble lat2, gdouble lon2)
-{
-        gdouble radius = 6372.795;
-
-        return acos (cos (lat1) * cos (lat2) * cos (lon1 - lon2) + sin (lat1) * sin (lat2)) * radius;
-}
-
-static const gchar *
-find_timezone (ClockData *cd, const char *name, const char *iso_code,
-               gfloat lat, gfloat lon)
-{
-        ClockZoneTable *zonetab = cd->zones;
-	GList *zones, *l;
-	double dist, d;
-	gfloat zlat, zlon;
-	ClockZoneInfo *best;
-        const char *country;
-
-	dist = 1e6;
-	best = NULL;
-	zones = clock_zonetable_get_zones (zonetab);
-	for (l = zones; l; l = l->next) {
-		ClockZoneInfo *info = l->data;
-
-                if (iso_code) {
-                        country = clock_zoneinfo_get_country (info);
-                        if (!country || g_ascii_strcasecmp (iso_code, country) != 0)
-                                continue;
-                }
-
-		clock_zoneinfo_get_coords (info, &zlat, &zlon);
-
-		d = distance (lat, lon, zlat*M_PI/180.0, zlon*M_PI/180.0);
-
-		if (d < dist) {
-			best = info;
-			dist = d;
-		}
-	}
-
-        if (best)
-                return clock_zoneinfo_get_name (best);
-        else
-                return NULL;
-}
-
-static void
-update_timezone (ClockData *cd, const char *name,
-                 const char *country_code, const char *tz_hint,
-                 gboolean valid, gfloat lat, gfloat lon)
-{
-        GtkWidget *zone_combo = glade_xml_get_widget (cd->glade_xml, "edit-location-timezone-combo");
-	const gchar *timezone;
-	ClockLocation *loc;
-	WeatherPrefs prefs;
-
-	if (!valid) {
-                /* unfortunately gtk doesn't have an easy way to clear
-                   a combo box */
-                gtk_combo_box_prepend_text (GTK_COMBO_BOX (zone_combo), "");
-                gtk_combo_box_set_active (GTK_COMBO_BOX (zone_combo), 0);
-                gtk_combo_box_remove_text (GTK_COMBO_BOX (zone_combo), 0);
-                gtk_combo_box_set_active (GTK_COMBO_BOX (zone_combo), -1);
-		return;
-	}
-
-	prefs.temperature_unit = cd->temperature_unit;
-	prefs.speed_unit = cd->speed_unit;
-
-        if (tz_hint)
-                timezone = tz_hint;
-        else {
-                timezone = find_timezone (cd, name, country_code, lat, lon);
-                if (!timezone)
-                        return;
+                gweather_timezone_menu_set_tzid (cd->zone_combo, NULL);
         }
-
-	loc = clock_location_new (name, timezone, lat*180.0/M_PI, lon*180.0/M_PI, NULL, &prefs);
-
-	g_signal_handler_block (zone_combo, cd->zone_combo_changed);
-
-        fill_timezone_combo_from_location (cd, zone_combo, loc);
-
-	g_signal_handler_unblock (zone_combo, cd->zone_combo_changed);
-
-	g_object_unref (loc);
 }
 
 static void
-run_find_location_save (GtkButton *button, ClockData *cd)
+location_changed (GObject *object, GParamSpec *param, ClockData *cd)
 {
-	GtkTreeSelection *selection;
-	GtkTreeModel *model;
-	GtkTreeIter iter;
-	WeatherLocation *loc = NULL;
-        GtkWidget *name_entry;
-        GtkWidget *edit_window;
+        GWeatherLocationEntry *entry = GWEATHER_LOCATION_ENTRY (object);
+        GWeatherLocation *gloc;
+        GWeatherTimezone *zone;
+        gboolean latlon_valid;
+        double latitude = 0.0, longitude = 0.0;
 
-	selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (cd->location_tree));
-	if (!gtk_tree_selection_get_selected (selection, &model, &iter))
-		return;
-
-	gtk_tree_model_get (model, &iter, GWEATHER_XML_COL_POINTER, &loc, -1);
+        gloc = gweather_location_entry_get_location (entry);
 
-	if (!loc)
-		return;
-
-        edit_window = glade_xml_get_widget (cd->glade_xml, "edit-location-window");
-	name_entry = glade_xml_get_widget (cd->glade_xml, "edit-location-name-entry");
-	gtk_entry_set_text (GTK_ENTRY (name_entry), loc->name);
-	g_object_set_data_full (G_OBJECT (edit_window), "weather-code",
-			        g_strdup (loc->code), g_free);
-
-	update_coords (cd, loc->latlon_valid, loc->latitude*180.0/M_PI, loc->longitude*180.0/M_PI);
-
-	update_timezone (cd, loc->name, loc->country_code, loc->tz_hint,
-                         loc->latlon_valid, loc->latitude, loc->longitude);
-
-	find_hide (NULL, cd);
-}
-
-static void
-location_row_activated (GtkTreeView       *tree_view,
-			GtkTreePath       *path,
-			GtkTreeViewColumn *column,
-			ClockData         *cd)
-{
-	run_find_location_save (NULL, cd);
-}
-
-static void
-fill_location_tree (ClockData *cd)
-{
-	GtkTreeView *tree;
-	GtkTreeModel *model;
-	GtkTreeViewColumn *column;
-	GtkCellRenderer *cell;
-
-	tree = (GtkTreeView*) cd->location_tree;
-
-	if (gtk_tree_view_get_model (tree) != NULL)
-		return;
-
-	cell = gtk_cell_renderer_text_new ();
-	column = gtk_tree_view_column_new_with_attributes ("not used", cell,
-							   "text", GWEATHER_XML_COL_LOC, NULL);
-	gtk_tree_view_append_column (tree, column);
-	gtk_tree_view_set_expander_column (tree, column);
-
-	g_signal_connect (tree, "row-activated",
-                          G_CALLBACK (location_row_activated), cd);
-
-	model = gweather_xml_load_locations ();
-
-	/* Can be NULL if libgweather is not correctly installed */
-	if (model) {
-		gtk_tree_view_set_model (tree, model);
-		g_object_unref (model);
-	}
-}
-
-static void
-run_find_location (GtkButton *button, ClockData *cd)
-{
-        GtkWidget *edit_window = glade_xml_get_widget (cd->glade_xml, "edit-location-window");
-	GtkWidget *name_entry = glade_xml_get_widget (cd->glade_xml, "edit-location-name-entry");
-        GtkWidget *window;
-	const char *find;
-	const char *location;
-
-	fill_location_tree (cd);
-        window = glade_xml_get_widget (cd->glade_xml, "find-location-window");
-
-	/* prefill the find entry if it's empty */
-	find = gtk_entry_get_text (GTK_ENTRY (cd->find_location_entry));
-	location = gtk_entry_get_text (GTK_ENTRY (name_entry));
-
-	if (g_strcmp0 (find, location) != 0 || !find || !find[0]) {
-		GtkWidget *scroll = glade_xml_get_widget (cd->glade_xml, "find-location-scroll");
-		GtkAdjustment *adjustment;
-
-		/* If we autofill the entry, reset the state of the treeview
-		 * first so that it looks like a brand new search */
-		gtk_tree_view_collapse_all (GTK_TREE_VIEW (cd->location_tree));
-
-		adjustment = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (scroll));
-		gtk_adjustment_set_value (adjustment, 0);
-		gtk_scrolled_window_set_vadjustment (GTK_SCROLLED_WINDOW (scroll),
-						     adjustment);
-
-		if (g_strcmp0 (find, location) != 0)
-			gtk_entry_set_text (GTK_ENTRY (cd->find_location_entry),
-					    location);
-	}
-
-	gtk_widget_grab_focus (cd->find_location_entry);
-	gtk_editable_set_position (GTK_EDITABLE (cd->find_location_entry),
-				   -1);
-
-        gtk_window_set_transient_for (GTK_WINDOW (window),
-				      GTK_WINDOW (edit_window));
-        gtk_window_present_with_time (GTK_WINDOW (window),
-				      gtk_get_current_event_time ());
-}
-
-static gboolean
-find_location (GtkTreeModel *model,
-	       GtkTreeIter  *iter,
-	       const gchar  *location,
-	       gboolean      go_parent)
-{
-	GtkTreeIter iter_child;
-	GtkTreeIter iter_parent;
-	gchar *aux_loc;
-	gboolean valid;
-	int len;
+	latlon_valid = gloc && gweather_location_has_coords (gloc);
+        if (latlon_valid)
+                gweather_location_get_coords (gloc, &latitude, &longitude);
+        update_coords (cd, latlon_valid, latitude, longitude);
 
-	len = strlen (location);
-
-	if (len <= 0) {
-		return FALSE;
-	}
-
-	do {
-		gtk_tree_model_get (model, iter, GWEATHER_XML_COL_LOC, &aux_loc, -1);
-
-		if (g_ascii_strncasecmp (aux_loc, location, len) == 0) {
-			g_free (aux_loc);
-			return TRUE;
-		}
-
-		if (gtk_tree_model_iter_has_child (model, iter)) {
-			gtk_tree_model_iter_nth_child (model, &iter_child, iter, 0);
-			if (find_location (model, &iter_child, location, FALSE)) {
-				/* Manual copying of the iter */
-				iter->stamp = iter_child.stamp;
-				iter->user_data = iter_child.user_data;
-				iter->user_data2 = iter_child.user_data2;
-				iter->user_data3 = iter_child.user_data3;
-
-				g_free (aux_loc);
-
-				return TRUE;
-			}
-		}
-
-		g_free (aux_loc);
-
-		valid = gtk_tree_model_iter_next (model, iter);
-	} while (valid);
-
-	if (go_parent) {
-		iter_parent = *iter;
-		while (gtk_tree_model_iter_parent (model, iter, &iter_parent)) {
-			if (gtk_tree_model_iter_next (model, iter))
-				return find_location (model, iter, location, TRUE);
-			iter_parent = *iter;
-		}
-	}
-
-	return FALSE;
-}
-
-static void
-find_next_location (GtkButton *button, ClockData *cd)
-{
-	GtkTreeView *tree;
-	GtkTreeModel *model;
-	GtkEntry *entry;
-	GtkTreeSelection *selection;
-	GtkTreeIter iter;
-	GtkTreeIter iter_parent;
-	GtkTreePath *path;
-	const gchar *location;
-
-	tree = GTK_TREE_VIEW (cd->location_tree);
-	model = gtk_tree_view_get_model (tree);
-	/* Can happen if libgweather is not correctly installed */
-	if (!model)
-		return;
-
-	entry = GTK_ENTRY (cd->find_location_entry);
-	selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree));
-
-	if (gtk_tree_selection_count_selected_rows (selection) >= 1) {
-		gtk_tree_selection_get_selected (selection, &model, &iter);
-		/* Select next or select parent */
-		if (!gtk_tree_model_iter_next (model, &iter)) {
-			iter_parent = iter;
-			if (!gtk_tree_model_iter_parent (model, &iter, &iter_parent) ||
-			    !gtk_tree_model_iter_next (model, &iter))
-				gtk_tree_model_get_iter_first (model, &iter);
-		}
-	}
-	else {
-		gtk_tree_model_get_iter_first (model, &iter);
-	}
-	location = gtk_entry_get_text (entry);
-
-	if (find_location (model, &iter, location, TRUE)) {
-		gtk_widget_set_sensitive (cd->find_next_location_button, TRUE);
-		path = gtk_tree_model_get_path (model, &iter);
-		gtk_tree_view_expand_to_path (tree, path);
-		gtk_tree_selection_select_path (selection, path);
-		gtk_tree_view_scroll_to_cell (tree, path, NULL, TRUE, 0.5, 0);
-
-		gtk_tree_path_free (path);
-        }
-	else {
-		gtk_widget_set_sensitive (cd->find_next_location_button, FALSE);
-	}
-}
-
-static void
-find_entry_changed (GtkEditable *entry, ClockData *cd)
-{
-	GtkTreeView *tree;
-	GtkTreeModel *model;
-	GtkTreeSelection *selection;
-	GtkTreeIter iter;
-	GtkTreePath *path;
-	const gchar *location;
-
-	tree = GTK_TREE_VIEW (cd->location_tree);
-	model = gtk_tree_view_get_model (tree);
-	/* Can happen if libgweather is not correctly installed */
-	if (!model)
-		return;
-
-	selection = gtk_tree_view_get_selection (tree);
-	gtk_tree_model_get_iter_first (model, &iter);
-
-	location = gtk_entry_get_text (GTK_ENTRY (entry));
-	if (find_location (model, &iter, location, TRUE)) {
-		gtk_widget_set_sensitive (cd->find_next_location_button, TRUE);
-		path = gtk_tree_model_get_path (model, &iter);
-		gtk_tree_view_expand_to_path (tree, path);
-		gtk_tree_selection_select_iter (selection, &iter);
-		gtk_tree_view_scroll_to_cell (tree, path, NULL, TRUE, 0.5, 0);
-		gtk_tree_path_free (path);
-	}
-	else {
-		gtk_widget_set_sensitive (cd->find_next_location_button, FALSE);
-	}
-}
-
-static void
-location_tree_selection_changed (GtkTreeSelection *selection, ClockData *cd)
-{
-	GtkTreeModel *model;
-	GtkTreeIter iter;
-	WeatherLocation *loc = NULL;
-	gboolean can_save = FALSE;
-
-	if (gtk_tree_selection_get_selected (selection, &model, &iter)) {
-		gtk_tree_model_get (model, &iter, GWEATHER_XML_COL_POINTER, &loc, -1);
-		if (loc != NULL)
-			can_save = TRUE;
-	}
+        zone = gloc ? gweather_location_get_timezone (gloc) : NULL;
+        if (zone)
+                gweather_timezone_menu_set_tzid (cd->zone_combo, gweather_timezone_get_tzid (zone));
+        else
+                gweather_timezone_menu_set_tzid (cd->zone_combo, NULL);
 
-	gtk_widget_set_sensitive (cd->find_location_ok_button, can_save);
+        if (gloc)
+                gweather_location_unref (gloc);
 }
 
 static void
 edit_clear (ClockData *cd)
 {
-        GtkWidget *zone_combo = glade_xml_get_widget (cd->glade_xml, "edit-location-timezone-combo");
-        GtkWidget *name_entry = glade_xml_get_widget (cd->glade_xml, "edit-location-name-entry");
-
         GtkWidget *lat_entry = glade_xml_get_widget (cd->glade_xml, "edit-location-latitude-entry");
         GtkWidget *lon_entry = glade_xml_get_widget (cd->glade_xml, "edit-location-longitude-entry");
         GtkWidget *lat_combo = glade_xml_get_widget (cd->glade_xml, "edit-location-latitude-combo");
         GtkWidget *lon_combo = glade_xml_get_widget (cd->glade_xml, "edit-location-longitude-combo");
 
         /* clear out the old data */
-        gtk_combo_box_set_active (GTK_COMBO_BOX (zone_combo), -1);
-
-        gtk_entry_set_text (GTK_ENTRY (name_entry), "");
+        gweather_location_entry_set_location (cd->location_entry, NULL);
+        gweather_timezone_menu_set_tzid (cd->zone_combo, NULL);
 
         gtk_entry_set_text (GTK_ENTRY (lat_entry), "");
         gtk_entry_set_text (GTK_ENTRY (lon_entry), "");
@@ -3639,7 +3179,6 @@
 {
         GtkWidget *edit_window = glade_xml_get_widget (cd->glade_xml, "edit-location-window");
 
-        find_hide (NULL, cd);
         gtk_widget_hide (edit_window);
         edit_clear (cd);
 }
@@ -3691,159 +3230,6 @@
 				  "clock", "clock", "clock-settings");
 }
 
-typedef struct {
-  const gchar *name;
-  const gchar *country_code;
-  gdouble latitude;
-  gdouble longitude;
-  gdouble distance;
-  WeatherLocation *location;
-} SearchData;
-  
-static gboolean
-compare_location (GtkTreeModel *model,
-                  GtkTreePath  *path,
-                  GtkTreeIter  *iter,
-                  gpointer      user_data)
-{
-  SearchData *data = user_data;
-  WeatherLocation *loc;
-  gdouble d;
-   
-  gtk_tree_model_get (model, iter, GWEATHER_XML_COL_POINTER, &loc, -1);
-
-  if (!loc)
-    return FALSE;
-  if (loc->country_code && data->country_code &&
-      g_ascii_strcasecmp (loc->country_code, data->country_code) != 0)
-    return FALSE;
-
-  d = distance (data->latitude, data->longitude, loc->latitude, loc->longitude);
-
-  if (d < data->distance) {
-    data->distance = d;
-    data->location = loc;
-  }
-
-  return FALSE;
-}
-
-static gchar *
-find_weather_code (GtkTreeModel *model,
-		   const gchar  *name,
-		   const gchar  *iso_code,
-                   gdouble       lat, 
-                   gdouble       lon)
-{
-  SearchData data;
-  gchar *code;
-
-  data.name = name;
-  data.country_code = iso_code;
-  data.latitude = lat;
-  data.longitude = lon;
-  data.distance = 1e6;
-  data.location = NULL;
-
-  /* Can be NULL if libgweather is not correctly installed */
-  if (model)
-	  gtk_tree_model_foreach (GTK_TREE_MODEL (model),
-			  	  compare_location, &data);
-
-  if (data.location)
-    code = g_strdup (data.location->code);
-  else
-    code = g_strdup ("-");
-
-  return code;
-}
-
-static void
-zone_combo_changed (GtkComboBox *widget, ClockData *cd)
-{
-        ClockZoneTable *zones = cd->zones;
-        gchar *timezone;
-        gfloat lat = 0;
-        gfloat lon = 0;
-	GtkTreeModel *model;
-	gchar *city;
-	const gchar *buffer;
-
-        GtkWidget *name_entry = glade_xml_get_widget (cd->glade_xml, "edit-location-name-entry");
-        GtkWidget *lat_entry = glade_xml_get_widget (cd->glade_xml, "edit-location-latitude-entry");
-        GtkWidget *lon_entry = glade_xml_get_widget (cd->glade_xml, "edit-location-longitude-entry");
-        GtkWidget *edit_window = glade_xml_get_widget (cd->glade_xml, "edit-location-window");
-	gchar *weather_code;
-
-        ClockCountry *country;
-        ClockZoneInfo *info;
-
-        if (gtk_combo_box_get_active (widget) == -1) {
-                return;
-        }
-
-	timezone = gtk_combo_box_get_active_text (widget);
-        info = clock_zonetable_get_l10n_zone (zones, timezone);
-        g_free (timezone);
-
-        if (info == NULL) {
-                return;
-        }
-
-	buffer = gtk_entry_get_text (GTK_ENTRY (name_entry));
-	weather_code = g_object_get_data (G_OBJECT (edit_window),
-					  "weather-code");
-
-	if (!buffer || !buffer[0] || !weather_code) {
-		country = clock_zonetable_get_country (zones,
-						       clock_zoneinfo_get_country (info));
-		if (country != NULL) {
-			city = g_strdup_printf (_("%s, %s"),
-						clock_zoneinfo_get_l10n_city (info),
-						clock_country_get_l10n_name (country));
-		} else {
-			city = g_strdup (clock_zoneinfo_get_l10n_city (info));
-		}
-	} else
-		city = NULL;
-
-	/* only fill fields in if not set yet, to allow correcting
-	 * a guessed timezone. FIXME: we should be a bit more clever
-	 * and allow replacing if the value was already auto-filled by
-	 * this function (to allow just multiple tries by selecting things
-	 * in the timezone combo */
-	if (!buffer || !buffer[0]) {
-		gtk_entry_set_text (GTK_ENTRY (name_entry), city);
-	}
-
-	if (!weather_code) {
-		fill_location_tree (cd);
-		model = gtk_tree_view_get_model (GTK_TREE_VIEW (cd->location_tree));
-		weather_code = find_weather_code (model, city,
-						  clock_zoneinfo_get_country (info),
-						  lat * M_PI/180.0,
-						  lon * M_PI/180.0);
-		g_object_set_data_full (G_OBJECT (edit_window),
-					"weather-code", weather_code, g_free);
-	}
-
-	g_free (city);
-
-        clock_zoneinfo_get_coords (info, &lat, &lon);
-
-	buffer = gtk_entry_get_text (GTK_ENTRY (lat_entry));
-	if (!buffer || !buffer[0]) {
-		GtkWidget *lat_combo = glade_xml_get_widget (cd->glade_xml, "edit-location-latitude-combo");
-		update_coords_helper (lat, lat_entry, lat_combo);
-	}
-
-	buffer = gtk_entry_get_text (GTK_ENTRY (lon_entry));
-	if (!buffer || !buffer[0]) {
-		GtkWidget *lon_combo = glade_xml_get_widget (cd->glade_xml, "edit-location-longitude-combo");
-		update_coords_helper (lon, lon_entry, lon_combo);
-	}
-}
-
 static void
 remove_tree_row (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data)
 {
@@ -3871,23 +3257,19 @@
 run_prefs_locations_add (GtkButton *button, ClockData *cd)
 {
         GtkWidget *edit_window = glade_xml_get_widget (cd->glade_xml, "edit-location-window");
-        GtkWidget *name_entry = glade_xml_get_widget (cd->glade_xml, "edit-location-name-entry");
-        GtkWidget *zone_combo = glade_xml_get_widget (cd->glade_xml, "edit-location-timezone-combo");
 
-        fill_timezone_combo_from_location (cd, zone_combo, NULL);
-/* 	fill_location_tree (this);    This was commented out in intlclock... */
+        fill_timezone_combo_from_location (cd, NULL);
 
         g_object_set_data (G_OBJECT (edit_window), "clock-location", NULL);
         gtk_window_set_transient_for (GTK_WINDOW (edit_window), GTK_WINDOW (cd->prefs_window));
 
-	if (g_object_get_data (G_OBJECT (edit_window), "delete-handler")
- == NULL) {
+	if (g_object_get_data (G_OBJECT (edit_window), "delete-handler") == NULL) {
 		g_object_set_data (G_OBJECT (edit_window), "delete-handler",
 				   GINT_TO_POINTER (g_signal_connect (edit_window, "delete_event", G_CALLBACK (edit_delete), cd)));
 	}
 
-	gtk_widget_grab_focus (name_entry);
-	gtk_editable_set_position (GTK_EDITABLE (name_entry), -1);
+	gtk_widget_grab_focus (GTK_WIDGET (cd->location_entry));
+	gtk_editable_set_position (GTK_EDITABLE (cd->location_entry), -1);
 
         gtk_window_present_with_time (GTK_WINDOW (edit_window), gtk_get_current_event_time ());
 }
@@ -3903,10 +3285,6 @@
         /* fill the dialog with this location's data, show it */
         GtkWidget *edit_window = glade_xml_get_widget (cd->glade_xml, "edit-location-window");
 
-        GtkWidget *zone_combo = glade_xml_get_widget (cd->glade_xml, "edit-location-timezone-combo");
-
-        GtkWidget *name_entry = glade_xml_get_widget (cd->glade_xml, "edit-location-name-entry");
-
         GtkWidget *lat_entry = glade_xml_get_widget (cd->glade_xml, "edit-location-latitude-entry");
 
         GtkWidget *lon_entry = glade_xml_get_widget (cd->glade_xml, "edit-location-longitude-entry");
@@ -3919,17 +3297,13 @@
 
         gtk_tree_model_get (model, iter, COL_CITY_LOC, &loc, -1);
 
-        gtk_entry_set_text (GTK_ENTRY (name_entry),
-			    clock_location_get_name (loc));
-	g_object_set_data_full (G_OBJECT (edit_window), "weather-code",
-				g_strdup (clock_location_get_weather_code (loc)),
-				g_free);
+        gweather_location_entry_set_city (cd->location_entry,
+                                          clock_location_get_name (loc),
+                                          clock_location_get_weather_code (loc));
 
         clock_location_get_coords (loc, &lat, &lon);
 
-	/* doing this after setting all the other fields will make it possible
-	 * to do less work in zone_combo_changed */
-        fill_timezone_combo_from_location (cd, zone_combo, loc);
+        fill_timezone_combo_from_location (cd, loc);
 
         tmp = g_strdup_printf ("%f", fabsf(lat));
         gtk_entry_set_text (GTK_ENTRY (lat_entry), tmp);
@@ -3953,8 +3327,8 @@
 
         g_object_set_data (G_OBJECT (edit_window), "clock-location", loc);
 
-	gtk_widget_grab_focus (name_entry);
-	gtk_editable_set_position (GTK_EDITABLE (name_entry), -1);
+	gtk_widget_grab_focus (GTK_WIDGET (cd->location_entry));
+	gtk_editable_set_position (GTK_EDITABLE (cd->location_entry), -1);
 
         gtk_window_present (GTK_WINDOW (edit_window));
 }
@@ -4155,11 +3529,10 @@
 	GtkWidget *prefs_help_button;
         GtkWidget *edit_cancel_button;
         GtkWidget *edit_ok_button;
-        GtkWidget *zone_combo;
-        GtkWidget *find_window;
-        GtkWidget *find_location_button;
-        GtkWidget *find_location_cancel_button;
-	GtkTreeSelection *selection;
+        GtkWidget *location_box;
+        GtkWidget *zone_box;
+        GtkTreeSelection *selection;
+        GWeatherLocation *world;
 
         if (cd->prefs_window)
                 return;
@@ -4212,30 +3585,21 @@
 
         edit_ok_button = glade_xml_get_widget (cd->glade_xml, "edit-location-ok-button");
 
-        zone_combo = glade_xml_get_widget (cd->glade_xml, "edit-location-timezone-combo");
-
-        find_window = glade_xml_get_widget (cd->glade_xml, "find-location-window");
+        world = gweather_location_new_world (FALSE);
 
-        gtk_window_set_transient_for (GTK_WINDOW (find_window),
-                                      GTK_WINDOW (edit_window));
+        location_box = glade_xml_get_widget (cd->glade_xml, "edit-location-name-box");
+        cd->location_entry = GWEATHER_LOCATION_ENTRY (gweather_location_entry_new (world));
+        gtk_widget_show (GTK_WIDGET (cd->location_entry));
+        gtk_container_add (GTK_CONTAINER (location_box), GTK_WIDGET (cd->location_entry));
+        g_signal_connect (G_OBJECT (cd->location_entry), "notify::location",
+                          G_CALLBACK (location_changed), cd);
+
+        zone_box = glade_xml_get_widget (cd->glade_xml, "edit-location-timezone-box");
+        cd->zone_combo = GWEATHER_TIMEZONE_MENU (gweather_timezone_menu_new (world));
+        gtk_widget_show (GTK_WIDGET (cd->zone_combo));
+        gtk_container_add (GTK_CONTAINER (zone_box), GTK_WIDGET (cd->zone_combo));
 
-        g_signal_connect (G_OBJECT (find_window), "delete_event",
-                          G_CALLBACK (find_hide_event), cd);
-
-        find_location_button = glade_xml_get_widget (cd->glade_xml, "find-location-button");
-
-        cd->find_location_ok_button = glade_xml_get_widget (cd->glade_xml, "find-location-ok-button");
-
-        find_location_cancel_button = glade_xml_get_widget (cd->glade_xml, "find-location-cancel-button");
-
-        cd->find_next_location_button = glade_xml_get_widget (cd->glade_xml, "find-next-location-button");
-
-        cd->find_location_entry = glade_xml_get_widget (cd->glade_xml, "find-location-entry");
-
-        cd->location_tree = glade_xml_get_widget (cd->glade_xml, "find-location-tree");
-
-        cd->zone_combo_changed = g_signal_connect (G_OBJECT (zone_combo), "changed",
-                                                   G_CALLBACK (zone_combo_changed), cd);
+        gweather_location_unref (world);
 
         g_signal_connect (G_OBJECT (edit_cancel_button), "clicked",
                           G_CALLBACK (edit_hide), cd);
@@ -4243,30 +3607,6 @@
         g_signal_connect (G_OBJECT (edit_ok_button), "clicked",
                           G_CALLBACK (run_prefs_edit_save), cd);
 
-        g_signal_connect (find_location_button, "clicked",
-                          G_CALLBACK (run_find_location), cd);
-
-        g_signal_connect (G_OBJECT (find_location_cancel_button), "clicked",
-                          G_CALLBACK (find_hide), cd);
-
-        g_signal_connect (G_OBJECT (cd->find_location_ok_button), "clicked",
-                          G_CALLBACK (run_find_location_save), cd);
-
-        g_signal_connect (G_OBJECT (cd->find_next_location_button), "clicked",
-                          G_CALLBACK (find_next_location), cd);
-
-        g_signal_connect (G_OBJECT (cd->find_location_entry), "changed",
-                          G_CALLBACK (find_entry_changed), cd);
-
-        selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (cd->location_tree));
-        g_signal_connect (selection, "changed",
-                          G_CALLBACK (location_tree_selection_changed), cd);
-
-        /* We have to put an item in the combo box in the glade file
-           to get the simpler, string-only store.  Here we remove that
-           item. */
-        gtk_combo_box_remove_text (GTK_COMBO_BOX (zone_combo), 0);
-
         /* Set up the time setting section */
 
         cd->time_settings_button = glade_xml_get_widget (cd->glade_xml, "time-settings-button");

Modified: trunk/applets/clock/clock.glade
==============================================================================
--- trunk/applets/clock/clock.glade	(original)
+++ trunk/applets/clock/clock.glade	Mon Aug  4 18:29:34 2008
@@ -4,718 +4,6 @@
 <glade-interface>
 <requires lib="gnome"/>
 
-<widget class="GtkWindow" id="edit-location-windowx">
-  <property name="title"></property>
-  <property name="type">GTK_WINDOW_TOPLEVEL</property>
-  <property name="window_position">GTK_WIN_POS_NONE</property>
-  <property name="modal">False</property>
-  <property name="resizable">True</property>
-  <property name="destroy_with_parent">False</property>
-  <property name="decorated">True</property>
-  <property name="skip_taskbar_hint">False</property>
-  <property name="skip_pager_hint">False</property>
-  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
-  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
-  <property name="urgency_hint">False</property>
-
-  <child>
-    <widget class="GtkVBox" id="vbox14">
-      <property name="border_width">12</property>
-      <property name="visible">True</property>
-      <property name="homogeneous">False</property>
-      <property name="spacing">24</property>
-
-      <child>
-	<widget class="GtkTable" id="table23">
-	  <property name="visible">True</property>
-	  <property name="n_rows">1</property>
-	  <property name="n_columns">3</property>
-	  <property name="homogeneous">False</property>
-	  <property name="row_spacing">6</property>
-	  <property name="column_spacing">6</property>
-
-	  <child>
-	    <widget class="GtkVBox" id="vbox15">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">6</property>
-
-	      <child>
-		<widget class="GtkScrolledWindow" id="scrolledwindow9">
-		  <property name="visible">True</property>
-		  <property name="can_focus">True</property>
-		  <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
-		  <property name="vscrollbar_policy">GTK_POLICY_NEVER</property>
-		  <property name="shadow_type">GTK_SHADOW_NONE</property>
-		  <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
-		  <child>
-		    <widget class="GtkViewport" id="viewport2">
-		      <property name="visible">True</property>
-		      <property name="shadow_type">GTK_SHADOW_NONE</property>
-
-		      <child>
-			<widget class="GtkImage" id="image26">
-			  <property name="visible">True</property>
-			  <property name="xalign">0.5</property>
-			  <property name="yalign">0.5</property>
-			  <property name="xpad">0</property>
-			  <property name="ypad">0</property>
-			</widget>
-		      </child>
-		    </widget>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">True</property>
-		  <property name="fill">True</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkTable" id="table24">
-		  <property name="visible">True</property>
-		  <property name="n_rows">4</property>
-		  <property name="n_columns">4</property>
-		  <property name="homogeneous">False</property>
-		  <property name="row_spacing">6</property>
-		  <property name="column_spacing">6</property>
-
-		  <child>
-		    <widget class="GtkVBox" id="vbox16">
-		      <property name="visible">True</property>
-		      <property name="homogeneous">True</property>
-		      <property name="spacing">6</property>
-
-		      <child>
-			<widget class="GtkLabel" id="label207">
-			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">Latitude:</property>
-			  <property name="use_underline">False</property>
-			  <property name="use_markup">False</property>
-			  <property name="justify">GTK_JUSTIFY_LEFT</property>
-			  <property name="wrap">False</property>
-			  <property name="selectable">False</property>
-			  <property name="xalign">0</property>
-			  <property name="yalign">0.5</property>
-			  <property name="xpad">0</property>
-			  <property name="ypad">0</property>
-			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			  <property name="width_chars">-1</property>
-			  <property name="single_line_mode">False</property>
-			  <property name="angle">0</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="left_attach">0</property>
-		      <property name="right_attach">1</property>
-		      <property name="top_attach">2</property>
-		      <property name="bottom_attach">3</property>
-		      <property name="x_options">fill</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkLabel" id="label208">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Longitude:</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
-		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		      <property name="width_chars">-1</property>
-		      <property name="single_line_mode">False</property>
-		      <property name="angle">0</property>
-		    </widget>
-		    <packing>
-		      <property name="left_attach">0</property>
-		      <property name="right_attach">1</property>
-		      <property name="top_attach">3</property>
-		      <property name="bottom_attach">4</property>
-		      <property name="x_options">fill</property>
-		      <property name="y_options"></property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkEntry" id="edit-location-longitude-entryx">
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="editable">True</property>
-		      <property name="visibility">True</property>
-		      <property name="max_length">0</property>
-		      <property name="text" translatable="yes"></property>
-		      <property name="has_frame">True</property>
-		      <property name="invisible_char">â</property>
-		      <property name="activates_default">False</property>
-		    </widget>
-		    <packing>
-		      <property name="left_attach">1</property>
-		      <property name="right_attach">2</property>
-		      <property name="top_attach">3</property>
-		      <property name="bottom_attach">4</property>
-		      <property name="y_options"></property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkComboBox" id="edit-location-longitude-combox">
-		      <property name="visible">True</property>
-		      <property name="items" translatable="yes">East
-West</property>
-		      <property name="add_tearoffs">False</property>
-		      <property name="focus_on_click">True</property>
-		    </widget>
-		    <packing>
-		      <property name="left_attach">2</property>
-		      <property name="right_attach">3</property>
-		      <property name="top_attach">3</property>
-		      <property name="bottom_attach">4</property>
-		      <property name="x_options">fill</property>
-		      <property name="y_options">fill</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkLabel" id="label206">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">&lt;i&gt;(optional)&lt;/i&gt;</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">True</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
-		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		      <property name="width_chars">-1</property>
-		      <property name="single_line_mode">False</property>
-		      <property name="angle">0</property>
-		    </widget>
-		    <packing>
-		      <property name="left_attach">3</property>
-		      <property name="right_attach">4</property>
-		      <property name="top_attach">3</property>
-		      <property name="bottom_attach">4</property>
-		      <property name="x_options">fill</property>
-		      <property name="y_options"></property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkLabel" id="label205">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">&lt;i&gt;(optional)&lt;/i&gt;</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">True</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
-		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		      <property name="width_chars">-1</property>
-		      <property name="single_line_mode">False</property>
-		      <property name="angle">0</property>
-		    </widget>
-		    <packing>
-		      <property name="left_attach">3</property>
-		      <property name="right_attach">4</property>
-		      <property name="top_attach">2</property>
-		      <property name="bottom_attach">3</property>
-		      <property name="x_options">fill</property>
-		      <property name="y_options"></property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkComboBox" id="edit-location-latitude-combox">
-		      <property name="visible">True</property>
-		      <property name="items" translatable="yes">North
-South</property>
-		      <property name="add_tearoffs">False</property>
-		      <property name="focus_on_click">True</property>
-		    </widget>
-		    <packing>
-		      <property name="left_attach">2</property>
-		      <property name="right_attach">3</property>
-		      <property name="top_attach">2</property>
-		      <property name="bottom_attach">3</property>
-		      <property name="x_options">fill</property>
-		      <property name="y_options">fill</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkEntry" id="edit-location-latitude-entryx">
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="editable">True</property>
-		      <property name="visibility">True</property>
-		      <property name="max_length">0</property>
-		      <property name="text" translatable="yes"></property>
-		      <property name="has_frame">True</property>
-		      <property name="invisible_char">â</property>
-		      <property name="activates_default">False</property>
-		    </widget>
-		    <packing>
-		      <property name="left_attach">1</property>
-		      <property name="right_attach">2</property>
-		      <property name="top_attach">2</property>
-		      <property name="bottom_attach">3</property>
-		      <property name="y_options"></property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkLabel" id="label175">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Location Name:</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
-		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		      <property name="width_chars">-1</property>
-		      <property name="single_line_mode">False</property>
-		      <property name="angle">0</property>
-		    </widget>
-		    <packing>
-		      <property name="left_attach">0</property>
-		      <property name="right_attach">1</property>
-		      <property name="top_attach">0</property>
-		      <property name="bottom_attach">1</property>
-		      <property name="x_options">fill</property>
-		      <property name="y_options"></property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkLabel" id="label174">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Timezone:</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
-		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		      <property name="width_chars">-1</property>
-		      <property name="single_line_mode">False</property>
-		      <property name="angle">0</property>
-		    </widget>
-		    <packing>
-		      <property name="left_attach">0</property>
-		      <property name="right_attach">1</property>
-		      <property name="top_attach">1</property>
-		      <property name="bottom_attach">2</property>
-		      <property name="x_options">fill</property>
-		      <property name="y_options"></property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkHBox" id="hbox55">
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">6</property>
-
-		      <child>
-			<widget class="GtkEntry" id="edit-location-name-entryx">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="editable">True</property>
-			  <property name="visibility">True</property>
-			  <property name="max_length">0</property>
-			  <property name="text" translatable="yes"></property>
-			  <property name="has_frame">True</property>
-			  <property name="invisible_char">â</property>
-			  <property name="activates_default">False</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">True</property>
-			  <property name="fill">True</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkButton" id="find-location-buttonx">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="label" translatable="yes">Find...</property>
-			  <property name="use_underline">True</property>
-			  <property name="relief">GTK_RELIEF_NORMAL</property>
-			  <property name="focus_on_click">True</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="left_attach">1</property>
-		      <property name="right_attach">4</property>
-		      <property name="top_attach">0</property>
-		      <property name="bottom_attach">1</property>
-		      <property name="x_options">fill</property>
-		      <property name="y_options">fill</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkComboBoxEntry" id="edit-location-timezone-combox">
-		      <property name="visible">True</property>
-		      <property name="items">Dummy Item</property>
-		      <property name="add_tearoffs">False</property>
-		      <property name="has_frame">True</property>
-		      <property name="focus_on_click">True</property>
-		    </widget>
-		    <packing>
-		      <property name="left_attach">1</property>
-		      <property name="right_attach">4</property>
-		      <property name="top_attach">1</property>
-		      <property name="bottom_attach">2</property>
-		      <property name="x_options">fill</property>
-		      <property name="y_options">fill</property>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">True</property>
-		  <property name="fill">True</property>
-		</packing>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">0</property>
-	      <property name="right_attach">3</property>
-	      <property name="top_attach">0</property>
-	      <property name="bottom_attach">1</property>
-	      <property name="y_options"></property>
-	    </packing>
-	  </child>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">True</property>
-	  <property name="fill">True</property>
-	</packing>
-      </child>
-
-      <child>
-	<widget class="GtkHButtonBox" id="hbuttonbox20">
-	  <property name="visible">True</property>
-	  <property name="layout_style">GTK_BUTTONBOX_END</property>
-	  <property name="spacing">6</property>
-
-	  <child>
-	    <widget class="GtkButton" id="edit-location-cancel-buttonx">
-	      <property name="visible">True</property>
-	      <property name="can_default">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="label">gtk-cancel</property>
-	      <property name="use_stock">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">True</property>
-	    </widget>
-	  </child>
-
-	  <child>
-	    <widget class="GtkButton" id="edit-location-ok-buttonx">
-	      <property name="visible">True</property>
-	      <property name="can_default">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="label">gtk-ok</property>
-	      <property name="use_stock">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">True</property>
-	    </widget>
-	  </child>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">False</property>
-	  <property name="fill">False</property>
-	</packing>
-      </child>
-    </widget>
-  </child>
-</widget>
-
-<widget class="GtkWindow" id="find-location-windowx">
-  <property name="title" translatable="yes"></property>
-  <property name="type">GTK_WINDOW_TOPLEVEL</property>
-  <property name="window_position">GTK_WIN_POS_NONE</property>
-  <property name="modal">False</property>
-  <property name="default_width">400</property>
-  <property name="default_height">500</property>
-  <property name="resizable">True</property>
-  <property name="destroy_with_parent">False</property>
-  <property name="decorated">True</property>
-  <property name="skip_taskbar_hint">False</property>
-  <property name="skip_pager_hint">False</property>
-  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
-  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
-  <property name="urgency_hint">False</property>
-
-  <child>
-    <widget class="GtkVBox" id="vbox25">
-      <property name="border_width">12</property>
-      <property name="visible">True</property>
-      <property name="homogeneous">False</property>
-      <property name="spacing">24</property>
-
-      <child>
-	<widget class="GtkVBox" id="vbox26">
-	  <property name="visible">True</property>
-	  <property name="homogeneous">False</property>
-	  <property name="spacing">6</property>
-
-	  <child>
-	    <widget class="GtkScrolledWindow" id="scrolledwindow11">
-	      <property name="visible">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-	      <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-	      <property name="shadow_type">GTK_SHADOW_IN</property>
-	      <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
-	      <child>
-		<widget class="GtkTreeView" id="find-location-treex">
-		  <property name="visible">True</property>
-		  <property name="can_focus">True</property>
-		  <property name="headers_visible">False</property>
-		  <property name="rules_hint">False</property>
-		  <property name="reorderable">False</property>
-		  <property name="enable_search">False</property>
-		  <property name="fixed_height_mode">False</property>
-		  <property name="hover_selection">False</property>
-		  <property name="hover_expand">False</property>
-		</widget>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="padding">0</property>
-	      <property name="expand">True</property>
-	      <property name="fill">True</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkHBox" id="hbox56">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">6</property>
-
-	      <child>
-		<widget class="GtkLabel" id="label221">
-		  <property name="visible">True</property>
-		  <property name="label" translatable="yes">_Find:</property>
-		  <property name="use_underline">True</property>
-		  <property name="use_markup">False</property>
-		  <property name="justify">GTK_JUSTIFY_LEFT</property>
-		  <property name="wrap">False</property>
-		  <property name="selectable">False</property>
-		  <property name="xalign">0.5</property>
-		  <property name="yalign">0.5</property>
-		  <property name="xpad">0</property>
-		  <property name="ypad">0</property>
-		  <property name="mnemonic_widget">find-location-entryx</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkEntry" id="find-location-entryx">
-		  <property name="visible">True</property>
-		  <property name="can_focus">True</property>
-		  <property name="editable">True</property>
-		  <property name="visibility">True</property>
-		  <property name="max_length">0</property>
-		  <property name="text" translatable="yes"></property>
-		  <property name="has_frame">True</property>
-		  <property name="invisible_char">â</property>
-		  <property name="activates_default">False</property>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">True</property>
-		  <property name="fill">True</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkButton" id="find-next-location-buttonx">
-		  <property name="visible">True</property>
-		  <property name="can_focus">True</property>
-		  <property name="relief">GTK_RELIEF_NORMAL</property>
-		  <property name="focus_on_click">True</property>
-
-		  <child>
-		    <widget class="GtkAlignment" id="alignment31">
-		      <property name="visible">True</property>
-		      <property name="xalign">0.5</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xscale">0</property>
-		      <property name="yscale">0</property>
-		      <property name="top_padding">0</property>
-		      <property name="bottom_padding">0</property>
-		      <property name="left_padding">0</property>
-		      <property name="right_padding">0</property>
-
-		      <child>
-			<widget class="GtkHBox" id="hbox57">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">2</property>
-
-			  <child>
-			    <widget class="GtkImage" id="image29">
-			      <property name="visible">True</property>
-			      <property name="stock">gtk-find</property>
-			      <property name="icon_size">4</property>
-			      <property name="xalign">0.5</property>
-			      <property name="yalign">0.5</property>
-			      <property name="xpad">0</property>
-			      <property name="ypad">0</property>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkLabel" id="label222">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">Find _Next</property>
-			      <property name="use_underline">True</property>
-			      <property name="use_markup">False</property>
-			      <property name="justify">GTK_JUSTIFY_LEFT</property>
-			      <property name="wrap">False</property>
-			      <property name="selectable">False</property>
-			      <property name="xalign">0.5</property>
-			      <property name="yalign">0.5</property>
-			      <property name="xpad">0</property>
-			      <property name="ypad">0</property>
-			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			      <property name="width_chars">-1</property>
-			      <property name="single_line_mode">False</property>
-			      <property name="angle">0</property>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
-			</widget>
-		      </child>
-		    </widget>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="padding">0</property>
-	      <property name="expand">False</property>
-	      <property name="fill">False</property>
-	    </packing>
-	  </child>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">True</property>
-	  <property name="fill">True</property>
-	</packing>
-      </child>
-
-      <child>
-	<widget class="GtkHButtonBox" id="hbuttonbox19">
-	  <property name="visible">True</property>
-	  <property name="layout_style">GTK_BUTTONBOX_END</property>
-	  <property name="spacing">0</property>
-
-	  <child>
-	    <widget class="GtkButton" id="find-location-cancel-buttonx">
-	      <property name="visible">True</property>
-	      <property name="can_default">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="label">gtk-cancel</property>
-	      <property name="use_stock">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">True</property>
-	    </widget>
-	  </child>
-
-	  <child>
-	    <widget class="GtkButton" id="find-location-ok-buttonx">
-	      <property name="visible">True</property>
-	      <property name="can_default">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="label">gtk-ok</property>
-	      <property name="use_stock">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">True</property>
-	    </widget>
-	  </child>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">False</property>
-	  <property name="fill">False</property>
-	</packing>
-      </child>
-    </widget>
-  </child>
-</widget>
-
 <widget class="GtkDialog" id="prefs-window">
   <property name="border_width">5</property>
   <property name="title" translatable="yes">Clock Preferences</property>
@@ -2222,69 +1510,40 @@
 		  </child>
 
 		  <child>
-		    <widget class="GtkHBox" id="hbox62">
+		    <widget class="GtkVBox" id="edit-location-timezone-box">
 		      <property name="visible">True</property>
 		      <property name="homogeneous">False</property>
-		      <property name="spacing">6</property>
-
-		      <child>
-			<widget class="GtkEntry" id="edit-location-name-entry">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="editable">True</property>
-			  <property name="visibility">True</property>
-			  <property name="max_length">0</property>
-			  <property name="text" translatable="yes"></property>
-			  <property name="has_frame">True</property>
-			  <property name="invisible_char">â</property>
-			  <property name="activates_default">False</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">True</property>
-			  <property name="fill">True</property>
-			</packing>
-		      </child>
+		      <property name="spacing">0</property>
 
 		      <child>
-			<widget class="GtkButton" id="find-location-button">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="label" translatable="yes">Find...</property>
-			  <property name="use_underline">True</property>
-			  <property name="relief">GTK_RELIEF_NORMAL</property>
-			  <property name="focus_on_click">True</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
+			<placeholder/>
 		      </child>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">1</property>
 		      <property name="right_attach">4</property>
-		      <property name="top_attach">0</property>
-		      <property name="bottom_attach">1</property>
+		      <property name="top_attach">1</property>
+		      <property name="bottom_attach">2</property>
 		      <property name="x_options">fill</property>
 		      <property name="y_options">fill</property>
 		    </packing>
 		  </child>
 
 		  <child>
-		    <widget class="GtkComboBoxEntry" id="edit-location-timezone-combo">
+		    <widget class="GtkVBox" id="edit-location-name-box">
 		      <property name="visible">True</property>
-		      <property name="items">Dummy Item</property>
-		      <property name="add_tearoffs">False</property>
-		      <property name="has_frame">True</property>
-		      <property name="focus_on_click">True</property>
+		      <property name="homogeneous">False</property>
+		      <property name="spacing">0</property>
+
+		      <child>
+			<placeholder/>
+		      </child>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">1</property>
 		      <property name="right_attach">4</property>
-		      <property name="top_attach">1</property>
-		      <property name="bottom_attach">2</property>
+		      <property name="top_attach">0</property>
+		      <property name="bottom_attach">1</property>
 		      <property name="x_options">fill</property>
 		      <property name="y_options">fill</property>
 		    </packing>
@@ -2316,251 +1575,4 @@
   </child>
 </widget>
 
-<widget class="GtkDialog" id="find-location-window">
-  <property name="border_width">5</property>
-  <property name="title" translatable="yes"></property>
-  <property name="type">GTK_WINDOW_TOPLEVEL</property>
-  <property name="window_position">GTK_WIN_POS_NONE</property>
-  <property name="modal">False</property>
-  <property name="default_width">400</property>
-  <property name="default_height">300</property>
-  <property name="resizable">True</property>
-  <property name="destroy_with_parent">False</property>
-  <property name="decorated">True</property>
-  <property name="skip_taskbar_hint">False</property>
-  <property name="skip_pager_hint">False</property>
-  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
-  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
-  <property name="urgency_hint">False</property>
-  <property name="has_separator">False</property>
-
-  <child internal-child="vbox">
-    <widget class="GtkVBox" id="dialog-vbox4">
-      <property name="visible">True</property>
-      <property name="homogeneous">False</property>
-      <property name="spacing">0</property>
-
-      <child internal-child="action_area">
-	<widget class="GtkHButtonBox" id="dialog-action_area4">
-	  <property name="visible">True</property>
-	  <property name="layout_style">GTK_BUTTONBOX_END</property>
-
-	  <child>
-	    <widget class="GtkButton" id="find-location-cancel-button">
-	      <property name="visible">True</property>
-	      <property name="can_default">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="label">gtk-cancel</property>
-	      <property name="use_stock">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">True</property>
-	      <property name="response_id">-6</property>
-	    </widget>
-	  </child>
-
-	  <child>
-	    <widget class="GtkButton" id="find-location-ok-button">
-	      <property name="visible">True</property>
-	      <property name="can_default">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="label">gtk-ok</property>
-	      <property name="use_stock">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">True</property>
-	      <property name="response_id">-5</property>
-	    </widget>
-	  </child>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">False</property>
-	  <property name="fill">True</property>
-	  <property name="pack_type">GTK_PACK_END</property>
-	</packing>
-      </child>
-
-      <child>
-	<widget class="GtkVBox" id="vbox36">
-	  <property name="border_width">5</property>
-	  <property name="visible">True</property>
-	  <property name="homogeneous">False</property>
-	  <property name="spacing">6</property>
-
-	  <child>
-	    <widget class="GtkScrolledWindow" id="find-location-scroll">
-	      <property name="visible">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-	      <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-	      <property name="shadow_type">GTK_SHADOW_IN</property>
-	      <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
-	      <child>
-		<widget class="GtkTreeView" id="find-location-tree">
-		  <property name="visible">True</property>
-		  <property name="can_focus">True</property>
-		  <property name="headers_visible">False</property>
-		  <property name="rules_hint">False</property>
-		  <property name="reorderable">False</property>
-		  <property name="enable_search">False</property>
-		  <property name="fixed_height_mode">False</property>
-		  <property name="hover_selection">False</property>
-		  <property name="hover_expand">False</property>
-		</widget>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="padding">0</property>
-	      <property name="expand">True</property>
-	      <property name="fill">True</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkHBox" id="hbox63">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">6</property>
-
-	      <child>
-		<widget class="GtkLabel" id="label243">
-		  <property name="visible">True</property>
-		  <property name="label" translatable="yes">_Find:</property>
-		  <property name="use_underline">True</property>
-		  <property name="use_markup">False</property>
-		  <property name="justify">GTK_JUSTIFY_LEFT</property>
-		  <property name="wrap">False</property>
-		  <property name="selectable">False</property>
-		  <property name="xalign">0.5</property>
-		  <property name="yalign">0.5</property>
-		  <property name="xpad">0</property>
-		  <property name="ypad">0</property>
-		  <property name="mnemonic_widget">find-location-entry</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkEntry" id="find-location-entry">
-		  <property name="visible">True</property>
-		  <property name="can_focus">True</property>
-		  <property name="editable">True</property>
-		  <property name="visibility">True</property>
-		  <property name="max_length">0</property>
-		  <property name="text" translatable="yes"></property>
-		  <property name="has_frame">True</property>
-		  <property name="invisible_char">â</property>
-		  <property name="activates_default">False</property>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">True</property>
-		  <property name="fill">True</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkButton" id="find-next-location-button">
-		  <property name="visible">True</property>
-		  <property name="can_focus">True</property>
-		  <property name="relief">GTK_RELIEF_NORMAL</property>
-		  <property name="focus_on_click">True</property>
-
-		  <child>
-		    <widget class="GtkAlignment" id="alignment35">
-		      <property name="visible">True</property>
-		      <property name="xalign">0.5</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xscale">0</property>
-		      <property name="yscale">0</property>
-		      <property name="top_padding">0</property>
-		      <property name="bottom_padding">0</property>
-		      <property name="left_padding">0</property>
-		      <property name="right_padding">0</property>
-
-		      <child>
-			<widget class="GtkHBox" id="hbox64">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">2</property>
-
-			  <child>
-			    <widget class="GtkImage" id="image31">
-			      <property name="visible">True</property>
-			      <property name="stock">gtk-find</property>
-			      <property name="icon_size">4</property>
-			      <property name="xalign">0.5</property>
-			      <property name="yalign">0.5</property>
-			      <property name="xpad">0</property>
-			      <property name="ypad">0</property>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkLabel" id="label244">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">Find _Next</property>
-			      <property name="use_underline">True</property>
-			      <property name="use_markup">False</property>
-			      <property name="justify">GTK_JUSTIFY_LEFT</property>
-			      <property name="wrap">False</property>
-			      <property name="selectable">False</property>
-			      <property name="xalign">0.5</property>
-			      <property name="yalign">0.5</property>
-			      <property name="xpad">0</property>
-			      <property name="ypad">0</property>
-			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			      <property name="width_chars">-1</property>
-			      <property name="single_line_mode">False</property>
-			      <property name="angle">0</property>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
-			</widget>
-		      </child>
-		    </widget>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="padding">0</property>
-	      <property name="expand">False</property>
-	      <property name="fill">False</property>
-	    </packing>
-	  </child>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">True</property>
-	  <property name="fill">True</property>
-	</packing>
-      </child>
-    </widget>
-  </child>
-</widget>
-
 </glade-interface>



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