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

📄 menu.c

📁 用GTK+做用户界面 股票每日分时行情用数据库管理——MYSQL 软件应用方式客户端/服务器模式 基于TCP/IP的C/S通信模式 实现STOCK
💻 C
字号:
#include <gtk/gtk.h>#include "gmclient.h"GtkWidget * win_main;GtkWidget * toolbar;GtkWidget * stockentry;GtkWidget * popmenu;/* XPM */static gchar * xpm_connect[] = {"16 14 5 1"," 	c None",".	c black","X	c gray50","o	c red","O	c yellow","                ","          .     ","       X .X     ","      XooX  .   ","     Xoooo .X   ","    XooooooX    ","    XooooooX    ","    XoooooX.    ","    XooooX.     ","   XOXXXX.      ","  XOXX...       "," XOXX           ","  XX            ","  X             "};/* XPM */static gchar * xpm_disconnect[] = {"16 14 5 1"," 	c None",".	c black","X	c gray50","o	c red","O	c yellow","                ","          .     ","       X .X     ","  ..  XooX  .   ","   ..Xoooo ..   ","    .ooooo.X    ","    X.ooo.oX    ","    Xo.o.oX.    ","    Xoo.oX.     ","   XOX.X..      ","  XOX.......    "," XOX.     ...   ","  ..            "," ..             "};/* XPM */static gchar * xpm_help[] = {"16 14 5 1"," 	c None",".	c red","X	c white","o	c black","O	c gray50","     ......     ","    .X......    ","   .X..oo...o   ","   ...o  ...o   ","    oo   ...o   ","        ...o    ","       ...o     ","      ..oo      ","      ....o     ","      O.oO      ","      OX..      ","      ....O     ","       ..oO     ","        oO      "};/* XPM *//* Drawn  by Nico Shirwing for the K Desktop Environment *//* See http://www.kde.org */static gchar* xpm_sql[]={"16 16 6 1","# c #000000","d c #c0c0c0","a c #ffffff","b c #0000ff","c c #c0c0ff",". c None",".###########....","#aaaaaaaaaaa#...","#aaaaaaaabca#...","#aaaaaaaaaba#...","#aaaad###daa#...","#aaad#aaa#da#...","#aaa#acaca#a#...","#aaa#abbaa#a#...","#aaa#aabca#a#...","#aaad#aaa##a#...","#bcaad####a##...","#abaaaaaaa#a#...","#aaaaaaaaaa#a#..","#aabcaaaaaaa#a#.",".###########.#a#","..............#."};/*
 * --- Bitmap for "cut"
 */
static const gchar *xpm_cut[] = {
"16 16 2 1",
"  c None",
"B c #000000000000",
"                ",
"                ",
"     B   B      ",
"     B   B      ",
"      B B       ",
"      B B       ",
"       B        ",
"       B        ",
"      B B       ",
"    BBB BBB     ",
"   B  B B  B    ",
"   B  B B  B    ",
"   B  B  BB     ",
"    BB          ",
"                ",
"                ",
};

/*
 * --- Bitmap for "copy"
 */
static const gchar *xpm_copy[] = {
"16 16 4 1",
"  c None",
"B c #000000000000",
"W c #FFFFFFFFFFFF",
"G c #666666666666",
"                ",
" BBBBBBB        ",
" BWWWWBWB       ",
" BWGGWBBB       ",
" BWWWWWWB       ",
" BWGGGGWB       ",
" BWWWWBBBBBBB   ",
" BWGGGBWWWWBWB  ",
" BWWWWBWGGWBBB  ",
" BBBBBBWWWWWWB  ",
"      BWGGGGWB  ",
"      BWWWWWWB  ",
"      BWGGGGWB  ",
"      BWWWWWWB  ",
"      BBBBBBBB  ",
"                ",
};


/*
 * --- Bitmap for "paste"
 */
static const gchar *xpm_paste[] = {
"16 16 5 1",
"  c None",
"B c #000000000000",
"W c #FFFFFFFFFFFF",
"G c #666666666666",
"Y c #888888880000",
"                ",
"       BB       ",
"  BBBBBYYBBBBB  ",
"  BYYBBBBBBYYB  ",
"  BYYYYYYYYYYB  ",
"  BYYYYYYYYYYB  ",
"  BYYYYBBBBBBBB ",
"  BYYYYBWWWWBWB ",
"  BYYYYBWGGWBBB ",
"  BYYYYBWWWWWWB ",
"  BYYYYBWGGGGWB ",
"  BYYYYBWWWWWWB ",
"  BYYYYBWGGGGWB ",
"  BBBBBBWWWWWWB ",
"       BBBBBBBB ",
"                ",
};
void createMenu(GtkWidget * window){    GtkWidget *menubar,*menu,*ibox,*ibox1;    GtkWidget *submenu;    char *tmp[]={"K线走势","美国线走势",};    SUBMENU stockzq[]={      {"日    线",NULL,GTK_SIGNAL_FUNC(NO_FUNC),NULL,NULL},      {"周    线",NULL,GTK_SIGNAL_FUNC(NO_FUNC),NULL,NULL},      {"月    线",NULL,GTK_SIGNAL_FUNC(NO_FUNC),NULL,NULL},      {NULL,NULL,NULL,NULL,NULL},      {"5分钟线",NULL,GTK_SIGNAL_FUNC(NO_FUNC),NULL,NULL},      {"15分钟线",NULL,GTK_SIGNAL_FUNC(NO_FUNC),NULL,NULL},      {"30分钟线",NULL,GTK_SIGNAL_FUNC(NO_FUNC),NULL,NULL},      {"60分钟线",NULL,GTK_SIGNAL_FUNC(NO_FUNC),NULL,NULL}    };    SUBMENU stockzs[]={      {"上证指数",NULL,GTK_SIGNAL_FUNC(showStockZS),"1A0001",NULL},      {"上证A股",NULL,GTK_SIGNAL_FUNC(showStockZS),"1A0002",NULL},      {"上证B股",NULL,GTK_SIGNAL_FUNC(showStockZS),"1A0003",NULL},      {"上证综合",NULL,GTK_SIGNAL_FUNC(showStockZS),"1B0006",NULL},      {"上证30",NULL,GTK_SIGNAL_FUNC(showStockZS),"1B0007",NULL},      {"深圳指数",NULL,GTK_SIGNAL_FUNC(showStockZS),"2A01",NULL},      {"深圳综合",NULL,GTK_SIGNAL_FUNC(showStockZS),"2C01",NULL},      {"深圳A股",NULL,GTK_SIGNAL_FUNC(showStockZS),"2A02",NULL},      {"深圳B股",NULL,GTK_SIGNAL_FUNC(showStockZS),"2A03",NULL},      {"深圳基金",NULL,GTK_SIGNAL_FUNC(showStockZS),"2B07",NULL}    };    SUBMENU stockzb[]={      {"MACD指标",NULL,GTK_SIGNAL_FUNC(selectJszb),"MACD",NULL},      {"DMA指标",NULL,GTK_SIGNAL_FUNC(selectJszb),"DMA",NULL},      {"EXPMA指标",NULL,GTK_SIGNAL_FUNC(selectJszb),"EXPMA",NULL},      {"BRAR指标",NULL,GTK_SIGNAL_FUNC(selectJszb),"BRAR",NULL},      {"CR指标",NULL,GTK_SIGNAL_FUNC(selectJszb),"CR",NULL},      {"VR指标",NULL,GTK_SIGNAL_FUNC(selectJszb),"VR",NULL},      {"OBV指标",NULL,GTK_SIGNAL_FUNC(selectJszb),"OBV",NULL},      {"RSI指标",NULL,GTK_SIGNAL_FUNC(selectJszb),"RSI",NULL},      {"W&R指标",NULL,GTK_SIGNAL_FUNC(selectJszb),"W&R",NULL},      {"KDJ指标",NULL,GTK_SIGNAL_FUNC(selectJszb),"KDJ",NULL},      {"ROC指标",NULL,GTK_SIGNAL_FUNC(selectJszb),"ROC",NULL},      {"PSY指标",NULL,GTK_SIGNAL_FUNC(selectJszb),"PSY",NULL},      {"BIAS指标",NULL,GTK_SIGNAL_FUNC(selectJszb),"BIAS",NULL}    };              win_main=window;        ibox=createBoxFixed(window, VERTICAL,2);    ibox1=createBoxFixed(window, HORIZONTAL,2);    menubar=createMenuBar(ibox);/*服务器选项*/    menu=insertMenuBar(menubar,"服务器",LEFT);  insertMenuItem(menu,"连接...","^C",GTK_SIGNAL_FUNC(connectServer));    insertMenuItem(menu,"断开...","^D",GTK_SIGNAL_FUNC(disconnectServer));                                  insertMenuLine(menu);  insertMenuItem(menu,"退出","^Q",GTK_SIGNAL_FUNC(quitSys)); popmenu=insertMenuBar(menubar,"查看",LEFT); insertRadioMenuItem(popmenu,tmp,2,GTK_SIGNAL_FUNC(selectLineType));  insertMenuLine(popmenu);  insertChkMenuItem(popmenu,"价格均线",GTK_SIGNAL_FUNC(checkDrawAvgLine),1);     insertChkMenuItem(popmenu,"成交量均线",GTK_SIGNAL_FUNC(checkDrawAvgColume),1);  insertChkMenuItem(popmenu,"十字光标",GTK_SIGNAL_FUNC(checkCursorMouse),0);  insertChkMenuItem(popmenu,"区间统计",GTK_SIGNAL_FUNC(checkAreaTotal),0);  insertMenuLine(popmenu); insertMenuItem(popmenu,        "F10资料  F10","",GTK_SIGNAL_FUNC(showF10Info));  insertMenuItem(popmenu,        "价格明晰  F3","",GTK_SIGNAL_FUNC(showPrice));  submenu=insertItemSubMenu(popmenu,"分析周期");  insertSubMenu(submenu,stockzq,sizeof(stockzq)/sizeof(SUBMENU)); submenu=insertItemSubMenu(popmenu,"大盘走势");  insertSubMenu(submenu,stockzs,sizeof(stockzs)/sizeof(SUBMENU)); submenu=insertItemSubMenu(popmenu,"技术指标"); insertSubMenu(submenu,stockzb,sizeof(stockzb)/sizeof(SUBMENU));  /*数据库选项*/    menu=insertMenuBar(menubar,"历史行情检索",LEFT); insertMenuItem(menu,"当前股票行情检索","",GTK_SIGNAL_FUNC(curStockCheck));  insertMenuItem(menu,"分类股票行情检索","",GTK_SIGNAL_FUNC(allStockCheck));     insertMenuLine(menu); insertMenuItem(menu,"近期上涨股票","",GTK_SIGNAL_FUNC(recentlyIncrease));  insertMenuItem(menu,"近期下跌股票","",GTK_SIGNAL_FUNC(recentlyDecrease));  insertMenuItem(menu,"近期横盘股票","",GTK_SIGNAL_FUNC(recentlyHengpan));  insertMenuItem(menu,"近期放量股票","",GTK_SIGNAL_FUNC(recentlyFangliang));  insertMenuLine(menu); insertMenuItem(menu,"K线排列组合","",GTK_SIGNAL_FUNC(dumpDatabase));  insertMenuItem(menu,"涨跌幅排行榜","",GTK_SIGNAL_FUNC(dumpDatabase)); /*数据库字段操作*/    menu=insertMenuBar(menubar,"技术指标系统",LEFT); insertMenuItem(menu,"选择指标系统","^S",GTK_SIGNAL_FUNC(choiceJszb));  insertMenuItem(menu,"设置指标参数","",GTK_SIGNAL_FUNC(setJszb));     insertMenuItem(menu,"指标系统导入","",GTK_SIGNAL_FUNC(deleteField));     insertMenuItem(menu,"指标系统删除","",GTK_SIGNAL_FUNC(changeField));  insertMenuItem(menu,"自定议指标系统","",GTK_SIGNAL_FUNC(changeField));  insertMenuLine(menu); insertMenuItem(menu,"指标系统检验","",GTK_SIGNAL_FUNC(changeField)); /*记录操作*/    menu=insertMenuBar(menubar,"智能选股",LEFT); insertMenuItem(menu,"方案一","^F",GTK_SIGNAL_FUNC(choiceOne));     insertMenuLine(menu); insertMenuItem(menu,"条件选股","",GTK_SIGNAL_FUNC(insertRecord));   insertMenuItem(menu,"交易选股","",GTK_SIGNAL_FUNC(deleteRecord));  insertMenuItem(menu,"指标选股","",GTK_SIGNAL_FUNC(cutRecord));      insertMenuItem(menu,"公式管理","",GTK_SIGNAL_FUNC(copyRecord));  insertMenuItem(menu,"公式检验","",GTK_SIGNAL_FUNC(pasteRecord)); /*系统选项*/  menu=insertMenuBar(menubar,"系统工具",LEFT); insertMenuItem(menu,"代码表维护","^P",GTK_SIGNAL_FUNC(stockTblWh));  insertMenuItem(menu,"数据维护","",GTK_SIGNAL_FUNC(dataManager));    insertMenuItem(menu,"基本面资料维护","",GTK_SIGNAL_FUNC(setPath));       insertMenuLine(menu);  insertMenuItem(menu,"设置自选股","^Z",GTK_SIGNAL_FUNC(insertUser));  insertMenuItem(menu,"设置板块","",GTK_SIGNAL_FUNC(deleteUser));     insertMenuLine(menu);  insertMenuItem(menu,"画线工具","",GTK_SIGNAL_FUNC(pwdUser));       insertMenuItem(menu,"计算器","",GTK_SIGNAL_FUNC(calculatorWindow));   insertMenuLine(menu);  insertMenuItem(menu,"系统设置...","^O",GTK_SIGNAL_FUNC(setSystem)); /*帮助*/  menu=insertMenuBar(menubar,"帮助",LEFT);  insertMenuItem(menu,"索引帮助","^H",GTK_SIGNAL_FUNC(indexHelp));     insertMenuItem(menu,"帮助主题","^T",GTK_SIGNAL_FUNC(topicHelp));     insertMenuItem(menu,"作者主页","",GTK_SIGNAL_FUNC(mywww));      insertMenuLine(menu);  insertMenuItem(menu,"关于...","",GTK_SIGNAL_FUNC(about));       toolBar(ibox1);}void toolBar(GtkWidget * box){    toolbar=createToolbar(box,GTK_ORIENTATION_HORIZONTAL);    /*create connect icon */     insertToolbar(toolbar,            NULL,"连接服务器",            createWidgetFromXpm(win_main,(gchar **)xpm_connect),            (GtkSignalFunc)connectServer);                                         /*create disconnect icon */     insertToolbar(toolbar,            NULL,"断开服务器",            createWidgetFromXpm(win_main,(gchar **)xpm_disconnect),            (GtkSignalFunc)disconnectServer);    gtk_toolbar_append_space(GTK_TOOLBAR(toolbar));/*create sqlexec icon */     insertToolbar(toolbar,            NULL,"路径设置",            createWidgetFromXpm(win_main,(gchar **)xpm_sql),            (GtkSignalFunc)setPath);    gtk_toolbar_append_space(GTK_TOOLBAR(toolbar));/*create cut icon */     insertToolbar(toolbar,            NULL,"记录剪切",            createWidgetFromXpm(win_main,(gchar **)xpm_cut),            (GtkSignalFunc)cutRecord);/*create copy icon */     insertToolbar(toolbar,            NULL,"记录拷贝",            createWidgetFromXpm(win_main,(gchar **)xpm_copy),            (GtkSignalFunc)copyRecord);/*create paste icon */     insertToolbar(toolbar,            NULL,"记录粘贴",            createWidgetFromXpm(win_main,(gchar **)xpm_paste),            (GtkSignalFunc)pasteRecord);    gtk_toolbar_append_space(GTK_TOOLBAR(toolbar));/*create help icon */     insertToolbar(toolbar,            NULL,"帮助",            createWidgetFromXpm(win_main,(gchar **)xpm_help),            (GtkSignalFunc)indexHelp);         createLabel(box,"                                ");     createLabel(box,"股票代码:");           stockentry=gtk_entry_new_with_max_length(7);     gtk_entry_set_text(GTK_ENTRY(stockentry),"");     gtk_box_pack_start(GTK_BOX(box), stockentry, TRUE, TRUE, 0);     gtk_widget_show(stockentry);     createLabel(box,"                     ");//     gtk_entry_set_editable(GTK_ENTRY(stockentry),TRUE);}GtkWidget *createWidgetFromXpm (GtkWidget *window, gchar **xpm_data)
{
    GdkBitmap *mask;
    GdkPixmap *pixmap_data;
    GtkWidget *pixmap_widget;

    pixmap_data = gdk_pixmap_create_from_xpm_d (
                                 win_main->window, 
                                 &mask,
                                 NULL,
                                 (gchar **) xpm_data);

    pixmap_widget = gtk_pixmap_new (pixmap_data, mask);
    gtk_widget_show (pixmap_widget);

    return (pixmap_widget);
}

⌨️ 快捷键说明

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