/** simplemdi.c **/ #include gint eventDelete(GtkWidget *widget, GdkEvent *event,gpointer data); gint eventDestroy(GtkWidget *widget, GdkEvent *event,gpointer data); static void addChild(GtkObject *mdi,gchar *name); static GtkWidget *setLabel(GnomeMDIChild *child, GtkWidget *currentLabel,gpointer data); static GtkWidget *createView(GnomeMDIChild *child, gpointer data); int main(int argc,char *argv[]) { GtkObject *mdi; gnome_init("simplemdi","1.0",argc,argv); mdi = gnome_mdi_new("simplemdi","Simple MDI"); gtk_signal_connect(mdi,"destroy", GTK_SIGNAL_FUNC(eventDestroy),NULL); addChild(mdi,"First"); addChild(mdi,"Second"); addChild(mdi,"Third"); addChild(mdi,"Last"); gnome_mdi_set_mode(GNOME_MDI(mdi),GNOME_MDI_NOTEBOOK); gnome_mdi_open_toplevel(GNOME_MDI(mdi)); gtk_main(); exit(0); } static void addChild(GtkObject *mdi,gchar *name) { GnomeMDIGenericChild *child; child = gnome_mdi_generic_child_new(name); gnome_mdi_add_child(GNOME_MDI(mdi), GNOME_MDI_CHILD(child)); gnome_mdi_generic_child_set_view_creator(child, createView,name); gnome_mdi_generic_child_set_label_func(child,setLabel, NULL); gnome_mdi_add_view(GNOME_MDI(mdi), GNOME_MDI_CHILD(child)); } static GtkWidget *createView(GnomeMDIChild *child, gpointer data) { char str[80]; sprintf(str,"View of the\n%s widget",(gchar *)data); return(gtk_label_new(str)); } static GtkWidget *setLabel(GnomeMDIChild *child, GtkWidget *currentLabel,gpointer data) { if(currentLabel == NULL) return(gtk_label_new(child->name)); gtk_label_set_text(GTK_LABEL(currentLabel), child->name); return(currentLabel); } gint eventDestroy(GtkWidget *widget, GdkEvent *event,gpointer data) { gtk_main_quit(); return(0); }