cleancache_r(cache);
}
-G_MODULE_EXPORT void on_contents(GtkMenuItem *menu, AWeatherGui *self)
+G_MODULE_EXPORT void on_help(GtkMenuItem *menu, AWeatherGui *self)
{
GError *err = NULL;
- gchar *path = g_strdup(HTMLDIR "/aweather.html");
+ const gchar *name = gtk_buildable_get_name(GTK_BUILDABLE(menu));
+ gchar *page = g_str_has_suffix(name, "userguide") ? "userguide" :
+ g_str_has_suffix(name, "manpage") ? "aweather" : NULL;
+ if (page == NULL) {
+ g_warning("Unknown help page: %s", page);
+ return;
+ }
+ gchar *path = g_strdup_printf("%s/%s.html", HTMLDIR, page);
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);
static void menu_setup(AWeatherGui *self)
{
GtkWidget *menu = aweather_gui_get_widget(self, "main_menu_radar");
- GtkWidget *states, *state, *sites, *site;
+ GtkWidget *states=NULL, *state=NULL, *sites=NULL, *site=NULL;
states = gtk_menu_new();
gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu), states);