Web lists-archives.com

Re: using gdk_win32_window_foreign_new_for_display




Am 12.01.2017 um 20:04 schrieb LRN:

On 12.01.2017 21:41, Tilman K. wrote:
Am 12.01.2017 um 17:11 schrieb LRN:
On 12.01.2017 18:20, Tilman K. wrote:
Hey guys,

I would like to develop the GUI for a VST synth with gtk. I need to
embed a gtk gui inside a win32 HWND parent window. I think
"gdk_win32_window_foreign_new_for_display" could be the right function
to create a GdkWindow that is embedded inside the native window. is this
correct?

          auto gdkWindow =
Glib::wrap(gdk_win32_window_foreign_new_for_display(disp->gobj(),(HWND)systemWindow));
          window.set_parent_window(gdkWindow);
You might need to use gdk_win32_window_reparent() instead of set_parent_window.

To be honest, the whole foreign-window embedding thing is poorly-developed. GTK
does use it to embed its own printer properties page contents into Windows
printing dialog - and it didn't really work, last time i checked.

Also, i think this API is going away in GTK4.

My current fallback plan (in case i encounter a scenario where embedding is
needed, and i fail to make it work, or when the time of GTK4 comes, and it has
no embedding) is to instead just embed a pure W32-API child button (or
something along these lines) that causes a normal, toplevel, non-embedded
GTK-based dialog to pop up.
thanks for the reply. The function "gdk_win32_window_reparent" doesnt exist
anymore in newer versions of gtk...


But gdk_window_reparent() does.
Using "gdk_window_reparent()" its almost working :) All the input events work, pressing buttons, opening context menus etc. But the window is still black, so there must be something wrong with the rendering.
_______________________________________________
gtk-list mailing list
gtk-list@xxxxxxxxx
https://mail.gnome.org/mailman/listinfo/gtk-list