【发布时间】:2014-12-18 19:31:14
【问题描述】:
我一直致力于创建一个简单的cross-platform message box / dialog library。我决定这样做,因为我目前正在使用 GLFW 进行窗口化,不幸的是它不提供对话框创建支持。
就对话创建本身而言,我的库运行良好。但是,当我在 Linux 上将它与 GLFW 一起使用时,我遇到了一些订购问题。对话框(模态的)将出现在我的 GLFW 窗口框架的顶部,但我的 GLFW 窗口的实际内容(使用 OpenGL 绘制)绘制在对话框的前面,如下所示:
我的 Linux 实现如下所示:
#include <boxer/boxer.h>
#include <gtk/gtk.h>
namespace boxer {
void show(const char *message, const char *title) {
gtk_init(0, NULL);
GtkWidget *dialog = gtk_message_dialog_new(NULL,
GTK_DIALOG_MODAL,
GTK_MESSAGE_INFO,
GTK_BUTTONS_OK,
"%s",
message);
gtk_window_set_title(GTK_WINDOW(dialog), title);
gtk_dialog_run(GTK_DIALOG(dialog));
gtk_widget_destroy(GTK_WIDGET(dialog));
while (g_main_context_iteration(NULL, false));
}
} // namespace boxer
是否可以强制将 GTK+ 对话框绘制在我的 GLFW 窗口内容的前面?
【问题讨论】:
标签: opengl dialog modal-dialog gtk glfw