/** get.c **/ #include gint eventDelete(GtkWidget *widget, GdkEvent *event,gpointer data); gint eventDestroy(GtkWidget *widget, GdkEvent *event,gpointer data); void eventShow(GtkWidget *widget,gpointer data); #define WIDTH 300 #define HEIGHT 200 int main(int argc,char *argv[]) { GtkWidget *app; GtkWidget *clist; static char *titles[] = { "First", "Second", "Third", "Fourth" }; gnome_init("get","1.0",argc,argv); app = gnome_app_new("Get","Get Arguments"); 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); clist = gtk_clist_new_with_titles(4,titles); gtk_object_set(GTK_OBJECT(clist), "GtkContainer::border_width",(gulong)12, "GtkCList::reorderable",(gboolean)TRUE, "GtkWidget::name","fred", NULL); gtk_signal_connect(GTK_OBJECT(clist),"show", GTK_SIGNAL_FUNC(eventShow),NULL); gnome_app_set_contents(GNOME_APP(app),clist); gtk_widget_show_all(app); gtk_main(); exit(0); } void eventShow(GtkWidget *widget,gpointer data) { int i; GtkArg arg[5]; arg[0].name = "GtkCList::reorderable"; arg[1].name = "border_width"; arg[2].name = "GtkWidget::name"; arg[3].name = "GtkCList::n_columns"; arg[4].name = "row_height"; gtk_object_getv(GTK_OBJECT(widget),5,arg); for(i=0; i<5; i++) { switch(arg[i].type) { case GTK_TYPE_UINT: g_print("%s=%u\n",arg[i].name, GTK_VALUE_UINT(arg[i])); break; case GTK_TYPE_ULONG: g_print("%s=%lu\n",arg[i].name, GTK_VALUE_ULONG(arg[i])); break; case GTK_TYPE_FLOAT: g_print("%s=%g\n",arg[i].name, GTK_VALUE_FLOAT(arg[i])); break; case GTK_TYPE_STRING: g_print("%s=\"%s\"\n",arg[i].name, GTK_VALUE_STRING(arg[i])); break; case GTK_TYPE_BOOL: g_print("%s=%s\n",arg[i].name, GTK_VALUE_UINT(arg[i]) ? "TRUE" : "FALSE"); break; default: g_print("%s is type %d\n", arg[i].name,arg[i].type); break; } } } gint eventDelete(GtkWidget *widget, GdkEvent *event,gpointer data) { return(FALSE); } gint eventDestroy(GtkWidget *widget, GdkEvent *event,gpointer data) { gtk_main_quit(); return(0); }