📄 tblman.c
字号:
#include "gmclient.h"static GtkWidget *tmplist=NULL;static GtkWidget *tmpcode;static GtkWidget *tmpname;static GtkWidget *tmpbz;static GtkWidget *tmpcombo;static GtkWidget *tmpfname;static gint saveStockTbl();static void browseStockTbl();static void importStockTblClickOK(GtkWidget *widget,gpointer data);static void importStockTbl(void);static void deleteStockTbl(void);static void deleteStockTblClickOK(GtkWidget *widget,gpointer data);static void editStockTbl(void);static void editStockTblClickOK(GtkWidget *widget,gpointer data);static void insertClistStockTbl(GtkWidget *tmplist); static void insertStockTbl(void);static void insertStockTblClickOK(GtkWidget *widget,gpointer data);void stockTblWh(){ GtkWidget *tmpwin; GtkWidget *tmphbox; GtkWidget *i_box2,*i_but; // if(!frechtblflag) return; tmpwin = createWindow("股票代码表维护",320,280,0,0,5, GTK_SIGNAL_FUNC(endProgram)); tmphbox = createBox(tmpwin,HORIZONTAL,0); tmplist=createClist(tmphbox,3,GTK_SIGNAL_FUNC(NO_FUNC)); setupClist(tmplist,0,"股票代码",64); setupClist(tmplist,1,"股票名称",72); setupClist(tmplist,2,"标志",32); insertClistStockTbl(tmplist); i_box2 = gtk_vbutton_box_new(); gtk_button_box_set_layout(GTK_BUTTON_BOX(i_box2), SPREAD); gtk_button_box_set_spacing(GTK_BUTTON_BOX(i_box2), 10); gtk_box_pack_start(GTK_BOX(tmphbox), i_box2, FALSE, FALSE, 0); gtk_widget_show(i_box2); i_but = gtk_button_new_with_label("导入"); gtk_signal_connect_object(GTK_OBJECT(i_but), "clicked", GTK_SIGNAL_FUNC(importStockTbl),GTK_OBJECT(tmpwin)); gtk_box_pack_start(GTK_BOX(i_box2), i_but, TRUE, TRUE, 0); gtk_widget_show(i_but); i_but = gtk_button_new_with_label("添加"); gtk_signal_connect_object(GTK_OBJECT(i_but), "clicked", GTK_SIGNAL_FUNC(insertStockTbl),GTK_OBJECT(tmpwin)); gtk_box_pack_start(GTK_BOX(i_box2), i_but, TRUE, TRUE, 0); gtk_widget_show(i_but); i_but = gtk_button_new_with_label("编辑"); gtk_signal_connect_object(GTK_OBJECT(i_but), "clicked", GTK_SIGNAL_FUNC(editStockTbl),GTK_OBJECT(tmpwin)); gtk_box_pack_start(GTK_BOX(i_box2), i_but, TRUE, TRUE, 0); gtk_widget_show(i_but); i_but = gtk_button_new_with_label("删除"); gtk_signal_connect_object(GTK_OBJECT(i_but), "clicked", GTK_SIGNAL_FUNC(deleteStockTbl),GTK_OBJECT(tmpwin)); gtk_box_pack_start(GTK_BOX(i_box2), i_but, TRUE, TRUE, 0); gtk_widget_show(i_but); i_but = gtk_button_new_with_label("保存"); gtk_signal_connect_object(GTK_OBJECT(i_but), "clicked", GTK_SIGNAL_FUNC(saveStockTbl),GTK_OBJECT(tmpwin)); gtk_box_pack_start(GTK_BOX(i_box2), i_but, TRUE, TRUE, 0); gtk_widget_show(i_but); i_but = gtk_button_new_with_label("退出"); gtk_signal_connect_object(GTK_OBJECT(i_but), "clicked", GTK_SIGNAL_FUNC(endProgram),GTK_OBJECT(tmpwin)); gtk_box_pack_start(GTK_BOX(i_box2), i_but, TRUE, TRUE, 0); gtk_widget_show(i_but); gtk_grab_add(tmpwin);}void doImportStockTbl(GtkWidget *widget,gpointer data){ char tmpname[256]; strcpy(tmpname, gtk_entry_get_text(GTK_ENTRY(tmpfname))); if(strstr(tmpname,".sha")){// printf("%s",strstr(tmpname,".sha")); frechShStockTbl(tmpname); } else{ if(strstr(tmpname,".szn")){// printf("%s",strstr(tmpname,".szn")); frechSzStockTbl(tmpname); } else{ showMessage("提示","文件后缀名错误!"); return; } } gtk_widget_destroy(widget); gtk_clist_freeze(GTK_CLIST(tmplist)); gtk_clist_clear(GTK_CLIST(tmplist)); insertClistStockTbl(tmplist); gtk_clist_thaw(GTK_CLIST(tmplist)); return;}void browseStockTbl(){ char tmpname[256]; createFilenameDialog("选择股票代码表文件"); strcpy(tmpname,getFilename());// printf("%s\n",tmpname); gtk_entry_set_text(GTK_ENTRY(tmpfname),tmpname);}void importStockTblClickOK(GtkWidget *widget,gpointer data){ GtkWidget *tmpwin; GtkWidget *tmpvbox,*tmphbox; GtkWidget *tmpframe; GtkWidget *tmpbutton; GtkWidget *i_box2,*i_but; gtk_widget_destroy(widget); tmpwin = createWindow("股票代码表导入",320,160,0,0,5, GTK_SIGNAL_FUNC(endProgram)); tmpvbox = createBox(tmpwin,VERTICAL,0); tmpframe= createFrame(tmpvbox,"导入文件名(*.sha *.szn)",0,0, GTK_SHADOW_ETCHED_IN); gtk_widget_set_usize(GTK_WIDGET(tmpframe), 320, 100); tmphbox=createBox(tmpframe,HORIZONTAL,0); tmpfname=createEntry(tmphbox,""); createLabel(tmphbox," "); tmpbutton = gtk_button_new_with_label("浏览");// gtk_widget_set_usize(GTK_WIDGET(tmpbutton), 10, 10); gtk_signal_connect_object(GTK_OBJECT(tmpbutton), "clicked", GTK_SIGNAL_FUNC(browseStockTbl),NULL); gtk_box_pack_start(GTK_BOX(tmphbox), tmpbutton,TRUE,TRUE,0); gtk_widget_show(tmpbutton); createLabel(tmpvbox," "); i_box2 = gtk_hbutton_box_new(); gtk_button_box_set_layout(GTK_BUTTON_BOX(i_box2), SPREAD); gtk_button_box_set_spacing(GTK_BUTTON_BOX(i_box2), 10); gtk_box_pack_start(GTK_BOX(tmpvbox), i_box2, FALSE, FALSE, 0); gtk_widget_show(i_box2); i_but = gtk_button_new_with_label("执行导入"); gtk_signal_connect_object(GTK_OBJECT(i_but), "clicked", GTK_SIGNAL_FUNC(doImportStockTbl),GTK_OBJECT(tmpwin)); gtk_box_pack_start(GTK_BOX(i_box2), i_but, TRUE, TRUE, 0); gtk_widget_show(i_but); i_but = gtk_button_new_with_label("取 消"); gtk_signal_connect_object(GTK_OBJECT(i_but), "clicked", GTK_SIGNAL_FUNC(endProgram),GTK_OBJECT(tmpwin)); gtk_box_pack_start(GTK_BOX(i_box2), i_but, TRUE, TRUE, 0); gtk_widget_show(i_but); gtk_grab_add(tmpwin); return; }void importStockTbl(void){ createDialogBox("信息提示","导入将覆盖原有代码表,是否继续?", 260,80,(GtkSignalFunc)importStockTblClickOK); return;}gint saveStockTbl(){ char *tmpstr; int i; int sh,sz; sz=1; sh=1; shstocksum=0; szstocksum=0; g_free(shtbl); g_free(sztbl); for(i=0;i<GTK_CLIST(tmplist)->rows;i++){ gtk_clist_get_text(GTK_CLIST(tmplist), i, 2, &tmpstr); if(!strcmp(tmpstr,"上海")) shstocksum++; else szstocksum++; } shtbl=(STOCKNAMETBL *) g_malloc(sizeof(STOCKNAMETBL)*(shstocksum+10)); if(shtbl == NULL){ printf("shtbl memory alloc error.\n"); showMessage("信息提示","alloc shtbl mem error."); return FAIL; } sztbl=(STOCKNAMETBL *) g_malloc(sizeof(STOCKNAMETBL)*(szstocksum+10)); if(sztbl == NULL){ printf("sztbl memory alloc error"); showMessage("信息提示","alloc sztbl mem error."); return FAIL; } for(i=0;i<GTK_CLIST(tmplist)->rows;i++){ gtk_clist_get_text(GTK_CLIST(tmplist), i, 2, &tmpstr); if(!strcmp(tmpstr,"上海")){ gtk_clist_get_text(GTK_CLIST(tmplist), i, 0, &tmpstr); strcpy(shtbl[sh].code,tmpstr); gtk_clist_get_text(GTK_CLIST(tmplist), i, 1, &tmpstr); strcpy(shtbl[sh].name,tmpstr); shtbl[sh].type=juiceStockType(SHBZ,shtbl[sh].code); sh++; } else{ gtk_clist_get_text(GTK_CLIST(tmplist), i, 0, &tmpstr); strcpy(sztbl[sz].code,tmpstr); gtk_clist_get_text(GTK_CLIST(tmplist), i, 1, &tmpstr); strcpy(sztbl[sz].name,tmpstr); sztbl[sz].type=juiceStockType(SZBZ,sztbl[sz].code); sz++; } } if(saveStockNameTbl()){ if(!frechtblflag){ if(shtbl && sztbl) frechtblflag = 1; } showMessage("提示"," 保存完毕! "); } else{ showMessage("提示"," 保存失败! "); } return SUCCESS;}void deleteStockTblClickOK(GtkWidget *widget,gpointer data){ removeClist(tmplist); gtk_widget_destroy(widget); }void deleteStockTbl(void){ createDialogBox("信息提示","是否确定删除?",200,80, (GtkSignalFunc)deleteStockTblClickOK); return;}void editStockTblClickOK(GtkWidget *widget,gpointer data){ char str[88]; gint tmprow; tmprow=getClistRow(); strcpy(str,gtk_entry_get_text(GTK_ENTRY(tmpname)));// printf("%s\n",str); gtk_clist_set_text(GTK_CLIST(tmplist),tmprow,1,str);// setClistText(tmplist,tmprow,1,str); gtk_widget_destroy(widget); }void editStockTbl(void){ GtkWidget *tmpwin; GtkWidget *tmpvbox; GtkWidget *i_box2,*i_but; gint tmprow; char *str0,*str1,*str2; tmprow=getClistRow(); if(tmprow<0) return; tmpwin = createWindow("修改股票代码",200,200,0,0,5, GTK_SIGNAL_FUNC(endProgram)); tmpvbox = createBox(tmpwin,VERTICAL,0); createLabel(tmpvbox,"股票代码:"); tmpcode=createEntryWithMaxLength(tmpvbox,"",6); gtk_clist_get_text(GTK_CLIST(tmplist), tmprow, 0, &str0); gtk_entry_set_text(GTK_ENTRY(tmpcode),str0); gtk_entry_set_editable(GTK_ENTRY(tmpcode),FALSE); createLabel(tmpvbox,"股票名称:"); tmpname=createEntryWithMaxLength(tmpvbox,"",8); gtk_clist_get_text(GTK_CLIST(tmplist), tmprow, 1, &str1); gtk_entry_set_text(GTK_ENTRY(tmpname),str1); createLabel(tmpvbox,"标志"); tmpbz=createEntryWithMaxLength(tmpvbox,"",8); gtk_clist_get_text(GTK_CLIST(tmplist), tmprow, 2, &str2); gtk_entry_set_text(GTK_ENTRY(tmpbz),str2); gtk_entry_set_editable(GTK_ENTRY(tmpbz),FALSE); i_box2 = gtk_hbutton_box_new(); gtk_button_box_set_layout(GTK_BUTTON_BOX(i_box2), SPREAD); gtk_button_box_set_spacing(GTK_BUTTON_BOX(i_box2), 10); gtk_box_pack_start(GTK_BOX(tmpvbox), i_box2, FALSE, FALSE, 0); gtk_widget_show(i_box2); i_but = gtk_button_new_with_label("确认"); gtk_signal_connect_object(GTK_OBJECT(i_but), "clicked", GTK_SIGNAL_FUNC(editStockTblClickOK),GTK_OBJECT(tmpwin)); gtk_box_pack_start(GTK_BOX(i_box2), i_but, TRUE, TRUE, 0); gtk_widget_show(i_but); i_but = gtk_button_new_with_label("取消"); gtk_signal_connect_object(GTK_OBJECT(i_but), "clicked", GTK_SIGNAL_FUNC(endProgram),GTK_OBJECT(tmpwin)); gtk_box_pack_start(GTK_BOX(i_box2), i_but, TRUE, TRUE, 0); gtk_widget_show(i_but); gtk_grab_add(tmpwin); }void insertStockTblClickOK(GtkWidget *widget,gpointer data){ char *tmprec[3]; char str0[88]; char str1[88]; char str2[88]; int i; tmprec[0]=str0; tmprec[1]=str1; tmprec[2]=str2; strcpy(tmprec[0],gtk_entry_get_text(GTK_ENTRY(tmpcode))); strcpy(tmprec[1],gtk_entry_get_text(GTK_ENTRY(tmpname))); strcpy(tmprec[2], gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(tmpcombo)->entry))); if(!strcmp(tmprec[2],"上海")){ for(i=1;i<=shstocksum;i++){ if(!strcmp(tmprec[0],shtbl[i].code)){ showMessage("信息提示","该股票代码已存在!"); gtk_widget_destroy(widget); return; } } } else{ for(i=1;i<=szstocksum;i++){ if(!strcmp(tmprec[0],sztbl[i].code)){ showMessage("信息提示","该股票代码已存在!"); gtk_widget_destroy(widget); return; } } } insertClistRow(tmplist,tmprec); gtk_widget_destroy(widget); }void insertStockTbl(void){ GtkWidget *tmpwin; GtkWidget *tmpvbox; GtkWidget *i_box2,*i_but; GList *items=NULL; tmpwin = createWindow("增加股票代码",200,200,0,0,5, GTK_SIGNAL_FUNC(endProgram)); tmpvbox = createBox(tmpwin,VERTICAL,0); createLabel(tmpvbox,"股票代码:"); tmpcode=createEntryWithMaxLength(tmpvbox,"",6); createLabel(tmpvbox,"股票名称:"); tmpname=createEntryWithMaxLength(tmpvbox,"",8); createLabel(tmpvbox,"标志"); items = g_list_append(items,"上海"); items = g_list_append(items,"深圳"); tmpcombo=createComboBox(tmpvbox,items); i_box2 = gtk_hbutton_box_new(); gtk_button_box_set_layout(GTK_BUTTON_BOX(i_box2), SPREAD); gtk_button_box_set_spacing(GTK_BUTTON_BOX(i_box2), 10); gtk_box_pack_start(GTK_BOX(tmpvbox), i_box2, FALSE, FALSE, 0); gtk_widget_show(i_box2); i_but = gtk_button_new_with_label("确认"); gtk_signal_connect_object(GTK_OBJECT(i_but), "clicked", GTK_SIGNAL_FUNC(insertStockTblClickOK),GTK_OBJECT(tmpwin)); gtk_box_pack_start(GTK_BOX(i_box2), i_but, TRUE, TRUE, 0); gtk_widget_show(i_but); i_but = gtk_button_new_with_label("取消"); gtk_signal_connect_object(GTK_OBJECT(i_but), "clicked", GTK_SIGNAL_FUNC(endProgram),GTK_OBJECT(tmpwin)); gtk_box_pack_start(GTK_BOX(i_box2), i_but, TRUE, TRUE, 0); gtk_widget_show(i_but); gtk_grab_add(tmpwin); }void insertClistStockTbl(GtkWidget *tmplist){ gchar *tmprec[3]; gchar str0[88]; gchar str1[88]; gchar str2[88]; gint i; tmprec[0]=str0; tmprec[1]=str1; tmprec[2]=str2; for(i=1;i<=shstocksum;i++){ strcpy(tmprec[0],shtbl[i].code); strcpy(tmprec[1],shtbl[i].name); strcpy(tmprec[2],"上海"); insertClist(tmplist,tmprec); } for(i=1;i<=szstocksum;i++){ strcpy(tmprec[0],sztbl[i].code); strcpy(tmprec[1],sztbl[i].name); strcpy(tmprec[2],"深圳"); insertClist(tmplist,tmprec); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -