📄 prefswin.c
字号:
gtk_widget_set_usize(prefswin_options_mouse_spin, 45, -1); gtk_box_pack_start(GTK_BOX(options_mouse_box), prefswin_options_mouse_spin, FALSE, FALSE, 0); gtk_table_attach_defaults(GTK_TABLE(options_table), options_mouse_box, 0, 1, 8, 9); prefswin_option_new_with_label_to_table(&cfg.use_pl_metadata, _("Use meta-data in playlists"), GTK_TABLE(options_table), 1, 8); gtk_notebook_append_page(GTK_NOTEBOOK(prefswin_notebook), prefswin_options_vbox, gtk_label_new(_("Options"))); /* * Fonts page */ prefswin_fonts_vbox = gtk_vbox_new(FALSE, 0); prefswin_fonts_options_frame = gtk_frame_new(_("Options")); gtk_box_pack_start(GTK_BOX(prefswin_fonts_vbox), prefswin_fonts_options_frame, FALSE, FALSE, 0); gtk_container_border_width(GTK_CONTAINER(prefswin_fonts_options_frame), 5); prefswin_fonts_options_vbox = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(prefswin_fonts_options_frame), prefswin_fonts_options_vbox); prefswin_options_fontset = prefswin_option_new_with_label(&cfg.use_fontsets, _("Use fontsets (Enable for multi-byte charset support)")); gtk_box_pack_start_defaults(GTK_BOX(prefswin_fonts_options_vbox), prefswin_options_fontset); prefswin_fonts_playlist_frame = gtk_frame_new(_("Playlist")); gtk_container_set_border_width(GTK_CONTAINER(prefswin_fonts_playlist_frame), 5); gtk_box_pack_start(GTK_BOX(prefswin_fonts_vbox), prefswin_fonts_playlist_frame, FALSE, FALSE, 0); options_font_vbox = gtk_vbox_new(FALSE, 5); gtk_container_border_width(GTK_CONTAINER(options_font_vbox), 5); gtk_container_add(GTK_CONTAINER(prefswin_fonts_playlist_frame), options_font_vbox); options_font_hbox = gtk_hbox_new(FALSE, 5); gtk_box_pack_start_defaults(GTK_BOX(options_font_vbox), options_font_hbox); prefswin_options_font_entry = gtk_entry_new(); gtk_box_pack_start(GTK_BOX(options_font_hbox), prefswin_options_font_entry, TRUE, TRUE, 0); prefswin_options_font_browse = gtk_button_new_with_label(_("Browse")); gtk_signal_connect(GTK_OBJECT(prefswin_options_font_browse), "clicked", GTK_SIGNAL_FUNC(prefswin_font_browse_cb), NULL); gtk_widget_set_usize(prefswin_options_font_browse, 85, 17); gtk_box_pack_start(GTK_BOX(options_font_hbox), prefswin_options_font_browse, FALSE, TRUE, 0); prefswin_mainwin_frame = gtk_frame_new(_("Main Window")); gtk_box_pack_start(GTK_BOX(prefswin_fonts_vbox), prefswin_mainwin_frame, FALSE, FALSE, 0); gtk_container_border_width(GTK_CONTAINER(prefswin_mainwin_frame), 5); prefswin_mainwin_vbox = gtk_vbox_new(FALSE, 10); gtk_container_add(GTK_CONTAINER(prefswin_mainwin_frame), prefswin_mainwin_vbox); gtk_container_border_width(GTK_CONTAINER(prefswin_mainwin_vbox), 5); prefswin_mainwin_xfont = prefswin_option_new_with_label(&cfg.mainwin_use_xfont, _("Use X font")); gtk_box_pack_start_defaults(GTK_BOX(prefswin_mainwin_vbox), prefswin_mainwin_xfont); prefswin_mainwin_font_hbox = gtk_hbox_new(FALSE, 5); gtk_box_pack_start_defaults(GTK_BOX(prefswin_mainwin_vbox), prefswin_mainwin_font_hbox); prefswin_mainwin_font_entry = gtk_entry_new(); gtk_box_pack_start(GTK_BOX(prefswin_mainwin_font_hbox), prefswin_mainwin_font_entry, TRUE, TRUE, 0); prefswin_mainwin_font_browse = gtk_button_new_with_label(_("Browse")); gtk_signal_connect(GTK_OBJECT(prefswin_mainwin_font_browse), "clicked", GTK_SIGNAL_FUNC(prefswin_mainwin_font_browse_cb), NULL); gtk_widget_set_usize(prefswin_mainwin_font_browse, 85, 17); gtk_box_pack_start(GTK_BOX(prefswin_mainwin_font_hbox), prefswin_mainwin_font_browse, FALSE, TRUE, 0); gtk_notebook_append_page(GTK_NOTEBOOK(prefswin_notebook), prefswin_fonts_vbox, gtk_label_new(_("Fonts"))); /* * Title page */ prefswin_title_vbox = gtk_vbox_new(FALSE, 0); prefswin_title_frame = gtk_frame_new(_("Title")); gtk_box_pack_start(GTK_BOX(prefswin_title_vbox), prefswin_title_frame, FALSE, FALSE, 0); gtk_container_border_width(GTK_CONTAINER(prefswin_title_frame), 5); prefswin_title_vbox2 = gtk_vbox_new(FALSE, 10); gtk_container_add(GTK_CONTAINER(prefswin_title_frame), prefswin_title_vbox2); gtk_container_border_width(GTK_CONTAINER(prefswin_title_vbox2), 5); prefswin_title_hbox = gtk_hbox_new(FALSE, 5); gtk_box_pack_start(GTK_BOX(prefswin_title_vbox2), prefswin_title_hbox, FALSE, FALSE, 0); prefswin_title_label = gtk_label_new(_("Title format:")); gtk_box_pack_start(GTK_BOX(prefswin_title_hbox), prefswin_title_label, FALSE, FALSE, 0); prefswin_title_entry = gtk_entry_new(); gtk_box_pack_start(GTK_BOX(prefswin_title_hbox), prefswin_title_entry, TRUE, TRUE, 0); prefswin_title_desc = xmms_titlestring_descriptions("pagfFetndyc", 2); gtk_box_pack_start(GTK_BOX(prefswin_title_vbox2), prefswin_title_desc, FALSE, FALSE, 0); gtk_notebook_append_page(GTK_NOTEBOOK(prefswin_notebook), prefswin_title_vbox, gtk_label_new(_("Title"))); /* * Ok, Cancel & Apply */ prefswin_hbox = gtk_hbutton_box_new(); gtk_button_box_set_layout(GTK_BUTTON_BOX(prefswin_hbox), GTK_BUTTONBOX_END); gtk_button_box_set_spacing(GTK_BUTTON_BOX(prefswin_hbox), 5); gtk_box_pack_start(GTK_BOX(prefswin_vbox), prefswin_hbox, FALSE, FALSE, 0); prefswin_ok = gtk_button_new_with_label(_("Ok")); gtk_signal_connect(GTK_OBJECT(prefswin_ok), "clicked", GTK_SIGNAL_FUNC(prefswin_ok_cb), NULL); GTK_WIDGET_SET_FLAGS(prefswin_ok, GTK_CAN_DEFAULT); gtk_box_pack_start(GTK_BOX(prefswin_hbox), prefswin_ok, TRUE, TRUE, 0); prefswin_cancel = gtk_button_new_with_label(_("Cancel")); gtk_signal_connect(GTK_OBJECT(prefswin_cancel), "clicked", GTK_SIGNAL_FUNC(prefswin_cancel_cb), NULL); GTK_WIDGET_SET_FLAGS(prefswin_cancel, GTK_CAN_DEFAULT); gtk_box_pack_start(GTK_BOX(prefswin_hbox), prefswin_cancel, TRUE, TRUE, 0); prefswin_apply = gtk_button_new_with_label(_("Apply")); gtk_signal_connect(GTK_OBJECT(prefswin_apply), "clicked", GTK_SIGNAL_FUNC(prefswin_apply_cb), NULL); GTK_WIDGET_SET_FLAGS(prefswin_apply, GTK_CAN_DEFAULT); gtk_box_pack_start(GTK_BOX(prefswin_hbox), prefswin_apply, TRUE, TRUE, 0); add_input_plugins(GTK_CLIST(prefswin_audio_ilist)); add_output_plugins(GTK_OPTION_MENU(prefswin_audio_olist)); add_general_plugins(GTK_CLIST(prefswin_gplugins_list)); add_effect_plugins(GTK_CLIST(prefswin_eplugins_list)); add_vis_plugins(GTK_CLIST(prefswin_vplugins_list));}void prefswin_output_cb(GtkWidget * w, gpointer item){ OutputPlugin *cp; GList *output; selected_oplugin = GPOINTER_TO_INT(item); output = get_output_list(); cp = (OutputPlugin *) g_list_nth(output, GPOINTER_TO_INT(item))->data; if (cp->configure != NULL) gtk_widget_set_sensitive(prefswin_audio_oconfig, 1); else gtk_widget_set_sensitive(prefswin_audio_oconfig, 0); if (cp->about != NULL) gtk_widget_set_sensitive(prefswin_audio_oabout, 1); else gtk_widget_set_sensitive(prefswin_audio_oabout, 0);}void gen_module_description(gchar * file, gchar * desc, gchar ** full_desc){ (*full_desc) = g_strdup_printf("%s [%s]", desc, g_basename(file));}void add_output_plugins(GtkOptionMenu *omenu){ GList *olist = get_output_list(); GtkWidget *menu, *item; gchar *description; OutputPlugin *op, *cp = get_current_output_plugin(); gint i = 0; if (!olist) { gtk_widget_set_sensitive(GTK_WIDGET(omenu), FALSE); gtk_widget_set_sensitive(prefswin_audio_oconfig, FALSE); gtk_widget_set_sensitive(prefswin_audio_oabout, FALSE); return; } menu = gtk_menu_new(); while (olist) { op = (OutputPlugin *) olist->data; if (olist->data == cp) selected_oplugin = i; gen_module_description(op->filename, op->description, &description); item = gtk_menu_item_new_with_label(description); g_free(description); gtk_signal_connect(GTK_OBJECT(item), "activate", GTK_SIGNAL_FUNC(prefswin_output_cb), GINT_TO_POINTER(i)); gtk_widget_show(item); gtk_menu_append(GTK_MENU(menu), item); olist = olist->next; i++; } gtk_option_menu_remove_menu(omenu); gtk_option_menu_set_menu(omenu, menu); gtk_option_menu_set_history(omenu, selected_oplugin); if (cp->configure != NULL) gtk_widget_set_sensitive(prefswin_audio_oconfig, TRUE); else gtk_widget_set_sensitive(prefswin_audio_oconfig, FALSE); if (cp->about != NULL) gtk_widget_set_sensitive(prefswin_audio_oabout, TRUE); else gtk_widget_set_sensitive(prefswin_audio_oabout, FALSE);}void add_effect_plugins(GtkCList *clist){ GList *glist = get_effect_list(); gchar *description, *temp; EffectPlugin *ep; gint i = 0; gtk_clist_clear(clist); while (glist) { ep = (EffectPlugin *) glist->data; gen_module_description(ep->filename, ep->description, &description); if (effect_enabled(i)) { temp = g_strconcat(description, _(" (enabled)"), NULL); g_free(description); description = temp; } gtk_clist_append(clist, &description); g_free(description); glist = glist->next; i++; } gtk_widget_set_sensitive(prefswin_eplugins_use_cbox, 0); gtk_widget_set_sensitive(prefswin_eplugins_config, 0); gtk_widget_set_sensitive(prefswin_eplugins_about, 0);}void add_general_plugins(GtkCList *clist){ GList *glist = get_general_list(); gchar *description, *temp; GeneralPlugin *gp; gint i = 0; gtk_clist_clear(clist); while (glist) { gp = (GeneralPlugin *) glist->data; gen_module_description(gp->filename, gp->description, &description); if (general_enabled(i)) { temp = g_strconcat(description, _(" (enabled)"), NULL); g_free(description); description = temp; } gtk_clist_append(clist, &description); g_free(description); glist = glist->next; i++; } gtk_widget_set_sensitive(prefswin_gplugins_use_cbox, 0); gtk_widget_set_sensitive(prefswin_gplugins_config, 0); gtk_widget_set_sensitive(prefswin_gplugins_about, 0);}void add_vis_plugins(GtkCList *clist){ GList *glist = get_vis_list(); gchar *description, *temp; VisPlugin *vp; gint i = 0; gtk_clist_clear(clist); while (glist) { vp = (VisPlugin *) glist->data; gen_module_description(vp->filename, vp->description, &description); if (vis_enabled(i)) { temp = g_strconcat(description, _(" (enabled)"), NULL); g_free(description); description = temp; } gtk_clist_append(clist, &description); g_free(description); glist = glist->next; i++; } gtk_widget_set_sensitive(prefswin_vplugins_use_cbox, 0); gtk_widget_set_sensitive(prefswin_vplugins_config, 0); gtk_widget_set_sensitive(prefswin_vplugins_about, 0);}void add_input_plugins(GtkCList *clist){ GList *ilist = get_input_list(); gchar *description, *temp; InputPlugin *ip; gtk_clist_clear(clist); while (ilist) { ip = (InputPlugin *) ilist->data; gen_module_description(ip->filename, ip->description, &description); if (g_list_find(disabled_iplugins, ip)) { temp = g_strconcat(description, _(" (disabled)"), NULL); g_free(description); description = temp; } gtk_clist_append(clist, &description); g_free(description); ilist = ilist->next; } gtk_widget_set_sensitive(prefswin_audio_ie_cbox, 0); gtk_widget_set_sensitive(prefswin_audio_iconfig, 0); gtk_widget_set_sensitive(prefswin_audio_iabout, 0);}void show_prefs_window(void){ char temp[10]; if (GTK_WIDGET_VISIBLE(prefswin)) { gdk_window_raise(prefswin->window); return; } is_opening = TRUE; gtk_entry_set_text(GTK_ENTRY(prefswin_options_font_entry), cfg.playlist_font); gtk_entry_set_text(GTK_ENTRY(prefswin_mainwin_font_entry), cfg.mainwin_font); gtk_entry_set_text(GTK_ENTRY(prefswin_title_entry), cfg.gentitle_format); sprintf(temp, "%u", cfg.snap_distance); gtk_entry_set_text(GTK_ENTRY(prefswin_options_sd_entry), temp); prefswin_options_read_data(); sprintf(temp, "%u", cfg.pause_between_songs_time); gtk_entry_set_text(GTK_ENTRY(prefswin_options_pbs_entry), temp); gtk_spin_button_set_value(GTK_SPIN_BUTTON(prefswin_options_mouse_spin), cfg.mouse_change); gtk_widget_show_all(prefswin); gtk_widget_grab_default(prefswin_ok); GDK_THREADS_LEAVE(); while(g_main_iteration(FALSE)); GDK_THREADS_ENTER(); is_opening = FALSE;}void prefswin_show_vis_plugins_page(void){ gtk_notebook_set_page(GTK_NOTEBOOK(prefswin_notebook), 3);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -