/** xgtkeventbox.c **/ #include gint eventDelete(GtkWidget *widget, GdkEvent *event,gpointer data); gint eventDestroy(GtkWidget *widget, GdkEvent *event,gpointer data); static GtkWidget *makeWidget(); static gboolean mouseLeave(GtkWidget *widget,GdkEvent *event,gpointer data); static gboolean mouseEnter(GtkWidget *widget,GdkEvent *event,gpointer data); int main(int argc,char *argv[]) { GtkWidget *app; GtkWidget *widget; gnome_init("xgtkeventbox","1.0",argc,argv); app = gnome_app_new("xgtkeventbox","GtkEventBox"); gtk_container_set_border_width(GTK_CONTAINER(app),20); gtk_signal_connect(GTK_OBJECT(app),"delete_event", GTK_SIGNAL_FUNC(eventDelete),NULL); gtk_signal_connect(GTK_OBJECT(app),"destroy", GTK_SIGNAL_FUNC(eventDestroy),NULL); widget = makeWidget(); gnome_app_set_contents(GNOME_APP(app),widget); gtk_widget_show_all(app); gtk_main(); exit(0); } gint eventDelete(GtkWidget *widget, GdkEvent *event,gpointer data) { return(FALSE); } gint eventDestroy(GtkWidget *widget, GdkEvent *event,gpointer data) { gtk_main_quit(); return(0); } static GtkWidget *makeWidget() { GtkWidget *eventbox; GtkWidget *label; eventbox = gtk_event_box_new(); label = gtk_label_new("Mouse Outside"); gtk_container_add(GTK_CONTAINER(eventbox),label); gtk_signal_connect(GTK_OBJECT(eventbox), "enter_notify_event", GTK_SIGNAL_FUNC(mouseEnter),label); gtk_signal_connect(GTK_OBJECT(eventbox), "leave_notify_event", GTK_SIGNAL_FUNC(mouseLeave),label); return(eventbox); } static gboolean mouseEnter(GtkWidget *widget, GdkEvent *event,gpointer data) { gtk_label_set_text(GTK_LABEL(data),"Mouse Inside"); return(TRUE); } static gboolean mouseLeave(GtkWidget *widget, GdkEvent *event,gpointer data) { gtk_label_set_text(GTK_LABEL(data),"Mouse Outside"); return(TRUE); }