| /* GDK - The GIMP Drawing Kit |
| * Copyright (C) 2023 Red Hat, Inc. |
| * |
| * 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 <http://www.gnu.org/licenses/>. |
| */ |
| |
| /* Uninstalled header defining types and functions internal to GDK */ |
| |
| #pragma once |
| |
| #include "gdkenumtypes.h" |
| #include "gdkdihedralprivate.h" |
| #include "gdksurface.h" |
| #include <graphene.h> |
| |
| G_BEGIN_DECLS |
| |
| typedef struct _GdkSubsurface GdkSubsurface; |
| typedef struct _GdkSubsurfaceClass GdkSubsurfaceClass; |
| |
| #define GDK_TYPE_SUBSURFACE (gdk_subsurface_get_type ()) |
| #define GDK_SUBSURFACE(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_SUBSURFACE, GdkSubsurface)) |
| #define GDK_SUBSURFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_SUBSURFACE, GdkSubsurfaceClass)) |
| #define GDK_IS_SUBSURFACE(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_SUBSURFACE)) |
| #define GDK_SUBSURFACE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_SUBSURFACE, GdkSubsurfaceClass)) |
| |
| struct _GdkSubsurface |
| { |
| GObject parent_instance; |
| |
| GdkSurface *parent; |
| |
| int ref_count; |
| |
| gboolean above_parent; |
| GdkSubsurface *sibling_above; |
| GdkSubsurface *sibling_below; |
| }; |
| |
| struct _GdkSubsurfaceClass |
| { |
| GObjectClass parent_class; |
| |
| gboolean (* attach) (GdkSubsurface *subsurface, |
| GdkTexture *texture, |
| const graphene_rect_t *source, |
| const graphene_rect_t *dest, |
| GdkDihedral transform, |
| const graphene_rect_t *bg, |
| gboolean above, |
| GdkSubsurface *sibling); |
| void (* detach) (GdkSubsurface *subsurface); |
| GdkTexture * (* get_texture) (GdkSubsurface *subsurface); |
| void (* get_source_rect) (GdkSubsurface *subsurface, |
| graphene_rect_t *rect); |
| void (* get_texture_rect) (GdkSubsurface *subsurface, |
| graphene_rect_t *rect); |
| GdkDihedral |
| (* get_transform) (GdkSubsurface *subsurface); |
| gboolean (* get_background_rect) (GdkSubsurface *subsurface, |
| graphene_rect_t *rect); |
| }; |
| |
| GType gdk_subsurface_get_type (void) G_GNUC_CONST; |
| |
| GdkSurface * gdk_subsurface_get_parent (GdkSubsurface *subsurface); |
| |
| gboolean gdk_subsurface_attach (GdkSubsurface *subsurface, |
| GdkTexture *texture, |
| const graphene_rect_t *source, |
| const graphene_rect_t *dest, |
| GdkDihedral transform, |
| const graphene_rect_t *background, |
| gboolean above, |
| GdkSubsurface *sibling); |
| void gdk_subsurface_detach (GdkSubsurface *subsurface); |
| GdkTexture * gdk_subsurface_get_texture (GdkSubsurface *subsurface); |
| void gdk_subsurface_get_source_rect (GdkSubsurface *subsurface, |
| graphene_rect_t *rect); |
| void gdk_subsurface_get_texture_rect (GdkSubsurface *subsurface, |
| graphene_rect_t *rect); |
| gboolean gdk_subsurface_is_above_parent (GdkSubsurface *subsurface); |
| GdkSubsurface * gdk_subsurface_get_sibling (GdkSubsurface *subsurface, |
| gboolean above); |
| GdkDihedral |
| gdk_subsurface_get_transform (GdkSubsurface *subsurface); |
| gboolean gdk_subsurface_get_background_rect (GdkSubsurface *subsurface, |
| graphene_rect_t *rect); |
| void gdk_subsurface_get_bounds (GdkSubsurface *subsurface, |
| graphene_rect_t *bounds); |
| |
| G_END_DECLS |
| |