Gtk Popup Menu accelerators not working
- From: Gaurav Jain <gaurav anywhere gmail com>
- To: gtk-app-devel-list gnome org
- Subject: Gtk Popup Menu accelerators not working
- Date: Fri, 8 Jul 2005 13:32:49 +0530
Hi,
I'm creating a "pop-up" menu which is shown when I click inside a
button. I added accelerators to the menu items (CTRL + B), but these
do not work. If I explicitly pop up the menu and then click on the
menu item, then the "activate" signal is called for the menu item, but
not if I use the accelerator keys.
Attached is a sample source code that's not working below.
Please help me in finding out why this problem is coming, and how to resolve it.
Thanks,
Gaurav
------------------------------------
#include <stdio.h>
#include <gtk/gtk.h>
#include <gdk/gdkkeysyms.h>
gboolean Popup (GtkWidget *widget, GdkEvent *e, gpointer data)
{
g_print("Button Pressed\n");
GtkMenu* menu = GTK_MENU(data);
gtk_menu_popup(menu,NULL,NULL,NULL,NULL,0,(guint32)gtk_get_current_event_time());
return TRUE;
}
void Print (GtkWidget *w , gpointer d)
{
g_print("Hi\n");
}
int main( int argc, char *argv[] )
{
gtk_init (&argc, &argv);
GtkWidget *w = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_set_size_request(w,400,400);
GtkWidget *b = gtk_button_new_with_label("ABC_DEF");
GtkWidget *menu = gtk_menu_new();
GtkWidget *mi1 = gtk_menu_item_new_with_mnemonic("_One");
GtkWidget *mi2 = gtk_menu_item_new_with_label("Two");
gtk_menu_shell_append(GTK_MENU_SHELL(menu),mi1);
gtk_menu_shell_append(GTK_MENU_SHELL(menu),mi2);
GtkAccelGroup *accel = gtk_accel_group_new();
gtk_widget_add_accelerator(mi1, "activate", accel, GDK_B,
(GdkModifierType)GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
gtk_container_add(GTK_CONTAINER(w),b);
g_signal_connect(b,"button-press-event",G_CALLBACK(Popup),menu);
g_signal_connect(mi1,"activate",G_CALLBACK(Print),menu);
gtk_widget_show(menu);
gtk_widget_show(mi1);
gtk_widget_show(mi2);
gtk_widget_show(b);
gtk_widget_show(w);
gtk_main();
return 0;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]