On Mon, Jun 13, 2005 at 12:04:42PM -0400, Michal Porzuczek wrote: > I have created my own custom widget, and I was wondering how I can > link or map GDK event types to my custom widget in particular the > key_press_event and button_press_event.
In widget's realize method: set which events its Gdk window should receive, e.g.: attributes.event_mask = gtk_widget_get_events(widget); attributes.event_mask |= (GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK | GDK_KEY_PRESS_MASK); ... widget->window = gdk_window_new(gtk_widget_get_parent_window(widget), &attributes, attributes_mask); In widget's class init function: set the function that implements particular event handlers, e.g.: static void my_widget_class_init(MyWidgetClass *klass) { GtkWidgetClass *widget_class; ... widget_class = (GtkWidgetClass*)klass; widget_class->key_press_event = my_widget_key_press; widget_class->button_press_event = my_widget_button_press; ... } > Furthermore, after a event type has been specified, say the > button_press_event, will I have to actually specify what > button_press_event should do? That this, will I have to actually > specify that button_press_event is a mouse activity or will this > automatically be done when I add the function to the my widget. Button press event meaning is precisely defined, there's nothing you can specify about it. You only define *what happens* when it occurs. I recommend to look at existing Gtk+ widget implementation and Event handling section in tutorial: http://www.gtk.org/tutorial/sec-creatingawidgetfromscratch.html#AEN2412 Yeti -- A: Because it messes up the order in which people normally read text. Q: Why is top-posting such a bad thing? A: Top-posting. Q: What is the most annoying thing on usenet and in e-mail? _______________________________________________ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list