X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=src%2Faweather-gui.c;h=41069b0c2603360b4cc04f818116ee748bfeac78;hb=ed2fbc45c1cf58bc1e3427fca0522b688da0e07f;hp=5c2558fe914e101d33cbd761870d57a9144a4e77;hpb=57b61eb0e1cf8557ecbf3bb9f52a0927b0b1b98e;p=aweather diff --git a/src/aweather-gui.c b/src/aweather-gui.c index 5c2558f..41069b0 100644 --- a/src/aweather-gui.c +++ b/src/aweather-gui.c @@ -49,6 +49,21 @@ G_MODULE_EXPORT gboolean on_gui_key_press(GtkWidget *widget, GdkEventKey *event, return FALSE; } +G_MODULE_EXPORT void on_help_contents(GtkMenuItem *menu, AWeatherGui *self) +{ + GError *err = NULL; + gchar *path = g_strdup(HTMLDIR "/aweather.html"); + g_strdelimit(path, "/", G_DIR_SEPARATOR); + gchar *argv[] = {"xdg-open", path, NULL}; + g_spawn_async(NULL, argv, NULL, G_SPAWN_SEARCH_PATH, NULL, NULL, NULL, &err); + if (err) { + g_warning("Unable to open help page: %s - %s", + argv[1], err->message); + g_error_free(err); + } + g_free(path); +} + G_MODULE_EXPORT void on_quit(GtkMenuItem *menu, AWeatherGui *self) { gtk_widget_destroy(GTK_WIDGET(self)); @@ -249,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",