[gnome-clocks/wip/vala] Rework alarm setup dialog



commit 21163c5210426a528f03c3ac92f775b8e38c03d8
Author: Paolo Borelli <pborelli gnome org>
Date:   Tue Feb 19 00:17:21 2013 +0100

    Rework alarm setup dialog

 data/css/gnome-clocks.css |    4 +
 src/alarm.ui              |  297 ++++++++++++++++++++++++++++-----------------
 src/alarm.vala            |    7 +-
 3 files changed, 194 insertions(+), 114 deletions(-)
---
diff --git a/data/css/gnome-clocks.css b/data/css/gnome-clocks.css
index 020b6b7..1fd5301 100644
--- a/data/css/gnome-clocks.css
+++ b/data/css/gnome-clocks.css
@@ -129,6 +129,10 @@
     font-size: 18px;
 }
 
+.clocks-alarm-setup-spinbutton {
+    font-size: 32px;
+}
+
 .clocks-spinbutton {
     font-size: 64px;
 }
diff --git a/src/alarm.ui b/src/alarm.ui
index 40c10c4..32bebed 100644
--- a/src/alarm.ui
+++ b/src/alarm.ui
@@ -130,50 +130,81 @@
   <object class="GtkGrid" id="setup_dialog_content">
     <property name="visible">True</property>
     <property name="can_focus">False</property>
-    <property name="margin_left">5</property>
-    <property name="margin_right">5</property>
-    <property name="margin_top">5</property>
-    <property name="margin_bottom">5</property>
-    <property name="hexpand">True</property>
-    <property name="vexpand">True</property>
-    <property name="row_spacing">9</property>
-    <property name="column_spacing">6</property>
-    <child>
-      <object class="GtkLabel" id="time_labe">
-        <property name="visible">True</property>
-        <property name="can_focus">False</property>
-        <property name="xalign">1</property>
-        <property name="label" translatable="yes">Time</property>
-      </object>
-      <packing>
-        <property name="left_attach">0</property>
-        <property name="top_attach">0</property>
-        <property name="width">1</property>
-        <property name="height">1</property>
-      </packing>
-    </child>
+    <property name="row_spacing">12</property>
     <child>
-      <object class="GtkBox" id="time_box">
+      <object class="GtkGrid" id="time_grid">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
+        <property name="halign">center</property>
         <property name="hexpand">True</property>
-        <property name="spacing">6</property>
+        <property name="column_spacing">6</property>
+        <property name="margin_top">12</property>
+        <child>
+          <object class="GtkAlignment" id="alignment1">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="xscale">0</property>
+            <property name="yscale">0</property>
+            <property name="left_padding">6</property>
+            <property name="right_padding">6</property>
+            <child>
+              <object class="GtkLabel" id="dummy_label1">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="left_attach">0</property>
+            <property name="top_attach">0</property>
+            <property name="width">1</property>
+            <property name="height">1</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkSpinButton" id="m_spinbutton">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="invisible_char">●</property>
+            <property name="xalign">0.5</property>
+            <property name="invisible_char_set">True</property>
+            <property name="input_purpose">number</property>
+            <property name="orientation">vertical</property>
+            <property name="adjustment">m_adjustment</property>
+            <property name="numeric">True</property>
+            <property name="wrap">True</property>
+            <style>
+              <class name="clocks-alarm-setup-spinbutton"/>
+            </style>
+          </object>
+          <packing>
+            <property name="left_attach">3</property>
+            <property name="top_attach">0</property>
+            <property name="width">1</property>
+            <property name="height">1</property>
+          </packing>
+        </child>
         <child>
           <object class="GtkSpinButton" id="h_spinbutton">
             <property name="visible">True</property>
             <property name="can_focus">True</property>
-            <property name="hexpand">True</property>
             <property name="invisible_char">●</property>
+            <property name="xalign">0.5</property>
             <property name="invisible_char_set">True</property>
             <property name="input_purpose">number</property>
+            <property name="orientation">vertical</property>
             <property name="adjustment">h_adjustment</property>
             <property name="numeric">True</property>
             <property name="wrap">True</property>
+            <style>
+              <class name="clocks-alarm-setup-spinbutton"/>
+            </style>
           </object>
           <packing>
-            <property name="expand">True</property>
-            <property name="fill">True</property>
-            <property name="position">0</property>
+            <property name="left_attach">1</property>
+            <property name="top_attach">0</property>
+            <property name="width">1</property>
+            <property name="height">1</property>
           </packing>
         </child>
         <child>
@@ -183,119 +214,161 @@
             <property name="label" translatable="yes">:</property>
           </object>
           <packing>
-            <property name="expand">False</property>
-            <property name="fill">True</property>
-            <property name="position">1</property>
+            <property name="left_attach">2</property>
+            <property name="top_attach">0</property>
+            <property name="width">1</property>
+            <property name="height">1</property>
           </packing>
         </child>
         <child>
-          <object class="GtkSpinButton" id="m_spinbutton">
+          <object class="GtkAlignment" id="am_pm_alignment">
             <property name="visible">True</property>
-            <property name="can_focus">True</property>
-            <property name="hexpand">True</property>
-            <property name="invisible_char">●</property>
-            <property name="invisible_char_set">True</property>
-            <property name="input_purpose">number</property>
-            <property name="adjustment">m_adjustment</property>
-            <property name="numeric">True</property>
-            <property name="wrap">True</property>
+            <property name="can_focus">False</property>
+            <property name="xscale">0</property>
+            <property name="yscale">0</property>
+            <property name="left_padding">6</property>
+            <property name="right_padding">6</property>
+            <child>
+              <object class="GtkLabel" id="dummy_label2">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+              </object>
+            </child>
           </object>
           <packing>
-            <property name="expand">True</property>
-            <property name="fill">True</property>
-            <property name="position">2</property>
+            <property name="left_attach">4</property>
+            <property name="top_attach">0</property>
+            <property name="width">1</property>
+            <property name="height">1</property>
           </packing>
         </child>
       </object>
       <packing>
-        <property name="left_attach">1</property>
-        <property name="top_attach">0</property>
-        <property name="width">1</property>
-        <property name="height">1</property>
-      </packing>
-    </child>
-    <child>
-      <object class="GtkLabel" id="name_label">
-        <property name="visible">True</property>
-        <property name="can_focus">False</property>
-        <property name="xalign">1</property>
-        <property name="label" translatable="yes">Name</property>
-      </object>
-      <packing>
-        <property name="left_attach">0</property>
-        <property name="top_attach">1</property>
-        <property name="width">1</property>
-        <property name="height">1</property>
-      </packing>
-    </child>
-    <child>
-      <object class="GtkEntry" id="name_entry">
-        <property name="visible">True</property>
-        <property name="can_focus">True</property>
-        <property name="invisible_char">●</property>
-        <property name="invisible_char_set">True</property>
-      </object>
-      <packing>
-        <property name="left_attach">1</property>
-        <property name="top_attach">1</property>
-        <property name="width">1</property>
-        <property name="height">1</property>
-      </packing>
-    </child>
-    <child>
-      <object class="GtkLabel" id="repeat_label">
-        <property name="visible">True</property>
-        <property name="can_focus">False</property>
-        <property name="xalign">1</property>
-        <property name="label" translatable="yes">Repeat Every</property>
-      </object>
-      <packing>
         <property name="left_attach">0</property>
-        <property name="top_attach">2</property>
+        <property name="top_attach">0</property>
         <property name="width">1</property>
         <property name="height">1</property>
       </packing>
     </child>
     <child>
-      <object class="GtkBox" id="day_buttons_box">
+      <object class="GtkGrid" id="grid2">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
-        <property name="homogeneous">True</property>
-        <style>
-          <class name="linked"/>
-        </style>
+        <property name="halign">center</property>
+        <property name="margin_left">24</property>
+        <property name="margin_right">24</property>
+        <property name="margin_top">12</property>
+        <property name="margin_bottom">12</property>
+        <property name="row_spacing">9</property>
+        <property name="column_spacing">6</property>
+        <property name="row_homogeneous">True</property>
         <child>
-          <placeholder/>
+          <object class="GtkLabel" id="name_label">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="xalign">1</property>
+            <property name="label" translatable="yes">Name</property>
+          </object>
+          <packing>
+            <property name="left_attach">0</property>
+            <property name="top_attach">0</property>
+            <property name="width">1</property>
+            <property name="height">1</property>
+          </packing>
         </child>
         <child>
-          <placeholder/>
+          <object class="GtkLabel" id="repeat_label">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="xalign">1</property>
+            <property name="label" translatable="yes">Repeat Every</property>
+          </object>
+          <packing>
+            <property name="left_attach">0</property>
+            <property name="top_attach">1</property>
+            <property name="width">1</property>
+            <property name="height">1</property>
+          </packing>
         </child>
         <child>
-          <placeholder/>
+          <object class="GtkEntry" id="name_entry">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="invisible_char">●</property>
+            <property name="invisible_char_set">True</property>
+          </object>
+          <packing>
+            <property name="left_attach">1</property>
+            <property name="top_attach">0</property>
+            <property name="width">1</property>
+            <property name="height">1</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkBox" id="day_buttons_box">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="homogeneous">True</property>
+            <style>
+              <class name="linked"/>
+            </style>
+            <child>
+              <placeholder/>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
+          </object>
+          <packing>
+            <property name="left_attach">1</property>
+            <property name="top_attach">1</property>
+            <property name="width">1</property>
+            <property name="height">1</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkLabel" id="active_label">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="xalign">1</property>
+            <property name="label" translatable="yes">Active</property>
+          </object>
+          <packing>
+            <property name="left_attach">0</property>
+            <property name="top_attach">2</property>
+            <property name="width">1</property>
+            <property name="height">1</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkSwitch" id="active_switch">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="halign">start</property>
+          </object>
+          <packing>
+            <property name="left_attach">1</property>
+            <property name="top_attach">2</property>
+            <property name="width">1</property>
+            <property name="height">1</property>
+          </packing>
         </child>
       </object>
       <packing>
-        <property name="left_attach">1</property>
-        <property name="top_attach">2</property>
-        <property name="width">1</property>
-        <property name="height">1</property>
-      </packing>
-    </child>
-    <child>
-      <object class="GtkSwitch" id="active_switch">
-        <property name="visible">True</property>
-        <property name="can_focus">True</property>
-        <property name="halign">end</property>
-      </object>
-      <packing>
-        <property name="left_attach">1</property>
-        <property name="top_attach">3</property>
+        <property name="left_attach">0</property>
+        <property name="top_attach">1</property>
         <property name="width">1</property>
         <property name="height">1</property>
       </packing>
     </child>
-    <child>
-      <placeholder/>
-    </child>
+  </object>
+  <object class="GtkSizeGroup" id="am_pm_sizegroup">
+    <widgets>
+      <widget name="dummy_label1"/>
+      <widget name="dummy_label2"/>
+    </widgets>
   </object>
 </interface>
diff --git a/src/alarm.vala b/src/alarm.vala
index bd619b9..658c5ff 100644
--- a/src/alarm.vala
+++ b/src/alarm.vala
@@ -250,7 +250,8 @@ private class SetupDialog : Gtk.Dialog {
         // Get objects from the ui file
         var builder = Utils.load_ui ("alarm.ui");
         var grid = builder.get_object ("setup_dialog_content") as Gtk.Grid;
-        var time_box = builder.get_object ("time_box") as Gtk.Box;
+        var am_pm_alignment = builder.get_object ("am_pm_alignment") as Gtk.Alignment;
+        var am_pm_sizegroup = builder.get_object ("am_pm_sizegroup") as Gtk.SizeGroup;
         var day_buttons_box = builder.get_object ("day_buttons_box") as Gtk.Box;
         h_spinbutton = builder.get_object ("h_spinbutton") as Gtk.SpinButton;
         m_spinbutton = builder.get_object ("m_spinbutton") as Gtk.SpinButton;
@@ -265,7 +266,9 @@ private class SetupDialog : Gtk.Dialog {
         else {
             // 12h format
             h_spinbutton.set_range (1, 12);
-            time_box.pack_start (am_pm_button);
+            am_pm_sizegroup.add_widget (am_pm_button);
+            am_pm_alignment.remove (am_pm_alignment.get_child ());
+            am_pm_alignment.add (am_pm_button);
         }
 
         // Create an array with the weekday buttons with


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