rendered paste body#include <stdlib.h>
#include <gtk/gtk.h>
#if defined(GDK_WINDOWING_X11)
#include <gdk/gdkx.h>
#define GDK_NATIVE_WINDOW(wnd) ((guint)GDK_WINDOW_XID((wnd)))
#elif defined(GDK_WINDOWING_WIN32)
#include <gdk/gdkwin32.h>
#define GDK_NATIVE_WINDOW(wnd) ((guint)GDK_WINDOW_HWND((wnd)))
#else
#define GDK_NATIVE_WINDOW(wnd) ((guint)(wnd))
#endif /* kind of windowing system */
static void
dlg_show(GtkWidget *dlg, GdkWindow *parent)
{
if (dlg->window) {
if (parent) {
gdk_window_set_transient_for(dlg->window, parent);
g_print("dlg_show: Setting transient\n");
} else {
g_print("dlg_show: window ID is %d\n", GDK_NATIVE_WINDOW(dlg->window));
}
}
}
int
main(int argc, char **argv)
{
GtkWidget *dlg = NULL;
GdkWindow *parent = NULL;
gtk_init(&argc, &argv);
dlg = gtk_dialog_new_with_buttons(argc > 1 ? "The Top" : "The Bottom", NULL, 0, GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE, NULL);
if (argc > 1)
parent = gdk_window_foreign_new(atoi(argv[1]));
g_signal_connect(G_OBJECT(dlg), "show", (GCallback)dlg_show, parent);
gtk_dialog_run(GTK_DIALOG(dlg));
gtk_widget_destroy(dlg);
return 0;
}