📄 menu.c
字号:
#include <gtk/gtk.h>#include "configfile.h"GtkWidget *menu_file_new,*menu_file_open,*menu_file_openold,*menu_file_close,*menu_file_saveas,*menu_file_exit,*menu_edit_cut,*menu_edit_copy,*menu_edit_paste,*menu_jilu_add,*menu_jilu_remove,*menu_jilu_save,*menu_jilu_saveadd,*menu_jilu_cancel,*menu_jilu_zu,*menu_jilu_rename,*menu_tool_option;extern ConfigFile *rccfgfile;gint CloseAppWindow (GtkWidget *widget, gpointer *data);void kk (GtkWidget *widget, gpointer data);void yq_readfile(GtkWidget *widget, gpointer file_name);void file_close();void file_saveas(GtkWidget *widget, gpointer data);void toolbar_save(GtkWidget *widget, gpointer data);void toolbar_cancel(GtkWidget *widget, gpointer data);void toolbar_remove(GtkWidget *widget, gpointer data);void toolbar_add(GtkWidget *widget, gpointer data);void toolbar_saveadd(GtkWidget *widget, gpointer data);void toolbar_zu(GtkWidget *widget, gpointer data);void toolbar_open(GtkWidget *widget, gpointer data);void toolbar_rename(GtkWidget *widget, gpointer data);void toolbar_new(GtkWidget *widget, gpointer data);void toolbar_copy(GtkWidget *widget, gpointer data);void toolbar_paste(GtkWidget *widget, gpointer data);void show_config_window();void show_about_window(); GtkWidget *CreateBarSubMenu (GtkWidget *menubar, char *szName);GtkWidget *CreateSubMenu (GtkWidget *menu, char *szName);GtkWidget *CreateMenuItem (GtkWidget *menu, char *szName, GtkAccelGroup *accel, guint key, guint mods, GtkSignalFunc func, gpointer data);GtkWidget *CreateMenuCheck (GtkWidget *menu, char *szName, GtkSignalFunc func, gpointer data);GtkWidget *CreateMenuRadio (GtkWidget *menu, char *szName, GSList **group, GtkSignalFunc func, gpointer data);voidcreatemenu (GtkWidget *win_main,GtkWidget *main_vbox){ GtkWidget *menubar; GtkWidget *menu; GtkWidget *submenu; GtkWidget *menuitem; GtkAccelGroup *accel; GSList *groupview = NULL; GSList *grouppailie1 = NULL; GSList *grouppailie2 = NULL; gint i,a; gchar *ab,ti[4]; accel = gtk_accel_group_new (); gtk_accel_group_attach (accel, GTK_OBJECT (win_main)); menubar = gtk_menu_bar_new (); gtk_box_pack_start(GTK_BOX (main_vbox), menubar, FALSE, TRUE, 0); gtk_widget_show(menubar); menu = CreateBarSubMenu (menubar, "记录薄"); menu_file_new = CreateMenuItem (menu, "新建", accel,'N',GDK_CONTROL_MASK, GTK_SIGNAL_FUNC (toolbar_new), NULL); menu_file_open = CreateMenuItem (menu, "打开", accel,'O',GDK_CONTROL_MASK, GTK_SIGNAL_FUNC (toolbar_open), NULL); menu_file_openold = CreateSubMenu (menu, "打开最近"); 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,&ab); menuitem = CreateMenuItem (menu_file_openold, ab, NULL,0,0, GTK_SIGNAL_FUNC (yq_readfile),g_strdup(ab)); g_free(ab); } menu_file_close = CreateMenuItem (menu, "关闭", NULL,0,0, GTK_SIGNAL_FUNC (file_close), NULL); menuitem = CreateMenuItem (menu, NULL, NULL,0,0,NULL, NULL); menu_file_saveas = CreateMenuItem (menu, "另存为...", NULL,0,0, GTK_SIGNAL_FUNC (file_saveas), NULL); menuitem = CreateMenuItem (menu, NULL, NULL,0,0,NULL, NULL); submenu = CreateSubMenu (menu, "导入"); menuitem = CreateMenuItem (submenu, "文本文件", NULL,0,0, GTK_SIGNAL_FUNC (kk), "name"); menuitem = CreateMenuItem (submenu, "以逗号分隔的文本文件", NULL,0,0, GTK_SIGNAL_FUNC (kk), "name"); submenu = CreateSubMenu (menu, "导出"); menuitem = CreateMenuItem (submenu, "文本文件", NULL,0,0, GTK_SIGNAL_FUNC (kk), "name"); menuitem = CreateMenuItem (submenu, "以逗号分隔的文本文件", NULL,0,0, GTK_SIGNAL_FUNC (kk), "name"); menuitem = CreateMenuItem (submenu, "超文本文件", NULL,0,0, GTK_SIGNAL_FUNC (kk), "name"); menuitem = CreateMenuItem (menu, NULL, NULL,0,0,NULL, NULL); menuitem = CreateMenuItem (menu, "打印", accel,'P',GDK_CONTROL_MASK, GTK_SIGNAL_FUNC (kk), "print"); menuitem = CreateMenuItem (menu, "打印设置", NULL,0,0, GTK_SIGNAL_FUNC (kk), "printset"); menuitem = CreateMenuItem (menu, NULL, NULL,0,0,NULL, NULL); menuitem = CreateMenuItem (menu, "移除索引", NULL,0,0, GTK_SIGNAL_FUNC (kk), "del mark"); menuitem = CreateMenuItem (menu, "移除全部索引", NULL,0,0, GTK_SIGNAL_FUNC (kk), "del all mark"); menuitem = CreateMenuItem (menu, NULL, NULL,0,0,NULL, NULL); menuitem = CreateMenuItem (menu, "重整", NULL,0,0, GTK_SIGNAL_FUNC (kk), "newload"); menuitem = CreateMenuItem (menu, NULL, NULL,0,0,NULL, NULL); menuitem = CreateMenuItem (menu, "属性", NULL,0,0, GTK_SIGNAL_FUNC (kk), "profece"); menuitem = CreateMenuItem (menu, NULL, NULL,0,0,NULL, NULL); menu_file_exit = CreateMenuItem (menu, "退出",accel,'X', GDK_MOD1_MASK, GTK_SIGNAL_FUNC (CloseAppWindow),NULL); /* ----------------- --- Edit menu --- ----------------- */ menu = CreateBarSubMenu (menubar, "编缉"); menu_edit_cut = CreateMenuItem (menu, "剪切", accel,'X',GDK_CONTROL_MASK, GTK_SIGNAL_FUNC (kk), "cut"); menu_edit_copy = CreateMenuItem (menu, "复制", accel,'C',GDK_CONTROL_MASK, GTK_SIGNAL_FUNC (toolbar_copy), NULL); menu_edit_paste = CreateMenuItem (menu, "粘贴", accel,'V',GDK_CONTROL_MASK, GTK_SIGNAL_FUNC (toolbar_paste), NULL); menuitem = CreateMenuItem (menu, NULL, NULL,0,0,NULL, NULL); menuitem = CreateMenuItem (menu, "全选", accel,'A',GDK_CONTROL_MASK, GTK_SIGNAL_FUNC (kk), "select all"); menuitem = CreateMenuItem (menu, "反向选择", NULL,0,0, GTK_SIGNAL_FUNC (kk), "select else"); menuitem = CreateMenuItem (menu, NULL, NULL,0,0,NULL, NULL); menuitem = CreateMenuItem (menu, "查找", accel,'F',GDK_CONTROL_MASK, GTK_SIGNAL_FUNC (kk), "search"); menuitem = CreateMenuItem (menu, "替换", accel,'H',GDK_CONTROL_MASK, GTK_SIGNAL_FUNC (kk), "instead"); menu = CreateBarSubMenu (menubar, "记录"); menu_jilu_add = CreateMenuItem (menu, "新记录", NULL,0,0, GTK_SIGNAL_FUNC (toolbar_add), NULL); menu_jilu_remove = CreateMenuItem (menu, "删除",NULL,0,0, GTK_SIGNAL_FUNC (toolbar_remove), NULL); menuitem = CreateMenuItem (menu, NULL, NULL,0,0,NULL, NULL); menu_jilu_save = CreateMenuItem (menu, "保存", accel,'S',GDK_CONTROL_MASK, GTK_SIGNAL_FUNC (toolbar_save), NULL); menu_jilu_saveadd = CreateMenuItem (menu, "保存并增加", NULL,0,0, GTK_SIGNAL_FUNC (toolbar_saveadd), NULL); menu_jilu_cancel = CreateMenuItem (menu, "取消", NULL,0,0, GTK_SIGNAL_FUNC (toolbar_cancel), NULL); gtk_widget_set_sensitive(menu_jilu_save,0); gtk_widget_set_sensitive(menu_jilu_saveadd,0); gtk_widget_set_sensitive(menu_jilu_cancel,0); menuitem = CreateMenuItem (menu, NULL, NULL,0,0,NULL, NULL); menuitem = CreateMenuItem (menu, "查询", NULL,0,0, GTK_SIGNAL_FUNC (kk), "find"); menuitem = CreateMenuItem (menu, NULL, NULL,0,0,NULL, NULL); menu_jilu_zu = CreateMenuItem (menu, "新组", NULL,0,0, GTK_SIGNAL_FUNC (toolbar_zu), NULL); menu_jilu_rename = CreateMenuItem (menu, "重命名", NULL,0,0, GTK_SIGNAL_FUNC (toolbar_rename), NULL); menu = CreateBarSubMenu (menubar, "视图"); menuitem = CreateMenuItem (menu, "自定义工具栏", NULL,0,0, GTK_SIGNAL_FUNC (kk), "search"); menuitem = CreateMenuItem (menu, "状态栏", NULL,0,0, GTK_SIGNAL_FUNC (kk), "search"); menuitem = CreateMenuItem (menu, NULL, NULL,0,0,NULL, NULL); menuitem = CreateMenuRadio (menu,"大图标", &groupview, GTK_SIGNAL_FUNC (kk), "big ico"); menuitem = CreateMenuRadio (menu,"小图标", &groupview, GTK_SIGNAL_FUNC (kk), "small ico"); menuitem = CreateMenuRadio (menu,"列表", &groupview, GTK_SIGNAL_FUNC (kk), "biao"); menuitem = CreateMenuRadio (menu,"详细资料", &groupview, GTK_SIGNAL_FUNC (kk), "xian"); menuitem = CreateMenuItem (menu, "分页显示", NULL,0,0, GTK_SIGNAL_FUNC (kk), "view"); menuitem = CreateMenuItem (menu, NULL, NULL,0,0,NULL, NULL); submenu = CreateSubMenu (menu, "排列方式"); menuitem = CreateMenuRadio (submenu,"姓组合", &grouppailie1, GTK_SIGNAL_FUNC (kk), "big ico"); menuitem = CreateMenuRadio (submenu,"传呼", &grouppailie1, GTK_SIGNAL_FUNC (kk), "small ico"); menuitem = CreateMenuRadio (submenu,"移动电话", &grouppailie1, GTK_SIGNAL_FUNC (kk), "biao"); menuitem = CreateMenuRadio (submenu,"住宅电话", &grouppailie1, GTK_SIGNAL_FUNC (kk), "xian"); menuitem = CreateMenuItem (submenu, NULL, NULL,0,0,NULL, NULL); menuitem = CreateMenuRadio (submenu,"递增", &grouppailie2, GTK_SIGNAL_FUNC (kk), "biao"); menuitem = CreateMenuRadio (submenu,"递减", &grouppailie2, GTK_SIGNAL_FUNC (kk), "xian"); menuitem = CreateMenuItem (menu, "排列对齐", NULL,0,0, GTK_SIGNAL_FUNC (kk), "dq"); menuitem = CreateMenuItem (menu, "刷新", NULL,0,0, GTK_SIGNAL_FUNC (kk), "refeau"); menu = CreateBarSubMenu (menubar, "工具"); menuitem = CreateMenuItem (menu, "密码", NULL,0,0, GTK_SIGNAL_FUNC (kk), "password"); menuitem = CreateMenuItem (menu, NULL, NULL,0,0,NULL, NULL); submenu = CreateSubMenu (menu, "记录回收站"); menuitem = CreateMenuItem (submenu, "打开", NULL,0,0, GTK_SIGNAL_FUNC (kk), "laji"); menuitem = CreateMenuItem (submenu, "还原", NULL,0,0, GTK_SIGNAL_FUNC (kk), "laji"); menuitem = CreateMenuItem (submenu, "清空回收站", NULL,0,0, GTK_SIGNAL_FUNC (kk), "laji"); menuitem = CreateMenuItem (submenu, "属性", NULL,0,0, GTK_SIGNAL_FUNC (kk), "laji"); menuitem = CreateMenuItem (submenu, "关闭", NULL,0,0, GTK_SIGNAL_FUNC (kk), "laji"); menuitem = CreateMenuItem (menu, NULL, NULL,0,0,NULL, NULL); menuitem = CreateMenuItem (menu, "万年历", NULL,0,0, GTK_SIGNAL_FUNC (kk), "li"); menuitem = CreateMenuItem (menu, "生日", NULL,0,0, GTK_SIGNAL_FUNC (kk), "birthday"); menuitem = CreateMenuItem (menu, NULL, NULL,0,0,NULL, NULL); menu_tool_option = CreateMenuItem (menu, "选项", NULL,0,0, GTK_SIGNAL_FUNC (show_config_window), NULL); /* --------------------- --- Help sub menu --- --------------------- */ menu = CreateBarSubMenu (menubar, "帮助"); menuitem = CreateMenuItem (menu, "关于", NULL,0,0, GTK_SIGNAL_FUNC (show_about_window), NULL); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -