[gtkmm] Gdk: Add DragSurface, Popup, Toplevel, ToplevelLayout



commit d81e49bbfe96f540f2762584f25dadf6e85ab64d
Author: Kjell Ahlstedt <kjellahlstedt gmail com>
Date:   Mon Mar 23 15:56:38 2020 +0100

    Gdk: Add DragSurface, Popup, Toplevel, ToplevelLayout

 .gitignore                     |  8 ++++
 gdk/gdkmm.h                    |  4 +-
 gdk/src/dragsurface.ccg        | 17 +++++++++
 gdk/src/dragsurface.hg         | 49 +++++++++++++++++++++++++
 gdk/src/filelist.am            |  4 ++
 gdk/src/gdk_extra_objects.defs | 12 ++++++
 gdk/src/popup.ccg              | 17 +++++++++
 gdk/src/popup.hg               | 65 +++++++++++++++++++++++++++++++++
 gdk/src/popuplayout.hg         |  7 +++-
 gdk/src/toplevel.ccg           | 17 +++++++++
 gdk/src/toplevel.hg            | 83 ++++++++++++++++++++++++++++++++++++++++++
 gdk/src/toplevellayout.ccg     | 16 ++++++++
 gdk/src/toplevellayout.hg      | 65 +++++++++++++++++++++++++++++++++
 tools/m4/convert_gdk.m4        |  8 ++--
 14 files changed, 367 insertions(+), 5 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 8d9ed170..3af6f006 100644
--- a/.gitignore
+++ b/.gitignore
@@ -74,6 +74,8 @@ gdk/gdkmm/displaymanager.cc
 gdk/gdkmm/displaymanager.h
 gdk/gdkmm/drag.cc
 gdk/gdkmm/drag.h
+gdk/gdkmm/dragsurface.cc
+gdk/gdkmm/dragsurface.h
 gdk/gdkmm/drawcontext.cc
 gdk/gdkmm/drawcontext.h
 gdk/gdkmm/drop.cc
@@ -104,6 +106,8 @@ gdk/gdkmm/pixbufformat.cc
 gdk/gdkmm/pixbufformat.h
 gdk/gdkmm/pixbufloader.cc
 gdk/gdkmm/pixbufloader.h
+gdk/gdkmm/popup.cc
+gdk/gdkmm/popup.h
 gdk/gdkmm/popuplayout.cc
 gdk/gdkmm/popuplayout.h
 gdk/gdkmm/rectangle.cc
@@ -120,6 +124,10 @@ gdk/gdkmm/texture.cc
 gdk/gdkmm/texture.h
 gdk/gdkmm/timecoord.cc
 gdk/gdkmm/timecoord.h
+gdk/gdkmm/toplevel.cc
+gdk/gdkmm/toplevel.h
+gdk/gdkmm/toplevellayout.cc
+gdk/gdkmm/toplevellayout.h
 gdk/gdkmm/types.cc
 gdk/gdkmm/types.h
 gdk/gdkmm/wrap_init.cc
diff --git a/gdk/gdkmm.h b/gdk/gdkmm.h
index bc74e68f..dede906c 100644
--- a/gdk/gdkmm.h
+++ b/gdk/gdkmm.h
@@ -31,6 +31,7 @@
 #include <gdkmm/devicewithpad.h>
 #include <gdkmm/display.h>
 #include <gdkmm/displaymanager.h>
+#include <gdkmm/dragsurface.h>
 #include <gdkmm/drop.h>
 #include <gdkmm/event.h>
 #include <gdkmm/frameclock.h>
@@ -43,12 +44,13 @@
 #include <gdkmm/pixbufanimation.h>
 #include <gdkmm/pixbufformat.h>
 #include <gdkmm/pixbufloader.h>
-#include <gdkmm/popuplayout.h>
+#include <gdkmm/popup.h>
 #include <gdkmm/rectangle.h>
 #include <gdkmm/seat.h>
 #include <gdkmm/snapshot.h>
 #include <gdkmm/surface.h>
 #include <gdkmm/texture.h>
+#include <gdkmm/toplevel.h>
 #include <gdkmm/types.h>
 
 #endif /* _GDKMM_GDKMM_H_ */
diff --git a/gdk/src/dragsurface.ccg b/gdk/src/dragsurface.ccg
new file mode 100644
index 00000000..c86901a6
--- /dev/null
+++ b/gdk/src/dragsurface.ccg
@@ -0,0 +1,17 @@
+/* Copyright (C) 2020 The gtkmm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <gdk/gdk.h>
diff --git a/gdk/src/dragsurface.hg b/gdk/src/dragsurface.hg
new file mode 100644
index 00000000..4a957f8b
--- /dev/null
+++ b/gdk/src/dragsurface.hg
@@ -0,0 +1,49 @@
+/* Copyright (C) 2020 The gtkmm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <glibmm/interface.h>
+
+_DEFS(gdkmm,gdk)
+_PINCLUDE(glibmm/private/interface_p.h)
+_PINCLUDE(gdk/gdk.h)
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+extern "C"
+{
+typedef struct _GdkDragSurfaceInterface GdkDragSurfaceInterface;
+}
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+namespace Gdk
+{
+
+/** Interface for drag surface surfaces.
+ *
+ * A %Gdk::DragSurface is a surface that is used during a DnD operation.
+ *
+ * @newin{3,98}
+ */
+class DragSurface : public Glib::Interface
+{
+  _CLASS_INTERFACE(DragSurface, GdkDragSurface, GDK_DRAG_SURFACE, GdkDragSurfaceInterface)
+
+public:
+  _WRAP_METHOD(bool present(int width, int height), gdk_drag_surface_present)
+
+  // There are no properties, signals or public vfuncs.
+};
+
+} // namespace Gdk
diff --git a/gdk/src/filelist.am b/gdk/src/filelist.am
index 8b1fa032..9fca6df4 100644
--- a/gdk/src/filelist.am
+++ b/gdk/src/filelist.am
@@ -27,6 +27,7 @@ gdkmm_files_any_hg =          \
        display.hg              \
        displaymanager.hg       \
        drag.hg         \
+       dragsurface.hg \
        drawcontext.hg          \
        drop.hg         \
        enums.hg                \
@@ -42,6 +43,7 @@ gdkmm_files_any_hg =          \
        pixbufanimationiter.hg  \
        pixbufformat.hg         \
        pixbufloader.hg         \
+       popup.hg \
        popuplayout.hg          \
        rectangle.hg            \
        rgba.hg                 \
@@ -50,6 +52,8 @@ gdkmm_files_any_hg =          \
        surface.hg              \
        texture.hg              \
        timecoord.hg            \
+       toplevel.hg \
+       toplevellayout.hg \
        types.hg
 
 gdkmm_files_deprecated_hg =
diff --git a/gdk/src/gdk_extra_objects.defs b/gdk/src/gdk_extra_objects.defs
index ee4d2547..d420454a 100644
--- a/gdk/src/gdk_extra_objects.defs
+++ b/gdk/src/gdk_extra_objects.defs
@@ -142,6 +142,12 @@
   (gtype-id "GDK_TYPE_PIXBUF_FORMAT")
 )
 
+(define-object Popup
+  (in-module "Gdk")
+  (c-name "GdkPopup")
+  (gtype-id "GDK_TYPE_POPUP")
+)
+
 (define-object PopupLayout
   (in-module "Gdk")
   (c-name "GdkPopupLayout")
@@ -166,6 +172,12 @@
   (gtype-id "GDK_TYPE_SURFACE")
 )
 
+(define-object Toplevel
+  (in-module "Gdk")
+  (c-name "GdkToplevel")
+  (gtype-id "GDK_TYPE_Toplevel")
+)
+
 (define-object Texture
   (in-module "Gdk")
   (c-name "GdkTexture")
diff --git a/gdk/src/popup.ccg b/gdk/src/popup.ccg
new file mode 100644
index 00000000..c86901a6
--- /dev/null
+++ b/gdk/src/popup.ccg
@@ -0,0 +1,17 @@
+/* Copyright (C) 2020 The gtkmm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <gdk/gdk.h>
diff --git a/gdk/src/popup.hg b/gdk/src/popup.hg
new file mode 100644
index 00000000..268cd54e
--- /dev/null
+++ b/gdk/src/popup.hg
@@ -0,0 +1,65 @@
+/* Copyright (C) 2020 The gtkmm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <glibmm/interface.h>
+#include <gdkmm/enums.h>
+#include <gdkmm/popuplayout.h>
+#include <gdkmm/surface.h>
+
+_DEFS(gdkmm,gdk)
+_PINCLUDE(glibmm/private/interface_p.h)
+_PINCLUDE(gdk/gdk.h)
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+extern "C"
+{
+typedef struct _GdkPopupInterface GdkPopupInterface;
+}
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+namespace Gdk
+{
+
+/** Interface for popup surfaces.
+ *
+ * A %Gdk::Popup is a surface that is attached to another surface,
+ * and is positioned relative to it.
+ *
+ * @newin{3,98}
+ */
+class Popup : public Glib::Interface
+{
+  _CLASS_INTERFACE(Popup, GdkPopup, GDK_POPUP, GdkPopupInterface)
+
+public:
+  _WRAP_METHOD(bool present(int width, int height, const Glib::RefPtr<PopupLayout>& layout),
+    gdk_popup_present)
+  _WRAP_METHOD(Gravity get_surface_anchor() const, gdk_popup_get_surface_anchor)
+  _WRAP_METHOD(Gravity get_rect_anchor() const, gdk_popup_get_rect_anchor)
+  _WRAP_METHOD(Glib::RefPtr<Surface> get_parent(), gdk_popup_get_parent, refreturn)
+  _WRAP_METHOD(Glib::RefPtr<const Surface> get_parent() const,
+    gdk_popup_get_parent, refreturn, constversion)
+  _WRAP_METHOD(int get_position_x() const, gdk_popup_get_position_x)
+  _WRAP_METHOD(int get_position_y() const, gdk_popup_get_position_y)
+  _WRAP_METHOD(bool get_autohide() const, gdk_popup_get_autohide)
+
+  _WRAP_PROPERTY("parent", Glib::RefPtr<Surface>)
+  _WRAP_PROPERTY("autohide", bool)
+
+  // There are no signals or public vfuncs.
+};
+
+} // namespace Gdk
diff --git a/gdk/src/popuplayout.hg b/gdk/src/popuplayout.hg
index aa5d6c65..d0132d1b 100644
--- a/gdk/src/popuplayout.hg
+++ b/gdk/src/popuplayout.hg
@@ -27,7 +27,12 @@ namespace Gdk
 {
 _WRAP_ENUM(AnchorHints, GdkAnchorHints)
 
-/** 
+/** Information for presenting popups.
+ *
+ * Popups are positioned relative to their parent surface.
+ * The %Gdk::PopupLayout class contains information that is
+ * necessary to do so.
+ *
  * @newin{3,98}
  */
 class PopupLayout final
diff --git a/gdk/src/toplevel.ccg b/gdk/src/toplevel.ccg
new file mode 100644
index 00000000..c86901a6
--- /dev/null
+++ b/gdk/src/toplevel.ccg
@@ -0,0 +1,17 @@
+/* Copyright (C) 2020 The gtkmm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <gdk/gdk.h>
diff --git a/gdk/src/toplevel.hg b/gdk/src/toplevel.hg
new file mode 100644
index 00000000..a6ee28bc
--- /dev/null
+++ b/gdk/src/toplevel.hg
@@ -0,0 +1,83 @@
+/* Copyright (C) 2020 The gtkmm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <glibmm/interface.h>
+#include <gdkmm/surface.h>
+#include <gdkmm/texture.h>
+#include <gdkmm/toplevellayout.h>
+#include <vector>
+
+_DEFS(gdkmm,gdk)
+_PINCLUDE(glibmm/private/interface_p.h)
+_PINCLUDE(gdk/gdk.h)
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+extern "C"
+{
+typedef struct _GdkToplevelInterface GdkToplevelInterface;
+}
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+namespace Gdk
+{
+
+/** Interface for toplevel surfaces.
+ *
+ * A %Gdk::Toplevel is a freestanding toplevel surface.
+ *
+ * @newin{3,98}
+ */
+class Toplevel : public Glib::Interface
+{
+  _CLASS_INTERFACE(Toplevel, GdkToplevel, GDK_TOPLEVEL, GdkToplevelInterface)
+
+public:
+  _WRAP_METHOD(bool present(int width, int height, const Glib::RefPtr<ToplevelLayout>& layout),
+    gdk_toplevel_present)
+  _WRAP_METHOD(bool minimize(), gdk_toplevel_minimize)
+  _WRAP_METHOD(bool lower(), gdk_toplevel_lower)
+  _WRAP_METHOD(void focus(guint32 timestamp), gdk_toplevel_focus)
+  _WRAP_METHOD(Surface::State get_state() const, gdk_toplevel_get_state)
+  _WRAP_METHOD(void set_title(const Glib::ustring& title), gdk_toplevel_set_title)
+  _WRAP_METHOD(void set_startup_id(const Glib::ustring& startup_id), gdk_toplevel_set_startup_id)
+  _WRAP_METHOD(void set_transient_for(const Glib::RefPtr<Surface>& parent),
+    gdk_toplevel_set_transient_for)
+  _WRAP_METHOD(void set_modal(bool modal = true), gdk_toplevel_set_modal)
+
+#m4 _CONVERSION(`const 
std::vector<Glib::RefPtr<Texture>>&',`GList*',`Glib::ListHandler<Glib::RefPtr<Texture>>::vector_to_list($3).data()')
+  _WRAP_METHOD(void set_icon_list(const std::vector<Glib::RefPtr<Texture>>& surfaces),
+    gdk_toplevel_set_icon_list)
+
+  _WRAP_METHOD(bool show_window_menu(const Glib::RefPtr<Event>& event),
+    gdk_toplevel_show_window_menu)
+  _WRAP_METHOD(void set_decorated(bool decorated = true), gdk_toplevel_set_decorated)
+  _WRAP_METHOD(void set_deletable(bool deletable = true), gdk_toplevel_set_deletable)
+  _WRAP_METHOD(bool supports_edge_constraints() const, gdk_toplevel_supports_edge_constraints)
+
+  _WRAP_PROPERTY("state", Surface::State)
+  _WRAP_PROPERTY("title", Glib::ustring)
+  _WRAP_PROPERTY("startup-id", Glib::ustring)
+  _WRAP_PROPERTY("transient-for", Glib::RefPtr<Surface>)
+  _WRAP_PROPERTY("modal", bool)
+  //TODO: _WRAP_PROPERTY("icon-list", std::vector<Glib::RefPtr<Texture>>)
+  _WRAP_PROPERTY("decorated", bool)
+  _WRAP_PROPERTY("deletable", bool)
+  _WRAP_PROPERTY("fullscreen-mode", FullscreenMode)
+
+  // There are no signals or public vfuncs.
+};
+
+} // namespace Gdk
diff --git a/gdk/src/toplevellayout.ccg b/gdk/src/toplevellayout.ccg
new file mode 100644
index 00000000..16221a6d
--- /dev/null
+++ b/gdk/src/toplevellayout.ccg
@@ -0,0 +1,16 @@
+/* Copyright (C) 2020 The gtkmm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ */
+
diff --git a/gdk/src/toplevellayout.hg b/gdk/src/toplevellayout.hg
new file mode 100644
index 00000000..226f1deb
--- /dev/null
+++ b/gdk/src/toplevellayout.hg
@@ -0,0 +1,65 @@
+/* Copyright (C) 2020 The gtkmm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+_DEFS(gdkmm,gdk)
+
+#include <glibmm/refptr.h>
+#include <gdkmm/monitor.h>
+
+_CC_INCLUDE(gdk/gdk.h)
+
+namespace Gdk
+{
+
+/** Information for presenting toplevels.
+ *
+ * %Toplevel surfaces are sovereign windows that can be presented
+ * to the user in various states (maximized, on all workspaces, etc).
+ *
+ * The %Gdk::ToplevelLayout class contains information that
+ * is necessary to do so, and is passed to Gdk::Toplevel::present().
+ *
+ * @newin{3,98}
+ */
+class ToplevelLayout final
+{
+  // GdkToplevelLayout is actually registered as a boxed type, but it has custom
+  // reference-counting instead of copy/free functions, so we use it via RefPtr.
+  _CLASS_OPAQUE_REFCOUNTED(ToplevelLayout, GdkToplevelLayout, NONE, gdk_toplevel_layout_ref, 
gdk_toplevel_layout_unref)
+  _IGNORE(gdk_toplevel_layout_ref, gdk_toplevel_layout_unref)
+public:
+
+  _WRAP_METHOD(static Glib::RefPtr<ToplevelLayout> create(int min_width, int min_height),
+    gdk_toplevel_layout_new)
+  _WRAP_METHOD(Glib::RefPtr<ToplevelLayout> copy() const, gdk_toplevel_layout_copy)
+  _WRAP_METHOD(bool equal(const Glib::RefPtr<const ToplevelLayout>& other) const,
+    gdk_toplevel_layout_equal)
+  _WRAP_METHOD(void set_maximized(bool maximized = true), gdk_toplevel_layout_set_maximized)
+  _WRAP_METHOD(void set_fullscreen(bool fullscreen = true, const Glib::RefPtr<Monitor>& monitor = {}),
+    gdk_toplevel_layout_set_fullscreen)
+  _WRAP_METHOD(int get_min_width() const, gdk_toplevel_layout_get_min_width)
+  _WRAP_METHOD(int get_min_height() const, gdk_toplevel_layout_get_min_height)
+  _WRAP_METHOD(bool get_maximized() const, gdk_toplevel_layout_get_maximized)
+  _WRAP_METHOD(bool get_fullscreen() const, gdk_toplevel_layout_get_fullscreen)
+  _WRAP_METHOD(Glib::RefPtr<Monitor> get_fullscreen_monitor(),
+    gdk_toplevel_layout_get_fullscreen_monitor, refreturn)
+  _WRAP_METHOD(Glib::RefPtr<const Monitor> get_fullscreen_monitor() const,
+    gdk_toplevel_layout_get_fullscreen_monitor, refreturn, constversion)
+  _WRAP_METHOD(void set_resizable(bool resizable= true), gdk_toplevel_layout_set_resizable)
+  _WRAP_METHOD(bool get_resizable() const, gdk_toplevel_layout_get_resizable)
+};
+
+} // namespace Gdk
diff --git a/tools/m4/convert_gdk.m4 b/tools/m4/convert_gdk.m4
index 9f2c0503..d79be965 100644
--- a/tools/m4/convert_gdk.m4
+++ b/tools/m4/convert_gdk.m4
@@ -114,7 +114,10 @@ _CONVERSION(`const Glib::RefPtr<Cursor>&',`GdkCursor*',__CONVERT_REFPTR_TO_P)
 _CONVERSION(`const Glib::RefPtr<const Cursor>&',`GdkCursor*',__CONVERT_CONST_REFPTR_TO_P)
 _CONVERSION(`const Glib::RefPtr<Gdk::Cursor>&',`GdkCursor*',__CONVERT_REFPTR_TO_P)
 _CONVERSION(`const Glib::RefPtr<const Gdk::Cursor>&',`GdkCursor*',__CONVERT_CONST_REFPTR_TO_P)
+_CONVERSION(`const Glib::RefPtr<PopupLayout>&',`GdkPopupLayout*',__CONVERT_REFPTR_TO_P)
 _CONVERSION(`const Glib::RefPtr<const PopupLayout>&',`GdkPopupLayout*',__CONVERT_CONST_REFPTR_TO_P)
+_CONVERSION(`const Glib::RefPtr<ToplevelLayout>&',`GdkToplevelLayout*',__CONVERT_REFPTR_TO_P)
+_CONVERSION(`const Glib::RefPtr<const ToplevelLayout>&',`GdkToplevelLayout*',__CONVERT_CONST_REFPTR_TO_P)
 _CONVERSION(`const Glib::RefPtr<Gdk::Surface>&',`GdkSurface*',__CONVERT_REFPTR_TO_P)
 _CONVERSION(`const Glib::RefPtr<Surface>&',`GdkSurface*',__CONVERT_REFPTR_TO_P)
 _CONVERSION(`const Glib::RefPtr<GLContext>&',`GdkGLContext*',__CONVERT_REFPTR_TO_P)
@@ -177,8 +180,8 @@ _CONVERSION(`const Glib::RefPtr<const Gdk::Bitmap>&', `GdkBitmap*',__CONVERT_CON
 #_CONVERSION(`const Glib::RefPtr<const Drawable>&', `GdkDrawable*',__CONVERT_CONST_REFPTR_TO_P_SUN(Drawable))
 #_CONVERSION(`const Glib::RefPtr<const Display>&', `GdkDrawable*',__CONVERT_CONST_REFPTR_TO_P_SUN(Drawable))
 
-
 _CONVERSION(`GdkPopupLayout*',`Glib::RefPtr<PopupLayout>', `Glib::wrap($3)')
+_CONVERSION(`GdkToplevelLayout*',`Glib::RefPtr<ToplevelLayout>', `Glib::wrap($3)')
 _CONVERSION(`GdkSurface*',`Glib::RefPtr<Surface>', `Glib::wrap($3)')
 _CONVERSION(`GdkSurface*',`Glib::RefPtr<const Surface>', `Glib::wrap($3)')
 _CONVERSION(`GdkSurface*',`Glib::RefPtr<Gdk::Surface>', `Glib::wrap($3)')
@@ -292,13 +295,12 @@ dnl GdkEvent and GdkEventSequence
 _CONVERSION(`GdkEvent*',`Glib::RefPtr<Event>',`Glib::wrap($3)')
 _CONVERSION(`GdkEvent*',`Glib::RefPtr<Gdk::Event>',`Glib::wrap($3)')
 _CONVERSION(`const GdkEvent*',`Glib::RefPtr<const Gdk::Event>',`Glib::wrap(const_cast<GdkEvent*>($3))')
+_CONVERSION(`const Glib::RefPtr<Event>&',`GdkEvent*',__CONVERT_REFPTR_TO_P)
 _CONVERSION(`const Glib::RefPtr<Gdk::Event>&',`GdkEvent*',__CONVERT_REFPTR_TO_P)
 _CONVERSION(`const Glib::RefPtr<const Event>&',`GdkEvent*',__CONVERT_CONST_REFPTR_TO_P)
 _CONVERSION(`const Glib::RefPtr<const Gdk::Event>&',`GdkEvent*',__CONVERT_CONST_REFPTR_TO_P)
 _CONVERSION(`const Glib::RefPtr<const Event>&',`const GdkEvent*',__CONVERT_REFPTR_TO_P)
 _CONVERSION(`const Glib::RefPtr<const Gdk::Event>&',`const GdkEvent*',__CONVERT_REFPTR_TO_P)
-_CONVERSION(`const Glib::RefPtr<Gdk::EventButton>&',`GdkEventButton*',__CONVERT_REFPTR_TO_P)
-_CONVERSION(`const Glib::RefPtr<Gdk::EventKey>&',`GdkEventKey*',__CONVERT_REFPTR_TO_P)
 _CONVERSION(`Gdk::EventSequence*',`GdkEventSequence*',`reinterpret_cast<$2>($3)')
 _CONVERSION(`GdkEventSequence*',`Gdk::EventSequence*',`reinterpret_cast<$2>($3)')
 _CONVERSION(`GdkEventSequence*',`const EventSequence*',`reinterpret_cast<$2>($3)')


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]