rendered paste body/* gcc -Wall -g `pkg-config --cflags --libs gtk+-2.0` -o X pre.c */#include <gtk/gtk.h>#include <unistd.h>gboolean user_function (GtkWidget *widget, GdkEventConfigure *event, gpointer user_data) { if(event->type == GDK_ENTER_NOTIFY){ printf("Enter Notify\n"); return TRUE; }else if(event->type == GDK_LEAVE_NOTIFY){ printf("Leave Notify\n"); return TRUE; }else{ return FALSE; }}int main(int argc, char **argv){ gtk_init(&argc, &argv); GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL); GdkGeometry gdkGeometry; gdkGeometry.min_width= 640; gdkGeometry.min_height = 480; gtk_window_set_geometry_hints(GTK_WINDOW(window), window, &gdkGeometry, GDK_HINT_MIN_SIZE); GtkWidget *vbox = gtk_vbox_new(FALSE,10); GtkFrame *frame = gtk_frame_new(NULL); GtkEventBox *frame_event = gtk_event_box_new(); gtk_widget_set_size_request (frame,20,20); gtk_widget_set_size_request (vbox,20,20); gtk_container_add(GTK_CONTAINER(frame_event), frame); gtk_box_pack_start(GTK_BOX(vbox),frame_event,FALSE,FALSE,10); gtk_container_add(GTK_CONTAINER(window), vbox); gtk_widget_add_events(frame_event,GDK_ENTER_NOTIFY_MASK|GDK_LEAVE_NOTIFY_MASK); g_signal_connect(frame_event,"configure-event",user_function,NULL); g_signal_connect(G_OBJECT(window), "destroy", gtk_main_quit, NULL); gtk_widget_show_all(window); gtk_main(); return 0;}