/* popmenu.c popup menu! * Copyright (c) 2004 by SmartLu All Rights Reserved * Distributed under the terms of the GNU General Public License (GPL) * See the GNU Library General Public License for more details. */ #include "srecite.h" GtkWidget * pron_menu_item; GtkWidget * random_menu_item; GtkWidget * style_menu_item; GtkWidget * line_menu_item; static GtkWidget * menu_item; static GtkWidget * save_menu; static GtkWidget * load_menu; static GtkWidget * config_menu; static void get_main_menu(GtkWidget * main_menu ) { // 1---------------------------------------------------------------- menu_item = create_img_menu_item(PRE_DIR"icon/attach.png", "Show Toolbar", "Show Toolbar", toolbar_show, menu_item); gtk_menu_shell_append (GTK_MENU_SHELL (main_menu), menu_item); menu_item = create_img_menu_item(PRE_DIR"icon/open.png", "Open New Wordbook", "Open new word book", file_selection, menu_item); gtk_menu_shell_append (GTK_MENU_SHELL (main_menu), menu_item); menu_item = create_img_menu_item(PRE_DIR"icon/goto.png", "Go to ......", "Go to where you wana go", goto_window, menu_item); gtk_menu_shell_append (GTK_MENU_SHELL (main_menu), menu_item); //separator menu_item = gtk_separator_menu_item_new(); gtk_widget_show (menu_item); gtk_menu_shell_append (GTK_MENU_SHELL (main_menu), menu_item); // load---------------------------------------------------------------- // { "/Load/2.sav", NULL, load_state_2, 0, NULL }, menu_item = create_img_menu_item(PRE_DIR"icon/load.png", "Load", "Load", empty_func, menu_item); gtk_menu_shell_append (GTK_MENU_SHELL (main_menu), menu_item); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_item), load_menu); menu_item = create_img_menu_item(PRE_DIR"icon/dot.png", "1.sav", "load file 1", load_state_1, menu_item); gtk_menu_shell_append (GTK_MENU_SHELL (load_menu), menu_item); menu_item = create_img_menu_item(PRE_DIR"icon/dot.png", "2.sav", "load file 2", load_state_2, menu_item); gtk_menu_shell_append (GTK_MENU_SHELL (load_menu), menu_item); menu_item = create_img_menu_item(PRE_DIR"icon/dot.png", "3.sav", "load file 3", load_state_3, menu_item); gtk_menu_shell_append (GTK_MENU_SHELL (load_menu), menu_item); // save ---------------------------------------------------------------- menu_item = create_img_menu_item(PRE_DIR"icon/save.png", "Save", "Save", empty_func, menu_item); gtk_menu_shell_append (GTK_MENU_SHELL (main_menu), menu_item); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_item), save_menu); menu_item = create_img_menu_item(PRE_DIR"icon/dot.png", "1.sav", "save file 1", save_state_1, menu_item); gtk_menu_shell_append (GTK_MENU_SHELL (save_menu), menu_item); menu_item = create_img_menu_item(PRE_DIR"icon/dot.png", "2.sav", "save file 2", save_state_2, menu_item); gtk_menu_shell_append (GTK_MENU_SHELL (save_menu), menu_item); menu_item = create_img_menu_item(PRE_DIR"icon/dot.png", "3.sav", "save file 3", save_state_3, menu_item); gtk_menu_shell_append (GTK_MENU_SHELL (save_menu), menu_item); menu_item = gtk_separator_menu_item_new(); gtk_widget_show (menu_item); gtk_menu_shell_append (GTK_MENU_SHELL (main_menu), menu_item); // tool---------------------------------------------------------------- menu_item = create_img_menu_item(PRE_DIR"icon/search.png", "Mini Dictionary", "Mini Dictionary", minidict_window, menu_item); gtk_menu_shell_append (GTK_MENU_SHELL (main_menu), menu_item); menu_item = create_img_menu_item(PRE_DIR"icon/read.png", "Read aloud", "Read sentence aloud", sentence_window, menu_item); gtk_menu_shell_append (GTK_MENU_SHELL (main_menu), menu_item); menu_item = create_img_menu_item(PRE_DIR"icon/test.png", "Test Game", "Test Game", testgame_window, menu_item); gtk_menu_shell_append (GTK_MENU_SHELL (main_menu), menu_item); menu_item = create_img_menu_item(PRE_DIR"icon/pencil.png", "Draft Paper", "Draft Paper", draftpaper_window, menu_item); gtk_menu_shell_append (GTK_MENU_SHELL (main_menu), menu_item); menu_item = gtk_separator_menu_item_new(); gtk_widget_show (menu_item); gtk_menu_shell_append (GTK_MENU_SHELL (main_menu), menu_item); // config------------------------------------------------------------------ menu_item = create_img_menu_item(PRE_DIR"icon/configure.png", "Configure", "Configure SRecite", empty_func, menu_item); gtk_menu_shell_append (GTK_MENU_SHELL (main_menu), menu_item); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_item), config_menu); pron_menu_item = create_img_check_menu_item(PRE_DIR"icon/sound.png", "Toggle Pronounce", "Toggle Pronounce", pronounce_switch, NULL); gtk_menu_shell_append (GTK_MENU_SHELL (config_menu), pron_menu_item); random_menu_item = create_img_check_menu_item(PRE_DIR"icon/random.png", "Toggle Random", "Toggle Random", show_random, random_menu_item); gtk_menu_shell_append (GTK_MENU_SHELL (config_menu), random_menu_item); style_menu_item = create_img_check_menu_item(PRE_DIR"icon/style.png", "Toggle Test-Style", "Toggle Test-Style", change_style, style_menu_item); gtk_menu_shell_append (GTK_MENU_SHELL (config_menu), style_menu_item); line_menu_item = create_img_check_menu_item(PRE_DIR"icon/line.png", "Toggle 3-Line Formats", "Toggle 3-Line Formats", show_format_switch, line_menu_item); gtk_menu_shell_append (GTK_MENU_SHELL (config_menu), line_menu_item); // end------------------------------------------------------------------ menu_item = create_img_menu_item(PRE_DIR"icon/about.png", "About ......", "About SRecit", about, menu_item); gtk_menu_shell_append (GTK_MENU_SHELL (main_menu), menu_item); menu_item = create_img_menu_item(PRE_DIR"icon/exit.png", "Quit", "Quit SRecit", quit_window, menu_item); gtk_menu_shell_append (GTK_MENU_SHELL (main_menu), menu_item); //------------------------------------------------------------ } /* init menuitem menu and root_menu */ void init_menu() { menu = gtk_menu_new(); config_menu = gtk_menu_new(); save_menu = gtk_menu_new(); load_menu = gtk_menu_new(); get_main_menu (menu); } /* show popupmenu when right click */ int popupmenu_show(GtkWidget *widget, GdkEvent *event) { if (event->type == GDK_BUTTON_PRESS && ((GdkEventButton *) event)->button == 3) { /* check config menu item befor show menu */ check_toggle_menu_items(); gtk_menu_popup (GTK_MENU(widget), NULL, NULL, NULL, NULL, ((GdkEventButton *) event)->button, ((GdkEventButton *) event)->time); //gtk_menu_popup() to show popupmenu return TRUE; } return FALSE; } /* check config menu item */ void check_toggle_menu_items() { // g_print("check!%d \n",S_conf.pronounce); //gtk_check_menu_item_toggled ((GtkCheckMenuItem*)pron_menu_item); gtk_check_menu_item_set_active((GtkCheckMenuItem*)pron_menu_item, S_conf.pronounce); gtk_check_menu_item_set_active((GtkCheckMenuItem*)random_menu_item, S_conf.random); gtk_check_menu_item_set_active((GtkCheckMenuItem*)style_menu_item, S_conf.style); // gtk_check_menu_item_set_active((GtkCheckMenuItem*)line_menu_item, // S_conf.show_format); }