⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rc.c

📁 这是一个Linux下的源代码,具体的你自己去看了,绝对的好东西,是关于网络通讯方面的!
💻 C
字号:
#include "yqtype.h"#include "configfile.h"#include <gtk/gtk.h> #include <string.h>#include "treenode.h"#include "pixmaps/boy.xpm"#include "pixmaps/girl.xpm"#include "pixmaps/zu_open.xpm"#include "pixmaps/zu_close.xpm"#include "pixmaps/yqfile.xpm"#include "pixmaps/yqfile_open.xpm"#include "pixmaps/yqfile_close.xpm"#include "pixmaps/laji.xpm"gboolean tree_selectiszu;ConfigFile *cfgfile;gchar tree_selectzuname[256],tree_selectjilu[4];GtkWidget *tree_selectitem,*tree_selectrootleaf;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 *tree_main,*root_leaf;extern ConfigFile *rccfgfile;extern gboolean nb_changed;GdkPixmap *yqpixmaps[MAX_IMAGE_TYPES];GdkBitmap *yqmasks[MAX_IMAGE_TYPES];GtkWidget  *yq_createnulltree();GtkWidget *yq_readzu(tree_node *tnode);void Popup (gchar *szMessage);void leaf_selected (GtkWidget *widget, tree_node *tnode);void zu_selected (GtkWidget *widget, tree_node *tnode);void tree_set_pixmap(GtkTreeItem *treeitem,ImageType ed);void zu_expanded(GtkWidget *widget, tree_node *tnode);void zu_collapsed(GtkWidget *widget, tree_node *tnode);void yqfile_expanded(GtkWidget *widget, tree_node *tnode);void yqfile_collapsed(GtkWidget *widget, tree_node *tnode);void leaf_setnb(gchar *ab);gchar *leaf_formattext(gchar *bd);void clist_openzu(gchar *zu);void yq_set_list_type(ListType type);GtkWidget* yq_createleaf(gchar *ab,ImageType ed);voidyq_load_pixmaps(GtkWidget *parent){	static gboolean loaded = FALSE;	static GtkStyle *style;	if (!loaded)	{		loaded = TRUE;		style = gtk_widget_get_style(parent);		yqpixmaps[BOY] = gdk_pixmap_create_from_xpm_d(			parent->window,			&yqmasks[BOY], &style->bg[GTK_STATE_NORMAL],			(gchar **)boy_xpm);		yqpixmaps[GIRL] = gdk_pixmap_create_from_xpm_d(			parent->window,			&yqmasks[GIRL], &style->bg[GTK_STATE_NORMAL],			(gchar **)girl_xpm);		yqpixmaps[ZU_OPEN] = gdk_pixmap_create_from_xpm_d(			parent->window,			&yqmasks[ZU_OPEN], &style->bg[GTK_STATE_NORMAL],			(gchar **)zu_open_xpm);		yqpixmaps[ZU_CLOSE] = gdk_pixmap_create_from_xpm_d(			parent->window,			&yqmasks[ZU_CLOSE], &style->bg[GTK_STATE_NORMAL],			(gchar **)zu_close_xpm);		yqpixmaps[YQFILE_OPEN] = gdk_pixmap_create_from_xpm_d(			parent->window,			&yqmasks[YQFILE_OPEN], &style->bg[GTK_STATE_NORMAL],			(gchar **)yqfile_open_xpm);		yqpixmaps[YQFILE] = gdk_pixmap_create_from_xpm_d(			parent->window,			&yqmasks[YQFILE], &style->bg[GTK_STATE_NORMAL],			(gchar **)yqfile_xpm);		yqpixmaps[YQFILE_CLOSE] = gdk_pixmap_create_from_xpm_d(			parent->window,			&yqmasks[YQFILE_CLOSE], &style->bg[GTK_STATE_NORMAL],			(gchar **)yqfile_close_xpm);	}}void tree_set_pixmap(GtkTreeItem *treeitem, ImageType ed){		GtkPixmap *hbox, *pixmap;			hbox = gtk_container_children(GTK_CONTAINER(treeitem))->data;	pixmap = gtk_container_children(GTK_CONTAINER(hbox))->data;	gtk_pixmap_set(GTK_PIXMAP(pixmap),yqpixmaps[ed],yqmasks[ed]); }void tree_set_text(GtkTreeItem *treeitem, gchar *ab){		GtkWidget *hbox, *label;			hbox = gtk_container_children(GTK_CONTAINER(treeitem))->data;	label = gtk_container_children(GTK_CONTAINER(hbox))->next->data;	gtk_label_set_text(GTK_LABEL(label),ab); }voidleaf_selected (GtkWidget *widget, tree_node *tnode){      gchar zu[260],*ti,*ab;sprintf(zu,"%s-%s",tree_selectzuname,tree_selectjilu);if ((cfgfile==tnode->cfg)&&(!strcmp(zu,tnode->nodename))&&(!tree_selectiszu)) return;tree_selecttree=tnode->attree;tree_selectuptree=tnode->uptree;tree_selectitem=widget;tree_selectrootleaf=tnode->root_leaf;        cfgfile=tnode->cfg;    yq_set_list_type(LIST_NOTEBOOK);    strcpy(zu,tnode->nodename);    ti= strchr(zu,'-');     *ti='\0';    ti++;    tree_selectiszu=FALSE;    strcpy(tree_selectzuname,zu);    strcpy(tree_selectjilu,ti);    yq_cfg_read_string(cfgfile,zu,ti,&ab);    nb_changed=TRUE;     leaf_setnb(ab);    nb_changed=FALSE;    g_free(ab);}gchar*leaf_formattext(gchar *bd){  gchar *ab,*bb;  ab=bd;  bb=bd;  while (*bb!='\0')     {     if (*bb!='~')           {            if (ab!=bb) *ab=*bb;            ab++;            bb++;           }      else         {         bb++;         switch (*bb)           {           case '0':             return "";            case '~':             *ab='~';break;           case 'n':             *ab='\n';break;           case 'd':             *ab=',';break;             }          ab++;          bb++;              }           }  *ab='\0';   return bd;}voidleaf_setnb(gchar *ab){    gchar *bb;gtk_entry_set_text(GTK_ENTRY(nb_1_1),leaf_formattext(strtok(ab,",")));           if (*(strtok(NULL,","))=='1')           gtk_entry_set_text (GTK_ENTRY (GTK_COMBO(nb_1_2)->entry),"男");           else gtk_entry_set_text (GTK_ENTRY (GTK_COMBO(nb_1_2)->entry), "女");           if (*(strtok(NULL,","))=='1')           gtk_entry_set_text (GTK_ENTRY (GTK_COMBO(nb_1_3)->entry), "阳历");           else gtk_entry_set_text (GTK_ENTRY (GTK_COMBO(nb_1_3)->entry), "阴历");          gtk_entry_set_text(GTK_ENTRY(nb_1_5),leaf_formattext(strtok(NULL,",")));           if (*(strtok(NULL,","))=='1')          gtk_toggle_button_set_state (GTK_TOGGLE_BUTTON(nb_1_4), 1);           else gtk_toggle_button_set_state (GTK_TOGGLE_BUTTON(nb_1_4), 0); gtk_entry_set_text(GTK_ENTRY(nb_1_6),leaf_formattext(strtok(NULL,",")));gtk_entry_set_text(GTK_ENTRY(nb_1_7),leaf_formattext(strtok(NULL,",")));gtk_entry_set_text(GTK_ENTRY(nb_1_8),leaf_formattext(strtok(NULL,",")));gtk_entry_set_text(GTK_ENTRY(nb_1_9),leaf_formattext(strtok(NULL,",")));gtk_entry_set_text(GTK_ENTRY(nb_1_10),leaf_formattext(strtok(NULL,",")));gtk_entry_set_text(GTK_ENTRY(nb_1_11),leaf_formattext(strtok(NULL,",")));gtk_entry_set_text(GTK_ENTRY(nb_1_12),leaf_formattext(strtok(NULL,",")));gtk_entry_set_text(GTK_ENTRY(nb_1_13),leaf_formattext(strtok(NULL,",")));gtk_entry_set_text(GTK_ENTRY(nb_1_14),leaf_formattext(strtok(NULL,",")));gtk_entry_set_text(GTK_ENTRY(nb_1_15),leaf_formattext(strtok(NULL,",")));gtk_entry_set_text(GTK_ENTRY(nb_1_16),leaf_formattext(strtok(NULL,",")));gtk_entry_set_text(GTK_ENTRY(nb_1_17),leaf_formattext(strtok(NULL,",")));gtk_entry_set_text(GTK_ENTRY(nb_1_18),leaf_formattext(strtok(NULL,",")));gtk_entry_set_text(GTK_ENTRY(nb_2_1),leaf_formattext(strtok(NULL,",")));gtk_entry_set_text(GTK_ENTRY(nb_2_2),leaf_formattext(strtok(NULL,",")));gtk_entry_set_text(GTK_ENTRY(nb_2_3),leaf_formattext(strtok(NULL,",")));gtk_entry_set_text(GTK_ENTRY(nb_2_4),leaf_formattext(strtok(NULL,",")));gtk_entry_set_text(GTK_ENTRY(nb_2_5),leaf_formattext(strtok(NULL,",")));gtk_entry_set_text(GTK_ENTRY(nb_2_6),leaf_formattext(strtok(NULL,",")));gtk_entry_set_text(GTK_ENTRY(nb_2_7),leaf_formattext(strtok(NULL,",")));gtk_entry_set_text(GTK_ENTRY(nb_2_8),leaf_formattext(strtok(NULL,",")));gtk_entry_set_text(GTK_ENTRY(nb_2_9),leaf_formattext(strtok(NULL,",")));gtk_entry_set_text(GTK_ENTRY(nb_2_10),leaf_formattext(strtok(NULL,",")));gtk_entry_set_text(GTK_ENTRY(nb_2_11),leaf_formattext(strtok(NULL,",")));gtk_entry_set_text(GTK_ENTRY(nb_2_12),leaf_formattext(strtok(NULL,",")));gtk_entry_set_text(GTK_ENTRY(nb_2_13),leaf_formattext(strtok(NULL,",")));               gtk_text_freeze (GTK_TEXT (nb_3_1));               gtk_editable_delete_text (GTK_EDITABLE (nb_3_1), 0, -1);               bb=leaf_formattext(strtok(NULL,","));               gtk_text_insert (GTK_TEXT (nb_3_1), NULL, NULL,                   NULL, bb, strlen(bb));               gtk_text_thaw (GTK_TEXT (nb_3_1));               gtk_text_freeze (GTK_TEXT (nb_3_2));               gtk_editable_delete_text (GTK_EDITABLE (nb_3_2), 0, -1);               bb=leaf_formattext(strtok(NULL,","));                              gtk_text_insert (GTK_TEXT (nb_3_2), NULL, NULL,                   NULL, bb, strlen(bb));               gtk_text_thaw (GTK_TEXT (nb_3_2));               }voidzu_selected (GtkWidget *widget, tree_node *tnode){if ((cfgfile==tnode->cfg)&&(!strcmp(tnode->nodename,tree_selectzuname))&&(tree_selectiszu)) return;tree_selecttree=tnode->attree;tree_selectitem=widget;tree_selectrootleaf=tnode->root_leaf;tree_selectuptree=tnode->uptree;  strcpy(tree_selectzuname,tnode->nodename);  cfgfile=tnode->cfg;  tree_selectiszu=TRUE;   yq_set_list_type(LIST_DETAILS);  clist_openzu(tnode->nodename);}void open_zu(gchar *zuname){  yq_set_list_type(LIST_DETAILS);  clist_openzu(zuname);}voidyqfile_expanded(GtkWidget *widget, tree_node *tnode){    tree_set_pixmap(GTK_TREE_ITEM(widget),YQFILE_OPEN);}voidyqfile_collapsed(GtkWidget *widget, tree_node *tnode){gint i;    tree_set_pixmap(GTK_TREE_ITEM(widget),YQFILE_CLOSE);    if (cfgfile!=tnode->cfg) return;    i=strcmp(tree_selectzuname,"yq");    if ((i==0)&&(tree_selectiszu)) return;      gtk_tree_select_child(tnode->attree, widget);}voidzu_expanded(GtkWidget *widget, tree_node *tnode){    tree_set_pixmap(GTK_TREE_ITEM(widget),ZU_OPEN);}voidzu_collapsed(GtkWidget *widget, tree_node *tnode){gint i;    tree_set_pixmap(GTK_TREE_ITEM(widget),ZU_CLOSE);          if (cfgfile!=tnode->cfg) return;     i=strcmp(tree_selectzuname,tnode->nodename);     if (i<0) return;     if ((i==0)&&(tree_selectiszu)) return;     if (((i>0)&&(tree_selectzuname[strlen(tnode->nodename)]=='_'))||(i==0))       gtk_tree_select_child(tnode->attree, widget);}GtkWidget* yq_createleaf(gchar *ab,ImageType ed){GtkWidget *hbox,*leaf,*pixmap_widget,*label;           leaf = gtk_tree_item_new();	   hbox = gtk_hbox_new(FALSE, 1);	   gtk_widget_show(hbox);	   pixmap_widget = gtk_pixmap_new (yqpixmaps[ed], yqmasks[ed]);           gtk_widget_show (pixmap_widget);           gtk_box_pack_start(GTK_BOX(hbox),pixmap_widget, FALSE, FALSE, 0);	   label = gtk_label_new(ab);	   gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);           gtk_widget_show(label);	   gtk_container_add(GTK_CONTAINER(leaf), hbox);           gtk_widget_show(leaf);           return leaf;}GtkWidget* yq_readzu(tree_node *uptnode){GtkWidget *tree,*leaf;gchar *ab,*bb,ti[4],tz[260];gint i,z;tree_node *tnode;          tree=gtk_tree_new();          gtk_widget_show (tree);          yq_cfg_read_int(uptnode->cfg,uptnode->nodename,"z",&z);                    for (i=1;i<=z;i++)          {           sprintf(tz,"%s_%d",uptnode->nodename,i);           yq_cfg_read_string(uptnode->cfg,tz,"n",&ab);           leaf=yq_createleaf(ab,ZU_CLOSE);	   g_free(ab);        	tnode = g_malloc(sizeof(tree_node));		tnode -> cfg = uptnode->cfg;		tnode->uptree=uptnode->attree;		tnode->attree=GTK_TREE(tree);		tnode->root_leaf=uptnode->root_leaf;		strcpy(tnode -> nodename, tz);           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_append(GTK_TREE(tree),leaf);           gtk_tree_item_set_subtree(GTK_TREE_ITEM(leaf),yq_readzu(tnode));          }                               yq_cfg_read_int(uptnode->cfg,uptnode->nodename,"a",&z);          for (i=1;i<=z;i++)          {                      sprintf(ti,"%d",i);           sprintf(tz,"%s-%s",uptnode->nodename,ti);           yq_cfg_read_string(uptnode->cfg,uptnode->nodename,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);		tnode = g_malloc(sizeof(tree_node));		tnode -> cfg = uptnode->cfg;		tnode->uptree=uptnode->attree;		tnode->attree=GTK_TREE(tree);		tnode->root_leaf=uptnode->root_leaf;		strcpy(tnode -> nodename, tz); 	   gtk_signal_connect(GTK_OBJECT(leaf), "select",			GTK_SIGNAL_FUNC(leaf_selected),tnode);           gtk_tree_append(GTK_TREE(tree),leaf);           g_free(ab);          }                     return tree;}void yq_readfile(GtkWidget *widget, gpointer open_file){	GtkWidget *leaf;	gchar *ab,*bb,ti[4];        tree_node *tnode;        gint i,a,j;                               cfgfile=yq_cfg_open_file(open_file);                if(cfgfile)        {         if (!yq_cfg_read_string(cfgfile,"yq","n",&ab))          {           Popup("这不是YQ文件");           yq_cfg_free(cfgfile);           g_free(cfgfile);               return;          }	yq_cfg_read_int(rccfgfile,"file","a",&a);	for (i=1;i<=a;i++)	{		sprintf(ti,"%d",i);		yq_cfg_read_string(rccfgfile,"file",ti,&bb);		if (!strcmp(bb,open_file))		{			g_free(bb);			for (j=i;j<a;j++)			{				sprintf(ti,"%d",j+1);				yq_cfg_read_string(rccfgfile,"file",ti,&bb);				sprintf(ti,"%d",j);				yq_cfg_write_string(rccfgfile,"file",ti,bb);				g_free(bb);			}			sprintf(ti,"%d",a);			yq_cfg_remove_key(rccfgfile,"file",ti);			a--;			break;		}			g_free(bb);	}	for (i=a;i>0;i--)	{				if (i!=5)		{			sprintf(ti,"%d",i);			yq_cfg_read_string(rccfgfile,"file",ti,&bb);			sprintf(ti,"%d",i+1);			yq_cfg_write_string(rccfgfile,"file",ti,bb);			g_free(bb);		}				}	yq_cfg_write_string(rccfgfile,"file","1",open_file);	if (a!=5) a++;	yq_cfg_write_int(rccfgfile,"file","a",a); 	leaf=yq_createleaf(ab,YQFILE_CLOSE);	if  (!GTK_TREE_ITEM(root_leaf)->subtree)         {        tree_main=yq_createnulltree();        gtk_tree_item_set_subtree(GTK_TREE_ITEM(root_leaf),tree_main);        }	gtk_tree_prepend(GTK_TREE(tree_main),leaf);		tnode = g_malloc(sizeof(tree_node));		tnode -> cfg = cfgfile;		tnode->uptree=GTK_TREE(tree_main)->root_tree;		tnode->attree=GTK_TREE(tree_main);		tnode->root_leaf=leaf;		strcpy(tnode -> nodename, "yq");	gtk_signal_connect(GTK_OBJECT(leaf), "expand",				GTK_SIGNAL_FUNC(yqfile_expanded),tnode);        gtk_signal_connect(GTK_OBJECT(leaf), "collapse",				GTK_SIGNAL_FUNC(yqfile_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));         g_free(ab);         gtk_tree_item_expand(GTK_TREE_ITEM(leaf));         if (!GTK_TREE_ITEM(root_leaf)->expanded)		gtk_tree_item_expand(GTK_TREE_ITEM(root_leaf));	cfgfile=NULL;		gtk_tree_select_item(GTK_TREE(tree_main),0);        }         else         Popup("读取文件时出错!");       }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -