int cb_display_type(int cmd, void *data) { int key = (int)data; switch (cmd) { case CMD_FORMAT: pp_sprintf((char *)data, "%s", current_config.display_type); return 1; case CMD_KEY: { int idx = cfg_find_panel_index(current_config.display_type); struct dsi_panel_config *panel; if ((key == KEY_LEFT) && (idx > 0)) idx--; else if ((key == KEY_RIGHT) && (idx < panel_count() - 1)) idx++; panel = panel_get_config(idx); strcpy(current_config.display_type, panel->name); } return 0; case CMD_ENTER: return 0; } }
static void _panel_helper_about_dialog(Panel * panel) { char const * p; char const ** q; char const * authors[] = { NULL, NULL }; if(panel->ab_window != NULL) { gtk_window_present(GTK_WINDOW(panel->ab_window)); return; } panel->ab_window = desktop_about_dialog_new(); if((authors[0] = panel_get_config(panel, "about", "authors")) != NULL) q = authors; else q = _authors; desktop_about_dialog_set_authors(panel->ab_window, q); if((p = panel_get_config(panel, "about", "comment")) == NULL) p = _("Panel for the DeforaOS desktop"); desktop_about_dialog_set_comments(panel->ab_window, p); if((p = panel_get_config(panel, "about", "copyright")) == NULL) p = _copyright; desktop_about_dialog_set_copyright(panel->ab_window, p); if((p = panel_get_config(panel, "about", "icon")) == NULL) p = "panel-settings"; /* XXX */ desktop_about_dialog_set_logo_icon_name(panel->ab_window, p); if((p = panel_get_config(panel, "about", "license")) == NULL) p = _license; desktop_about_dialog_set_license(panel->ab_window, p); if((p = panel_get_config(panel, "about", "name")) == NULL) p = PACKAGE; desktop_about_dialog_set_program_name(panel->ab_window, p); if((p = panel_get_config(panel, "about", "translator")) == NULL) p = _("translator-credits"); desktop_about_dialog_set_translator_credits(panel->ab_window, p); if((p = panel_get_config(panel, "about", "version")) == NULL) p = VERSION; desktop_about_dialog_set_version(panel->ab_window, p); if((p = panel_get_config(panel, "about", "website")) == NULL) p = "https://www.defora.org/"; desktop_about_dialog_set_website(panel->ab_window, p); gtk_window_set_position(GTK_WINDOW(panel->ab_window), GTK_WIN_POS_CENTER); g_signal_connect_swapped(panel->ab_window, "delete-event", G_CALLBACK( _about_on_closex), panel); gtk_widget_show(panel->ab_window); }
/* panel_helper_config_get */ static char const * _panel_helper_config_get(Panel * panel, char const * section, char const * variable) { char const * ret; String * s = NULL; #ifdef DEBUG fprintf(stderr, "DEBUG: %s(\"%s\", \"%s\")\n", __func__, section, variable); #endif if(section != NULL) { if((s = string_new_append("applet::", section, NULL)) == NULL) return NULL; section = s; } ret = panel_get_config(panel, section, variable); string_delete(s); return ret; }