Re: GtkButton, enter-notify signal, and GdkWindow
- From: Mike Massonnet <mmassonnet gmail com>
- To: Brian Tietz <sdbtietz yahoo com>
- Cc: gtk-app-devel-list gnome org
- Subject: Re: GtkButton, enter-notify signal, and GdkWindow
- Date: Wed, 24 Nov 2010 08:44:52 +0100
Hi,
2010/11/24 Brian Tietz <sdbtietz yahoo com>:
I am creating two widget subclasses, one which is a subclass of GtkContainer and one which is a subclass of
GtkButton. Both need to receive the enter-notify signal. I can successfully obtain the enter-notify
signal fot GtkButton in my_button_subclass_init:
g_gtk_button_mouse_enter_notify_event = widget_class->enter_notify_event;
widget_class->enter_notify_event = my_button_subclass_enter_notify_event;
That function does get called, I do my thing, and then call the GtkButton class version. When I try to do
the same thing for my GtkContainer subclass though, it doesn't happen. I more or less understand this: my
GtkContainer subclass is GTK_NO_WINDOW, and according to the Gtk docs I need to put it inside of a
GtkEventBox. Fair enough. But I am studying gtkbutton.c so see how to do this right and to copy its
methodology, and it isn't creating GtkEventBox. I found a clue in gtk_button_realize: it's calling
gdk_window_new, so it seems that GtkButton has its own GdkWindow, which would explain why it received
enter-notify events. Fair enough. Here's the weird part though. I found that GtkButton has the
GTK_NO_WINDOW flag set! Any help in understanding these behaviors and observations would be appreciated.
You need to call gtk_widget_add_events() on your widget and add the
event GDK_ENTER_NOTIFY_MASK.
http://library.gnome.org/devel/gtk/stable/GtkWidget.html#gtk-widget-add-events
http://library.gnome.org/devel/gdk/2.22/gdk-Events.html#GdkEventMask
HTH
Kind Regards
--
Mike
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]