Beispiel #1
0
            protected override void OnHierarchyChanged(global::Gtk.Widget previous_toplevel)
            {
                base.OnHierarchyChanged(previous_toplevel);
                var previousWindow = previous_toplevel as global::Gtk.Window;

                if (previousWindow != null)
                {
                    previousWindow.ConfigureEvent -= OnWindowConfigured;
                    previousWindow.SetFocus       -= OnWindowSetFocus;
                }
                var toplevel = Toplevel as global::Gtk.Window;

                if (toplevel != null)
                {
                    toplevel.ConfigureEvent += OnWindowConfigured;
                    toplevel.SetFocus       += OnWindowSetFocus;
                    var window = toplevel.GdkWindow;
                    if (window != null)
                    {
                        IntPtr gtkWindowPtr = GtkWin32Interop.HWndGet(window);
                        IntPtr wpfWindowPtr = wpfWidgetHost.Handle;
                        GtkWin32Interop.SetWindowLongPtr(wpfWindowPtr, (int)GtkWin32Interop.GWLParameter.GWL_HWNDPARENT, gtkWindowPtr);
                    }
                }
            }
        public static NSView GetView(global::Gtk.Widget widget)
        {
            var ptr = gdk_quartz_window_get_nsview(widget.GdkWindow.Handle);

            if (ptr == IntPtr.Zero)
            {
                return(null);
            }
            return(ObjCRuntime.Runtime.GetNSObject <NSView> (ptr));
        }