From 348acde6bd95c92a1dafc98a0b45c452a853244d Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Tue, 15 Nov 2022 14:52:49 -0500 Subject: [PATCH] wayland: Split public headers Split gdkwaylandsurface.h into itself, gdkwaylandtoplevel.h and gdkwaylandpopup.h. This is in preparation for splitting the types for real. --- gdk/wayland/gdksurface-wayland.h | 2 + gdk/wayland/gdkwayland.h | 4 +- gdk/wayland/gdkwaylandpopup.h | 44 +++++++++++++++++++++ gdk/wayland/gdkwaylandsurface.h | 39 ------------------- gdk/wayland/gdkwaylandtoplevel.h | 66 ++++++++++++++++++++++++++++++++ gdk/wayland/meson.build | 2 + 6 files changed, 117 insertions(+), 40 deletions(-) create mode 100644 gdk/wayland/gdkwaylandpopup.h create mode 100644 gdk/wayland/gdkwaylandtoplevel.h diff --git a/gdk/wayland/gdksurface-wayland.h b/gdk/wayland/gdksurface-wayland.h index cb4c63b049..67ed926afd 100644 --- a/gdk/wayland/gdksurface-wayland.h +++ b/gdk/wayland/gdksurface-wayland.h @@ -21,6 +21,8 @@ #pragma once #include "gdkwaylandsurface.h" +#include "gdkwaylandtoplevel.h" +#include "gdkwaylandpopup.h" G_BEGIN_DECLS diff --git a/gdk/wayland/gdkwayland.h b/gdk/wayland/gdkwayland.h index 4e7981a229..e48d6946e5 100644 --- a/gdk/wayland/gdkwayland.h +++ b/gdk/wayland/gdkwayland.h @@ -31,10 +31,12 @@ #include #include +#include #include +#include #include #include -#include +#include #undef __GDKWAYLAND_H_INSIDE__ diff --git a/gdk/wayland/gdkwaylandpopup.h b/gdk/wayland/gdkwaylandpopup.h new file mode 100644 index 0000000000..6eba06792b --- /dev/null +++ b/gdk/wayland/gdkwaylandpopup.h @@ -0,0 +1,44 @@ +/* GDK - The GIMP Drawing Kit + * Copyright (C) 2013 Jan Arne Petersen + * + * 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 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 . + */ + +#pragma once + +#if !defined (__GDKWAYLAND_H_INSIDE__) && !defined (GTK_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include + +#include + +G_BEGIN_DECLS + +#ifdef GTK_COMPILATION +typedef struct _GdkWaylandPopup GdkWaylandPopup; +#else +typedef GdkPopup GdkWaylandPopup; +#endif + +#define GDK_TYPE_WAYLAND_POPUP (gdk_wayland_popup_get_type()) +#define GDK_WAYLAND_POPUP(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_WAYLAND_POPUP, GdkWaylandPopup)) +#define GDK_IS_WAYLAND_POPUP(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_WAYLAND_POPUP)) + +GDK_AVAILABLE_IN_ALL +GType gdk_wayland_popup_get_type (void); + +G_END_DECLS diff --git a/gdk/wayland/gdkwaylandsurface.h b/gdk/wayland/gdkwaylandsurface.h index 851a4d5607..7d9e0897b2 100644 --- a/gdk/wayland/gdkwaylandsurface.h +++ b/gdk/wayland/gdkwaylandsurface.h @@ -30,59 +30,20 @@ G_BEGIN_DECLS #ifdef GTK_COMPILATION typedef struct _GdkWaylandSurface GdkWaylandSurface; -typedef struct _GdkWaylandToplevel GdkWaylandToplevel; -typedef struct _GdkWaylandPopup GdkWaylandPopup; #else typedef GdkSurface GdkWaylandSurface; -typedef GdkToplevel GdkWaylandToplevel; -typedef GdkPopup GdkWaylandPopup; #endif #define GDK_TYPE_WAYLAND_SURFACE (gdk_wayland_surface_get_type()) #define GDK_WAYLAND_SURFACE(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_WAYLAND_SURFACE, GdkWaylandSurface)) #define GDK_IS_WAYLAND_SURFACE(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_WAYLAND_SURFACE)) -#define GDK_TYPE_WAYLAND_TOPLEVEL (gdk_wayland_toplevel_get_type()) -#define GDK_WAYLAND_TOPLEVEL(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_WAYLAND_TOPLEVEL, GdkWaylandToplevel)) -#define GDK_IS_WAYLAND_TOPLEVEL(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_WAYLAND_TOPLEVEL)) - -#define GDK_TYPE_WAYLAND_POPUP (gdk_wayland_popup_get_type()) -#define GDK_WAYLAND_POPUP(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_WAYLAND_POPUP, GdkWaylandPopup)) -#define GDK_IS_WAYLAND_POPUP(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_WAYLAND_POPUP)) - GDK_AVAILABLE_IN_ALL GType gdk_wayland_surface_get_type (void); -GDK_AVAILABLE_IN_ALL -GType gdk_wayland_toplevel_get_type (void); - -GDK_AVAILABLE_IN_ALL -GType gdk_wayland_popup_get_type (void); - GDK_AVAILABLE_IN_ALL struct wl_surface *gdk_wayland_surface_get_wl_surface (GdkSurface *surface); -typedef void (*GdkWaylandToplevelExported) (GdkToplevel *toplevel, - const char *handle, - gpointer user_data); - -GDK_AVAILABLE_IN_ALL -gboolean gdk_wayland_toplevel_export_handle (GdkToplevel *toplevel, - GdkWaylandToplevelExported callback, - gpointer user_data, - GDestroyNotify destroy_func); - -GDK_AVAILABLE_IN_ALL -void gdk_wayland_toplevel_unexport_handle (GdkToplevel *toplevel); - -GDK_AVAILABLE_IN_ALL -gboolean gdk_wayland_toplevel_set_transient_for_exported (GdkToplevel *toplevel, - const char *parent_handle_str); - -GDK_AVAILABLE_IN_ALL -void gdk_wayland_toplevel_set_application_id (GdkToplevel *toplevel, - const char *application_id); - G_END_DECLS #endif /* __GDK_WAYLAND_SURFACE_H__ */ diff --git a/gdk/wayland/gdkwaylandtoplevel.h b/gdk/wayland/gdkwaylandtoplevel.h new file mode 100644 index 0000000000..36410b3054 --- /dev/null +++ b/gdk/wayland/gdkwaylandtoplevel.h @@ -0,0 +1,66 @@ +/* GDK - The GIMP Drawing Kit + * Copyright (C) 2013 Jan Arne Petersen + * + * 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 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 . + */ + +#pragma once + +#if !defined (__GDKWAYLAND_H_INSIDE__) && !defined (GTK_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include + +#include + +G_BEGIN_DECLS + +#ifdef GTK_COMPILATION +typedef struct _GdkWaylandToplevel GdkWaylandToplevel; +#else +typedef GdkToplevel GdkWaylandToplevel; +#endif + +#define GDK_TYPE_WAYLAND_TOPLEVEL (gdk_wayland_toplevel_get_type()) +#define GDK_WAYLAND_TOPLEVEL(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_WAYLAND_TOPLEVEL, GdkWaylandToplevel)) +#define GDK_IS_WAYLAND_TOPLEVEL(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_WAYLAND_TOPLEVEL)) + +GDK_AVAILABLE_IN_ALL +GType gdk_wayland_toplevel_get_type (void); + + +typedef void (*GdkWaylandToplevelExported) (GdkToplevel *toplevel, + const char *handle, + gpointer user_data); + +GDK_AVAILABLE_IN_ALL +gboolean gdk_wayland_toplevel_export_handle (GdkToplevel *toplevel, + GdkWaylandToplevelExported callback, + gpointer user_data, + GDestroyNotify destroy_func); + +GDK_AVAILABLE_IN_ALL +void gdk_wayland_toplevel_unexport_handle (GdkToplevel *toplevel); + +GDK_AVAILABLE_IN_ALL +gboolean gdk_wayland_toplevel_set_transient_for_exported (GdkToplevel *toplevel, + const char *parent_handle_str); + +GDK_AVAILABLE_IN_ALL +void gdk_wayland_toplevel_set_application_id (GdkToplevel *toplevel, + const char *application_id); + +G_END_DECLS diff --git a/gdk/wayland/meson.build b/gdk/wayland/meson.build index 294e30ea20..f63f149230 100644 --- a/gdk/wayland/meson.build +++ b/gdk/wayland/meson.build @@ -25,8 +25,10 @@ gdk_wayland_public_headers = files([ 'gdkwaylanddisplay.h', 'gdkwaylandglcontext.h', 'gdkwaylandmonitor.h', + 'gdkwaylandpopup.h', 'gdkwaylandseat.h', 'gdkwaylandsurface.h', + 'gdkwaylandtoplevel.h', ]) install_headers(gdk_wayland_public_headers, 'gdkwayland.h', subdir: 'gtk-4.0/gdk/wayland/')