Make accelerators work (Ctrl-Q/S/X)
This commit is contained in:
parent
6c8d057b8b
commit
57b877a827
|
@ -30,12 +30,12 @@ extern void CommsSend(const char *s);
|
|||
extern GtkWidget *CreateBarSubMenu(GtkWidget * menu, const char *szName);
|
||||
extern GtkWidget *CreateRightAlignBarSubMenu(GtkWidget * menu,
|
||||
const char *szName);
|
||||
extern GtkWidget *CreateMenuItem(GtkWidget * menu, const char *szName,
|
||||
extern GtkWidget *CreateMenuItem(GtkWidget * menu, GtkAccelGroup * agrp,
|
||||
const char *szName,
|
||||
const char *szAccel, const char *szTip,
|
||||
GCallback func, const void *data);
|
||||
|
||||
/* viewer.c */
|
||||
extern GtkAccelGroup *accel_group;
|
||||
void on_exit_application(void);
|
||||
|
||||
#endif /* E16KEYEDIT_H */
|
||||
|
|
7
menus.c
7
menus.c
|
@ -41,8 +41,9 @@ CreateRightAlignBarSubMenu(GtkWidget *menu, const char *szName)
|
|||
}
|
||||
|
||||
GtkWidget *
|
||||
CreateMenuItem(GtkWidget *menu, const char *szName, const char *szAccel,
|
||||
const char *szTip, GCallback func, const void *data)
|
||||
CreateMenuItem(GtkWidget *menu, GtkAccelGroup *agrp,
|
||||
const char *szName, const char *szAccel, const char *szTip,
|
||||
GCallback func, const void *data)
|
||||
{
|
||||
GtkWidget *menuitem;
|
||||
|
||||
|
@ -63,7 +64,7 @@ CreateMenuItem(GtkWidget *menu, const char *szName, const char *szAccel,
|
|||
|
||||
if (szAccel && szAccel[0] == '^')
|
||||
{
|
||||
gtk_widget_add_accelerator(menuitem, "activate", accel_group,
|
||||
gtk_widget_add_accelerator(menuitem, "activate", agrp,
|
||||
szAccel[1], GDK_CONTROL_MASK,
|
||||
GTK_ACCEL_VISIBLE);
|
||||
}
|
||||
|
|
15
viewer.c
15
viewer.c
|
@ -21,8 +21,6 @@
|
|||
|
||||
#define VER(maj, min, mic) (10000 * (maj) + 100 * (min) + (mic))
|
||||
|
||||
GtkAccelGroup *accel_group;
|
||||
|
||||
static GtkWidget *clist;
|
||||
static GtkWidget *act_key;
|
||||
static GtkWidget *act_params;
|
||||
|
@ -703,6 +701,7 @@ create_list_window(void)
|
|||
GtkWidget *hbox;
|
||||
GtkWidget *om;
|
||||
GtkWidget *menu;
|
||||
GtkAccelGroup *agrp;
|
||||
|
||||
#if USE_GTK_TREEVIEW
|
||||
GtkCellRenderer *renderer;
|
||||
|
@ -720,6 +719,9 @@ create_list_window(void)
|
|||
gtk_widget_set_can_default(list_window, TRUE);
|
||||
gtk_window_set_title(GTK_WINDOW(list_window), "E Keys Editor");
|
||||
|
||||
agrp = gtk_accel_group_new();
|
||||
gtk_window_add_accel_group(GTK_WINDOW(list_window), agrp);
|
||||
|
||||
bigvbox = gtk_vbox_new(FALSE, 0);
|
||||
gtk_container_add(GTK_CONTAINER(list_window), bigvbox);
|
||||
|
||||
|
@ -727,11 +729,12 @@ create_list_window(void)
|
|||
gtk_box_pack_start(GTK_BOX(bigvbox), menubar, FALSE, FALSE, 0);
|
||||
|
||||
menu = CreateBarSubMenu(menubar, "File");
|
||||
CreateMenuItem(menu, "Save", "", "Save Current Data", on_save_data, NULL);
|
||||
CreateMenuItem(menu, "Save & Quit", "",
|
||||
CreateMenuItem(menu, agrp, "Save", "^s", "Save Current Data",
|
||||
on_save_data, NULL);
|
||||
CreateMenuItem(menu, agrp, "Save & Quit", "^x",
|
||||
"Save Current Data & Quit Application",
|
||||
on_save_and_exit_application, NULL);
|
||||
CreateMenuItem(menu, "Quit", "", "Quit Without Saving",
|
||||
CreateMenuItem(menu, agrp, "Quit", "^q", "Quit Without Saving",
|
||||
on_exit_application, NULL);
|
||||
|
||||
#if 0 /* Not implemented */
|
||||
|
@ -1183,8 +1186,6 @@ main(int argc, char *argv[])
|
|||
|
||||
gtk_init(&argc, &argv);
|
||||
|
||||
accel_group = gtk_accel_group_new();
|
||||
|
||||
if (CommsInit(receive_ipc_msg))
|
||||
{
|
||||
GtkWidget *win, *frame, *vbox, *label, *button;
|
||||
|
|
Loading…
Reference in New Issue