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 voiddlg_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)); } }}intmain(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;}