📄 menu.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 + -