gtk录入对话框源程序

GtkWidget  * dialog;
void  okCall(GtkWidget  *  button,gpointer data)
{
        
char *string = gtk_entry_get_text(GTK_ENTRY((GtkWidget *)data));

        bzero(servConfFilePath,
sizeof(servConfFilePath));
        strcpy(servConfFilePath,
string);
        
char fs[50];
        bzero(fs,
sizeof(fs));
        strcat(fs,
"touch ");
        strcat(fs,servConfFilePath);
        system(fs);
        gtk_widget_destroy(dialog);
}

void  cancelCall(GtkWidget  *  dialog,gpointer data)
{
        gtk_widget_destroy(dialog);
}

void  editConfPath(GtkObject  * window,gpointer data)
{
        GtkWidget 
*vbox;
        GtkWidget 
*hbox;
        GtkWidget 
*label;
        GtkWidget 
*entry;
        GtkWidget 
*ok;
        GtkWidget 
*cancel;

        dialog 
= gtk_window_new(GTK_WINDOW_TOPLEVEL);
        gtk_window_set_title(GTK_WINDOW(dialog),
"chang the path");
        gtk_window_set_default_size(GTK_WINDOW(dialog),
300,200);

        vbox 
= gtk_vbox_new(TRUE,5);
        gtk_container_add(GTK_CONTAINER(dialog),vbox);

        label 
= gtk_label_new("change the server configure file path:");
        gtk_box_pack_start(GTK_BOX(vbox),label,FALSE,FALSE,
5);

        entry 
= gtk_entry_new();
        gtk_box_pack_start(GTK_BOX(vbox),entry,FALSE,FALSE,
5);

        hbox 
= gtk_hbox_new(TRUE,5);
        gtk_box_pack_start(GTK_BOX(vbox),hbox,FALSE,FALSE,
5);

        ok 
= gtk_button_new_with_label("ok");
        cancel 
= gtk_button_new_with_label("cancel");
        g_signal_connect(GTK_OBJECT(ok),
"clicked",G_CALLBACK(okCall),entry);
        g_signal_connect(GTK_OBJECT(cancel),
"clicked",G_CALLBACK(cancelCall),entry);

        gtk_box_pack_start(GTK_BOX(hbox),ok,FALSE,FALSE,
5);
        gtk_box_pack_start(GTK_BOX(hbox),cancel,FALSE,FALSE,
5);

        gtk_widget_show_all(dialog);

}


 

你可能感兴趣的:(object,dialog,callback,button,Signal,gtk)