📄 toolbarfunc.c
字号:
#include "configfile.h"#include <gtk/gtk.h>#include <string.h>#include "yqtype.h"#include "treenode.h"#include <sys/stat.h>#include <stdio.h>extern gchar sFilename[256]; extern gint yesnoreturn;extern ConfigFile *cfgfile;extern gboolean tree_selectiszu;extern gint clist_selectrow;extern gchar tree_selectzuname[255],tree_selectjilu[4];extern struct _YQList yqlist;extern GtkWidget *new_button, *open_button,*print_button, *cut_button, *copy_button, *paste_button, *search_button, *add_button, *remove_button, *save_button, *saveadd_button, *cancel_button, *caxun_button,*zu_button,*rename_button,*suxin_button, *bigico_button, *smallico_button, *list_button, *xian_button, *fenye_button, *mima_button, *laji_button, *wannanli_button, *telepho_button, *question_button, *up_button, *down_button;extern GtkWidget *treewin,*tree_selectitem,*tree_selectrootleaf;extern GtkTree *tree_selecttree,*tree_selectuptree;extern GtkWidget*nb_1_1,*nb_1_2,*nb_1_3,*nb_1_4,*nb_1_5,*nb_1_6,*nb_1_7,*nb_1_8,*nb_1_9,*nb_1_10,*nb_1_11,*nb_1_12,*nb_1_13,*nb_1_14,*nb_1_15,*nb_1_16,*nb_1_17,*nb_1_18,*nb_2_1,*nb_2_2,*nb_2_3,*nb_2_4,*nb_2_5,*nb_2_6,*nb_2_7,*nb_2_8,*nb_2_9,*nb_2_10,*nb_2_11,*nb_2_12,*nb_2_13,*nb_3_1,*nb_3_2;extern GtkWidget *menu_file_new,*menu_file_open,*menu_file_openold,*menu_file_close,*menu_file_saveas,*menu_file_exit,*menu_edit_cut,*menu_edit_copy,*menu_edit_paste,*menu_jilu_add,*menu_jilu_remove,*menu_jilu_save,*menu_jilu_saveadd,*menu_jilu_cancel,*menu_jilu_zu,*menu_jilu_rename,*menu_tool_option;gboolean nb_changed,nb_isadd;struct _Nowincopy nowincopy;void addtotext(gchar **a,gchar *b);void nb_setchanged (GtkWidget *widget, gpointer data);void leaf_setnb(gchar *ab);void Popup (gchar *szMessage);void Areyousure (gchar *szMessage);void YesNo (gchar *szMessage);void tree_set_pixmap(GtkTreeItem *treeitem,ImageType ed);void tree_set_text(GtkTreeItem *treeitem, gchar *ab);GtkWidget* yq_createleaf(gchar *ab,ImageType ed);gchar *leaf_formattext(gchar *bd);void leaf_selected (GtkWidget *widget, tree_node *tnode);void toolbar_save(GtkWidget *widget, gpointer data);void toolbar_add(GtkWidget *widget, gpointer data);void zu_expanded(GtkWidget *widget, tree_node *tnode);void zu_collapsed(GtkWidget *widget, tree_node *tnode);void zu_selected (GtkWidget *widget, tree_node *tnode);void yq_cfg_remove_sections(ConfigFile *cfg,gchar *section);void yq_cfg_rename_sections(ConfigFile *cfg,gchar *section,gchar *section_name);void yq_cfg_daiti_sections(ConfigFile *cfg,gchar *section1,gchar *section2);GtkWidget *yq_readzu(tree_node *tnode);GtkWidget *yq_createnulltree();void yq_readfile(GtkWidget *widget, gpointer openfile);void GetFilename (char *sTitle);void InputName (gchar *szMessage,gchar *entryvalue);void create_yqfile(gchar *filename);void open_zu(gchar *zuname);void toolbar_addjilu(gchar *ab);void toolbar_addzu();void toolbar_copyzu(gchar *zuname1,gchar *zuname2);GtkWidget *yq_createnulltree(){GtkWidget *tree; tree=gtk_tree_new(); gtk_widget_show (tree); return tree;}voidyq_cfg_remove_sections(ConfigFile *cfg,gchar *section){gint i,z;gchar tz[260];yq_cfg_read_int(cfg,section,"z",&z);for (i=1;i<=z;i++) { sprintf(tz,"%s_%d",section,i); yq_cfg_remove_sections(cfg,tz); } yq_cfg_remove_section(cfg,section);}void yq_cfg_daiti_sections(ConfigFile *cfg,gchar *section1,gchar *section2){yq_cfg_remove_sections(cfg,section1);yq_cfg_rename_sections(cfg,section2,section1);}void yq_cfg_rename_sections(ConfigFile *cfg,gchar *section,gchar *section_name){gint i,z;gchar tz1[260],tz2[260];yq_cfg_read_int(cfg,section,"z",&z);for (i=1;i<=z;i++) { sprintf(tz1,"%s_%d",section,i); sprintf(tz2,"%s_%d",section_name,i); yq_cfg_rename_sections(cfg,tz1,tz2); } yq_cfg_rename_section(cfg,section,section_name); }voidnb_setchanged (GtkWidget *widget, gpointer data){if ((widget!=save_button)==nb_changed) return;gtk_widget_set_sensitive(new_button,nb_changed);gtk_widget_set_sensitive(menu_file_new,nb_changed);gtk_widget_set_sensitive(open_button,nb_changed);gtk_widget_set_sensitive(menu_file_open,nb_changed);gtk_widget_set_sensitive(menu_file_openold,nb_changed);gtk_widget_set_sensitive(menu_file_close,nb_changed);gtk_widget_set_sensitive(menu_file_saveas,nb_changed);gtk_widget_set_sensitive(print_button,nb_changed);gtk_widget_set_sensitive(cut_button,nb_changed);gtk_widget_set_sensitive(copy_button,nb_changed);gtk_widget_set_sensitive(menu_edit_copy,nb_changed);gtk_widget_set_sensitive(paste_button,nb_changed);gtk_widget_set_sensitive(menu_edit_paste,nb_changed);gtk_widget_set_sensitive(search_button,nb_changed);gtk_widget_set_sensitive(add_button,nb_changed);gtk_widget_set_sensitive(menu_jilu_add,nb_changed);gtk_widget_set_sensitive(remove_button,nb_changed);gtk_widget_set_sensitive(menu_jilu_remove,nb_changed);gtk_widget_set_sensitive(zu_button,nb_changed);gtk_widget_set_sensitive(menu_jilu_zu,nb_changed);gtk_widget_set_sensitive(rename_button,nb_changed);gtk_widget_set_sensitive(menu_jilu_rename,nb_changed);gtk_widget_set_sensitive(suxin_button,nb_changed);gtk_widget_set_sensitive(caxun_button,nb_changed);gtk_widget_set_sensitive(bigico_button,nb_changed);gtk_widget_set_sensitive(smallico_button,nb_changed);gtk_widget_set_sensitive(list_button,nb_changed);gtk_widget_set_sensitive(xian_button,nb_changed);gtk_widget_set_sensitive(fenye_button,nb_changed);gtk_widget_set_sensitive(mima_button,nb_changed);gtk_widget_set_sensitive(laji_button,nb_changed);gtk_widget_set_sensitive(up_button,nb_changed);gtk_widget_set_sensitive(down_button,nb_changed);gtk_widget_set_sensitive(treewin,nb_changed);nb_changed=!nb_changed; gtk_widget_set_sensitive(menu_jilu_save,nb_changed);gtk_widget_set_sensitive(menu_jilu_saveadd,nb_changed);gtk_widget_set_sensitive(menu_jilu_cancel,nb_changed); gtk_widget_set_sensitive(save_button,nb_changed);gtk_widget_set_sensitive(saveadd_button,nb_changed);gtk_widget_set_sensitive(cancel_button,nb_changed); }voidaddtotext(gchar **a,gchar *bb){gint i;gchar *b;if (*bb=='\0') { **a='~';(*a)++;**a='0';(*a)++; }else { b=bb; for (i=1;i<=strlen(bb);i++) { switch (*b) { case '~': **a='~';(*a)++;**a='~';break; case '\n': **a='~';(*a)++;**a='n';break; case ',': **a='~';(*a)++;**a='d';break; default: **a=*b;break; } (*a)++; b++; } } **a=','; (*a)++;}voidtoolbar_save(GtkWidget *widget, gpointer data){ gchar *ab,*a,bb[260],*c; if (*gtk_entry_get_text(GTK_ENTRY(nb_1_1))=='\0') { Popup("请输入姓名"); return; } ab=g_malloc(10000); a=ab; c=gtk_entry_get_text(GTK_ENTRY(nb_1_1)); if (!nb_isadd) tree_set_text(GTK_TREE_ITEM(tree_selectitem),c); addtotext(&a,c); if (!strcmp(gtk_entry_get_text(GTK_ENTRY (GTK_COMBO(nb_1_2)->entry)),"男")) { strcpy(bb,"1"); if (!nb_isadd) tree_set_pixmap(GTK_TREE_ITEM(tree_selectitem),BOY); } else { strcpy(bb,"0"); if (!nb_isadd) tree_set_pixmap(GTK_TREE_ITEM(tree_selectitem),GIRL); } addtotext(&a,bb); if (!strcmp(gtk_entry_get_text(GTK_ENTRY (GTK_COMBO(nb_1_3)->entry)),"阳历")) strcpy(bb,"1"); else strcpy(bb,"0"); addtotext(&a,bb); addtotext(&a,gtk_entry_get_text(GTK_ENTRY(nb_1_5))); if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(nb_1_4))) strcpy(bb,"1");else strcpy(bb,"0"); addtotext(&a,bb); addtotext(&a,gtk_entry_get_text(GTK_ENTRY(nb_1_6))); addtotext(&a,gtk_entry_get_text(GTK_ENTRY(nb_1_7))); addtotext(&a,gtk_entry_get_text(GTK_ENTRY(nb_1_8))); addtotext(&a,gtk_entry_get_text(GTK_ENTRY(nb_1_9))); addtotext(&a,gtk_entry_get_text(GTK_ENTRY(nb_1_10))); addtotext(&a,gtk_entry_get_text(GTK_ENTRY(nb_1_11))); addtotext(&a,gtk_entry_get_text(GTK_ENTRY(nb_1_12))); addtotext(&a,gtk_entry_get_text(GTK_ENTRY(nb_1_13))); addtotext(&a,gtk_entry_get_text(GTK_ENTRY(nb_1_14))); addtotext(&a,gtk_entry_get_text(GTK_ENTRY(nb_1_15))); addtotext(&a,gtk_entry_get_text(GTK_ENTRY(nb_1_16))); addtotext(&a,gtk_entry_get_text(GTK_ENTRY(nb_1_17))); addtotext(&a,gtk_entry_get_text(GTK_ENTRY(nb_1_18))); addtotext(&a,gtk_entry_get_text(GTK_ENTRY(nb_2_1))); addtotext(&a,gtk_entry_get_text(GTK_ENTRY(nb_2_2))); addtotext(&a,gtk_entry_get_text(GTK_ENTRY(nb_2_3))); addtotext(&a,gtk_entry_get_text(GTK_ENTRY(nb_2_4))); addtotext(&a,gtk_entry_get_text(GTK_ENTRY(nb_2_5))); addtotext(&a,gtk_entry_get_text(GTK_ENTRY(nb_2_6))); addtotext(&a,gtk_entry_get_text(GTK_ENTRY(nb_2_7))); addtotext(&a,gtk_entry_get_text(GTK_ENTRY(nb_2_8))); addtotext(&a,gtk_entry_get_text(GTK_ENTRY(nb_2_9))); addtotext(&a,gtk_entry_get_text(GTK_ENTRY(nb_2_10))); addtotext(&a,gtk_entry_get_text(GTK_ENTRY(nb_2_11))); addtotext(&a,gtk_entry_get_text(GTK_ENTRY(nb_2_12))); addtotext(&a,gtk_entry_get_text(GTK_ENTRY(nb_2_13))); c=gtk_editable_get_chars(GTK_EDITABLE(nb_3_1),(gint)0,(gint)-1); addtotext(&a,c); g_free(c); c=gtk_editable_get_chars(GTK_EDITABLE(nb_3_2),(gint)0,(gint)-1); addtotext(&a,c); g_free(c); a--; *a='\0'; nb_setchanged(save_button,NULL); if (!nb_isadd) yq_cfg_write_string(cfgfile,tree_selectzuname,tree_selectjilu,ab); else toolbar_addjilu(ab); g_free(ab);}void toolbar_addjilu(gchar *ab){ GtkWidget *leaf; gchar bb[260],*a; gint i,n; tree_node *tnode; a=strchr(ab,','); *a='\0'; strcpy(bb,ab); leaf_formattext(bb); *a=','; if (*(a+1)=='1') leaf=yq_createleaf(bb,BOY); else leaf=yq_createleaf(bb,GIRL); tnode = g_malloc(sizeof(tree_node)); tnode -> cfg = cfgfile; if (tree_selectiszu) { if (!GTK_TREE_ITEM(tree_selectitem)->subtree) gtk_tree_item_set_subtree(GTK_TREE_ITEM(tree_selectitem),yq_createnulltree()); if (!GTK_TREE_ITEM(tree_selectitem)->expanded) gtk_tree_item_expand(GTK_TREE_ITEM(tree_selectitem)); gtk_tree_append(GTK_TREE(GTK_TREE_ITEM(tree_selectitem)->subtree),leaf); tnode->attree=GTK_TREE(GTK_TREE_ITEM(tree_selectitem)->subtree); tnode->uptree=tree_selecttree; } else { gtk_tree_append(tree_selecttree,leaf); tnode->attree=tree_selecttree; tnode->uptree=tree_selectuptree; } yq_cfg_read_int(cfgfile,tree_selectzuname,"a",&i); i++; sprintf(bb,"%s-%d",tree_selectzuname,i); tnode->root_leaf=tree_selectrootleaf; strcpy(tnode -> nodename, bb); gtk_signal_connect(GTK_OBJECT(leaf), "select", GTK_SIGNAL_FUNC(leaf_selected),tnode); sprintf(bb,"%d",i); yq_cfg_write_string(cfgfile,tree_selectzuname,bb,ab); yq_cfg_write_int(cfgfile,tree_selectzuname,"a",i); nb_isadd=0; yq_cfg_read_int(cfgfile,tree_selectzuname,"z",&n); n=i+n-1; if (tree_selectiszu) gtk_tree_select_item(GTK_TREE(GTK_TREE_ITEM(tree_selectitem)->subtree),n); else gtk_tree_select_item(tree_selecttree,n);}voidtoolbar_saveadd(GtkWidget *widget, gpointer data){toolbar_save(save_button,NULL);toolbar_add(add_button,NULL);}voidtoolbar_cancel(GtkWidget *widget, gpointer data){gchar *ab;if (tree_selectiszu) { open_zu(tree_selectzuname); gtk_clist_select_row(GTK_CLIST(yqlist.list),clist_selectrow,0); } else { yq_cfg_read_string(cfgfile,tree_selectzuname,tree_selectjilu,&ab); leaf_setnb(ab); g_free(ab); } nb_setchanged(save_button,NULL); nb_isadd=0;}/*voidtoolbar_remove_jilu(){*/void
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -