]> Pileus Git - aweather/commitdiff
Convert time selector to GtkTreeView
authorAndy Spencer <andy753421@gmail.com>
Thu, 6 May 2010 06:33:19 +0000 (06:33 +0000)
committerAndy Spencer <andy753421@gmail.com>
Thu, 6 May 2010 07:02:18 +0000 (07:02 +0000)
data/main.ui.in
src/aweather-gui.c

index 986c02966520e37de99d144601bc17dda04e9db6..8f178b9c54918e3b8be81749e093e45c5f40aa74 100644 (file)
       <column type="gboolean"/>
     </columns>
   </object>
-  <object class="GtkListStore" id="times">
+  <object class="GtkTreeStore" id="sites">
+    <columns>
+      <!-- column-name code -->
+      <column type="gchararray"/>
+      <!-- column-name name -->
+      <column type="gchararray"/>
+    </columns>
+  </object>
+  <object class="GtkTreeStore" id="times">
     <columns>
       <!-- column-name string -->
       <column type="gchararray"/>
       <column type="gint"/>
     </columns>
   </object>
-  <object class="GtkTreeStore" id="sites">
-    <columns>
-      <!-- column-name code -->
-      <column type="gchararray"/>
-      <!-- column-name name -->
-      <column type="gchararray"/>
-    </columns>
-  </object>
   <object class="AWeatherGui" id="main_window">
     <property name="title" translatable="yes">AWeather</property>
     <child>
                                 <property name="can_focus">True</property>
                                 <property name="model">times</property>
                                 <property name="headers_visible">False</property>
+                                <child>
+                                  <object class="GtkTreeViewColumn" id="main_time_text">
+                                    <property name="title">Time</property>
+                                    <child>
+                                      <object class="GtkCellRendererText" id="main_time_rend"/>
+                                      <attributes>
+                                        <attribute name="text">0</attribute>
+                                      </attributes>
+                                    </child>
+                                  </object>
+                                </child>
                               </object>
                             </child>
                           </object>
index 7c6e140395feb053aee2a69917f8cfa02f12ae94..41069b0c2603360b4cc04f818116ee748bfeac78 100644 (file)
@@ -264,28 +264,26 @@ static void prefs_setup(AWeatherGui *self)
 
 static void time_setup(AWeatherGui *self)
 {
-       /* Setup UI */
-       GtkCalendar       *cal  = GTK_CALENDAR(aweather_gui_get_widget(self, "main_date_cal"));
-       GtkTreeView       *view = GTK_TREE_VIEW(aweather_gui_get_widget(self, "main_time"));
-       GtkCellRenderer   *rend = gtk_cell_renderer_text_new();
-       GtkTreeViewColumn *col  = gtk_tree_view_column_new_with_attributes(
-                                       "Time", rend, "text", 0, NULL);
-       gtk_tree_view_append_column(view, col);
-       g_object_set(rend, "size-points", 8.0, NULL);
-
        /* Add times */
-       GtkListStore *store = GTK_LIST_STORE(aweather_gui_get_object(self, "times"));
+       GtkTreeStore *store = GTK_TREE_STORE(aweather_gui_get_object(self, "times"));
        for (int hour = 0; hour < 24; hour++) {
-               for (int min = 0; min < 60; min += 10) {
-                       GtkTreeIter iter;
-                       gchar *str = g_strdup_printf("%02d:%02d", hour, min);
-                       gtk_list_store_append(store, &iter);
-                       gtk_list_store_set(store, &iter, 0, str, 1, hour, 2, min, -1);
+               GtkTreeIter hour_iter;
+               gchar *str = g_strdup_printf("%02d:00Z", hour);
+               gtk_tree_store_append(store, &hour_iter, NULL);
+               gtk_tree_store_set(store, &hour_iter, 0, str, 1, hour, 2, 0, -1);
+               g_free(str);
+               for (int min = 5; min < 60; min += 5) {
+                       GtkTreeIter min_iter;
+                       gchar *str = g_strdup_printf("%02d:%02dZ", hour, min);
+                       gtk_tree_store_append(store, &min_iter, &hour_iter);
+                       gtk_tree_store_set(store, &min_iter, 0, str, 1, hour, 2, min, -1);
                        g_free(str);
                }
        }
 
        /* Connect signals */
+       GtkWidget *cal  = aweather_gui_get_widget(self, "main_date_cal");
+       GtkWidget *view = aweather_gui_get_widget(self, "main_time");
        g_signal_connect_swapped(cal,  "day-selected-double-click",
                        G_CALLBACK(on_time_changed), self);
        g_signal_connect_swapped(view, "row-activated",