/** dataoutin.c **/ #include void closeDialog(GtkWidget *widget,gpointer data); void showDialog(GtkWidget *widget,gpointer data); gint eventShutdown(GtkWidget *widget,gpointer data); typedef struct { GtkWidget *dialog; GtkEntry *nameEntry; } dataoutinContext; int main(int argc,char *argv[]) { GtkWidget *topLevelWindow; GtkWidget *dialogButton; dataoutinContext context; context.dialog = NULL; context.nameEntry = NULL; gnome_init("dataoutin","1.0",argc,argv); topLevelWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_signal_connect(GTK_OBJECT(topLevelWindow), "destroy", GTK_SIGNAL_FUNC(eventShutdown), &context); gtk_container_set_border_width( GTK_CONTAINER(topLevelWindow),20); dialogButton = gtk_button_new_with_label("Dialog"); gtk_signal_connect(GTK_OBJECT(dialogButton), "clicked", GTK_SIGNAL_FUNC(showDialog), &context); gtk_container_add(GTK_CONTAINER(topLevelWindow), dialogButton); gtk_widget_show(dialogButton); gtk_widget_show(topLevelWindow); gtk_main(); exit(0); } gint eventShutdown(GtkWidget *widget,gpointer data) { dataoutinContext *context; context = (dataoutinContext *)data; if(context->dialog != NULL) gtk_widget_destroy(GTK_WIDGET(context->dialog)); gtk_main_quit(); return(0); } void showDialog(GtkWidget *widget,gpointer data) { GtkWidget *box; GtkWidget *okButton; dataoutinContext *context; context = (dataoutinContext *)data; if(context->dialog == NULL) { context->dialog = gtk_window_new(GTK_WINDOW_DIALOG); gtk_container_set_border_width( GTK_CONTAINER(context->dialog),20); box = gtk_vbox_new(FALSE,0); gtk_container_add( GTK_CONTAINER(context->dialog),box); gtk_widget_show(GTK_WIDGET(box)); context->nameEntry = (GtkEntry *)gtk_entry_new(); gtk_entry_set_text(context->nameEntry, "Initial String"); gtk_box_pack_start(GTK_BOX(box), GTK_WIDGET(context->nameEntry), FALSE,FALSE,0); gtk_widget_show(GTK_WIDGET(context->nameEntry)); okButton = gtk_button_new_with_label("OK"); gtk_signal_connect(GTK_OBJECT(okButton), "clicked", GTK_SIGNAL_FUNC(closeDialog), context); gtk_box_pack_start(GTK_BOX(box), okButton,FALSE,FALSE,0); gtk_widget_show(okButton); gtk_window_set_modal( GTK_WINDOW(context->dialog),TRUE); } gtk_widget_show(context->dialog); } void closeDialog(GtkWidget *widget,gpointer data) { dataoutinContext *context; gchar *gotName; context = (dataoutinContext *)data; gotName = gtk_entry_get_text(context->nameEntry); g_print("GOT: %s\n",gotName); gtk_widget_hide(GTK_WIDGET(context->dialog)); }