bool ConfigDialog::display () { if (!__gtk_init_once ()) return false; /* Select previously selected rendersystem */ mSelectedRenderSystem = Root::getSingleton ().getRenderSystem (); /* Attempt to create the window */ if (!createWindow ()) OGRE_EXCEPT (Exception::ERR_INTERNAL_ERROR, "Could not create configuration dialog", "ConfigDialog::display"); // Modal loop gint result = gtk_dialog_run (GTK_DIALOG (mDialog)); gtk_widget_destroy (mDialog); // Wait for all gtk events to be consumed ... while (gtk_events_pending ()) gtk_main_iteration_do (FALSE); if (result != GTK_RESPONSE_OK) return false; Root::getSingleton ().setRenderSystem (mSelectedRenderSystem); return true; }
//---------------------------------------------------------------------------// void ErrorDialog::display (const String& errorMessage, String logName) { if (!__gtk_init_once ()) { std::cerr << "*** ERROR: " << errorMessage << std::endl; return; } GtkWidget *dialog = gtk_message_dialog_new ( NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, errorMessage.c_str ()); gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (dialog); // Wait for all gtk events to be consumed ... while (gtk_events_pending ()) gtk_main_iteration_do (FALSE); }