📄 option.c
字号:
#include <gtk/gtk.h>#include "yqtype.h"#include "configfile.h"#include "pixmaps/about.xpm"static GtkWidget *configwindow = NULL;static GtkWidget *option_1_title_entry[33];static GtkWidget *option_1_width_entry[33];static GtkWidget *option_1_check_button[33];/*static GtkWidget *option_2_oldname_entry[33];static GtkWidget *option_2_newname_entry[33];*/extern struct _YQList yqlist;extern ConfigFile *rccfgfile;extern gboolean titleshow[33];extern gchar *title[];extern gint yesnoreturn;extern gchar tree_selectzuname[255];void clist_openzu(gchar *zu);void createclist();void Areyousure (gchar *szMessage);void Popup (gchar *szMessage);GtkWidget *CreateWidgetFromXpm (GtkWidget *parent,gchar **xpm_data);static void config_window_ok_cb(GtkWidget *widget, gpointer data);static void config_window_close_cb(GtkWidget *widget, gpointer data){ gtk_widget_destroy(configwindow); configwindow = NULL;}static void config_window_huifu_cb(GtkWidget *widget, gpointer data){ gint i; Areyousure("确实要恢复所有设置吗?"); if (!yesnoreturn) return; for (i=0;i<33;i++) { gtk_entry_set_text(GTK_ENTRY(option_1_title_entry[i]),title[i]); gtk_entry_set_text(GTK_ENTRY(option_1_width_entry[i]),"0"); if ((i==0)||(i==9)||(i==10)||(i==15)||(i==16)||(i==21)||(i==32)) gtk_toggle_button_set_state (GTK_TOGGLE_BUTTON(option_1_check_button[i]),1); else gtk_toggle_button_set_state (GTK_TOGGLE_BUTTON(option_1_check_button[i]),0); } config_window_ok_cb(NULL,NULL);}static void config_window_destroy(GtkWidget *w, GdkEvent *event, gpointer data){ config_window_close_cb(NULL, NULL);}static void config_window_ok_cb(GtkWidget *widget, gpointer data){ gchar *ab,ti[4],*bb,tz[256]; gint i,a,b; gboolean ifshow; for (i=0;i<33;i++) { if (*gtk_entry_get_text(GTK_ENTRY(option_1_title_entry[i]))=='\0') { sprintf(tz,"第 %d 个列表名为空!",i+1); Popup(tz); return; } } for (i=0;i<33;i++) { bb=gtk_entry_get_text(GTK_ENTRY(option_1_width_entry[i])); if (*bb=='\0') { sprintf(tz,"第 %d 个列表宽度为空!",i+1); Popup(tz); return; } a=atoi(bb); if (a<0) { sprintf(tz,"第 %d 个列表宽度不是数字!",i+1); Popup(tz); return; } } for (i=1;i<=33;i++) { sprintf(ti,"%d",i); yq_cfg_read_string(rccfgfile,"title",ti,&ab); bb=gtk_entry_get_text(GTK_ENTRY(option_1_title_entry[i-1])); if (strcmp(ab,bb)) yq_cfg_write_string(rccfgfile,"title",ti,bb); } for (i=2;i<=33;i++) { sprintf(ti,"%d",i); if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(option_1_check_button[i-1]))!=titleshow[i-1]) { titleshow[i-1]=!titleshow[i-1]; yq_cfg_write_boolean(rccfgfile,"titleshow",ti,titleshow[i-1]); } } for (i=1;i<=33;i++) { sprintf(ti,"%d",i); yq_cfg_read_int(rccfgfile,"titlewidth",ti,&a); b=atoi(gtk_entry_get_text(GTK_ENTRY(option_1_width_entry[i-1]))); if (a!=b) yq_cfg_write_int(rccfgfile,"titlewidth",ti,b); } if (yqlist.type==LIST_DETAILS) { gtk_clist_clear(GTK_CLIST(yqlist.list)); gtk_container_remove(GTK_CONTAINER(yqlist.box), yqlist.listwin); createclist(); clist_openzu(tree_selectzuname); } config_window_close_cb(NULL, NULL);}static void config_window_create(gint start_tab){ GtkWidget *win_vbox; GtkWidget *hbox; GtkWidget *notebook; GtkWidget *frame; GtkWidget *label; GtkWidget *vbox; GtkWidget *vbox1; GtkWidget *vbox2; GtkWidget *button; GtkWidget *table; GtkWidget *opwin; gchar buf[255],*ab; gint i; configwindow = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_signal_connect (GTK_OBJECT (configwindow), "delete_event",(GtkSignalFunc) config_window_destroy, NULL); gtk_window_set_policy (GTK_WINDOW (configwindow), FALSE, FALSE, FALSE); gtk_window_set_title (GTK_WINDOW (configwindow), "友情强裆-设置"); gtk_window_set_wmclass(GTK_WINDOW (configwindow), "设置", "友情强裆"); gtk_container_border_width (GTK_CONTAINER (configwindow), 5); win_vbox = gtk_vbox_new(FALSE, 5); gtk_container_add(GTK_CONTAINER(configwindow), win_vbox); gtk_widget_show(win_vbox); hbox = gtk_hbox_new (TRUE, 0); gtk_box_pack_end(GTK_BOX(win_vbox), hbox, FALSE, FALSE, 0); gtk_widget_show(hbox); button = gtk_button_new_with_label("确定"); gtk_signal_connect (GTK_OBJECT (button), "clicked",(GtkSignalFunc) config_window_ok_cb, NULL); gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 20); gtk_widget_show(button); button = gtk_button_new_with_label("恢复"); gtk_signal_connect (GTK_OBJECT (button), "clicked",(GtkSignalFunc) config_window_huifu_cb, NULL); gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 20); gtk_widget_show(button); button = gtk_button_new_with_label("取消"); gtk_signal_connect (GTK_OBJECT (button), "clicked",(GtkSignalFunc) config_window_close_cb, NULL); gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 20); gtk_widget_show(button); notebook = gtk_notebook_new(); gtk_notebook_set_tab_pos (GTK_NOTEBOOK(notebook), GTK_POS_TOP); gtk_box_pack_start (GTK_BOX(win_vbox), notebook, TRUE, TRUE, 0); /* list tab */ frame = gtk_frame_new(NULL); gtk_container_border_width (GTK_CONTAINER (frame), 5); gtk_widget_show(frame); label = gtk_label_new("自定义列表"); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), frame, label); vbox = gtk_vbox_new (FALSE, 0); gtk_container_border_width (GTK_CONTAINER (vbox), 5); gtk_container_add (GTK_CONTAINER(frame),vbox); gtk_widget_show(vbox); table=gtk_table_new(3,34,FALSE); gtk_widget_show(table); opwin = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(opwin), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(opwin), table); gtk_box_pack_start(GTK_BOX (vbox),opwin, TRUE, TRUE, 0); gtk_widget_show(opwin); label = gtk_label_new("显示"); gtk_table_attach_defaults(GTK_TABLE (table),label, 0, 1, 0, 1); gtk_widget_show(label); label = gtk_label_new("列表名"); gtk_table_attach_defaults(GTK_TABLE (table),label, 1, 2, 0, 1); gtk_widget_show(label); label = gtk_label_new("宽度"); gtk_table_attach_defaults(GTK_TABLE (table),label, 2, 3, 0, 1); gtk_widget_show(label); for (i=0; i<33; i++) { sprintf(buf,"%d",i+1); option_1_check_button[i] = gtk_check_button_new_with_label(buf); gtk_toggle_button_set_state (GTK_TOGGLE_BUTTON(option_1_check_button[i]),titleshow[i]); gtk_table_attach_defaults(GTK_TABLE (table),option_1_check_button[i], 0, 1, i+1, i+2); gtk_widget_show(option_1_check_button[i]); gtk_widget_set_sensitive(option_1_check_button[0],0); option_1_title_entry[i] = gtk_entry_new_with_max_length(32); yq_cfg_read_string(rccfgfile,"title",buf,&ab); gtk_entry_set_text(GTK_ENTRY(option_1_title_entry[i]),ab); g_free(ab); gtk_table_attach_defaults(GTK_TABLE (table),option_1_title_entry[i],1,2,i+1,i+2); gtk_widget_show(option_1_title_entry[i]); option_1_width_entry[i] = gtk_entry_new_with_max_length(3); gtk_widget_set_usize(option_1_width_entry[i],28,-1); yq_cfg_read_string(rccfgfile,"titlewidth",buf,&ab); gtk_entry_set_text(GTK_ENTRY(option_1_width_entry[i]),ab); g_free(ab); gtk_table_attach_defaults(GTK_TABLE (table),option_1_width_entry[i],2,3,i+1,i+2); gtk_widget_show(option_1_width_entry[i]); }/* frame = gtk_frame_new(NULL); gtk_container_border_width (GTK_CONTAINER (frame), 5); gtk_widget_show(frame); label = gtk_label_new("自定义名称"); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), frame, label); vbox = gtk_vbox_new (FALSE, 0); gtk_container_border_width (GTK_CONTAINER (vbox), 5); gtk_container_add (GTK_CONTAINER(frame),vbox); gtk_widget_show(vbox); table=gtk_table_new(3,34,FALSE); gtk_widget_show(table); opwin = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(opwin), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(opwin), table); gtk_box_pack_start(GTK_BOX (vbox),opwin, TRUE, TRUE, 0); gtk_widget_show(opwin); label = gtk_label_new("#"); gtk_table_attach_defaults(GTK_TABLE (table),label, 0, 1, 0, 1); gtk_widget_show(label); label = gtk_label_new("原名称"); gtk_table_attach_defaults(GTK_TABLE (table),label, 1, 2, 0, 1); gtk_widget_show(label); label = gtk_label_new("目前名称"); gtk_table_attach_defaults(GTK_TABLE (table),label, 2, 3, 0, 1); gtk_widget_show(label); for (i=0; i<33; i++) { sprintf(buf,"%d",i+1); label = gtk_label_new(buf); gtk_table_attach_defaults(GTK_TABLE (table),label, 0, 1, i+1, i+2); gtk_widget_show(label); option_2_oldname_entry[i] = gtk_entry_new_with_max_length(32); gtk_entry_set_text(GTK_ENTRY(option_1_title_entry[i]),title[i]); gtk_table_attach_defaults(GTK_TABLE (table),option_1_title_entry[i],1,2,i+1,i+2); gtk_widget_show(option_1_title_entry[i]); option_1_width_entry[i] = gtk_entry_new_with_max_length(3); gtk_widget_set_usize(option_1_width_entry[i],22,-1); sprintf(buf,"%d",titlewid[i]); gtk_entry_set_text(GTK_ENTRY(option_1_width_entry[i]),buf); gtk_table_attach_defaults(GTK_TABLE (table),option_1_width_entry[i],2,3,i+1,i+2); gtk_widget_show(option_1_width_entry[i]); }*/ /* about tab */ frame = gtk_frame_new(NULL); gtk_container_border_width (GTK_CONTAINER (frame), 5); gtk_widget_show(frame); label = gtk_label_new("关于"); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), frame, label); vbox = gtk_vbox_new (FALSE, 0); gtk_container_add (GTK_CONTAINER(frame),vbox); gtk_widget_show(vbox); gtk_widget_realize(configwindow); gtk_box_pack_start(GTK_BOX(vbox),CreateWidgetFromXpm (configwindow,(gchar **) about_xpm), TRUE, TRUE, 0); strcpy(buf, "友情强档 0.03\n\n胡正制作\nhttp://clinuxer.yeah.net\nhuzheng@21cn.com\n\n Released under the GNU Public License "); label = gtk_label_new(buf); gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 0); gtk_widget_show (label); gtk_notebook_set_page (GTK_NOTEBOOK(notebook), start_tab); gtk_widget_show(notebook); gtk_widget_unrealize(configwindow); gtk_widget_show(configwindow);}void show_config_window(){ if (configwindow) return; config_window_create(0);}void show_about_window(){ if (configwindow) return; config_window_create(1);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -