📄 toolbarfunc.c
字号:
toolbar_remove(GtkWidget *widget, gpointer data){ gint i,n,j,z,k; gchar *ab,ti[4],tj[4],tz[260],*bb; GtkWidget *leaf; GList *children; tree_node *tnode; if (tree_selectzuname[0]=='\0') return; if (!tree_selectiszu) { j=atoi(tree_selectjilu); yq_cfg_read_int(cfgfile,tree_selectzuname,"z",&z); yq_cfg_read_int(cfgfile,tree_selectzuname,"a",&n); for (i=j;i<n;i++) { sprintf(ti,"%d",i); sprintf(tj,"%d",i+1); yq_cfg_read_string(cfgfile,tree_selectzuname,tj,&ab); yq_cfg_write_string(cfgfile,tree_selectzuname,ti,ab); bb=strchr(ab,','); *bb='\0'; if (*(bb+1)=='1') leaf=yq_createleaf(leaf_formattext(ab),BOY); else leaf=yq_createleaf(leaf_formattext(ab),GIRL); gtk_tree_append(GTK_TREE(tree_selecttree),leaf); g_free(ab); sprintf(tz,"%s-%s",tree_selectzuname,ti); tnode = g_malloc(sizeof(tree_node)); tnode -> cfg = cfgfile; tnode->attree=GTK_TREE(tree_selecttree); tnode->uptree=GTK_TREE(tree_selectuptree); tnode->root_leaf=tree_selectrootleaf; strcpy(tnode -> nodename, tz); gtk_signal_connect(GTK_OBJECT(leaf), "select", GTK_SIGNAL_FUNC(leaf_selected),tnode); } if (j==n) gtk_tree_clear_items(tree_selecttree,z+j-1,-1); else gtk_tree_clear_items(tree_selecttree,z+j-1,z+n-1); yq_cfg_write_int(cfgfile,tree_selectzuname,"a",n-1); sprintf(tj,"%d",n); yq_cfg_remove_key(cfgfile,tree_selectzuname,tj); if (j==n) j--; k=z+j-1; } else { bb=strrchr(tree_selectzuname,'_'); if (!bb) return; yq_cfg_read_string(cfgfile,tree_selectzuname,"n",&ab); sprintf(tz,"确实要删除组 \"%s\" 吗?",ab); g_free(ab); Areyousure(tz); if (!yesnoreturn) return; *bb='\0'; yq_cfg_read_int(cfgfile,tree_selectzuname,"z",&z); yq_cfg_read_int(cfgfile,tree_selectzuname,"a",&n); k=0; children = gtk_container_children (GTK_CONTAINER (tree_selecttree)); while (children) { if (children->data==tree_selectitem) break; k++; children = g_list_remove_link (children, children); } if ((k==(z-1))&&(n==0)) k--; yq_cfg_write_int(cfgfile,tree_selectzuname,"z",z-1); sprintf(tz,"%s_%d",tree_selectzuname,z); *bb='_'; if (!strcmp(tz,tree_selectzuname)) { yq_cfg_remove_sections(cfgfile,tree_selectzuname); gtk_tree_remove_item(tree_selecttree,tree_selectitem); } else { yq_cfg_daiti_sections(cfgfile,tree_selectzuname,tz); gtk_tree_remove_item(tree_selecttree,tree_selectitem); yq_cfg_read_string(cfgfile,tree_selectzuname,"n",&ab); leaf=yq_createleaf(ab,ZU_CLOSE); g_free(ab); tnode = g_malloc(sizeof(tree_node)); tnode -> cfg = cfgfile; tnode->attree=GTK_TREE(tree_selecttree); tnode->uptree=GTK_TREE(tree_selectuptree); tnode->root_leaf=tree_selectrootleaf; strcpy(tnode -> nodename, tree_selectzuname); gtk_signal_connect(GTK_OBJECT(leaf), "expand", GTK_SIGNAL_FUNC(zu_expanded),tnode); gtk_signal_connect(GTK_OBJECT(leaf), "collapse", GTK_SIGNAL_FUNC(zu_collapsed),tnode); gtk_signal_connect(GTK_OBJECT(leaf), "select", GTK_SIGNAL_FUNC(zu_selected),tnode); i=0; while (i<(z-1)) { gtk_tree_select_item(tree_selecttree,i); if (!strcmp(tree_selectzuname,tz)) {j=i;break;} i++; } gtk_tree_insert(GTK_TREE(tree_selecttree),leaf,j); gtk_tree_remove_item(tree_selecttree,tree_selectitem); gtk_tree_item_set_subtree(GTK_TREE_ITEM(leaf),yq_readzu(tnode)); } } if (z+n==1) gtk_tree_select_child(tree_selectuptree, tree_selecttree->tree_owner); else gtk_tree_select_item(tree_selecttree,k); }voidtoolbar_add(GtkWidget *widget, gpointer data){if (tree_selectzuname[0]=='\0') return; if (yqlist.type==LIST_DETAILS) { yq_set_list_type(LIST_NOTEBOOK); } else { nb_changed=1; gtk_entry_set_text(GTK_ENTRY(nb_1_1),""); gtk_entry_set_text (GTK_ENTRY (GTK_COMBO(nb_1_2)->entry),"男"); gtk_entry_set_text (GTK_ENTRY (GTK_COMBO(nb_1_3)->entry), "阳历"); gtk_toggle_button_set_state (GTK_TOGGLE_BUTTON(nb_1_4), 0); gtk_entry_set_text(GTK_ENTRY(nb_1_5),"");gtk_entry_set_text(GTK_ENTRY(nb_1_6),"");gtk_entry_set_text(GTK_ENTRY(nb_1_7),"");gtk_entry_set_text(GTK_ENTRY(nb_1_8),"");gtk_entry_set_text(GTK_ENTRY(nb_1_9),"");gtk_entry_set_text(GTK_ENTRY(nb_1_10),"");gtk_entry_set_text(GTK_ENTRY(nb_1_11),"");gtk_entry_set_text(GTK_ENTRY(nb_1_12),"");gtk_entry_set_text(GTK_ENTRY(nb_1_13),"");gtk_entry_set_text(GTK_ENTRY(nb_1_14),"");gtk_entry_set_text(GTK_ENTRY(nb_1_15),"");gtk_entry_set_text(GTK_ENTRY(nb_1_16),"");gtk_entry_set_text(GTK_ENTRY(nb_1_17),"");gtk_entry_set_text(GTK_ENTRY(nb_1_18),"");gtk_entry_set_text(GTK_ENTRY(nb_2_1),"");gtk_entry_set_text(GTK_ENTRY(nb_2_2),"");gtk_entry_set_text(GTK_ENTRY(nb_2_3),"");gtk_entry_set_text(GTK_ENTRY(nb_2_4),"");gtk_entry_set_text(GTK_ENTRY(nb_2_5),"");gtk_entry_set_text(GTK_ENTRY(nb_2_6),"");gtk_entry_set_text(GTK_ENTRY(nb_2_7),"");gtk_entry_set_text(GTK_ENTRY(nb_2_8),"");gtk_entry_set_text(GTK_ENTRY(nb_2_9),"");gtk_entry_set_text(GTK_ENTRY(nb_2_10),"");gtk_entry_set_text(GTK_ENTRY(nb_2_11),"");gtk_entry_set_text(GTK_ENTRY(nb_2_12),"");gtk_entry_set_text(GTK_ENTRY(nb_2_13),"");gtk_editable_delete_text (GTK_EDITABLE (nb_3_1), 0, -1);gtk_editable_delete_text (GTK_EDITABLE (nb_3_2), 0, -1);nb_changed=0;}nb_isadd=1;nb_setchanged(widget,NULL);}void toolbar_zu(GtkWidget *widget, gpointer data){ gint z; gchar tz[260]; if (tree_selectzuname[0]=='\0') return; yq_cfg_read_int(cfgfile,tree_selectzuname,"z",&z); sprintf(tz,"%s_%d",tree_selectzuname,z+1); InputName ("请输入组名:","新组"); if (!yesnoreturn) return; if (sFilename[0]=='\0') { Popup("组名不能为空!"); return; } yq_cfg_write_int(cfgfile,tree_selectzuname,"z",z+1); yq_cfg_write_string(cfgfile,tz,"n",sFilename); yq_cfg_write_int(cfgfile,tz,"z",0); yq_cfg_write_int(cfgfile,tz,"a",0); toolbar_addzu();}void toolbar_addzu(){ GtkWidget *leaf; gint z; gchar tz[260],*zuname; tree_node *tnode; yq_cfg_read_int(cfgfile,tree_selectzuname,"z",&z); sprintf(tz,"%s_%d",tree_selectzuname,z); yq_cfg_read_string(cfgfile,tz,"n",&zuname); leaf=yq_createleaf(zuname,ZU_CLOSE); g_free(zuname); tnode = g_malloc(sizeof(tree_node)); tnode -> cfg = cfgfile; tnode->root_leaf=tree_selectrootleaf; strcpy(tnode -> nodename, tz); if (tree_selectiszu) open_zu(tree_selectzuname); else gtk_tree_select_child(tree_selectuptree,tree_selecttree->tree_owner ); gtk_clist_select_row(GTK_CLIST(yqlist.list),z-1,0); 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_insert(GTK_TREE(GTK_TREE_ITEM(tree_selectitem)->subtree),leaf,z-1); tnode->attree=GTK_TREE(GTK_TREE_ITEM(tree_selectitem)->subtree); tnode->uptree=tree_selecttree; gtk_signal_connect(GTK_OBJECT(leaf), "expand", GTK_SIGNAL_FUNC(zu_expanded),tnode); gtk_signal_connect(GTK_OBJECT(leaf), "collapse", GTK_SIGNAL_FUNC(zu_collapsed),tnode); gtk_signal_connect(GTK_OBJECT(leaf), "select", GTK_SIGNAL_FUNC(zu_selected),tnode); gtk_tree_item_set_subtree(GTK_TREE_ITEM(leaf),yq_readzu(tnode)); }voidtoolbar_open(GtkWidget *widget, gpointer data){GetFilename ("打开YQ文件");if (sFilename[0]!='\0') yq_readfile(widget,sFilename); }voidtoolbar_rename(GtkWidget *widget, gpointer data){gchar *ab,tz[256];if (tree_selectzuname[0]=='\0') return;if (!tree_selectiszu) return; yq_cfg_read_string(cfgfile,tree_selectzuname,"n",&ab); sprintf(tz,"将组 \"%s\" 重命名为:",ab); InputName (tz,ab); if (!yesnoreturn) return; strcpy(tz,ab); g_free(ab); if (sFilename[0]=='\0') { Popup("组名不能为空!"); return; } if (!strcmp(sFilename,tz)) { Popup("组名相同!"); return; } tree_set_text(GTK_TREE_ITEM(tree_selectitem),sFilename); yq_cfg_write_string(cfgfile,tree_selectzuname,"n",sFilename);}voidtoolbar_new(GtkWidget *widget, gpointer data){ struct stat st; FILE *file; GetFilename ("新建YQ文件"); if (sFilename[0]=='\0') return; if (!stat(sFilename, &st)) { Areyousure("此文件已经存在,确实要替换?"); if (!yesnoreturn) return; } create_yqfile(sFilename); yq_readfile(widget,sFilename);}voidtoolbar_copy(GtkWidget *widget, gpointer data){ if (tree_selectzuname[0]=='\0') return; nowincopy.cfg=cfgfile; nowincopy.iszu=tree_selectiszu; strcpy(nowincopy.zuname,tree_selectzuname); if (!tree_selectiszu) strcpy(nowincopy.jiluname,tree_selectjilu);}void toolbar_copyzu(gchar *zuname1,gchar *zuname2){ gchar *ab,tz[260],tz2[260]; gint i,z; yq_cfg_read_string(nowincopy.cfg,zuname2,"n",&ab); yq_cfg_write_string(cfgfile,zuname1,"n",ab); g_free(ab); yq_cfg_read_int(nowincopy.cfg,zuname2,"a",&z); yq_cfg_write_int(cfgfile,zuname1,"a",z); for (i=1;i<=z;i++) { sprintf(tz,"%d",i); yq_cfg_read_string(nowincopy.cfg,zuname2,tz,&ab); yq_cfg_write_string(cfgfile,zuname1,tz,ab); g_free(ab); } yq_cfg_read_int(nowincopy.cfg,zuname2,"z",&z); yq_cfg_write_int(cfgfile,zuname1,"z",z); for (i=1;i<=z;i++) { sprintf(tz,"%s_%d",zuname1,i); sprintf(tz2,"%s_%d",zuname2,i); toolbar_copyzu(tz,tz2); }}voidtoolbar_paste(GtkWidget *widget, gpointer data){ gchar *ab,tz[256]; gint z; if (nowincopy.zuname[0]=='\0') return; if (tree_selectzuname[0]=='\0') return; if (nowincopy.iszu) { if (!yq_cfg_read_int(nowincopy.cfg,nowincopy.zuname,"a",&z)) return; yq_cfg_read_int(cfgfile,tree_selectzuname,"z",&z); sprintf(tz,"%s_%d",tree_selectzuname,z+1); toolbar_copyzu(tz,nowincopy.zuname); yq_cfg_write_int(cfgfile,tree_selectzuname,"z",z+1); toolbar_addzu(); } else { if (!yq_cfg_read_string(nowincopy.cfg,nowincopy.zuname,nowincopy.jiluname,&ab)) return; toolbar_addjilu(ab); g_free(ab); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -