📄 clist.c
字号:
#include "yqtype.h"#include "configfile.h"#include <gtk/gtk.h>#include <string.h>extern struct _YQList yqlist;extern GdkPixmap *yqpixmaps[MAX_IMAGE_TYPES];extern GdkBitmap *yqmasks[MAX_IMAGE_TYPES];extern ConfigFile *rccfgfile;gint clist_selectrow;extern gboolean titleshow[33];extern ConfigFile *cfgfile;void clist_readjilu(gchar **strvalue,gchar *ab);gchar *leaf_formattext(gchar *bd);gchar *clist_leaf_formattext(gint i,gchar *p);void yq_clist_select_row(GtkCList clist,gint row,gint column){clist_selectrow=row;}voidcreateclist(){ gint i,n,t,k; gchar *list_title,ti[4]; n=0;t=0; for (i=0;i<=32;i++) if (titleshow[i]) n++; yqlist.list=gtk_clist_new(n); for (i=0;i<n;i++) { while (!titleshow[t]) t++; sprintf(ti,"%d",t+1); yq_cfg_read_string(rccfgfile,"title",ti,&list_title); gtk_clist_set_column_title(GTK_CLIST(yqlist.list),i,list_title); g_free(list_title); yq_cfg_read_int(rccfgfile,"titlewidth",ti,&k); if (k) gtk_clist_set_column_width(GTK_CLIST(yqlist.list),i,k); else gtk_clist_set_column_auto_resize(GTK_CLIST(yqlist.list),i,1); t++; } gtk_clist_set_selection_mode(GTK_CLIST(yqlist.list), GTK_SELECTION_EXTENDED); gtk_widget_show(yqlist.list); gtk_clist_column_titles_show(GTK_CLIST(yqlist.list));gtk_signal_connect(GTK_OBJECT(yqlist.list), "select_row", GTK_SIGNAL_FUNC(yq_clist_select_row), NULL); yqlist.listwin = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(yqlist.listwin), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_add (GTK_CONTAINER (yqlist.listwin), GTK_WIDGET(yqlist.list)); /*gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(yqlist.listwin), yqlist.list);*/ gtk_box_pack_start(GTK_BOX (yqlist.box),yqlist.listwin, TRUE, TRUE, 0); gtk_widget_show(yqlist.listwin); yqlist.type=LIST_DETAILS;} gchar*clist_leaf_formattext(gint i,gchar *p){switch (i+1) { case 2: if (*p=='1') return "男";else return "女"; break; case 3: if (*p=='1') return "阳历";else return "阴历"; break; case 5: if (*p=='1') return "是";else return "否"; break; default: return leaf_formattext(p); }}voidclist_readjilu(gchar **strvalue,gchar *ab){gint i,n;gchar *p;n=0;p=strtok(ab,","); for (i=1;i<=32;i++) { p=strtok(NULL,","); if (titleshow[i]) { n++; strvalue[n]=clist_leaf_formattext(i,p); } } }voidclist_openzu(gchar *zu){gchar *ab,tz[256],**strvalue;gint i,z,n,row;gboolean bb; gtk_clist_freeze(GTK_CLIST(yqlist.list)); n=0; for (i=0;i<=32;i++) if (titleshow[i]) n++; strvalue=g_malloc(n*sizeof(gchar *)); for (i=0;i<n;i++) strvalue[i]=NULL; yq_cfg_read_int(cfgfile,zu,"z",&z); for (i=1;i<=z;i++) { sprintf(tz,"%s_%d",zu,i); yq_cfg_read_string(cfgfile,tz,"n",&ab); row=gtk_clist_append(GTK_CLIST(yqlist.list),strvalue); gtk_clist_set_pixtext(GTK_CLIST(yqlist.list), row, 0, ab, 1, yqpixmaps[ZU_CLOSE], yqmasks[ZU_CLOSE]); g_free(ab); } yq_cfg_read_int(cfgfile,zu,"a",&z); for (i=1;i<=z;i++) { sprintf(tz,"%d",i); yq_cfg_read_string(cfgfile,zu,tz,&ab); bb=(*(strchr(ab,',')+1)=='1'); clist_readjilu(strvalue,ab); row=gtk_clist_append(GTK_CLIST(yqlist.list),strvalue); leaf_formattext(ab); if (bb) gtk_clist_set_pixtext(GTK_CLIST(yqlist.list), row, 0, ab, 1, yqpixmaps[BOY], yqmasks[BOY]); else gtk_clist_set_pixtext(GTK_CLIST(yqlist.list), row, 0, ab, 1, yqpixmaps[GIRL], yqmasks[GIRL]); g_free(ab); } gtk_clist_thaw(GTK_CLIST(yqlist.list)); g_free(strvalue); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -