Re: How to prevent gtk_dialog staying on-top?



            
        ***  Re: How to prevent gtk_dialog staying on-top?  ***
 
 On Monday October 27 2003 09:38 CET, ralf deres-mueller de
 wrote:
 
Hello,

my gtk_dialog cannot be put behind the main window.
 
 Hallo Kristallograph!
 
 Your dialog seems to be modal. Isn't it?
 
 Please set dialogs modal only at that ponit they are wise to
 set modal! Look at an examle code taken from my current
 project prototype (in hope it will help you):
 
 char *cgl_dialog(GtkWidget *parentWindow, const char *title,
        const char *labelText, const char *okButtonText) {
 
        CglDialog *dialog;
        G_CONST_RETURN char* entryValue;
        GtkWidget *hBox;
        GtkWidget *vBox;
        GtkWidget *label;
        char *entryText=NULL;
        short int responseID;
 
        dialog=malloc(sizeof(CglDialog));
        dialog->okButton=GTK_RESPONSE_OK;
        hBox=gtk_hbox_new(FALSE, 0);
        vBox=gtk_vbox_new(FALSE, 0);
        label=gtk_label_new(labelText);
 
        dialog->entry=gtk_entry_new();
        (void)g_signal_connect_after(G_OBJECT(dialog->entry),
                        "insert-text",
                        G_CALLBACK
                        (_cgl_dialog_inserted), dialog);
        (void)g_signal_connect_after(G_OBJECT(dialog->entry),
                        "delete-text",
                        G_CALLBACK
                        (_cgl_dialog_deleted), dialog);
 
        dialog->dialog=gtk_dialog_new_with_buttons(title,
                                GTK_WINDOW(parentWindow),
                                GTK_DIALOG_DESTROY_WITH_PARENT,
                                GTK_STOCK_CANCEL,
                                GTK_RESPONSE_CANCEL, NULL);
        gtk_dialog_add_button(GTK_DIALOG(dialog->dialog),
                                okButtonText,
                                dialog->okButton);
        gtk_dialog_set_response_sensitive(GTK_DIALOG(
                                        dialog->dialog),
                                        dialog->okButton,
                                        FALSE);
 
        gtk_box_pack_start(GTK_BOX(vBox), label,
                                FALSE, FALSE, 6);
        gtk_box_pack_start(GTK_BOX(vBox), dialog->entry,
                                FALSE, FALSE, 6);
        gtk_box_pack_start(GTK_BOX(hBox), vBox,
                                FALSE, FALSE, 6);
 
        gtk_container_add(GTK_CONTAINER
                         (GTK_DIALOG(dialog->dialog)->vbox),
                         hBox);
        gtk_widget_show(hBox); gtk_widget_show(vBox);
        gtk_widget_show(label); gtk_widget_show(dialog->entry);
 
        responseID=gtk_dialog_run(GTK_DIALOG(dialog->dialog));
 
        if(responseID==(short int)dialog->okButton) {
                entryValue=gtk_entry_get_text(GTK_ENTRY
                                             (dialog->entry));
                entryText=cgl_string_fill(entryValue); }
 
        gtk_widget_destroy(dialog->dialog); free(dialog);
 
        return entryText; }
 
 /* END OF cgl_dialog() */
 
 --
 Nothing is impossible!
   You only need to know the way.
 
   :-)
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]