[gnome-control-center/wip/datetime-redesign: 6/13] datetime: Implement listbox based overview
- From: Kalev Lember <klember src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-control-center/wip/datetime-redesign: 6/13] datetime: Implement listbox based overview
- Date: Mon, 19 Aug 2013 11:13:00 +0000 (UTC)
commit 6289817b662df7cd6350cc88d38a27168731fe1c
Author: Kalev Lember <kalevlember gmail com>
Date: Mon Jul 29 16:32:04 2013 +0200
datetime: Implement listbox based overview
... and move existing date/time and timezone settings to separate subdialogs.
https://bugzilla.gnome.org/show_bug.cgi?id=694985
panels/datetime/cc-datetime-panel.c | 163 +++++-
panels/datetime/datetime.ui | 1099 ++++++++++++++++++++++-------------
2 files changed, 850 insertions(+), 412 deletions(-)
---
diff --git a/panels/datetime/cc-datetime-panel.c b/panels/datetime/cc-datetime-panel.c
index b384b11..6170149 100644
--- a/panels/datetime/cc-datetime-panel.c
+++ b/panels/datetime/cc-datetime-panel.c
@@ -1,5 +1,6 @@
/*
* Copyright (C) 2010 Intel, Inc
+ * Copyright (C) 2013 Kalev Lember <kalevlember gmail com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -269,6 +270,15 @@ update_time (CcDateTimePanel *self)
label = g_date_time_format (priv->date, "%M");
gtk_label_set_text (GTK_LABEL (W("minutes_label")), label);
g_free (label);
+
+ /* Update the time on the listbow row */
+ if (use_ampm)
+ label = g_date_time_format (priv->date, "%e %B %Y, %l:%M %p");
+ else
+ label = g_date_time_format (priv->date, "%e %B %Y, %R");
+
+ gtk_label_set_text (GTK_LABEL (W ("datetime_label")), label);
+ g_free (label);
}
static void
@@ -447,6 +457,8 @@ update_timezone (CcDateTimePanel *self)
gchar **split;
GtkTreeIter iter;
GtkTreeModel *model;
+ TzInfo *tz_info;
+ char *label;
/* tz.c updates the local timezone, which means the spin buttons can be
* updated with the current time of the new location */
@@ -503,6 +515,16 @@ update_timezone (CcDateTimePanel *self)
while (gtk_tree_model_iter_next (model, &iter));
g_strfreev (split);
+
+ /* Update the timezone on the listbow row */
+ tz_info = tz_info_from_location (self->priv->current_location);
+ label = g_strdup_printf ("%s (%s)",
+ tz_info->tzname_normal,
+ self->priv->current_location->zone);
+ tz_info_free (tz_info);
+
+ gtk_label_set_text (GTK_LABEL (W ("timezone_label")), label);
+ g_free (label);
}
static void
@@ -685,8 +707,7 @@ update_widget_state_for_ntp (CcDateTimePanel *panel,
/* need to check polkit before revealing to user */
allowed = (! priv->permission || g_permission_get_allowed (priv->permission));
- gtk_widget_set_sensitive (W("table1"), !using_ntp && allowed);
- gtk_widget_set_sensitive (W("table2"), !using_ntp && allowed);
+ gtk_widget_set_sensitive (W("datetime-button"), !using_ntp && allowed);
}
static void
@@ -796,10 +817,16 @@ on_permission_changed (GPermission *permission,
using_ntp = gtk_switch_get_active (GTK_SWITCH (W("network_time_switch")));
/* All the widgets but the lock button and the 24h setting */
- gtk_widget_set_sensitive (W("map-vbox"), allowed);
- gtk_widget_set_sensitive (W("hbox2"), allowed);
- gtk_widget_set_sensitive (W("alignment2"), allowed);
+ gtk_widget_set_sensitive (W("auto-datetime-row"), allowed);
+ gtk_widget_set_sensitive (W("timezone-button"), allowed);
update_widget_state_for_ntp (data, using_ntp);
+
+ /* Hide the subdialogs if we no longer have permissions */
+ if (!allowed)
+ {
+ gtk_widget_hide (GTK_WIDGET (W ("datetime-dialog")));
+ gtk_widget_hide (GTK_WIDGET (W ("timezone-dialog")));
+ }
}
static void
@@ -936,11 +963,114 @@ reorder_date_widget (DateEndianess endianess,
}
static void
+update_header (GtkListBoxRow *row,
+ GtkListBoxRow *before,
+ gpointer user_data)
+{
+ GtkWidget *current;
+
+ if (before == NULL)
+ return;
+
+ current = gtk_list_box_row_get_header (row);
+ if (current == NULL)
+ {
+ current = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
+ gtk_widget_show (current);
+ gtk_list_box_row_set_header (row, current);
+ }
+}
+
+static void
+run_dialog (CcDateTimePanel *self,
+ const gchar *dialog_name)
+{
+ CcDateTimePanelPrivate *priv = self->priv;
+ GtkWidget *dialog, *parent;
+
+ dialog = W (dialog_name);
+
+ parent = cc_shell_get_toplevel (cc_panel_get_shell (CC_PANEL (self)));
+
+ gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (parent));
+ gtk_dialog_run (GTK_DIALOG (dialog));
+}
+
+static void
+list_box_row_activated (GtkListBox *listbox,
+ GtkListBoxRow *row,
+ CcDateTimePanel *self)
+
+{
+ gchar *widget_name, *found;
+
+ widget_name = g_strdup (gtk_buildable_get_name (GTK_BUILDABLE (row)));
+
+ if (!widget_name)
+ return;
+
+ gtk_list_box_select_row (listbox, NULL);
+
+ /* replace "button" with "dialog" */
+ found = g_strrstr (widget_name, "button");
+
+ if (!found)
+ goto out;
+
+ memcpy (found, "dialog", 6);
+
+ run_dialog (self, widget_name);
+
+out:
+ g_free (widget_name);
+}
+
+static void
+setup_main_listview (CcDateTimePanel *self)
+{
+ CcDateTimePanelPrivate *priv = self->priv;
+ GtkWidget *listbox;
+
+ listbox = W ("listbox");
+ gtk_list_box_set_header_func (GTK_LIST_BOX (listbox), update_header, NULL, NULL);
+ g_signal_connect (listbox, "row-activated",
+ G_CALLBACK (list_box_row_activated), self);
+}
+
+static void
+setup_timezone_dialog (CcDateTimePanel *self)
+{
+ CcDateTimePanelPrivate *priv = self->priv;
+ GtkWidget *button;
+ GtkWidget *dialog;
+
+ button = W ("timezone-close-button");
+ dialog = W ("timezone-dialog");
+ g_signal_connect_swapped (button, "clicked",
+ G_CALLBACK (gtk_widget_hide), dialog);
+ g_signal_connect (dialog, "delete-event",
+ G_CALLBACK (gtk_widget_hide_on_delete), NULL);
+}
+
+static void
+setup_datetime_dialog (CcDateTimePanel *self)
+{
+ CcDateTimePanelPrivate *priv = self->priv;
+ GtkWidget *button;
+ GtkWidget *dialog;
+
+ button = W ("datetime-close-button");
+ dialog = W ("datetime-dialog");
+ g_signal_connect_swapped (button, "clicked",
+ G_CALLBACK (gtk_widget_hide), dialog);
+ g_signal_connect (dialog, "delete-event",
+ G_CALLBACK (gtk_widget_hide_on_delete), NULL);
+}
+
+static void
cc_date_time_panel_init (CcDateTimePanel *self)
{
CcDateTimePanelPrivate *priv;
- gchar *objects[] = { "datetime-panel", "region-liststore", "city-liststore",
- "month-liststore", "city-modelfilter", "city-modelsort", NULL };
char *buttons[] = { "hour_up_button", "hour_down_button", "min_up_button",
"min_down_button", "ampm_up_button", "ampm_down_button" };
GtkWidget *widget;
@@ -971,9 +1101,9 @@ cc_date_time_panel_init (CcDateTimePanel *self)
}
priv->builder = gtk_builder_new ();
- ret = gtk_builder_add_objects_from_resource (priv->builder,
- "/org/gnome/control-center/datetime/datetime.ui",
- objects, &err);
+ ret = gtk_builder_add_from_resource (priv->builder,
+ "/org/gnome/control-center/datetime/datetime.ui",
+ &error);
if (ret == 0)
{
@@ -983,6 +1113,10 @@ cc_date_time_panel_init (CcDateTimePanel *self)
return;
}
+ setup_timezone_dialog (self);
+ setup_datetime_dialog (self);
+ setup_main_listview (self);
+
/* set up network time button */
if (priv->dtm != NULL)
{
@@ -1057,10 +1191,11 @@ cc_date_time_panel_init (CcDateTimePanel *self)
priv->ampm_available = TRUE;
}
- gtk_container_add (GTK_CONTAINER (self),
- GTK_WIDGET (gtk_builder_get_object (priv->builder,
- "datetime-panel")));
-
+ widget = W ("vbox_datetime");
+ g_object_ref (widget);
+ gtk_widget_unparent (widget);
+ gtk_container_add (GTK_CONTAINER (self), widget);
+ g_object_unref (widget);
/* setup the time itself */
priv->clock_tracker = g_object_new (GNOME_TYPE_WALL_CLOCK, NULL);
diff --git a/panels/datetime/datetime.ui b/panels/datetime/datetime.ui
index b0faa0c..d12bcdc 100644
--- a/panels/datetime/datetime.ui
+++ b/panels/datetime/datetime.ui
@@ -76,442 +76,769 @@
</row>
</data>
</object>
- <object class="GtkListStore" id="region-liststore">
- <columns>
- <!-- column-name region -->
- <column type="gchararray"/>
- <!-- column-name region-translated -->
- <column type="gchararray"/>
- </columns>
- </object>
- <object class="GtkWindow" id="window1">
+ <object class="GtkDialog" id="datetime-dialog">
<property name="can_focus">False</property>
- <child>
- <object class="GtkAlignment" id="datetime-panel">
- <property name="visible">True</property>
+ <property name="title" translatable="yes">Date & Time</property>
+ <property name="resizable">False</property>
+ <property name="type_hint">dialog</property>
+ <child internal-child="vbox">
+ <object class="GtkBox" id="dialog-vbox2">
<property name="can_focus">False</property>
- <property name="top_padding">16</property>
- <property name="bottom_padding">16</property>
- <property name="left_padding">16</property>
- <property name="right_padding">16</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">2</property>
+ <child internal-child="action_area">
+ <object class="GtkButtonBox" id="dialog-action_area2">
+ <property name="can_focus">False</property>
+ <property name="layout_style">end</property>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <object class="GtkButton" id="datetime-close-button">
+ <property name="label">gtk-close</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="has_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_stock">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">end</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
<child>
- <object class="GtkVBox" id="hbox">
+ <object class="GtkVBox" id="time-box">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
- <object class="GtkHBox" id="vbox">
+ <object class="GtkAlignment" id="alignment2">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="spacing">24</property>
+ <property name="xscale">0</property>
<child>
- <object class="GtkVBox" id="map-vbox">
+ <object class="GtkTable" id="table2">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="spacing">6</property>
+ <property name="n_rows">3</property>
+ <property name="n_columns">4</property>
+ <property name="column_spacing">12</property>
+ <property name="row_spacing">6</property>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" comments="Translator: this is the
separator between hours and minutes, like in HH:MM">:</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ <attribute name="scale" value="2.5"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <object class="GtkLabel" id="hours_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label">16</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ <attribute name="scale" value="2.5"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ </packing>
+ </child>
<child>
- <object class="GtkAspectFrame" id="aspectmap">
+ <object class="GtkLabel" id="minutes_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label">45</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ <attribute name="scale" value="2.5"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="left_attach">2</property>
+ <property name="right_attach">3</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="hour_up_button">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="relief">none</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="hour_up_accessible">
+ <property name="accessible-description" translatable="yes">Set the time one hour
ahead.</property>
+ </object>
+ </child>
<child>
- <placeholder/>
+ <object class="GtkArrow" id="arrow1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="arrow_type">up</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton" id="hour_down_button">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="relief">none</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="hour_down_accessible">
+ <property name="accessible-description" translatable="yes">Set the time one hour
back.</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkArrow" id="arrow2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="arrow_type">down</property>
+ </object>
</child>
</object>
<packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">0</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
</packing>
</child>
<child>
- <object class="GtkHBox" id="hbox1">
+ <object class="GtkButton" id="min_up_button">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">12</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="relief">none</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="min_up_accessible">
+ <property name="accessible-description" translatable="yes">Set the time one
minute ahead.</property>
+ </object>
+ </child>
<child>
- <object class="GtkLabel" id="label1">
+ <object class="GtkArrow" id="arrow4">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">_Region:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">region_combobox</property>
+ <property name="arrow_type">up</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">2</property>
+ <property name="right_attach">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="min_down_button">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="relief">none</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="min_down_accessible">
+ <property name="accessible-description" translatable="yes">Set the time one
minute back.</property>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
</child>
<child>
- <object class="GtkComboBox" id="region_combobox">
+ <object class="GtkArrow" id="arrow3">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="model">region-liststore</property>
- <child>
- <object class="GtkCellRendererText" id="cellrenderertext1"/>
- <attributes>
- <attribute name="text">1</attribute>
- </attributes>
- </child>
+ <property name="arrow_type">down</property>
+ </object>
+ </child>
+ </object>
+ <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>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="ampm_label">
+ <property name="can_focus">False</property>
+ <property name="label">AM</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ <attribute name="scale" value="2.5"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="left_attach">3</property>
+ <property name="right_attach">4</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="ampm_up_button">
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="relief">none</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="ampm_up_accessible">
+ <property name="accessible-description" translatable="yes">Switch between AM and
PM.</property>
</object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
</child>
<child>
- <object class="GtkLabel" id="label4">
+ <object class="GtkArrow" id="arrow5">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">_City:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">city_combobox</property>
+ <property name="arrow_type">up</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">3</property>
+ <property name="right_attach">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="ampm_down_button">
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="relief">none</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="ampm_down_accessible">
+ <property name="accessible-description" translatable="yes">Switch between AM and
PM.</property>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
</child>
<child>
- <object class="GtkComboBox" id="city_combobox">
+ <object class="GtkArrow" id="arrow6">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="model">city-modelsort</property>
- <child>
- <object class="GtkCellRendererText" id="cellrenderertext2"/>
- <attributes>
- <attribute name="text">2</attribute>
- </attributes>
- </child>
+ <property name="arrow_type">down</property>
</object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">3</property>
- </packing>
</child>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">end</property>
- <property name="position">1</property>
+ <property name="left_attach">3</property>
+ <property name="right_attach">4</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
</packing>
</child>
</object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">12</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkHBox" id="table1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkComboBox" id="month-combobox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="model">month-liststore</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="month-accessible">
+ <property name="accessible-description" translatable="yes">Month</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderertext3"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="day-spinbutton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="invisible_char">•</property>
+ <property name="width_chars">3</property>
+ <property name="numeric">True</property>
+ <property name="wrap">True</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="day-accessible">
+ <property name="accessible-description" translatable="yes">Day</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="year-spinbutton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="invisible_char">•</property>
+ <property name="width_chars">5</property>
+ <property name="numeric">True</property>
+ <property name="wrap">True</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="year-accessible">
+ <property name="accessible-description" translatable="yes">Year</property>
+ </object>
+ </child>
+ </object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">12</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="24h_box">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkRadioButton" id="24h_button">
+ <property name="label" translatable="yes">24-hour</property>
+ <property name="use_action_appearance">False</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="xalign">0</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton" id="12h_button">
+ <property name="label" translatable="yes">AM/PM</property>
+ <property name="use_action_appearance">False</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="xalign">0</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">24h_button</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">end</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ <object class="GtkListStore" id="region-liststore">
+ <columns>
+ <!-- column-name region -->
+ <column type="gchararray"/>
+ <!-- column-name region-translated -->
+ <column type="gchararray"/>
+ </columns>
+ </object>
+ <object class="GtkDialog" id="timezone-dialog">
+ <property name="can_focus">False</property>
+ <property name="title" translatable="yes">Time Zone</property>
+ <property name="resizable">False</property>
+ <property name="type_hint">dialog</property>
+ <child internal-child="vbox">
+ <object class="GtkBox" id="dialog-vbox7">
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">2</property>
+ <child>
+ <object class="GtkVBox" id="map-vbox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkAspectFrame" id="aspectmap">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">none</property>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkHBox" id="hbox1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkLabel" id="label1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">_Region:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">region_combobox</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
- <object class="GtkVBox" id="vbox4">
+ <object class="GtkComboBox" id="region_combobox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="model">region-liststore</property>
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderertext1"/>
+ <attributes>
+ <attribute name="text">1</attribute>
+ </attributes>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label4">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">_City:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">city_combobox</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="city_combobox">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="model">city-modelsort</property>
<child>
- <object class="GtkHBox" id="hbox2">
+ <object class="GtkCellRendererText" id="cellrenderertext2"/>
+ <attributes>
+ <attribute name="text">2</attribute>
+ </attributes>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">end</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child internal-child="action_area">
+ <object class="GtkButtonBox" id="dialog-action_area3">
+ <property name="can_focus">False</property>
+ <property name="layout_style">end</property>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <object class="GtkButton" id="timezone-close-button">
+ <property name="label">gtk-close</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="has_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_stock">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">end</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ <object class="GtkWindow" id="window_datetime">
+ <property name="can_focus">False</property>
+ <property name="resizable">False</property>
+ <child>
+ <object class="GtkBox" id="vbox_datetime">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_left">134</property>
+ <property name="margin_right">134</property>
+ <property name="margin_top">24</property>
+ <property name="margin_bottom">24</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkFrame" id="frame">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">in</property>
+ <child>
+ <object class="GtkListBox" id="listbox">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="selection_mode">none</property>
+ <child>
+ <object class="GtkListBoxRow" id="auto-datetime-row">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkBox" id="box2">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="spacing">12</property>
+ <property name="spacing">50</property>
<child>
- <object class="GtkLabel" id="label3">
+ <object class="GtkBox" id="box2a">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">_Network Time</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">network_time_switch</property>
+ <property name="margin_left">20</property>
+ <property name="margin_right">20</property>
+ <property name="margin_top">6</property>
+ <property name="margin_bottom">6</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkLabel" id="network_time_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Automatic _Date &
Time</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">network_time_switch</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="network_time_comment">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Requires internet access</property>
+ <style>
+ <class name="dim-label"/>
+ </style>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
- <property name="position">1</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkSwitch" id="network_time_switch">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="valign">center</property>
+ <property name="margin_left">20</property>
+ <property name="margin_right">20</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="pack_type">end</property>
- <property name="position">2</property>
+ <property name="position">1</property>
</packing>
</child>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="padding">6</property>
- <property name="position">0</property>
- </packing>
</child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkListBoxRow" id="auto-timezone-row">
+ <property name="can_focus">False</property>
<child>
- <object class="GtkAlignment" id="alignment2">
+ <object class="GtkBox" id="box3">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xscale">0</property>
+ <property name="spacing">50</property>
<child>
- <object class="GtkTable" id="table2">
+ <object class="GtkBox" id="box3a">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="n_rows">3</property>
- <property name="n_columns">4</property>
- <property name="column_spacing">12</property>
- <property name="row_spacing">6</property>
- <child>
- <placeholder/>
- </child>
- <child>
- <object class="GtkLabel" id="label2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" comments="Translator: this is the
separator between hours and minutes, like in HH:MM">:</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- <attribute name="scale" value="2.5"/>
- </attributes>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- </packing>
- </child>
- <child>
- <placeholder/>
- </child>
+ <property name="margin_left">20</property>
+ <property name="margin_right">20</property>
+ <property name="margin_top">6</property>
+ <property name="margin_bottom">6</property>
+ <property name="orientation">vertical</property>
<child>
- <object class="GtkLabel" id="hours_label">
+ <object class="GtkLabel" id="auto_timezone_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="label">16</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- <attribute name="scale" value="2.5"/>
- </attributes>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Automatic Time _Zone</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">auto_timezone_switch</property>
</object>
<packing>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
- <object class="GtkLabel" id="minutes_label">
+ <object class="GtkLabel" id="auto_timezone_comment">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="label">45</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- <attribute name="scale" value="2.5"/>
- </attributes>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Requires internet access</property>
+ <style>
+ <class name="dim-label"/>
+ </style>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="right_attach">3</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="hour_up_button">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="relief">none</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="hour_up_accessible">
- <property name="accessible-description" translatable="yes">Set the time
one hour ahead.</property>
- </object>
- </child>
- <child>
- <object class="GtkArrow" id="arrow1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="arrow_type">up</property>
- </object>
- </child>
- </object>
- </child>
- <child>
- <object class="GtkButton" id="hour_down_button">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="relief">none</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="hour_down_accessible">
- <property name="accessible-description" translatable="yes">Set the time
one hour back.</property>
- </object>
- </child>
- <child>
- <object class="GtkArrow" id="arrow2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="arrow_type">down</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="min_up_button">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="relief">none</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="min_up_accessible">
- <property name="accessible-description" translatable="yes">Set the time
one minute ahead.</property>
- </object>
- </child>
- <child>
- <object class="GtkArrow" id="arrow4">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="arrow_type">up</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="left_attach">2</property>
- <property name="right_attach">3</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="min_down_button">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="relief">none</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="min_down_accessible">
- <property name="accessible-description" translatable="yes">Set the time
one minute back.</property>
- </object>
- </child>
- <child>
- <object class="GtkArrow" id="arrow3">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="arrow_type">down</property>
- </object>
- </child>
- </object>
- <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>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="ampm_label">
- <property name="can_focus">False</property>
- <property name="label">AM</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- <attribute name="scale" value="2.5"/>
- </attributes>
- </object>
- <packing>
- <property name="left_attach">3</property>
- <property name="right_attach">4</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="ampm_up_button">
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="relief">none</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="ampm_up_accessible">
- <property name="accessible-description" translatable="yes">Switch
between AM and PM.</property>
- </object>
- </child>
- <child>
- <object class="GtkArrow" id="arrow5">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="arrow_type">up</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="left_attach">3</property>
- <property name="right_attach">4</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="ampm_down_button">
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="relief">none</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="ampm_down_accessible">
- <property name="accessible-description" translatable="yes">Switch
between AM and PM.</property>
- </object>
- </child>
- <child>
- <object class="GtkArrow" id="arrow6">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="arrow_type">down</property>
- </object>
- </child>
- </object>
- <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="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
</packing>
</child>
</object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSwitch" id="auto_timezone_switch">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="valign">center</property>
+ <property name="margin_left">20</property>
+ <property name="margin_right">20</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
</child>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="padding">12</property>
- <property name="position">1</property>
- </packing>
</child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkListBoxRow" id="datetime-button">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
<child>
- <object class="GtkHBox" id="table1">
+ <object class="GtkBox" id="box4">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="spacing">12</property>
+ <property name="spacing">50</property>
<child>
- <object class="GtkComboBox" id="month-combobox">
+ <object class="GtkLabel" id="datetime_label1">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="model">month-liststore</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="month-accessible">
- <property name="accessible-description" translatable="yes">Month</property>
- </object>
- </child>
- <child>
- <object class="GtkCellRendererText" id="cellrenderertext3"/>
- <attributes>
- <attribute name="text">0</attribute>
- </attributes>
- </child>
+ <property name="margin_left">20</property>
+ <property name="margin_right">20</property>
+ <property name="margin_top">6</property>
+ <property name="margin_bottom">6</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Date & _Time</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">datetime_label</property>
</object>
<packing>
<property name="expand">True</property>
@@ -520,86 +847,64 @@
</packing>
</child>
<child>
- <object class="GtkSpinButton" id="day-spinbutton">
+ <object class="GtkLabel" id="datetime_label">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="invisible_char">•</property>
- <property name="width_chars">3</property>
- <property name="numeric">True</property>
- <property name="wrap">True</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="day-accessible">
- <property name="accessible-description" translatable="yes">Day</property>
- </object>
- </child>
+ <property name="can_focus">False</property>
+ <property name="margin_left">20</property>
+ <property name="margin_right">20</property>
+ <property name="margin_top">6</property>
+ <property name="margin_bottom">6</property>
+ <property name="xalign">0</property>
+ <property name="label">20 June 2012, 6:45 AM</property>
</object>
<packing>
- <property name="expand">True</property>
+ <property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
- <child>
- <object class="GtkSpinButton" id="year-spinbutton">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="invisible_char">•</property>
- <property name="width_chars">5</property>
- <property name="numeric">True</property>
- <property name="wrap">True</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="year-accessible">
- <property name="accessible-description" translatable="yes">Year</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
- </child>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="padding">12</property>
- <property name="position">2</property>
- </packing>
</child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkListBoxRow" id="timezone-button">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
<child>
- <object class="GtkBox" id="24h_box">
+ <object class="GtkBox" id="box5">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="orientation">vertical</property>
+ <property name="spacing">50</property>
<child>
- <object class="GtkRadioButton" id="24h_button">
- <property name="label" translatable="yes">24-hour</property>
- <property name="use_action_appearance">False</property>
+ <object class="GtkLabel" id="timezone_label1">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="can_focus">False</property>
+ <property name="margin_left">20</property>
+ <property name="margin_right">20</property>
+ <property name="margin_top">6</property>
+ <property name="margin_bottom">6</property>
<property name="xalign">0</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
+ <property name="label" translatable="yes">Time _Zone</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">timezone_label</property>
</object>
<packing>
- <property name="expand">False</property>
+ <property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
- <object class="GtkRadioButton" id="12h_button">
- <property name="label" translatable="yes">AM/PM</property>
- <property name="use_action_appearance">False</property>
+ <object class="GtkLabel" id="timezone_label">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="can_focus">False</property>
+ <property name="margin_left">20</property>
+ <property name="margin_right">20</property>
+ <property name="margin_top">6</property>
+ <property name="margin_bottom">6</property>
<property name="xalign">0</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
- <property name="group">24h_button</property>
+ <property name="label">GMT+1 (London, United Kingdom)</property>
</object>
<packing>
<property name="expand">False</property>
@@ -608,32 +913,30 @@
</packing>
</child>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">end</property>
- <property name="position">3</property>
- </packing>
</child>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
</child>
</object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
</child>
</object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
</child>
</object>
</child>
</object>
+ <object class="GtkSizeGroup" id="row_sizegroup">
+ <property name="mode">vertical</property>
+ <widgets>
+ <widget name="box2"/>
+ <widget name="box3"/>
+ <widget name="box4"/>
+ <widget name="box5"/>
+ </widgets>
+ </object>
<object class="GtkListStore" id="year-liststore">
<columns>
<!-- column-name gchararray1 -->
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]