[gtk/wip/otte/for-master: 23/24] gdk: Split enums from types
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/wip/otte/for-master: 23/24] gdk: Split enums from types
- Date: Tue, 26 Oct 2021 19:04:04 +0000 (UTC)
commit d726ecdb5d1ece870585c7be89eb6355b2482544
Author: Benjamin Otte <otte redhat com>
Date: Mon Oct 25 02:14:18 2021 +0200
gdk: Split enums from types
Add gdkenums.h for enums and keep gdktypes.h for types.
Makes both files easier to read.
gdk/gdk.h | 1 +
gdk/gdkdevice.h | 1 +
gdk/gdkdevicetool.h | 3 +-
gdk/gdkdrag.h | 3 +-
gdk/gdkdrop.h | 1 +
gdk/gdkenums.h | 336 ++++++++++++++++++++++++++++++++++++++++++
gdk/gdkevents.h | 7 +-
gdk/gdkkeysprivate.h | 2 +
gdk/gdkmemoryformatprivate.h | 2 +-
gdk/gdkmemorytexture.h | 1 +
gdk/gdkpopuplayout.h | 3 +-
gdk/gdktextureprivate.h | 2 +
gdk/gdktypes.h | 300 +------------------------------------
gdk/gdkvulkancontextprivate.h | 1 +
gdk/meson.build | 1 +
15 files changed, 358 insertions(+), 306 deletions(-)
---
diff --git a/gdk/gdk.h b/gdk/gdk.h
index 8b6489cbf0..37bac5adc2 100644
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -47,6 +47,7 @@
#include <gdk/gdkdragsurface.h>
#include <gdk/gdkdrawcontext.h>
#include <gdk/gdkdrop.h>
+#include <gdk/gdkenums.h>
#include <gdk/gdkenumtypes.h>
#include <gdk/gdkevents.h>
#include <gdk/gdkframeclock.h>
diff --git a/gdk/gdkdevice.h b/gdk/gdkdevice.h
index 1a849a8ac4..cf329499a4 100644
--- a/gdk/gdkdevice.h
+++ b/gdk/gdkdevice.h
@@ -25,6 +25,7 @@
#include <gdk/gdkversionmacros.h>
#include <gdk/gdktypes.h>
#include <gdk/gdkdevicetool.h>
+#include <gdk/gdkenums.h>
G_BEGIN_DECLS
diff --git a/gdk/gdkdevicetool.h b/gdk/gdkdevicetool.h
index 1a6a90d756..b63f8a8d67 100644
--- a/gdk/gdkdevicetool.h
+++ b/gdk/gdkdevicetool.h
@@ -22,8 +22,9 @@
#error "Only <gdk/gdk.h> can be included directly."
#endif
-#include <gdk/gdkversionmacros.h>
+#include <gdk/gdkenums.h>
#include <gdk/gdktypes.h>
+#include <gdk/gdkversionmacros.h>
G_BEGIN_DECLS
diff --git a/gdk/gdkdrag.h b/gdk/gdkdrag.h
index fffff85d24..da1e7a3354 100644
--- a/gdk/gdkdrag.h
+++ b/gdk/gdkdrag.h
@@ -29,9 +29,10 @@
#error "Only <gdk/gdk.h> can be included directly."
#endif
-#include <gdk/gdktypes.h>
#include <gdk/gdkdevice.h>
+#include <gdk/gdkenums.h>
#include <gdk/gdkevents.h>
+#include <gdk/gdktypes.h>
G_BEGIN_DECLS
diff --git a/gdk/gdkdrop.h b/gdk/gdkdrop.h
index 0256842d65..0b57e04976 100644
--- a/gdk/gdkdrop.h
+++ b/gdk/gdkdrop.h
@@ -25,6 +25,7 @@
#error "Only <gdk/gdk.h> can be included directly."
#endif
+#include <gdk/gdkenums.h>
#include <gdk/gdktypes.h>
#include <gdk/gdkversionmacros.h>
diff --git a/gdk/gdkenums.h b/gdk/gdkenums.h
new file mode 100644
index 0000000000..11654a513f
--- /dev/null
+++ b/gdk/gdkenums.h
@@ -0,0 +1,336 @@
+/* GDK - The GIMP Drawing Kit
+ * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
+ *
+ * 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/>.
+ */
+
+/*
+ * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS
+ * file for a list of people on the GTK+ Team. See the ChangeLog
+ * files for a list of changes. These files are distributed with
+ * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
+ */
+
+#ifndef __GDK_ENUMS_H__
+#define __GDK_ENUMS_H__
+
+#if !defined (__GDK_H_INSIDE__) && !defined (GTK_COMPILATION)
+#error "Only <gdk/gdk.h> can be included directly."
+#endif
+
+#include <glib.h>
+
+G_BEGIN_DECLS
+
+/* Currently, these are the same values numerically as in the
+ * X protocol. If you change that, gdksurface-x11.c/gdk_surface_set_geometry_hints()
+ * will need fixing.
+ */
+/**
+ * GdkGravity:
+ * @GDK_GRAVITY_NORTH_WEST: the reference point is at the top left corner.
+ * @GDK_GRAVITY_NORTH: the reference point is in the middle of the top edge.
+ * @GDK_GRAVITY_NORTH_EAST: the reference point is at the top right corner.
+ * @GDK_GRAVITY_WEST: the reference point is at the middle of the left edge.
+ * @GDK_GRAVITY_CENTER: the reference point is at the center of the surface.
+ * @GDK_GRAVITY_EAST: the reference point is at the middle of the right edge.
+ * @GDK_GRAVITY_SOUTH_WEST: the reference point is at the lower left corner.
+ * @GDK_GRAVITY_SOUTH: the reference point is at the middle of the lower edge.
+ * @GDK_GRAVITY_SOUTH_EAST: the reference point is at the lower right corner.
+ * @GDK_GRAVITY_STATIC: the reference point is at the top left corner of the
+ * surface itself, ignoring window manager decorations.
+ *
+ * Defines the reference point of a surface and is used in `GdkPopupLayout`.
+ */
+typedef enum
+{
+ GDK_GRAVITY_NORTH_WEST = 1,
+ GDK_GRAVITY_NORTH,
+ GDK_GRAVITY_NORTH_EAST,
+ GDK_GRAVITY_WEST,
+ GDK_GRAVITY_CENTER,
+ GDK_GRAVITY_EAST,
+ GDK_GRAVITY_SOUTH_WEST,
+ GDK_GRAVITY_SOUTH,
+ GDK_GRAVITY_SOUTH_EAST,
+ GDK_GRAVITY_STATIC
+} GdkGravity;
+
+/* Types of modifiers.
+ */
+/**
+ * GdkModifierType:
+ * @GDK_SHIFT_MASK: the Shift key.
+ * @GDK_LOCK_MASK: a Lock key (depending on the modifier mapping of the
+ * X server this may either be CapsLock or ShiftLock).
+ * @GDK_CONTROL_MASK: the Control key.
+ * @GDK_ALT_MASK: the fourth modifier key (it depends on the modifier
+ * mapping of the X server which key is interpreted as this modifier, but
+ * normally it is the Alt key).
+ * @GDK_BUTTON1_MASK: the first mouse button.
+ * @GDK_BUTTON2_MASK: the second mouse button.
+ * @GDK_BUTTON3_MASK: the third mouse button.
+ * @GDK_BUTTON4_MASK: the fourth mouse button.
+ * @GDK_BUTTON5_MASK: the fifth mouse button.
+ * @GDK_SUPER_MASK: the Super modifier
+ * @GDK_HYPER_MASK: the Hyper modifier
+ * @GDK_META_MASK: the Meta modifier
+ *
+ * Flags to indicate the state of modifier keys and mouse buttons
+ * in events.
+ *
+ * Typical modifier keys are Shift, Control, Meta, Super, Hyper, Alt, Compose,
+ * Apple, CapsLock or ShiftLock.
+ *
+ * Note that GDK may add internal values to events which include values outside
+ * of this enumeration. Your code should preserve and ignore them. You can use
+ * %GDK_MODIFIER_MASK to remove all private values.
+ */
+typedef enum
+{
+ GDK_SHIFT_MASK = 1 << 0,
+ GDK_LOCK_MASK = 1 << 1,
+ GDK_CONTROL_MASK = 1 << 2,
+ GDK_ALT_MASK = 1 << 3,
+
+ GDK_BUTTON1_MASK = 1 << 8,
+ GDK_BUTTON2_MASK = 1 << 9,
+ GDK_BUTTON3_MASK = 1 << 10,
+ GDK_BUTTON4_MASK = 1 << 11,
+ GDK_BUTTON5_MASK = 1 << 12,
+
+ GDK_SUPER_MASK = 1 << 26,
+ GDK_HYPER_MASK = 1 << 27,
+ GDK_META_MASK = 1 << 28,
+} GdkModifierType;
+
+
+/**
+ * GDK_MODIFIER_MASK:
+ *
+ * A mask covering all entries in `GdkModifierType`.
+ */
+#define GDK_MODIFIER_MASK (GDK_SHIFT_MASK|GDK_LOCK_MASK|GDK_CONTROL_MASK| \
+ GDK_ALT_MASK|GDK_SUPER_MASK|GDK_HYPER_MASK|GDK_META_MASK| \
+ GDK_BUTTON1_MASK|GDK_BUTTON2_MASK|GDK_BUTTON3_MASK| \
+ GDK_BUTTON4_MASK|GDK_BUTTON5_MASK)
+
+
+/**
+ * GdkGLError:
+ * @GDK_GL_ERROR_NOT_AVAILABLE: OpenGL support is not available
+ * @GDK_GL_ERROR_UNSUPPORTED_FORMAT: The requested visual format is not supported
+ * @GDK_GL_ERROR_UNSUPPORTED_PROFILE: The requested profile is not supported
+ * @GDK_GL_ERROR_COMPILATION_FAILED: The shader compilation failed
+ * @GDK_GL_ERROR_LINK_FAILED: The shader linking failed
+ *
+ * Error enumeration for `GdkGLContext`.
+ */
+typedef enum {
+ GDK_GL_ERROR_NOT_AVAILABLE,
+ GDK_GL_ERROR_UNSUPPORTED_FORMAT,
+ GDK_GL_ERROR_UNSUPPORTED_PROFILE,
+ GDK_GL_ERROR_COMPILATION_FAILED,
+ GDK_GL_ERROR_LINK_FAILED
+} GdkGLError;
+
+/**
+ * GdkVulkanError:
+ * @GDK_VULKAN_ERROR_UNSUPPORTED: Vulkan is not supported on this backend or has not been
+ * compiled in.
+ * @GDK_VULKAN_ERROR_NOT_AVAILABLE: Vulkan support is not available on this Surface
+ *
+ * Error enumeration for `GdkVulkanContext`.
+ */
+typedef enum {
+ GDK_VULKAN_ERROR_UNSUPPORTED,
+ GDK_VULKAN_ERROR_NOT_AVAILABLE,
+} GdkVulkanError;
+
+/**
+ * GdkAxisUse:
+ * @GDK_AXIS_IGNORE: the axis is ignored.
+ * @GDK_AXIS_X: the axis is used as the x axis.
+ * @GDK_AXIS_Y: the axis is used as the y axis.
+ * @GDK_AXIS_DELTA_X: the axis is used as the scroll x delta
+ * @GDK_AXIS_DELTA_Y: the axis is used as the scroll y delta
+ * @GDK_AXIS_PRESSURE: the axis is used for pressure information.
+ * @GDK_AXIS_XTILT: the axis is used for x tilt information.
+ * @GDK_AXIS_YTILT: the axis is used for y tilt information.
+ * @GDK_AXIS_WHEEL: the axis is used for wheel information.
+ * @GDK_AXIS_DISTANCE: the axis is used for pen/tablet distance information
+ * @GDK_AXIS_ROTATION: the axis is used for pen rotation information
+ * @GDK_AXIS_SLIDER: the axis is used for pen slider information
+ * @GDK_AXIS_LAST: a constant equal to the numerically highest axis value.
+ *
+ * Defines how device axes are interpreted by GTK.
+ *
+ * Note that the X and Y axes are not really needed; pointer devices
+ * report their location via the x/y members of events regardless. Whether
+ * X and Y are present as axes depends on the GDK backend.
+ */
+typedef enum
+{
+ GDK_AXIS_IGNORE,
+ GDK_AXIS_X,
+ GDK_AXIS_Y,
+ GDK_AXIS_DELTA_X,
+ GDK_AXIS_DELTA_Y,
+ GDK_AXIS_PRESSURE,
+ GDK_AXIS_XTILT,
+ GDK_AXIS_YTILT,
+ GDK_AXIS_WHEEL,
+ GDK_AXIS_DISTANCE,
+ GDK_AXIS_ROTATION,
+ GDK_AXIS_SLIDER,
+ GDK_AXIS_LAST
+} GdkAxisUse;
+
+/**
+ * GdkAxisFlags:
+ * @GDK_AXIS_FLAG_X: X axis is present
+ * @GDK_AXIS_FLAG_Y: Y axis is present
+ * @GDK_AXIS_FLAG_DELTA_X: Scroll X delta axis is present
+ * @GDK_AXIS_FLAG_DELTA_Y: Scroll Y delta axis is present
+ * @GDK_AXIS_FLAG_PRESSURE: Pressure axis is present
+ * @GDK_AXIS_FLAG_XTILT: X tilt axis is present
+ * @GDK_AXIS_FLAG_YTILT: Y tilt axis is present
+ * @GDK_AXIS_FLAG_WHEEL: Wheel axis is present
+ * @GDK_AXIS_FLAG_DISTANCE: Distance axis is present
+ * @GDK_AXIS_FLAG_ROTATION: Z-axis rotation is present
+ * @GDK_AXIS_FLAG_SLIDER: Slider axis is present
+ *
+ * Flags describing the current capabilities of a device/tool.
+ */
+typedef enum
+{
+ GDK_AXIS_FLAG_X = 1 << GDK_AXIS_X,
+ GDK_AXIS_FLAG_Y = 1 << GDK_AXIS_Y,
+ GDK_AXIS_FLAG_DELTA_X = 1 << GDK_AXIS_DELTA_X,
+ GDK_AXIS_FLAG_DELTA_Y = 1 << GDK_AXIS_DELTA_Y,
+ GDK_AXIS_FLAG_PRESSURE = 1 << GDK_AXIS_PRESSURE,
+ GDK_AXIS_FLAG_XTILT = 1 << GDK_AXIS_XTILT,
+ GDK_AXIS_FLAG_YTILT = 1 << GDK_AXIS_YTILT,
+ GDK_AXIS_FLAG_WHEEL = 1 << GDK_AXIS_WHEEL,
+ GDK_AXIS_FLAG_DISTANCE = 1 << GDK_AXIS_DISTANCE,
+ GDK_AXIS_FLAG_ROTATION = 1 << GDK_AXIS_ROTATION,
+ GDK_AXIS_FLAG_SLIDER = 1 << GDK_AXIS_SLIDER,
+} GdkAxisFlags;
+
+/**
+ * GdkDragAction:
+ * @GDK_ACTION_COPY: Copy the data.
+ * @GDK_ACTION_MOVE: Move the data, i.e. first copy it, then delete
+ * it from the source using the DELETE target of the X selection protocol.
+ * @GDK_ACTION_LINK: Add a link to the data. Note that this is only
+ * useful if source and destination agree on what it means, and is not
+ * supported on all platforms.
+ * @GDK_ACTION_ASK: Ask the user what to do with the data.
+ *
+ * Used in `GdkDrop` and `GdkDrag` to indicate the actions that the
+ * destination can and should do with the dropped data.
+ */
+typedef enum
+{
+ GDK_ACTION_COPY = 1 << 0,
+ GDK_ACTION_MOVE = 1 << 1,
+ GDK_ACTION_LINK = 1 << 2,
+ GDK_ACTION_ASK = 1 << 3
+} GdkDragAction;
+
+/**
+ * GDK_ACTION_ALL:
+ *
+ * Defines all possible DND actions.
+ *
+ * This can be used in [method Gdk Drop.status] messages when any drop
+ * can be accepted or a more specific drop method is not yet known.
+ */
+#define GDK_ACTION_ALL (GDK_ACTION_COPY | GDK_ACTION_MOVE | GDK_ACTION_LINK)
+
+/**
+ * GdkMemoryFormat:
+ * @GDK_MEMORY_B8G8R8A8_PREMULTIPLIED: 4 bytes; for blue, green, red, alpha.
+ * The color values are premultiplied with the alpha value.
+ * @GDK_MEMORY_A8R8G8B8_PREMULTIPLIED: 4 bytes; for alpha, red, green, blue.
+ * The color values are premultiplied with the alpha value.
+ * @GDK_MEMORY_R8G8B8A8_PREMULTIPLIED: 4 bytes; for red, green, blue, alpha
+ * The color values are premultiplied with the alpha value.
+ * @GDK_MEMORY_B8G8R8A8: 4 bytes; for blue, green, red, alpha.
+ * @GDK_MEMORY_A8R8G8B8: 4 bytes; for alpha, red, green, blue.
+ * @GDK_MEMORY_R8G8B8A8: 4 bytes; for red, green, blue, alpha.
+ * @GDK_MEMORY_A8B8G8R8: 4 bytes; for alpha, blue, green, red.
+ * @GDK_MEMORY_R8G8B8: 3 bytes; for red, green, blue. The data is opaque.
+ * @GDK_MEMORY_B8G8R8: 3 bytes; for blue, green, red. The data is opaque.
+ * @GDK_MEMORY_R16G16B16: 3 guint16 values; for red, green, blue. Since: 4.6
+ * @GDK_MEMORY_R16G16B16A16_PREMULTIPLIED: 4 guint16 values; for red, green,
+ * blue, alpha. The color values are premultiplied with the alpha value.
+ * Since: 4.6
+ * @GDK_MEMORY_R16G16B16A16: 4 guint16 values; for red, green, blue, alpha.
+ * Since: 4.6
+ * @GDK_MEMORY_R16G16B16_FLOAT: 3 half-float values; for red, green, blue.
+ * The data is opaque. Since: 4.6
+ * @GDK_MEMORY_R16G16B16A16_FLOAT_PREMULTIPLIED: 4 half-float values; for
+ * red, green, blue and alpha. The color values are premultiplied with
+ * the alpha value. Since: 4.6
+ * @GDK_MEMORY_R16G16B16A16_FLOAT: 4 half-float values; for red, green,
+ * blue and alpha. Since: 4.6
+ * @GDK_MEMORY_B32G32R32_FLOAT: 3 float values; for blue, green, red.
+ * The data is opaque. Since: 4.6
+ * @GDK_MEMORY_R32G32B32A32_FLOAT_PREMULTIPLIED: 4 float values; for
+ * red, green, blue and alpha. The color values are premultiplied with
+ * the alpha value. Since: 4.6
+ * @GDK_MEMORY_R32G32B32A32_FLOAT: 4 float values; for red, green, blue and
+ * alpha. Since: 4.6
+ * @GDK_MEMORY_N_FORMATS: The number of formats. This value will change as
+ * more formats get added, so do not rely on its concrete integer.
+ *
+ * `GdkMemoryFormat` describes formats that image data can have in memory.
+ *
+ * It describes formats by listing the contents of the memory passed to it.
+ * So GDK_MEMORY_A8R8G8B8 will be 1 byte (8 bits) of alpha, followed by a
+ * byte each of red, green and blue. It is not endian-dependent, so
+ * CAIRO_FORMAT_ARGB32 is represented by different `GdkMemoryFormats`
+ * on architectures with different endiannesses.
+ *
+ * Its naming is modelled after
+ * [VkFormat](https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VkFormat)
+ * for details).
+ */
+typedef enum {
+ GDK_MEMORY_B8G8R8A8_PREMULTIPLIED,
+ GDK_MEMORY_A8R8G8B8_PREMULTIPLIED,
+ GDK_MEMORY_R8G8B8A8_PREMULTIPLIED,
+ GDK_MEMORY_B8G8R8A8,
+ GDK_MEMORY_A8R8G8B8,
+ GDK_MEMORY_R8G8B8A8,
+ GDK_MEMORY_A8B8G8R8,
+ GDK_MEMORY_R8G8B8,
+ GDK_MEMORY_B8G8R8,
+ GDK_MEMORY_R16G16B16,
+ GDK_MEMORY_R16G16B16A16_PREMULTIPLIED,
+ GDK_MEMORY_R16G16B16A16,
+ GDK_MEMORY_R16G16B16_FLOAT,
+ GDK_MEMORY_R16G16B16A16_FLOAT_PREMULTIPLIED,
+ GDK_MEMORY_R16G16B16A16_FLOAT,
+ GDK_MEMORY_R32G32B32_FLOAT,
+ GDK_MEMORY_R32G32B32A32_FLOAT_PREMULTIPLIED,
+ GDK_MEMORY_R32G32B32A32_FLOAT,
+
+ GDK_MEMORY_N_FORMATS
+} GdkMemoryFormat;
+
+G_END_DECLS
+
+#endif /* __GDK_ENUMS_H__ */
diff --git a/gdk/gdkevents.h b/gdk/gdkevents.h
index 0c2b403b59..748341e80c 100644
--- a/gdk/gdkevents.h
+++ b/gdk/gdkevents.h
@@ -29,11 +29,12 @@
#error "Only <gdk/gdk.h> can be included directly."
#endif
-#include <gdk/gdkversionmacros.h>
-#include <gdk/gdktypes.h>
-#include <gdk/gdkdrag.h>
#include <gdk/gdkdevice.h>
#include <gdk/gdkdevicetool.h>
+#include <gdk/gdkdrag.h>
+#include <gdk/gdkenums.h>
+#include <gdk/gdktypes.h>
+#include <gdk/gdkversionmacros.h>
G_BEGIN_DECLS
diff --git a/gdk/gdkkeysprivate.h b/gdk/gdkkeysprivate.h
index db05785678..cc9b17aa9a 100644
--- a/gdk/gdkkeysprivate.h
+++ b/gdk/gdkkeysprivate.h
@@ -20,6 +20,8 @@
#include "gdkkeys.h"
+#include "gdkenums.h"
+
G_BEGIN_DECLS
#define GDK_TYPE_KEYMAP (gdk_keymap_get_type ())
diff --git a/gdk/gdkmemoryformatprivate.h b/gdk/gdkmemoryformatprivate.h
index bd75192dfe..3618852f02 100644
--- a/gdk/gdkmemoryformatprivate.h
+++ b/gdk/gdkmemoryformatprivate.h
@@ -20,7 +20,7 @@
#ifndef __GDK_MEMORY_CONVERT_PRIVATE_H__
#define __GDK_MEMORY_CONVERT_PRIVATE_H__
-#include "gdktypes.h"
+#include "gdkenums.h"
G_BEGIN_DECLS
diff --git a/gdk/gdkmemorytexture.h b/gdk/gdkmemorytexture.h
index 8f2fb5299c..9a76c7be82 100644
--- a/gdk/gdkmemorytexture.h
+++ b/gdk/gdkmemorytexture.h
@@ -24,6 +24,7 @@
#error "Only <gdk/gdk.h> can be included directly."
#endif
+#include <gdk/gdkenums.h>
#include <gdk/gdktexture.h>
G_BEGIN_DECLS
diff --git a/gdk/gdkpopuplayout.h b/gdk/gdkpopuplayout.h
index 03e7095883..b2ad4ebb58 100644
--- a/gdk/gdkpopuplayout.h
+++ b/gdk/gdkpopuplayout.h
@@ -23,8 +23,9 @@
#error "Only <gdk/gdk.h> can be included directly."
#endif
-#include <gdk/gdkversionmacros.h>
+#include <gdk/gdkenums.h>
#include <gdk/gdktypes.h>
+#include <gdk/gdkversionmacros.h>
G_BEGIN_DECLS
diff --git a/gdk/gdktextureprivate.h b/gdk/gdktextureprivate.h
index d9579f4657..fd9f78053e 100644
--- a/gdk/gdktextureprivate.h
+++ b/gdk/gdktextureprivate.h
@@ -3,6 +3,8 @@
#include "gdktexture.h"
+#include "gdkenums.h"
+
G_BEGIN_DECLS
#define GDK_TEXTURE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_TEXTURE,
GdkTextureClass))
diff --git a/gdk/gdktypes.h b/gdk/gdktypes.h
index 1629c264a4..3cf195df09 100644
--- a/gdk/gdktypes.h
+++ b/gdk/gdktypes.h
@@ -94,304 +94,6 @@ typedef struct _GdkCairoContext GdkCairoContext;
typedef struct _GdkGLContext GdkGLContext;
typedef struct _GdkVulkanContext GdkVulkanContext;
-/* Currently, these are the same values numerically as in the
- * X protocol. If you change that, gdksurface-x11.c/gdk_surface_set_geometry_hints()
- * will need fixing.
- */
-/**
- * GdkGravity:
- * @GDK_GRAVITY_NORTH_WEST: the reference point is at the top left corner.
- * @GDK_GRAVITY_NORTH: the reference point is in the middle of the top edge.
- * @GDK_GRAVITY_NORTH_EAST: the reference point is at the top right corner.
- * @GDK_GRAVITY_WEST: the reference point is at the middle of the left edge.
- * @GDK_GRAVITY_CENTER: the reference point is at the center of the surface.
- * @GDK_GRAVITY_EAST: the reference point is at the middle of the right edge.
- * @GDK_GRAVITY_SOUTH_WEST: the reference point is at the lower left corner.
- * @GDK_GRAVITY_SOUTH: the reference point is at the middle of the lower edge.
- * @GDK_GRAVITY_SOUTH_EAST: the reference point is at the lower right corner.
- * @GDK_GRAVITY_STATIC: the reference point is at the top left corner of the
- * surface itself, ignoring window manager decorations.
- *
- * Defines the reference point of a surface and is used in `GdkPopupLayout`.
- */
-typedef enum
-{
- GDK_GRAVITY_NORTH_WEST = 1,
- GDK_GRAVITY_NORTH,
- GDK_GRAVITY_NORTH_EAST,
- GDK_GRAVITY_WEST,
- GDK_GRAVITY_CENTER,
- GDK_GRAVITY_EAST,
- GDK_GRAVITY_SOUTH_WEST,
- GDK_GRAVITY_SOUTH,
- GDK_GRAVITY_SOUTH_EAST,
- GDK_GRAVITY_STATIC
-} GdkGravity;
-
-/* Types of modifiers.
- */
-/**
- * GdkModifierType:
- * @GDK_SHIFT_MASK: the Shift key.
- * @GDK_LOCK_MASK: a Lock key (depending on the modifier mapping of the
- * X server this may either be CapsLock or ShiftLock).
- * @GDK_CONTROL_MASK: the Control key.
- * @GDK_ALT_MASK: the fourth modifier key (it depends on the modifier
- * mapping of the X server which key is interpreted as this modifier, but
- * normally it is the Alt key).
- * @GDK_BUTTON1_MASK: the first mouse button.
- * @GDK_BUTTON2_MASK: the second mouse button.
- * @GDK_BUTTON3_MASK: the third mouse button.
- * @GDK_BUTTON4_MASK: the fourth mouse button.
- * @GDK_BUTTON5_MASK: the fifth mouse button.
- * @GDK_SUPER_MASK: the Super modifier
- * @GDK_HYPER_MASK: the Hyper modifier
- * @GDK_META_MASK: the Meta modifier
- *
- * Flags to indicate the state of modifier keys and mouse buttons
- * in events.
- *
- * Typical modifier keys are Shift, Control, Meta, Super, Hyper, Alt, Compose,
- * Apple, CapsLock or ShiftLock.
- *
- * Note that GDK may add internal values to events which include values outside
- * of this enumeration. Your code should preserve and ignore them. You can use
- * %GDK_MODIFIER_MASK to remove all private values.
- */
-typedef enum
-{
- GDK_SHIFT_MASK = 1 << 0,
- GDK_LOCK_MASK = 1 << 1,
- GDK_CONTROL_MASK = 1 << 2,
- GDK_ALT_MASK = 1 << 3,
-
- GDK_BUTTON1_MASK = 1 << 8,
- GDK_BUTTON2_MASK = 1 << 9,
- GDK_BUTTON3_MASK = 1 << 10,
- GDK_BUTTON4_MASK = 1 << 11,
- GDK_BUTTON5_MASK = 1 << 12,
-
- GDK_SUPER_MASK = 1 << 26,
- GDK_HYPER_MASK = 1 << 27,
- GDK_META_MASK = 1 << 28,
-} GdkModifierType;
-
-
-/**
- * GDK_MODIFIER_MASK:
- *
- * A mask covering all entries in `GdkModifierType`.
- */
-#define GDK_MODIFIER_MASK (GDK_SHIFT_MASK|GDK_LOCK_MASK|GDK_CONTROL_MASK| \
- GDK_ALT_MASK|GDK_SUPER_MASK|GDK_HYPER_MASK|GDK_META_MASK| \
- GDK_BUTTON1_MASK|GDK_BUTTON2_MASK|GDK_BUTTON3_MASK| \
- GDK_BUTTON4_MASK|GDK_BUTTON5_MASK)
-
-
-/**
- * GdkGLError:
- * @GDK_GL_ERROR_NOT_AVAILABLE: OpenGL support is not available
- * @GDK_GL_ERROR_UNSUPPORTED_FORMAT: The requested visual format is not supported
- * @GDK_GL_ERROR_UNSUPPORTED_PROFILE: The requested profile is not supported
- * @GDK_GL_ERROR_COMPILATION_FAILED: The shader compilation failed
- * @GDK_GL_ERROR_LINK_FAILED: The shader linking failed
- *
- * Error enumeration for `GdkGLContext`.
- */
-typedef enum {
- GDK_GL_ERROR_NOT_AVAILABLE,
- GDK_GL_ERROR_UNSUPPORTED_FORMAT,
- GDK_GL_ERROR_UNSUPPORTED_PROFILE,
- GDK_GL_ERROR_COMPILATION_FAILED,
- GDK_GL_ERROR_LINK_FAILED
-} GdkGLError;
-
-/**
- * GdkVulkanError:
- * @GDK_VULKAN_ERROR_UNSUPPORTED: Vulkan is not supported on this backend or has not been
- * compiled in.
- * @GDK_VULKAN_ERROR_NOT_AVAILABLE: Vulkan support is not available on this Surface
- *
- * Error enumeration for `GdkVulkanContext`.
- */
-typedef enum {
- GDK_VULKAN_ERROR_UNSUPPORTED,
- GDK_VULKAN_ERROR_NOT_AVAILABLE,
-} GdkVulkanError;
-
-/**
- * GdkAxisUse:
- * @GDK_AXIS_IGNORE: the axis is ignored.
- * @GDK_AXIS_X: the axis is used as the x axis.
- * @GDK_AXIS_Y: the axis is used as the y axis.
- * @GDK_AXIS_DELTA_X: the axis is used as the scroll x delta
- * @GDK_AXIS_DELTA_Y: the axis is used as the scroll y delta
- * @GDK_AXIS_PRESSURE: the axis is used for pressure information.
- * @GDK_AXIS_XTILT: the axis is used for x tilt information.
- * @GDK_AXIS_YTILT: the axis is used for y tilt information.
- * @GDK_AXIS_WHEEL: the axis is used for wheel information.
- * @GDK_AXIS_DISTANCE: the axis is used for pen/tablet distance information
- * @GDK_AXIS_ROTATION: the axis is used for pen rotation information
- * @GDK_AXIS_SLIDER: the axis is used for pen slider information
- * @GDK_AXIS_LAST: a constant equal to the numerically highest axis value.
- *
- * Defines how device axes are interpreted by GTK.
- *
- * Note that the X and Y axes are not really needed; pointer devices
- * report their location via the x/y members of events regardless. Whether
- * X and Y are present as axes depends on the GDK backend.
- */
-typedef enum
-{
- GDK_AXIS_IGNORE,
- GDK_AXIS_X,
- GDK_AXIS_Y,
- GDK_AXIS_DELTA_X,
- GDK_AXIS_DELTA_Y,
- GDK_AXIS_PRESSURE,
- GDK_AXIS_XTILT,
- GDK_AXIS_YTILT,
- GDK_AXIS_WHEEL,
- GDK_AXIS_DISTANCE,
- GDK_AXIS_ROTATION,
- GDK_AXIS_SLIDER,
- GDK_AXIS_LAST
-} GdkAxisUse;
-
-/**
- * GdkAxisFlags:
- * @GDK_AXIS_FLAG_X: X axis is present
- * @GDK_AXIS_FLAG_Y: Y axis is present
- * @GDK_AXIS_FLAG_DELTA_X: Scroll X delta axis is present
- * @GDK_AXIS_FLAG_DELTA_Y: Scroll Y delta axis is present
- * @GDK_AXIS_FLAG_PRESSURE: Pressure axis is present
- * @GDK_AXIS_FLAG_XTILT: X tilt axis is present
- * @GDK_AXIS_FLAG_YTILT: Y tilt axis is present
- * @GDK_AXIS_FLAG_WHEEL: Wheel axis is present
- * @GDK_AXIS_FLAG_DISTANCE: Distance axis is present
- * @GDK_AXIS_FLAG_ROTATION: Z-axis rotation is present
- * @GDK_AXIS_FLAG_SLIDER: Slider axis is present
- *
- * Flags describing the current capabilities of a device/tool.
- */
-typedef enum
-{
- GDK_AXIS_FLAG_X = 1 << GDK_AXIS_X,
- GDK_AXIS_FLAG_Y = 1 << GDK_AXIS_Y,
- GDK_AXIS_FLAG_DELTA_X = 1 << GDK_AXIS_DELTA_X,
- GDK_AXIS_FLAG_DELTA_Y = 1 << GDK_AXIS_DELTA_Y,
- GDK_AXIS_FLAG_PRESSURE = 1 << GDK_AXIS_PRESSURE,
- GDK_AXIS_FLAG_XTILT = 1 << GDK_AXIS_XTILT,
- GDK_AXIS_FLAG_YTILT = 1 << GDK_AXIS_YTILT,
- GDK_AXIS_FLAG_WHEEL = 1 << GDK_AXIS_WHEEL,
- GDK_AXIS_FLAG_DISTANCE = 1 << GDK_AXIS_DISTANCE,
- GDK_AXIS_FLAG_ROTATION = 1 << GDK_AXIS_ROTATION,
- GDK_AXIS_FLAG_SLIDER = 1 << GDK_AXIS_SLIDER,
-} GdkAxisFlags;
-
-/**
- * GdkDragAction:
- * @GDK_ACTION_COPY: Copy the data.
- * @GDK_ACTION_MOVE: Move the data, i.e. first copy it, then delete
- * it from the source using the DELETE target of the X selection protocol.
- * @GDK_ACTION_LINK: Add a link to the data. Note that this is only
- * useful if source and destination agree on what it means, and is not
- * supported on all platforms.
- * @GDK_ACTION_ASK: Ask the user what to do with the data.
- *
- * Used in `GdkDrop` and `GdkDrag` to indicate the actions that the
- * destination can and should do with the dropped data.
- */
-typedef enum
-{
- GDK_ACTION_COPY = 1 << 0,
- GDK_ACTION_MOVE = 1 << 1,
- GDK_ACTION_LINK = 1 << 2,
- GDK_ACTION_ASK = 1 << 3
-} GdkDragAction;
-
-/**
- * GDK_ACTION_ALL:
- *
- * Defines all possible DND actions.
- *
- * This can be used in [method Gdk Drop.status] messages when any drop
- * can be accepted or a more specific drop method is not yet known.
- */
-#define GDK_ACTION_ALL (GDK_ACTION_COPY | GDK_ACTION_MOVE | GDK_ACTION_LINK)
-
-/**
- * GdkMemoryFormat:
- * @GDK_MEMORY_B8G8R8A8_PREMULTIPLIED: 4 bytes; for blue, green, red, alpha.
- * The color values are premultiplied with the alpha value.
- * @GDK_MEMORY_A8R8G8B8_PREMULTIPLIED: 4 bytes; for alpha, red, green, blue.
- * The color values are premultiplied with the alpha value.
- * @GDK_MEMORY_R8G8B8A8_PREMULTIPLIED: 4 bytes; for red, green, blue, alpha
- * The color values are premultiplied with the alpha value.
- * @GDK_MEMORY_B8G8R8A8: 4 bytes; for blue, green, red, alpha.
- * @GDK_MEMORY_A8R8G8B8: 4 bytes; for alpha, red, green, blue.
- * @GDK_MEMORY_R8G8B8A8: 4 bytes; for red, green, blue, alpha.
- * @GDK_MEMORY_A8B8G8R8: 4 bytes; for alpha, blue, green, red.
- * @GDK_MEMORY_R8G8B8: 3 bytes; for red, green, blue. The data is opaque.
- * @GDK_MEMORY_B8G8R8: 3 bytes; for blue, green, red. The data is opaque.
- * @GDK_MEMORY_R16G16B16: 3 guint16 values; for red, green, blue. Since: 4.6
- * @GDK_MEMORY_R16G16B16A16_PREMULTIPLIED: 4 guint16 values; for red, green,
- * blue, alpha. The color values are premultiplied with the alpha value.
- * Since: 4.6
- * @GDK_MEMORY_R16G16B16A16: 4 guint16 values; for red, green, blue, alpha.
- * Since: 4.6
- * @GDK_MEMORY_R16G16B16_FLOAT: 3 half-float values; for red, green, blue.
- * The data is opaque. Since: 4.6
- * @GDK_MEMORY_R16G16B16A16_FLOAT_PREMULTIPLIED: 4 half-float values; for
- * red, green, blue and alpha. The color values are premultiplied with
- * the alpha value. Since: 4.6
- * @GDK_MEMORY_R16G16B16A16_FLOAT: 4 half-float values; for red, green,
- * blue and alpha. Since: 4.6
- * @GDK_MEMORY_B32G32R32_FLOAT: 3 float values; for blue, green, red.
- * The data is opaque. Since: 4.6
- * @GDK_MEMORY_R32G32B32A32_FLOAT_PREMULTIPLIED: 4 float values; for
- * red, green, blue and alpha. The color values are premultiplied with
- * the alpha value. Since: 4.6
- * @GDK_MEMORY_R32G32B32A32_FLOAT: 4 float values; for red, green, blue and
- * alpha. Since: 4.6
- * @GDK_MEMORY_N_FORMATS: The number of formats. This value will change as
- * more formats get added, so do not rely on its concrete integer.
- *
- * `GdkMemoryFormat` describes formats that image data can have in memory.
- *
- * It describes formats by listing the contents of the memory passed to it.
- * So GDK_MEMORY_A8R8G8B8 will be 1 byte (8 bits) of alpha, followed by a
- * byte each of red, green and blue. It is not endian-dependent, so
- * CAIRO_FORMAT_ARGB32 is represented by different `GdkMemoryFormats`
- * on architectures with different endiannesses.
- *
- * Its naming is modelled after
- * [VkFormat](https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VkFormat)
- * for details).
- */
-typedef enum {
- GDK_MEMORY_B8G8R8A8_PREMULTIPLIED,
- GDK_MEMORY_A8R8G8B8_PREMULTIPLIED,
- GDK_MEMORY_R8G8B8A8_PREMULTIPLIED,
- GDK_MEMORY_B8G8R8A8,
- GDK_MEMORY_A8R8G8B8,
- GDK_MEMORY_R8G8B8A8,
- GDK_MEMORY_A8B8G8R8,
- GDK_MEMORY_R8G8B8,
- GDK_MEMORY_B8G8R8,
- GDK_MEMORY_R16G16B16,
- GDK_MEMORY_R16G16B16A16_PREMULTIPLIED,
- GDK_MEMORY_R16G16B16A16,
- GDK_MEMORY_R16G16B16_FLOAT,
- GDK_MEMORY_R16G16B16A16_FLOAT_PREMULTIPLIED,
- GDK_MEMORY_R16G16B16A16_FLOAT,
- GDK_MEMORY_R32G32B32_FLOAT,
- GDK_MEMORY_R32G32B32A32_FLOAT_PREMULTIPLIED,
- GDK_MEMORY_R32G32B32A32_FLOAT,
-
- GDK_MEMORY_N_FORMATS
-} GdkMemoryFormat;
-
/*
* GDK_DECLARE_INTERNAL_TYPE:
* @ModuleObjName: The name of the new type, in camel case (like GtkWidget)
@@ -457,6 +159,6 @@ struct _GdkKeymapKey
int level;
};
-
G_END_DECLS
+#endif /* __GDK_TYPES_H__ */
diff --git a/gdk/gdkvulkancontextprivate.h b/gdk/gdkvulkancontextprivate.h
index 45149789fc..4a863d43f7 100644
--- a/gdk/gdkvulkancontextprivate.h
+++ b/gdk/gdkvulkancontextprivate.h
@@ -25,6 +25,7 @@
#include "gdkdebug.h"
#include "gdkdrawcontextprivate.h"
+#include "gdkenums.h"
#ifdef GDK_RENDERING_VULKAN
#include <vulkan/vulkan.h>
diff --git a/gdk/meson.build b/gdk/meson.build
index 0756f7667c..f119fadf9d 100644
--- a/gdk/meson.build
+++ b/gdk/meson.build
@@ -78,6 +78,7 @@ gdk_public_headers = files([
'gdkdrag.h',
'gdkdrawcontext.h',
'gdkdrop.h',
+ 'gdkenums.h',
'gdkevents.h',
'gdkframeclock.h',
'gdkframetimings.h',
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]