gtkmm: gdkmm Enums and Flags

gtkmm 4.23.2

Enumerations | Functions
gdkmm Enums and Flags

## Enumerations
enum class | Gdk::CicpParams::Range { Gdk::CicpParams::Range::NARROW , Gdk::CicpParams::Range::FULL }
| The values of this enumeration describe whether image data uses the full range of 8-bit values. More...
enum class | Gdk::InputSource { Gdk::InputSource::MOUSE , Gdk::InputSource::PEN , Gdk::InputSource::KEYBOARD , Gdk::InputSource::TOUCHSCREEN , Gdk::InputSource::TOUCHPAD , Gdk::InputSource::TRACKPOINT , Gdk::InputSource::TABLET_PAD }
| An enumeration describing the type of an input device in general terms. More...
enum class | Gdk::DevicePad::Feature { Gdk::DevicePad::Feature::BUTTON , Gdk::DevicePad::Feature::RING , Gdk::DevicePad::Feature::STRIP }
| A pad feature. More...
enum class | Gdk::DeviceTool::Type { Gdk::DeviceTool::Type::UNKNOWN , Gdk::DeviceTool::Type::PEN , Gdk::DeviceTool::Type::ERASER , Gdk::DeviceTool::Type::BRUSH , Gdk::DeviceTool::Type::PENCIL , Gdk::DeviceTool::Type::AIRBRUSH , Gdk::DeviceTool::Type::MOUSE , Gdk::DeviceTool::Type::LENS }
| Indicates the specific type of tool being used being a tablet. More...
enum class | Gdk::DragCancelReason { Gdk::DragCancelReason::NO_TARGET , Gdk::DragCancelReason::USER_CANCELLED , Gdk::DragCancelReason::ERROR }
| Used in Gdk::Drag to the reason of a cancelled DND operation. More...
enum class | Gdk::AxisFlags { Gdk::AxisFlags::X = 1 << 1 , Gdk::AxisFlags::Y = 1 << 2 , Gdk::AxisFlags::DELTA_X = 1 << 3 , Gdk::AxisFlags::DELTA_Y = 1 << 4 , Gdk::AxisFlags::PRESSURE = 1 << 5 , Gdk::AxisFlags::XTILT = 1 << 6 , Gdk::AxisFlags::YTILT = 1 << 7 , Gdk::AxisFlags::WHEEL = 1 << 8 , Gdk::AxisFlags::DISTANCE = 1 << 9 , Gdk::AxisFlags::ROTATION = 1 << 10 , Gdk::AxisFlags::SLIDER = 1 << 11 }
| Flags describing the current capabilities of a device/tool. More...
enum class | Gdk::AxisUse { Gdk::AxisUse::IGNORE , Gdk::AxisUse::X , Gdk::AxisUse::Y , Gdk::AxisUse::DELTA_X , Gdk::AxisUse::DELTA_Y , Gdk::AxisUse::PRESSURE , Gdk::AxisUse::XTILT , Gdk::AxisUse::YTILT , Gdk::AxisUse::WHEEL , Gdk::AxisUse::DISTANCE , Gdk::AxisUse::ROTATION , Gdk::AxisUse::SLIDER , Gdk::AxisUse::LAST }
| Defines how device axes are interpreted by GTK. More...
enum class | Gdk::CrossingMode { Gdk::CrossingMode::NORMAL , Gdk::CrossingMode::GRAB , Gdk::CrossingMode::UNGRAB , Gdk::CrossingMode::GTK_GRAB , Gdk::CrossingMode::GTK_UNGRAB , Gdk::CrossingMode::STATE_CHANGED , Gdk::CrossingMode::TOUCH_BEGIN , Gdk::CrossingMode::TOUCH_END , Gdk::CrossingMode::DEVICE_SWITCH }
| Specifies the crossing mode for enter and leave events. More...
enum class | Gdk::DragAction { Gdk::DragAction::NONE = 0x0 , Gdk::DragAction::COPY = 1 << 0 , Gdk::DragAction::MOVE = 1 << 1 , Gdk::DragAction::LINK = 1 << 2 , Gdk::DragAction::ASK = 1 << 3 }
| Used in Gdk::Drop and Gdk::Drag to indicate the actions that the destination can and should do with the dropped data. More...
enum class | Gdk::FrameResult { Gdk::FrameResult::PREPARING , Gdk::FrameResult::SKIPPED , Gdk::FrameResult::EMPTY , Gdk::FrameResult::SUBMITTED , Gdk::FrameResult::OUTSTANDING , Gdk::FrameResult::DISCARDED , Gdk::FrameResult::PRESENTED }
| An enumeration describing the process of rendering a frame. More...
enum class | Gdk::Gravity { 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 }
| Defines the reference point of a surface and is used in Gdk::PopupLayout. More...
enum class | Gdk::MemoryFormat { Gdk::MemoryFormat::B8G8R8A8_PREMULTIPLIED , Gdk::MemoryFormat::A8R8G8B8_PREMULTIPLIED , Gdk::MemoryFormat::R8G8B8A8_PREMULTIPLIED , Gdk::MemoryFormat::B8G8R8A8 , Gdk::MemoryFormat::A8R8G8B8 , Gdk::MemoryFormat::R8G8B8A8 , Gdk::MemoryFormat::A8B8G8R8 , Gdk::MemoryFormat::R8G8B8 , Gdk::MemoryFormat::B8G8R8 , Gdk::MemoryFormat::R16G16B16 , Gdk::MemoryFormat::R16G16B16A16_PREMULTIPLIED , Gdk::MemoryFormat::R16G16B16A16 , Gdk::MemoryFormat::R16G16B16_FLOAT , Gdk::MemoryFormat::R16G16B16A16_FLOAT_PREMULTIPLIED , Gdk::MemoryFormat::R16G16B16A16_FLOAT , Gdk::MemoryFormat::R32G32B32_FLOAT , Gdk::MemoryFormat::R32G32B32A32_FLOAT_PREMULTIPLIED , Gdk::MemoryFormat::R32G32B32A32_FLOAT , Gdk::MemoryFormat::G8A8_PREMULTIPLIED , Gdk::MemoryFormat::G8A8 , Gdk::MemoryFormat::G8 , Gdk::MemoryFormat::G16A16_PREMULTIPLIED , Gdk::MemoryFormat::G16A16 , Gdk::MemoryFormat::G16 , Gdk::MemoryFormat::A8 , Gdk::MemoryFormat::A16 , Gdk::MemoryFormat::A16_FLOAT , Gdk::MemoryFormat::A32_FLOAT , Gdk::MemoryFormat::A8B8G8R8_PREMULTIPLIED , Gdk::MemoryFormat::B8G8R8X8 , Gdk::MemoryFormat::X8R8G8B8 , Gdk::MemoryFormat::R8G8B8X8 , Gdk::MemoryFormat::X8B8G8R8 , Gdk::MemoryFormat::G8_B8R8_420 , Gdk::MemoryFormat::G8_R8B8_420 , Gdk::MemoryFormat::G8_B8R8_422 , Gdk::MemoryFormat::G8_R8B8_422 , Gdk::MemoryFormat::G8_B8R8_444 , Gdk::MemoryFormat::G8_R8B8_444 , Gdk::MemoryFormat::G10X6_B10X6R10X6_420 , Gdk::MemoryFormat::G12X4_B12X4R12X4_420 , Gdk::MemoryFormat::G16_B16R16_420 , Gdk::MemoryFormat::G8_B8_R8_410 , Gdk::MemoryFormat::G8_R8_B8_410 , Gdk::MemoryFormat::G8_B8_R8_411 , Gdk::MemoryFormat::G8_R8_B8_411 , Gdk::MemoryFormat::G8_B8_R8_420 , Gdk::MemoryFormat::G8_R8_B8_420 , Gdk::MemoryFormat::G8_B8_R8_422 , Gdk::MemoryFormat::G8_R8_B8_422 , Gdk::MemoryFormat::G8_B8_R8_444 , Gdk::MemoryFormat::G8_R8_B8_444 , Gdk::MemoryFormat::G8B8G8R8_422 , Gdk::MemoryFormat::G8R8G8B8_422 , Gdk::MemoryFormat::R8G8B8G8_422 , Gdk::MemoryFormat::B8G8R8G8_422 , Gdk::MemoryFormat::X6G10_X6B10_X6R10_420 , Gdk::MemoryFormat::X6G10_X6B10_X6R10_422 , Gdk::MemoryFormat::X6G10_X6B10_X6R10_444 , Gdk::MemoryFormat::X4G12_X4B12_X4R12_420 , Gdk::MemoryFormat::X4G12_X4B12_X4R12_422 , Gdk::MemoryFormat::X4G12_X4B12_X4R12_444 , Gdk::MemoryFormat::G16_B16_R16_420 , Gdk::MemoryFormat::G16_B16_R16_422 , Gdk::MemoryFormat::G16_B16_R16_444 , Gdk::MemoryFormat::ARGB2101010_PREMULTIPLIED , Gdk::MemoryFormat::ARGB2101010 , Gdk::MemoryFormat::XRGB2101010 , Gdk::MemoryFormat::ABGR2101010_PREMULTIPLIED , Gdk::MemoryFormat::ABGR2101010 , Gdk::MemoryFormat::XBGR2101010 , Gdk::MemoryFormat::N_FORMATS }
| Describes formats that image data can have in memory. More...
enum class | Gdk::ModifierType { Gdk::ModifierType::NO_MODIFIER_MASK = 0x0 , Gdk::ModifierType::SHIFT_MASK = 1 << 0 , Gdk::ModifierType::LOCK_MASK = 1 << 1 , Gdk::ModifierType::CONTROL_MASK = 1 << 2 , Gdk::ModifierType::ALT_MASK = 1 << 3 , Gdk::ModifierType::BUTTON1_MASK = 1 << 8 , Gdk::ModifierType::BUTTON2_MASK = 1 << 9 , Gdk::ModifierType::BUTTON3_MASK = 1 << 10 , Gdk::ModifierType::BUTTON4_MASK = 1 << 11 , Gdk::ModifierType::BUTTON5_MASK = 1 << 12 , Gdk::ModifierType::SUPER_MASK = 1 << 26 , Gdk::ModifierType::HYPER_MASK = 1 << 27 , Gdk::ModifierType::META_MASK = 1 << 28 }
| Flags to indicate the state of modifier keys and mouse buttons in events. More...
enum class | Gdk::NotifyType { Gdk::NotifyType::ANCESTOR , Gdk::NotifyType::VIRTUAL , Gdk::NotifyType::INFERIOR , Gdk::NotifyType::NONLINEAR , Gdk::NotifyType::NONLINEAR_VIRTUAL , Gdk::NotifyType::UNKNOWN }
| Specifies the kind of crossing for enter and leave events. More...
enum class | Gdk::ScrollDirection { Gdk::ScrollDirection::UP , Gdk::ScrollDirection::DOWN , Gdk::ScrollDirection::LEFT , Gdk::ScrollDirection::RIGHT , Gdk::ScrollDirection::SMOOTH }
| Specifies the direction for scroll events. More...
enum class | Gdk::TouchpadGesturePhase { Gdk::TouchpadGesturePhase::BEGIN , Gdk::TouchpadGesturePhase::UPDATE , Gdk::TouchpadGesturePhase::END , Gdk::TouchpadGesturePhase::CANCEL }
| Specifies the current state of a touchpad gesture. More...
enum class | Gdk::ScrollUnit { Gdk::ScrollUnit::WHEEL , Gdk::ScrollUnit::SURFACE }
| Specifies the unit of scroll deltas. More...
enum class | Gdk::KeyMatch { Gdk::KeyMatch::NONE , Gdk::KeyMatch::PARTIAL , Gdk::KeyMatch::EXACT }
| Describes how well an event matches a given keyval and modifiers. More...
enum class | Gdk::ScrollRelativeDirection { Gdk::ScrollRelativeDirection::IDENTICAL , Gdk::ScrollRelativeDirection::INVERTED , Gdk::ScrollRelativeDirection::UNKNOWN }
| Used in scroll events, to announce the direction relative to physical motion. More...
enum class | Gdk::Event::Type { Gdk::Event::Type::DELETE , Gdk::Event::Type::MOTION_NOTIFY , Gdk::Event::Type::BUTTON_PRESS , Gdk::Event::Type::BUTTON_RELEASE , Gdk::Event::Type::KEY_PRESS , Gdk::Event::Type::KEY_RELEASE , Gdk::Event::Type::ENTER_NOTIFY , Gdk::Event::Type::LEAVE_NOTIFY , Gdk::Event::Type::FOCUS_CHANGE , Gdk::Event::Type::PROXIMITY_IN , Gdk::Event::Type::PROXIMITY_OUT , Gdk::Event::Type::DRAG_ENTER , Gdk::Event::Type::DRAG_LEAVE , Gdk::Event::Type::DRAG_MOTION , Gdk::Event::Type::DROP_START , Gdk::Event::Type::SCROLL , Gdk::Event::Type::GRAB_BROKEN , Gdk::Event::Type::TOUCH_BEGIN , Gdk::Event::Type::TOUCH_UPDATE , Gdk::Event::Type::TOUCH_END , Gdk::Event::Type::TOUCH_CANCEL , Gdk::Event::Type::TOUCHPAD_SWIPE , Gdk::Event::Type::TOUCHPAD_PINCH , Gdk::Event::Type::PAD_BUTTON_PRESS , Gdk::Event::Type::PAD_BUTTON_RELEASE , Gdk::Event::Type::PAD_RING , Gdk::Event::Type::PAD_STRIP , Gdk::Event::Type::PAD_GROUP_MODE , Gdk::Event::Type::TOUCHPAD_HOLD , Gdk::Event::Type::PAD_DIAL , Gdk::Event::Type::EVENT_LAST }
| Specifies the type of the event. More...
enum class | Gdk::FrameClock::Phase { Gdk::FrameClock::Phase::NONE = 0x0 , Gdk::FrameClock::Phase::FLUSH_EVENTS = 1 << 0 , Gdk::FrameClock::Phase::BEFORE_PAINT = 1 << 1 , Gdk::FrameClock::Phase::UPDATE = 1 << 2 , Gdk::FrameClock::Phase::LAYOUT = 1 << 3 , Gdk::FrameClock::Phase::PAINT = 1 << 4 , Gdk::FrameClock::Phase::RESUME_EVENTS = 1 << 5 , Gdk::FrameClock::Phase::AFTER_PAINT = 1 << 6 }
| Used to represent the different paint clock phases that can be requested. More...
enum class | Gdk::GLApi { Gdk::GLApi::GL = 1 << 0 , Gdk::GLApi::GLES = 1 << 1 }
| The list of the different APIs that GdkGLContext can potentially support. More...
enum class | Gdk::GLAPI { Gdk::GLAPI::GL = 1 << 0 , Gdk::GLAPI::GLES = 1 << 1 }
| The list of the different APIs that GdkGLContext can potentially support. More...
enum class | Gdk::MemoryTexture::Format { Gdk::MemoryTexture::Format::B8G8R8A8_PREMULTIPLIED , Gdk::MemoryTexture::Format::A8R8G8B8_PREMULTIPLIED , Gdk::MemoryTexture::Format::R8G8B8A8_PREMULTIPLIED , Gdk::MemoryTexture::Format::B8G8R8A8 , Gdk::MemoryTexture::Format::A8R8G8B8 , Gdk::MemoryTexture::Format::R8G8B8A8 , Gdk::MemoryTexture::Format::A8B8G8R8 , Gdk::MemoryTexture::Format::R8G8B8 , Gdk::MemoryTexture::Format::B8G8R8 , Gdk::MemoryTexture::Format::R16G16B16 , Gdk::MemoryTexture::Format::R16G16B16A16_PREMULTIPLIED , Gdk::MemoryTexture::Format::R16G16B16A16 , Gdk::MemoryTexture::Format::R16G16B16_FLOAT , Gdk::MemoryTexture::Format::R16G16B16A16_FLOAT_PREMULTIPLIED , Gdk::MemoryTexture::Format::R16G16B16A16_FLOAT , Gdk::MemoryTexture::Format::R32G32B32_FLOAT , Gdk::MemoryTexture::Format::R32G32B32A32_FLOAT_PREMULTIPLIED , Gdk::MemoryTexture::Format::R32G32B32A32_FLOAT , Gdk::MemoryTexture::Format::G8A8_PREMULTIPLIED , Gdk::MemoryTexture::Format::G8A8 , Gdk::MemoryTexture::Format::G8 , Gdk::MemoryTexture::Format::G16A16_PREMULTIPLIED , Gdk::MemoryTexture::Format::G16A16 , Gdk::MemoryTexture::Format::G16 , Gdk::MemoryTexture::Format::A8 , Gdk::MemoryTexture::Format::A16 , Gdk::MemoryTexture::Format::A16_FLOAT , Gdk::MemoryTexture::Format::A32_FLOAT , Gdk::MemoryTexture::Format::A8B8G8R8_PREMULTIPLIED , Gdk::MemoryTexture::Format::B8G8R8X8 , Gdk::MemoryTexture::Format::X8R8G8B8 , Gdk::MemoryTexture::Format::R8G8B8X8 , Gdk::MemoryTexture::Format::X8B8G8R8 , Gdk::MemoryTexture::Format::G8_B8R8_420 , Gdk::MemoryTexture::Format::G8_R8B8_420 , Gdk::MemoryTexture::Format::G8_B8R8_422 , Gdk::MemoryTexture::Format::G8_R8B8_422 , Gdk::MemoryTexture::Format::G8_B8R8_444 , Gdk::MemoryTexture::Format::G8_R8B8_444 , Gdk::MemoryTexture::Format::G10X6_B10X6R10X6_420 , Gdk::MemoryTexture::Format::G12X4_B12X4R12X4_420 , Gdk::MemoryTexture::Format::G16_B16R16_420 , Gdk::MemoryTexture::Format::G8_B8_R8_410 , Gdk::MemoryTexture::Format::G8_R8_B8_410 , Gdk::MemoryTexture::Format::G8_B8_R8_411 , Gdk::MemoryTexture::Format::G8_R8_B8_411 , Gdk::MemoryTexture::Format::G8_B8_R8_420 , Gdk::MemoryTexture::Format::G8_R8_B8_420 , Gdk::MemoryTexture::Format::G8_B8_R8_422 , Gdk::MemoryTexture::Format::G8_R8_B8_422 , Gdk::MemoryTexture::Format::G8_B8_R8_444 , Gdk::MemoryTexture::Format::G8_R8_B8_444 , Gdk::MemoryTexture::Format::G8B8G8R8_422 , Gdk::MemoryTexture::Format::G8R8G8B8_422 , Gdk::MemoryTexture::Format::R8G8B8G8_422 , Gdk::MemoryTexture::Format::B8G8R8G8_422 , Gdk::MemoryTexture::Format::X6G10_X6B10_X6R10_420 , Gdk::MemoryTexture::Format::X6G10_X6B10_X6R10_422 , Gdk::MemoryTexture::Format::X6G10_X6B10_X6R10_444 , Gdk::MemoryTexture::Format::X4G12_X4B12_X4R12_420 , Gdk::MemoryTexture::Format::X4G12_X4B12_X4R12_422 , Gdk::MemoryTexture::Format::X4G12_X4B12_X4R12_444 , Gdk::MemoryTexture::Format::G16_B16_R16_420 , Gdk::MemoryTexture::Format::G16_B16_R16_422 , Gdk::MemoryTexture::Format::G16_B16_R16_444 , Gdk::MemoryTexture::Format::ARGB2101010_PREMULTIPLIED , Gdk::MemoryTexture::Format::ARGB2101010 , Gdk::MemoryTexture::Format::XRGB2101010 , Gdk::MemoryTexture::Format::ABGR2101010_PREMULTIPLIED , Gdk::MemoryTexture::Format::ABGR2101010 , Gdk::MemoryTexture::Format::XBGR2101010 , Gdk::MemoryTexture::Format::N_FORMATS }
| Describes formats that image data can have in memory. More...
enum class | Gdk::SubpixelLayout { Gdk::SubpixelLayout::UNKNOWN , Gdk::SubpixelLayout::NONE , Gdk::SubpixelLayout::HORIZONTAL_RGB , Gdk::SubpixelLayout::HORIZONTAL_BGR , Gdk::SubpixelLayout::VERTICAL_RGB , Gdk::SubpixelLayout::VERTICAL_BGR }
| This enumeration describes how the red, green and blue components of physical pixels on an output device are laid out. More...
enum class | Gdk::Paintable::Flags { Gdk::Paintable::Flags::STATIC_SIZE = 1 << 0 , Gdk::Paintable::Flags::STATIC_CONTENTS = 1 << 1 }
| Flags about a paintable object. More...
enum class | Gdk::Colorspace { Gdk::Colorspace::RGB }
| This enumeration defines the color spaces that are supported by the gdk-pixbuf library. More...
enum class | Gdk::InterpType { Gdk::InterpType::NEAREST , Gdk::InterpType::TILES , Gdk::InterpType::BILINEAR , Gdk::InterpType::HYPER }
| Interpolation modes for scaling functions. More...
enum class | Gdk::Pixbuf::Rotation { Gdk::Pixbuf::Rotation::NONE = 0 , Gdk::Pixbuf::Rotation::COUNTERCLOCKWISE = 90 , Gdk::Pixbuf::Rotation::UPSIDEDOWN = 180 , Gdk::Pixbuf::Rotation::CLOCKWISE = 270 }
| The possible rotations which can be passed to gdk_pixbuf_rotate_simple(). More...
enum class | Gdk::AnchorHints { Gdk::AnchorHints::FLIP_X = 1 << 0 , Gdk::AnchorHints::FLIP_Y = 1 << 1 , Gdk::AnchorHints::SLIDE_X = 1 << 2 , Gdk::AnchorHints::SLIDE_Y = 1 << 3 , Gdk::AnchorHints::RESIZE_X = 1 << 4 , Gdk::AnchorHints::RESIZE_Y = 1 << 5 , Gdk::AnchorHints::FLIP = 0x3 , Gdk::AnchorHints::SLIDE = 0xc , Gdk::AnchorHints::RESIZE = 0x30 }
| Positioning hints for aligning a surface relative to a rectangle. More...
enum class | Gdk::Seat::Capabilities { Gdk::Seat::Capabilities::NONE = 0x0 , Gdk::Seat::Capabilities::POINTER = 1 << 0 , Gdk::Seat::Capabilities::TOUCH = 1 << 1 , Gdk::Seat::Capabilities::TABLET_STYLUS = 1 << 2 , Gdk::Seat::Capabilities::KEYBOARD = 1 << 3 , Gdk::Seat::Capabilities::TABLET_PAD = 1 << 4 , Gdk::Seat::Capabilities::ALL_POINTING = 0x7 , Gdk::Seat::Capabilities::ALL = 0x1f }
| Flags describing the seat capabilities. More...
enum class | Gdk::SurfaceEdge { Gdk::SurfaceEdge::NORTH_WEST , Gdk::SurfaceEdge::NORTH , Gdk::SurfaceEdge::NORTH_EAST , Gdk::SurfaceEdge::WEST , Gdk::SurfaceEdge::EAST , Gdk::SurfaceEdge::SOUTH_WEST , Gdk::SurfaceEdge::SOUTH , Gdk::SurfaceEdge::SOUTH_EAST }
| Determines a surface edge or corner. More...
enum class | Gdk::FullscreenMode { Gdk::FullscreenMode::ON_CURRENT_MONITOR , Gdk::FullscreenMode::ON_ALL_MONITORS }
| Indicates which monitor a surface should span over when in fullscreen mode. More...
enum class | Gdk::TitlebarGesture { Gdk::TitlebarGesture::DOUBLE_CLICK = 1 , Gdk::TitlebarGesture::RIGHT_CLICK , Gdk::TitlebarGesture::MIDDLE_CLICK }
| The kind of title bar gesture to emit with Gdk::Toplevel::titlebar_gesture(). More...
enum class | Gdk::Toplevel::State { Gdk::Toplevel::State::MINIMIZED = 1 << 0 , Gdk::Toplevel::State::MAXIMIZED = 1 << 1 , Gdk::Toplevel::State::STICKY = 1 << 2 , Gdk::Toplevel::State::FULLSCREEN = 1 << 3 , Gdk::Toplevel::State::ABOVE = 1 << 4 , Gdk::Toplevel::State::BELOW = 1 << 5 , Gdk::Toplevel::State::FOCUSED = 1 << 6 , Gdk::Toplevel::State::TILED = 1 << 7 , Gdk::Toplevel::State::TOP_TILED = 1 << 8 , Gdk::Toplevel::State::TOP_RESIZABLE = 1 << 9 , Gdk::Toplevel::State::RIGHT_TILED = 1 << 10 , Gdk::Toplevel::State::RIGHT_RESIZABLE = 1 << 11 , Gdk::Toplevel::State::BOTTOM_TILED = 1 << 12 , Gdk::Toplevel::State::BOTTOM_RESIZABLE = 1 << 13 , Gdk::Toplevel::State::LEFT_TILED = 1 << 14 , Gdk::Toplevel::State::LEFT_RESIZABLE = 1 << 15 , Gdk::Toplevel::State::SUSPENDED = 1 << 16 }
| Specifies the state of a toplevel surface. More...
enum class | Gdk::Toplevel::Capabilities { Gdk::Toplevel::Capabilities::EDGE_CONSTRAINTS = 1 << 0 , Gdk::Toplevel::Capabilities::INHIBIT_SHORTCUTS = 1 << 1 , Gdk::Toplevel::Capabilities::TITLEBAR_GESTURES = 1 << 2 , Gdk::Toplevel::Capabilities::WINDOW_MENU = 1 << 3 , Gdk::Toplevel::Capabilities::MAXIMIZE = 1 << 4 , Gdk::Toplevel::Capabilities::FULLSCREEN = 1 << 5 , Gdk::Toplevel::Capabilities::MINIMIZE = 1 << 6 , Gdk::Toplevel::Capabilities::LOWER = 1 << 7 }
| Reflects what features a Gdk::Toplevel supports. More...

## Functions
constexpr AxisFlags | Gdk::operator| (AxisFlags lhs, AxisFlags rhs)
constexpr AxisFlags | Gdk::operator& (AxisFlags lhs, AxisFlags rhs)
constexpr AxisFlags | Gdk::operator^ (AxisFlags lhs, AxisFlags rhs)
constexpr AxisFlags | Gdk::operator~ (AxisFlags flags)
AxisFlags & | Gdk::operator|= (AxisFlags & lhs, AxisFlags rhs)
AxisFlags & | Gdk::operator&= (AxisFlags & lhs, AxisFlags rhs)
AxisFlags & | Gdk::operator^= (AxisFlags & lhs, AxisFlags rhs)
constexpr DragAction | Gdk::operator| (DragAction lhs, DragAction rhs)
constexpr DragAction | Gdk::operator& (DragAction lhs, DragAction rhs)
constexpr DragAction | Gdk::operator^ (DragAction lhs, DragAction rhs)
constexpr DragAction | Gdk::operator~ (DragAction flags)
DragAction & | Gdk::operator|= (DragAction & lhs, DragAction rhs)
DragAction & | Gdk::operator&= (DragAction & lhs, DragAction rhs)
DragAction & | Gdk::operator^= (DragAction & lhs, DragAction rhs)
constexpr ModifierType | Gdk::operator| (ModifierType lhs, ModifierType rhs)
constexpr ModifierType | Gdk::operator& (ModifierType lhs, ModifierType rhs)
constexpr ModifierType | Gdk::operator^ (ModifierType lhs, ModifierType rhs)
constexpr ModifierType | Gdk::operator~ (ModifierType flags)
ModifierType & | Gdk::operator|= (ModifierType & lhs, ModifierType rhs)
ModifierType & | Gdk::operator&= (ModifierType & lhs, ModifierType rhs)
ModifierType & | Gdk::operator^= (ModifierType & lhs, ModifierType rhs)
constexpr FrameClock::Phase | Gdk::operator| (FrameClock::Phase lhs, FrameClock::Phase rhs)
constexpr FrameClock::Phase | Gdk::operator& (FrameClock::Phase lhs, FrameClock::Phase rhs)
constexpr FrameClock::Phase | Gdk::operator^ (FrameClock::Phase lhs, FrameClock::Phase rhs)
constexpr FrameClock::Phase | Gdk::operator~ (FrameClock::Phase flags)
FrameClock::Phase & | Gdk::operator|= (FrameClock::Phase & lhs, FrameClock::Phase rhs)
FrameClock::Phase & | Gdk::operator&= (FrameClock::Phase & lhs, FrameClock::Phase rhs)
FrameClock::Phase & | Gdk::operator^= (FrameClock::Phase & lhs, FrameClock::Phase rhs)
constexpr GLApi | Gdk::operator| (GLApi lhs, GLApi rhs)
constexpr GLApi | Gdk::operator& (GLApi lhs, GLApi rhs)
constexpr GLApi | Gdk::operator^ (GLApi lhs, GLApi rhs)
constexpr GLApi | Gdk::operator~ (GLApi flags)
GLApi & | Gdk::operator|= (GLApi & lhs, GLApi rhs)
GLApi & | Gdk::operator&= (GLApi & lhs, GLApi rhs)
GLApi & | Gdk::operator^= (GLApi & lhs, GLApi rhs)
constexpr GLAPI | Gdk::operator| (GLAPI lhs, GLAPI rhs)
constexpr GLAPI | Gdk::operator& (GLAPI lhs, GLAPI rhs)
constexpr GLAPI | Gdk::operator^ (GLAPI lhs, GLAPI rhs)
constexpr GLAPI | Gdk::operator~ (GLAPI flags)
GLAPI & | Gdk::operator|= (GLAPI & lhs, GLAPI rhs)
GLAPI & | Gdk::operator&= (GLAPI & lhs, GLAPI rhs)
GLAPI & | Gdk::operator^= (GLAPI & lhs, GLAPI rhs)
constexpr Paintable::Flags | Gdk::operator| (Paintable::Flags lhs, Paintable::Flags rhs)
constexpr Paintable::Flags | Gdk::operator& (Paintable::Flags lhs, Paintable::Flags rhs)
constexpr Paintable::Flags | Gdk::operator^ (Paintable::Flags lhs, Paintable::Flags rhs)
constexpr Paintable::Flags | Gdk::operator~ (Paintable::Flags flags)
Paintable::Flags & | Gdk::operator|= (Paintable::Flags & lhs, Paintable::Flags rhs)
Paintable::Flags & | Gdk::operator&= (Paintable::Flags & lhs, Paintable::Flags rhs)
Paintable::Flags & | Gdk::operator^= (Paintable::Flags & lhs, Paintable::Flags rhs)
constexpr AnchorHints | Gdk::operator| (AnchorHints lhs, AnchorHints rhs)
constexpr AnchorHints | Gdk::operator& (AnchorHints lhs, AnchorHints rhs)
constexpr AnchorHints | Gdk::operator^ (AnchorHints lhs, AnchorHints rhs)
constexpr AnchorHints | Gdk::operator~ (AnchorHints flags)
AnchorHints & | Gdk::operator|= (AnchorHints & lhs, AnchorHints rhs)
AnchorHints & | Gdk::operator&= (AnchorHints & lhs, AnchorHints rhs)
AnchorHints & | Gdk::operator^= (AnchorHints & lhs, AnchorHints rhs)
constexpr Seat::Capabilities | Gdk::operator| (Seat::Capabilities lhs, Seat::Capabilities rhs)
constexpr Seat::Capabilities | Gdk::operator& (Seat::Capabilities lhs, Seat::Capabilities rhs)
constexpr Seat::Capabilities | Gdk::operator^ (Seat::Capabilities lhs, Seat::Capabilities rhs)
constexpr Seat::Capabilities | Gdk::operator~ (Seat::Capabilities flags)
Seat::Capabilities & | Gdk::operator|= (Seat::Capabilities & lhs, Seat::Capabilities rhs)
Seat::Capabilities & | Gdk::operator&= (Seat::Capabilities & lhs, Seat::Capabilities rhs)
Seat::Capabilities & | Gdk::operator^= (Seat::Capabilities & lhs, Seat::Capabilities rhs)
constexpr Toplevel::State | Gdk::operator| (Toplevel::State lhs, Toplevel::State rhs)
constexpr Toplevel::State | Gdk::operator& (Toplevel::State lhs, Toplevel::State rhs)
constexpr Toplevel::State | Gdk::operator^ (Toplevel::State lhs, Toplevel::State rhs)
constexpr Toplevel::State | Gdk::operator~ (Toplevel::State flags)
Toplevel::State & | Gdk::operator|= (Toplevel::State & lhs, Toplevel::State rhs)
Toplevel::State & | Gdk::operator&= (Toplevel::State & lhs, Toplevel::State rhs)
Toplevel::State & | Gdk::operator^= (Toplevel::State & lhs, Toplevel::State rhs)
constexpr Toplevel::Capabilities | Gdk::operator| (Toplevel::Capabilities lhs, Toplevel::Capabilities rhs)
constexpr Toplevel::Capabilities | Gdk::operator& (Toplevel::Capabilities lhs, Toplevel::Capabilities rhs)
constexpr Toplevel::Capabilities | Gdk::operator^ (Toplevel::Capabilities lhs, Toplevel::Capabilities rhs)
constexpr Toplevel::Capabilities | Gdk::operator~ (Toplevel::Capabilities flags)
Toplevel::Capabilities & | Gdk::operator|= (Toplevel::Capabilities & lhs, Toplevel::Capabilities rhs)
Toplevel::Capabilities & | Gdk::operator&= (Toplevel::Capabilities & lhs, Toplevel::Capabilities rhs)
Toplevel::Capabilities & | Gdk::operator^= (Toplevel::Capabilities & lhs, Toplevel::Capabilities rhs)

## Detailed Description

## Enumeration Type Documentation

## ◆ AnchorHints

enum class Gdk::AnchorHints
| strong

Positioning hints for aligning a surface relative to a rectangle.

These hints determine how the surface should be positioned in the case that the surface would fall off-screen if placed in its ideal position.

For example, Gdk::AnchorHints::FLIP_X will replace Gdk::Gravity::NORTH_WEST with Gdk::Gravity::NORTH_EAST and vice versa if the surface extends beyond the left or right edges of the monitor.

If Gdk::AnchorHints::SLIDE_X is set, the surface can be shifted horizontally to fit on-screen. If Gdk::AnchorHints::RESIZE_X is set, the surface can be shrunken horizontally to fit.

In general, when multiple flags are set, flipping should take precedence over sliding, which should take precedence over resizing.

Bitwise operators:
  AnchorHints operator|(AnchorHints, AnchorHints)
  AnchorHints operator&(AnchorHints, AnchorHints)
  AnchorHints operator^(AnchorHints, AnchorHints)
  AnchorHints operator~(AnchorHints)
  AnchorHints& operator|=(AnchorHints&, AnchorHints)
  AnchorHints& operator&=(AnchorHints&, AnchorHints)
  AnchorHints& operator^=(AnchorHints&, AnchorHints)

Enumerator
FLIP_X | Allow flipping anchors horizontally.
FLIP_Y | Allow flipping anchors vertically.
SLIDE_X | Allow sliding surface horizontally.
SLIDE_Y | Allow sliding surface vertically.
RESIZE_X | Allow resizing surface horizontally.
RESIZE_Y | Allow resizing surface vertically.
FLIP | Allow flipping anchors on both axes.
SLIDE | Allow sliding surface on both axes.
RESIZE | Allow resizing surface on both axes.

## ◆ AxisFlags

enum class Gdk::AxisFlags
| strong

Flags describing the current capabilities of a device/tool.

Bitwise operators:
  AxisFlags operator|(AxisFlags, AxisFlags)
  AxisFlags operator&(AxisFlags, AxisFlags)
  AxisFlags operator^(AxisFlags, AxisFlags)
  AxisFlags operator~(AxisFlags)
  AxisFlags& operator|=(AxisFlags&, AxisFlags)
  AxisFlags& operator&=(AxisFlags&, AxisFlags)
  AxisFlags& operator^=(AxisFlags&, AxisFlags)

Enumerator
X | X axis is present.
Y | Y axis is present.
DELTA_X | Scroll X delta axis is present.
DELTA_Y | Scroll Y delta axis is present.
PRESSURE | Pressure axis is present.
XTILT | X tilt axis is present.
YTILT | Y tilt axis is present.
WHEEL | Wheel axis is present.
DISTANCE | Distance axis is present.
ROTATION | Z-axis rotation is present.
SLIDER | Slider axis is present.

## ◆ AxisUse

enum class Gdk::AxisUse
| strong

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.

Enumerator
IGNORE | The axis is ignored.
X | The axis is used as the x axis.
Y | The axis is used as the y axis.
DELTA_X | The axis is used as the scroll x delta.
DELTA_Y | The axis is used as the scroll y delta.
PRESSURE | The axis is used for pressure information.
XTILT | The axis is used for x tilt information.
YTILT | The axis is used for y tilt information.
WHEEL | The axis is used for wheel information.
DISTANCE | The axis is used for pen/tablet distance information.
ROTATION | The axis is used for pen rotation information.
SLIDER | The axis is used for pen slider information.
LAST | A constant equal to the numerically highest axis value.

## ◆ Capabilities [1/2]

enum class Gdk::Seat::Capabilities
| strong

Flags describing the seat capabilities.

Bitwise operators:
  Seat::Capabilities operator|(Seat::Capabilities, Seat::Capabilities)
  Seat::Capabilities operator&(Seat::Capabilities, Seat::Capabilities)
  Seat::Capabilities operator^(Seat::Capabilities, Seat::Capabilities)
  Seat::Capabilities operator~(Seat::Capabilities)
  Seat::Capabilities& operator|=(Seat::Capabilities&, Seat::Capabilities)
  Seat::Capabilities& operator&=(Seat::Capabilities&, Seat::Capabilities)
  Seat::Capabilities& operator^=(Seat::Capabilities&, Seat::Capabilities)

Enumerator
NONE | No input capabilities.
POINTER | The seat has a pointer (e.g. mouse).
TOUCH | The seat has touchscreen(s) attached.
TABLET_STYLUS | The seat has drawing tablet(s) attached.
KEYBOARD | The seat has keyboard(s) attached.
TABLET_PAD | The seat has drawing tablet pad(s) attached.
ALL_POINTING | The union of all pointing capabilities.
ALL | The union of all capabilities.

## ◆ Capabilities [2/2]

enum class Gdk::Toplevel::Capabilities
| strong

Reflects what features a Gdk::Toplevel supports.

Since gtkmm 4.20

Bitwise operators:
  Toplevel::Capabilities operator|(Toplevel::Capabilities, Toplevel::Capabilities)
  Toplevel::Capabilities operator&(Toplevel::Capabilities, Toplevel::Capabilities)
  Toplevel::Capabilities operator^(Toplevel::Capabilities, Toplevel::Capabilities)
  Toplevel::Capabilities operator~(Toplevel::Capabilities)
  Toplevel::Capabilities& operator|=(Toplevel::Capabilities&, Toplevel::Capabilities)
  Toplevel::Capabilities& operator&=(Toplevel::Capabilities&, Toplevel::Capabilities)
  Toplevel::Capabilities& operator^=(Toplevel::Capabilities&, Toplevel::Capabilities)

Enumerator
EDGE_CONSTRAINTS | Whether tiled window states are supported. Since gtkmm 4.20
INHIBIT_SHORTCUTS | Whether inhibiting system shortcuts is supported. See Gdk::Toplevel::inhibit_system_shortcuts(). Since gtkmm 4.20
TITLEBAR_GESTURES | Whether titlebar gestures are supported. See Gdk::Toplevel::titlebar_gesture(). Since gtkmm 4.20
WINDOW_MENU | Whether showing the window menu is supported. See Gdk::Toplevel::show_window_menu(). Since gtkmm 4.20
MAXIMIZE | Whether the toplevel can be maximized. Since gtkmm 4.20
FULLSCREEN | Whether the toplevel can be made fullscreen. Since gtkmm 4.20
MINIMIZE | Whether the toplevel can be minimized. See Gdk::Toplevel::minimize(). Since gtkmm 4.20
LOWER | Whether the toplevel can be lowered. See Gdk::Toplevel::lower(). Since gtkmm 4.20

## ◆ Colorspace

enum class Gdk::Colorspace
| strong

This enumeration defines the color spaces that are supported by the gdk-pixbuf library.

Currently only RGB is supported.

Enumerator
RGB | Indicates a red/green/blue additive color space.

## ◆ CrossingMode

enum class Gdk::CrossingMode
| strong

Specifies the crossing mode for enter and leave events.

Enumerator
NORMAL | Crossing because of pointer motion.
GRAB | Crossing because a grab is activated.
UNGRAB | Crossing because a grab is deactivated.
GTK_GRAB | Crossing because a GTK grab is activated.
GTK_UNGRAB | Crossing because a GTK grab is deactivated.
STATE_CHANGED | Crossing because a GTK widget changed state (e.g. sensitivity).
TOUCH_BEGIN | Crossing because a touch sequence has begun, this event is synthetic as the pointer might have not left the surface.
TOUCH_END | Crossing because a touch sequence has ended, this event is synthetic as the pointer might have not left the surface.
DEVICE_SWITCH | Crossing because of a device switch (i.e. a mouse taking control of the pointer after a touch device), this event is synthetic as the pointer didn’t leave the surface.

## ◆ DragAction

enum class Gdk::DragAction
| strong

Used in Gdk::Drop and Gdk::Drag to indicate the actions that the destination can and should do with the dropped data.

Bitwise operators:
  DragAction operator|(DragAction, DragAction)
  DragAction operator&(DragAction, DragAction)
  DragAction operator^(DragAction, DragAction)
  DragAction operator~(DragAction)
  DragAction& operator|=(DragAction&, DragAction)
  DragAction& operator&=(DragAction&, DragAction)
  DragAction& operator^=(DragAction&, DragAction)

Enumerator
NONE | No action. Since gtkmm 4.20
COPY | Copy the data.
MOVE | Move the data, i.e. first copy it, then delete it from the source using the DELETE target of the X selection protocol.
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.
ASK | Ask the user what to do with the data.

## ◆ DragCancelReason

enum class Gdk::DragCancelReason
| strong

Used in Gdk::Drag to the reason of a cancelled DND operation.

Enumerator
NO_TARGET | There is no suitable drop target.
USER_CANCELLED | Drag cancelled by the user.
ERROR | Unspecified error.

## ◆ Feature

enum class Gdk::DevicePad::Feature
| strong

A pad feature.

Enumerator
BUTTON | A button.
RING | A ring-shaped interactive area.
STRIP | A straight interactive area.

## ◆ Flags

enum class Gdk::Paintable::Flags
| strong

Flags about a paintable object.

Implementations use these for optimizations such as caching.

Bitwise operators:
  Paintable::Flags operator|(Paintable::Flags, Paintable::Flags)
  Paintable::Flags operator&(Paintable::Flags, Paintable::Flags)
  Paintable::Flags operator^(Paintable::Flags, Paintable::Flags)
  Paintable::Flags operator~(Paintable::Flags)
  Paintable::Flags& operator|=(Paintable::Flags&, Paintable::Flags)
  Paintable::Flags& operator&=(Paintable::Flags&, Paintable::Flags)
  Paintable::Flags& operator^=(Paintable::Flags&, Paintable::Flags)

Enumerator
STATIC_SIZE | The size is immutable. The Gdk::Paintable::signal_invalidate_size() signal will never be emitted.
STATIC_CONTENTS | The content is immutable. The Gdk::Paintable::signal_invalidate_contents() signal will never be emitted.

## ◆ Format

enum class Gdk::MemoryTexture::Format
| strong

Describes formats that image data can have in memory.

Prefer Gdk::MemoryFormat to Gdk::MemoryTexture::Format where possible.

It describes formats by listing the contents of the memory passed to it. So Gdk::MemoryFormat::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::Surface::Format::ARGB32 is represented by different Gdk::MemoryFormats on architectures with different endiannesses.

# A note on naming

The format names are roughly modelled after VkFormat. A name follows GDK_MEMORY_<CHANNELS>_<DATA_TYPE>_<SUBSAMPLING> <PREMULTIPLIED> where CHANNELS describe how the RGBA channels are layed out in memory, with an X denoting padding. DATA_TYPE is unsigned normalized integer if not present, or otherwise FLOAT. The optional SUBSAMPLING defines the subsampling method used. The optional ENDIAN term describes the endianness if it is not host-endian. Finally, an optional PREMULTIPLIED term indicates that the color channels are premultiplied with the alpha value, if it is omitted, the data is not premultiplied or there is no alpha channel.

The CHANNELS are given as a list of planes seperated by underscores where each plane is split into multiple elements describing one or more bytes of memory. Each element is given as the list of channels folowed by the amount of bits taken up.

So the fictional format RGB565_A8_PREMULTIPLIED would describe a format with 2 planes where the first plane is an unsigned 16 bit integer containing the RGB channels with 5, 6, and 5 bits respectively while the 2nd plane contains the alpha channel as an unisnged 8bit integer.

Gdk::MemoryFormat and Gdk::MemoryTexture::Format are identical. It's possible to convert between them with static_cast.

Enumerator
B8G8R8A8_PREMULTIPLIED | 4 bytes; for blue, green, red, alpha. The color values are premultiplied with the alpha value.
A8R8G8B8_PREMULTIPLIED | 4 bytes; for alpha, red, green, blue. The color values are premultiplied with the alpha value.
R8G8B8A8_PREMULTIPLIED | 4 bytes; for red, green, blue, alpha The color values are premultiplied with the alpha value.
B8G8R8A8 | 4 bytes; for blue, green, red, alpha.
A8R8G8B8 | 4 bytes; for alpha, red, green, blue.
R8G8B8A8 | 4 bytes; for red, green, blue, alpha.
A8B8G8R8 | 4 bytes; for alpha, blue, green, red.
R8G8B8 | 3 bytes; for red, green, blue. The data is opaque.
B8G8R8 | 3 bytes; for blue, green, red. The data is opaque.
R16G16B16 | 3 guint16 values; for red, green, blue. Since gtkmm 4.6
R16G16B16A16_PREMULTIPLIED | 4 guint16 values; for red, green, blue, alpha. The color values are premultiplied with the alpha value. Since gtkmm 4.6
R16G16B16A16 | 4 guint16 values; for red, green, blue, alpha. Since gtkmm 4.6
R16G16B16_FLOAT | 3 half-float values; for red, green, blue. The data is opaque. Since gtkmm 4.6
R16G16B16A16_FLOAT_PREMULTIPLIED | 4 half-float values; for red, green, blue and alpha. The color values are premultiplied with the alpha value. Since gtkmm 4.6
R16G16B16A16_FLOAT | 4 half-float values; for red, green, blue and alpha. Since gtkmm 4.6
R32G32B32_FLOAT | 3 float values; for red, green, blue.
R32G32B32A32_FLOAT_PREMULTIPLIED | 4 float values; for red, green, blue and alpha. The color values are premultiplied with the alpha value. Since gtkmm 4.6
R32G32B32A32_FLOAT | 4 float values; for red, green, blue and alpha. Since gtkmm 4.6
G8A8_PREMULTIPLIED | 2 bytes; for grayscale, alpha. The color values are premultiplied with the alpha value. Since gtkmm 4.12
G8A8 | 2 bytes; for grayscale, alpha. Since gtkmm 4.12
G8 | One byte; for grayscale. The data is opaque. Since gtkmm 4.12
G16A16_PREMULTIPLIED | 2 guint16 values; for grayscale, alpha. The color values are premultiplied with the alpha value. Since gtkmm 4.12
G16A16 | 2 guint16 values; for grayscale, alpha. Since gtkmm 4.12
G16 | One guint16 value; for grayscale. The data is opaque. Since gtkmm 4.12
A8 | One byte; for alpha. Since gtkmm 4.12
A16 | One guint16 value; for alpha. Since gtkmm 4.12
A16_FLOAT | One half-float value; for alpha. Since gtkmm 4.12
A32_FLOAT | One float value; for alpha. Since gtkmm 4.12
A8B8G8R8_PREMULTIPLIED | 4 bytes; for alpha, blue, green, red, The color values are premultiplied with the alpha value. Since gtkmm 4.14
B8G8R8X8 | 4 bytes; for blue, green, red, unused. Since gtkmm 4.14
X8R8G8B8 | 4 bytes; for unused, red, green, blue. Since gtkmm 4.14
R8G8B8X8 | 4 bytes; for red, green, blue, unused. Since gtkmm 4.14
X8B8G8R8 | 4 bytes; for unused, blue, green, red. Since gtkmm 4.14
G8_B8R8_420 | Multiplane format with 2 planes. The first plane contains the first channel, usually containing luma values. The second plane with interleaved chroma values, Cb followed by Cr. Subsampled in both the X and Y direction. Commonly known by the fourcc "NV12". Since gtkmm 4.20
G8_R8B8_420 | Multiplane format with 2 planes. The first plane contains the first channel, usually containing luma values. The second plane with interleaved chroma values, Cr followed by Cb. Subsampled in both the X and Y direction. Commonly known by the fourcc "NV21". Since gtkmm 4.20
G8_B8R8_422 | Multiplane format with 2 planes. The first plane contains the first channel, usually containing luma values. The second plane with interleaved chroma values, Cb followed by Cr. Subsampled in the X direction. Commonly known by the fourcc "NV16". Since gtkmm 4.20
G8_R8B8_422 | Multiplane format with 2 planes. The first plane contains the first channel, usually containing luma values. The second plane with interleaved chroma values, Cr followed by Cb. Subsampled in the X direction. Commonly known by the fourcc "NV61". Since gtkmm 4.20
G8_B8R8_444 | Multiplane format with 2 planes. The first plane contains the first channel, usually containing luma values. The second plane with interleaved chroma values, Cb followed by Cr. This format is not subsampled. Commonly known by the fourcc "NV24". Since gtkmm 4.20
G8_R8B8_444 | Multiplane format with 2 planes. The first plane contains the first channel, usually containing luma values. The second plane with interleaved chroma values, Cr followed by Cb. This format is not subsampled. Commonly known by the fourcc "NV42". Since gtkmm 4.20
G10X6_B10X6R10X6_420 | Multiplane format with 2 planes. Each channel is a 16 bit integer, but only the highest 10 bits are used. The first plane contains the first channel, usually containing luma values. The second plane with interleaved chroma values, Cr followed by Cb. This format is not subsampled. Commonly known by the fourcc "P010". Since gtkmm 4.20
G12X4_B12X4R12X4_420 | Multiplane format with 2 planes. Each channel is a 16 bit integer, but only the highest 10 bits are used. The first plane contains the first channel, usually containing luma values. The second plane with interleaved chroma values, Cr followed by Cb. This format is not subsampled. Commonly known by the fourcc "P012". Since gtkmm 4.20
G16_B16R16_420 | Multiplane format with 2 planes. Each channel is a 16 bit integer. The first plane contains the first channel, usually containing luma values. The second plane with interleaved chroma values, Cr followed by Cb. This format is not subsampled. Commonly known by the fourcc "P016". Since gtkmm 4.20
G8_B8_R8_410 | Multiplane format with 3 planes. Each channel is a 8 bit integer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the first chroma chanel. Subsampled in both the X and Y direction with 4:1 ratio. It is mapped into the 3rd channel. The third plane usually contains the second chroma channel. Subsampled in both the X and Y direction with 4:1 ratio. It is mapped into the 1st channel. Commonly known by the fourcc "YUV410". Since gtkmm 4.20
G8_R8_B8_410 | Multiplane format with 3 planes. Each channel is a 8 bit integer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the second chroma chanel. Subsampled in both the X and Y direction with 4:1 ratio. It is mapped into the 1st channel. The third plane usually contains the first chroma channel. Subsampled in both the X and Y direction with 4:1 ratio. It is mapped into the 3rd channel. Commonly known by the fourcc "YVU410". Since gtkmm 4.20
G8_B8_R8_411 | Multiplane format with 3 planes. Each channel is a 8 bit integer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the first chroma chanel. Subsampled in the X direction with 4:1 ratio. It is mapped into the 3rd channel. The third plane usually contains the second chroma channel. Subsampled in the X direction with 4:1 ratio. It is mapped into the 1st channel. Commonly known by the fourcc "YUV411". Since gtkmm 4.20
G8_R8_B8_411 | Multiplane format with 3 planes. Each channel is a 8 bit integer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the second chroma chanel. Subsampled in the X direction with 4:1 ratio. It is mapped into the 1st channel. The third plane usually contains the first chroma channel. Subsampled in the X direction with 4:1 ratio. It is mapped into the 3rd channel. Commonly known by the fourcc "YVU411". Since gtkmm 4.20
G8_B8_R8_420 | Multiplane format with 3 planes. Each channel is a 8 bit integer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the first chroma chanel. Subsampled in both the X and Y direction. It is mapped into the 3rd channel. The third plane usually contains the second chroma channel. Subsampled in both the X and Y direction. It is mapped into the 1st channel. Commonly known by the fourcc "YUV420". Since gtkmm 4.20
G8_R8_B8_420 | Multiplane format with 3 planes. Each channel is a 8 bit integer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the second chroma chanel. Subsampled in both the X and Y direction. It is mapped into the 1st channel. The third plane usually contains the first chroma channel. Subsampled in both the X and Y direction. It is mapped into the 3rd channel. Commonly known by the fourcc "YVU420". Since gtkmm 4.20
G8_B8_R8_422 | Multiplane format with 3 planes. Each channel is a 8 bit integer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the first chroma chanel. Subsampled in the X direction. It is mapped into the 3rd channel. The third plane usually contains the second chroma channel. Subsampled in the X direction. It is mapped into the 1st channel. Commonly known by the fourcc "YUV422". Since gtkmm 4.20
G8_R8_B8_422 | Multiplane format with 3 planes. Each channel is a 8 bit integer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the second chroma chanel. Subsampled in the X direction. It is mapped into the 1st channel. The third plane usually contains the first chroma channel. Subsampled in the X direction. It is mapped into the 3rd channel. Commonly known by the fourcc "YVU422". Since gtkmm 4.20
G8_B8_R8_444 | Multiplane format with 3 planes. Each channel is a 8 bit integer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the first chroma chanel. It is mapped into the 3rd channel. The third plane usually contains the second chroma channel. It is mapped into the 1st channel. Commonly known by the fourcc "YUV444". Since gtkmm 4.20
G8_R8_B8_444 | Multiplane format with 3 planes. Each channel is a 8 bit integer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the second chroma chanel. Subsampled in the X direction. It is mapped into the 1st channel. The third plane usually contains the first chroma channel. Subsampled in the X direction. It is mapped into the 3rd channel. Commonly known by the fourcc "YVU444". Since gtkmm 4.20
G8B8G8R8_422 | Packed format with subsampled channels. Each channel is a 8 bit integer. The red and blue/chroma channels are subsampled and interleaved with the green/luma channel. Each block contains 2 pixels, so the width must be a multiple of 2. Commonly known by the fourcc "YUYV". Since gtkmm 4.20
G8R8G8B8_422 | Packed format with subsampled channels. Each channel is a 8 bit integer. The red and blue/chroma channels are subsampled and interleaved with the green/luma channel. Each block contains 2 pixels, so the width must be a multiple of 2. Commonly known by the fourcc "YVYU". Since gtkmm 4.20
R8G8B8G8_422 | Packed format with subsampled channels. Each channel is a 8 bit integer. The red and blue/chroma channels are subsampled and interleaved with the green/luma channel. Each block contains 2 pixels, so the width must be a multiple of 2. Commonly known by the fourcc "VYUY". Since gtkmm 4.20
B8G8R8G8_422 | Packed format with subsampled channels. Each channel is a 8 bit integer. The red and blue/chroma channels are subsampled and interleaved with the green/luma channel. Each block contains 2 pixels, so the width must be a multiple of 2. Commonly known by the fourcc "UYVY". Since gtkmm 4.20
X6G10_X6B10_X6R10_420 | Multiplane format with 3 planes. Each channel is a 16 bit integer. Only the 10 lower bits are used. The remaining ones must be set to 0 by the producer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the first chroma chanel. Subsampled in both the X and Y direction. It is mapped into the 3rd channel. The third plane usually contains the second chroma channel. Subsampled in both the X and Y direction. It is mapped into the 1st channel. Commonly known by the fourcc "S010". Since gtkmm 4.20
X6G10_X6B10_X6R10_422 | Multiplane format with 3 planes. Each channel is a 16 bit integer. Only the 10 lower bits are used. The remaining ones must be set to 0 by the producer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the first chroma chanel. Subsampled in the X direction. It is mapped into the 3rd channel. The third plane usually contains the second chroma channel. Subsampled in the X direction. It is mapped into the 1st channel. Commonly known by the fourcc "S210". Since gtkmm 4.20
X6G10_X6B10_X6R10_444 | Multiplane format with 3 planes. Each channel is a 16 bit integer. Only the 10 lower bits are used. The remaining ones must be set to 0 by the producer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the first chroma chanel. It is mapped into the 3rd channel. The third plane usually contains the second chroma channel. It is mapped into the 1st channel. Commonly known by the fourcc "S410". Since gtkmm 4.20
X4G12_X4B12_X4R12_420 | Multiplane format with 3 planes. Each channel is a 16 bit integer. Only the 12 lower bits are used. The remaining ones must be set to 0 by the producer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the first chroma chanel. Subsampled in both the X and Y direction. It is mapped into the 3rd channel. The third plane usually contains the second chroma channel. Subsampled in both the X and Y direction. It is mapped into the 1st channel. Commonly known by the fourcc "S012". Since gtkmm 4.20
X4G12_X4B12_X4R12_422 | Multiplane format with 3 planes. Each channel is a 16 bit integer. Only the 12 lower bits are used. The remaining ones must be set to 0 by the producer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the first chroma chanel. Subsampled in the X direction. It is mapped into the 3rd channel. The third plane usually contains the second chroma channel. Subsampled in the X direction. It is mapped into the 1st channel. Commonly known by the fourcc "S212". Since gtkmm 4.20
X4G12_X4B12_X4R12_444 | Multiplane format with 3 planes. Each channel is a 16 bit integer. Only the 12 lower bits are used. The remaining ones must be set to 0 by the producer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the first chroma chanel. It is mapped into the 3rd channel. The third plane usually contains the second chroma channel. It is mapped into the 1st channel. Commonly known by the fourcc "S412". Since gtkmm 4.20
G16_B16_R16_420 | Multiplane format with 3 planes. Each channel is a 16 bit integer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the first chroma chanel. Subsampled in both the X and Y direction. It is mapped into the 3rd channel. The third plane usually contains the second chroma channel. Subsampled in both the X and Y direction. It is mapped into the 1st channel. Commonly known by the fourcc "S016". Since gtkmm 4.20
G16_B16_R16_422 | Multiplane format with 3 planes. Each channel is a 16 bit integer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the first chroma chanel. Subsampled in the X direction. It is mapped into the 3rd channel. The third plane usually contains the second chroma channel. Subsampled in the X direction. It is mapped into the 1st channel. Commonly known by the fourcc "S216". Since gtkmm 4.20
G16_B16_R16_444 | Multiplane format with 3 planes. Each channel is a 16 bit integer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the first chroma chanel. It is mapped into the 3rd channel. The third plane usually contains the second chroma channel. It is mapped into the 1st channel. Commonly known by the fourcc "S416". Since gtkmm 4.20
ARGB2101010_PREMULTIPLIED | 4 bytes per pixel Bits 31..30 contain the alpha channel, 29..20 red, 19..10 green and 9..0 blue. The color values are premultiplied with the alpha value. Since gtkmm 4.24
ARGB2101010 | 4 bytes per pixel Bits 31..30 contain the alpha channel, 29..20 red, 19..10 green and 9..0 blue. Since gtkmm 4.24
XRGB2101010 | 4 bytes per pixel Bits 31..30 are padding, bits 29..20 contain red, 19..10 green and 9..0 blue. The format is opaque. Since gtkmm 4.24
ABGR2101010_PREMULTIPLIED | 4 bytes per pixel Bits 31..30 contain the alpha channel, 29..20 blue, 19..10 green and 9..0 red. The color values are premultiplied with the alpha value. Since gtkmm 4.24
ABGR2101010 | 4 bytes per pixel Bits 31..30 contain the alpha channel, 29..20 blue, 19..10 green and 9..0 red. Since gtkmm 4.24
XBGR2101010 | 4 bytes per pixel Bits 31..30 are padding, bits 29..20 contain blue, 19..10 green and 9..0 red. The format is opaque. Since gtkmm 4.24
N_FORMATS | The number of formats. This value will change as more formats get added, so do not rely on its concrete integer.

## ◆ FrameResult

enum class Gdk::FrameResult
| strong

An enumeration describing the process of rendering a frame.

Rendering a frame starts with the frame clock cycle and then follows the rendered frame (if there was one) through the display server until it appears on screen.

It is relevant in particular for Gdk::FrameTimings which may still be waiting for values to be filled in.

Since gtkmm 4.24

Enumerator
PREPARING | The frame is currently being prepared and rendered by GTK. This is the initial state. Since gtkmm 4.24
SKIPPED | GTK has determined that nothing needs to be rendered because there are no visual changes. No rendering will be submitted to the display server and because of that no information will be forthcoming from the display server. The frame is complete. Since gtkmm 4.24
EMPTY | GTK has determined that nothing needs to be rendered because there are no visual changes. This information has been submitted to the display server. The presentation time has been updated to reflect when this frame would have been displayed. The frame is complete. Since gtkmm 4.24
SUBMITTED | A frame has been drawn and submitted to the display server, but the display server will not provide any further feedback about when or how the frame is going to be displayed. The frame is complete. Since gtkmm 4.24
OUTSTANDING | The frame has been drawn and submitted to the display server, but the display server has not yet replied what is going to happen with the rendered image. Since gtkmm 4.24
DISCARDED | The frame has been drawn and submitted to the display server, but the display server has not displayed it. No presentation time will be available. The frame is complete. Since gtkmm 4.24
PRESENTED | The frame has been drawn and submitted to the display server, and the display server has rendered it and displayed the result. The presentation time is accurately reflecting when that happened. The frame is complete. Since gtkmm 4.24

## ◆ FullscreenMode

enum class Gdk::FullscreenMode
| strong

Indicates which monitor a surface should span over when in fullscreen mode.

Enumerator
ON_CURRENT_MONITOR | Fullscreen on current monitor only.
ON_ALL_MONITORS | Span across all monitors when fullscreen.

## ◆ GLAPI

enum class Gdk::GLAPI
| strong

The list of the different APIs that GdkGLContext can potentially support.

Since gtkmm 4.6

Deprecated
  Use Gdk::GLApi instead.

Bitwise operators:
  GLAPI operator|(GLAPI, GLAPI)
  GLAPI operator&(GLAPI, GLAPI)
  GLAPI operator^(GLAPI, GLAPI)
  GLAPI operator~(GLAPI)
  GLAPI& operator|=(GLAPI&, GLAPI)
  GLAPI& operator&=(GLAPI&, GLAPI)
  GLAPI& operator^=(GLAPI&, GLAPI)

Note
  Name clash! GLAPI is defined as a preprocessor macro in epoxy/gl.h. If you include epoxy/gl.h and want to use API with Gdk::GLAPI, you must undef GLAPI.
  #include <gdkmm/glcontext.h> // or <gtkmm.h>
  #include <epoxy/gl.h>
  #undef GLAPI
  or
  #include <epoxy/gl.h>
  #undef GLAPI
  #include <gdkmm/glcontext.h> // or <gtkmm.h>

Enumerator
GL | The OpenGL API.
GLES | The OpenGL ES API.

## ◆ GLApi

enum class Gdk::GLApi
| strong

The list of the different APIs that GdkGLContext can potentially support.

Since gtkmm 4.8

Bitwise operators:
  GLApi operator|(GLApi, GLApi)
  GLApi operator&(GLApi, GLApi)
  GLApi operator^(GLApi, GLApi)
  GLApi operator~(GLApi)
  GLApi& operator|=(GLApi&, GLApi)
  GLApi& operator&=(GLApi&, GLApi)
  GLApi& operator^=(GLApi&, GLApi)

Enumerator
GL | The OpenGL API.
GLES | The OpenGL ES API.

## ◆ Gravity

enum class Gdk::Gravity
| strong

Defines the reference point of a surface and is used in Gdk::PopupLayout.

Enumerator
NORTH_WEST | The reference point is at the top left corner.
NORTH | The reference point is in the middle of the top edge.
NORTH_EAST | The reference point is at the top right corner.
WEST | The reference point is at the middle of the left edge.
CENTER | The reference point is at the center of the surface.
EAST | The reference point is at the middle of the right edge.
SOUTH_WEST | The reference point is at the lower left corner.
SOUTH | The reference point is at the middle of the lower edge.
SOUTH_EAST | The reference point is at the lower right corner.
STATIC | The reference point is at the top left corner of the surface itself, ignoring window manager decorations.

## ◆ InputSource

enum class Gdk::InputSource
| strong

An enumeration describing the type of an input device in general terms.

Enumerator
MOUSE | The device is a mouse. (This will be reported for the core pointer, even if it is something else, such as a trackball.).
PEN | The device is a stylus of a graphics tablet or similar device.
KEYBOARD | The device is a keyboard.
TOUCHSCREEN | The device is a direct-input touch device, such as a touchscreen or tablet.
TOUCHPAD | The device is an indirect touch device, such as a touchpad.
TRACKPOINT | The device is a trackpoint.
TABLET_PAD | The device is a "pad", a collection of buttons, rings and strips found in drawing tablets.

## ◆ InterpType

enum class Gdk::InterpType
| strong

Interpolation modes for scaling functions.

The Gdk::InterpType::NEAREST mode is the fastest scaling method, but has horrible quality when scaling down; Gdk::InterpType::BILINEAR is the best choice if you aren't sure what to choose, it has a good speed/quality balance.

Note: Cubic filtering is missing from the list; hyperbolic interpolation is just as fast and results in higher quality.

Enumerator
NEAREST | Nearest neighbor sampling; this is the fastest and lowest quality mode. Quality is normally unacceptable when scaling down, but may be OK when scaling up.
TILES | This is an accurate simulation of the PostScript image operator without any interpolation enabled. Each pixel is rendered as a tiny parallelogram of solid color, the edges of which are implemented with antialiasing. It resembles nearest neighbor for enlargement, and bilinear for reduction.
BILINEAR | Best quality/speed balance; use this mode by default. Bilinear interpolation. For enlargement, it is equivalent to point-sampling the ideal bilinear-interpolated image. For reduction, it is equivalent to laying down small tiles and integrating over the coverage area.
HYPER | This is the slowest and highest quality reconstruction function. It is derived from the hyperbolic filters in Wolberg's "Digital Image Warping", and is formally defined as the hyperbolic-filter sampling the ideal hyperbolic-filter interpolated image (the filter is designed to be idempotent for 1:1 pixel mapping). Deprecated: this interpolation filter is deprecated, as in reality it has a lower quality than the GDK_INTERP_BILINEAR filter (Since: 2.38).

## ◆ KeyMatch

enum class Gdk::KeyMatch
| strong

Describes how well an event matches a given keyval and modifiers.

Gdk::KeyMatch values are returned by Gdk::KeyEvent::matches().

Enumerator
NONE | The key event does not match.
PARTIAL | The key event matches if keyboard state (specifically, the currently active group) is ignored.
EXACT | The key event matches.

## ◆ MemoryFormat

enum class Gdk::MemoryFormat
| strong

Describes formats that image data can have in memory.

It describes formats by listing the contents of the memory passed to it. So Gdk::MemoryFormat::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::Surface::Format::ARGB32 is represented by different Gdk::MemoryFormats on architectures with different endiannesses.

# A note on naming

The format names are roughly modelled after VkFormat. A name follows GDK_MEMORY_<CHANNELS>_<DATA_TYPE>_<SUBSAMPLING> <PREMULTIPLIED> where CHANNELS describe how the RGBA channels are layed out in memory, with an X denoting padding. DATA_TYPE is unsigned normalized integer if not present, or otherwise FLOAT. The optional SUBSAMPLING defines the subsampling method used. The optional ENDIAN term describes the endianness if it is not host-endian. Finally, an optional PREMULTIPLIED term indicates that the color channels are premultiplied with the alpha value, if it is omitted, the data is not premultiplied or there is no alpha channel.

The CHANNELS are given as a list of planes seperated by underscores where each plane is split into multiple elements describing one or more bytes of memory. Each element is given as the list of channels folowed by the amount of bits taken up.

So the fictional format RGB565_A8_PREMULTIPLIED would describe a format with 2 planes where the first plane is an unsigned 16 bit integer containing the RGB channels with 5, 6, and 5 bits respectively while the 2nd plane contains the alpha channel as an unisnged 8bit integer.

Since gtkmm 4.10

Enumerator
B8G8R8A8_PREMULTIPLIED | 4 bytes; for blue, green, red, alpha. The color values are premultiplied with the alpha value.
A8R8G8B8_PREMULTIPLIED | 4 bytes; for alpha, red, green, blue. The color values are premultiplied with the alpha value.
R8G8B8A8_PREMULTIPLIED | 4 bytes; for red, green, blue, alpha The color values are premultiplied with the alpha value.
B8G8R8A8 | 4 bytes; for blue, green, red, alpha.
A8R8G8B8 | 4 bytes; for alpha, red, green, blue.
R8G8B8A8 | 4 bytes; for red, green, blue, alpha.
A8B8G8R8 | 4 bytes; for alpha, blue, green, red.
R8G8B8 | 3 bytes; for red, green, blue. The data is opaque.
B8G8R8 | 3 bytes; for blue, green, red. The data is opaque.
R16G16B16 | 3 guint16 values; for red, green, blue. Since gtkmm 4.6
R16G16B16A16_PREMULTIPLIED | 4 guint16 values; for red, green, blue, alpha. The color values are premultiplied with the alpha value. Since gtkmm 4.6
R16G16B16A16 | 4 guint16 values; for red, green, blue, alpha. Since gtkmm 4.6
R16G16B16_FLOAT | 3 half-float values; for red, green, blue. The data is opaque. Since gtkmm 4.6
R16G16B16A16_FLOAT_PREMULTIPLIED | 4 half-float values; for red, green, blue and alpha. The color values are premultiplied with the alpha value. Since gtkmm 4.6
R16G16B16A16_FLOAT | 4 half-float values; for red, green, blue and alpha. Since gtkmm 4.6
R32G32B32_FLOAT | 3 float values; for red, green, blue.
R32G32B32A32_FLOAT_PREMULTIPLIED | 4 float values; for red, green, blue and alpha. The color values are premultiplied with the alpha value. Since gtkmm 4.6
R32G32B32A32_FLOAT | 4 float values; for red, green, blue and alpha. Since gtkmm 4.6
G8A8_PREMULTIPLIED | 2 bytes; for grayscale, alpha. The color values are premultiplied with the alpha value. Since gtkmm 4.12
G8A8 | 2 bytes; for grayscale, alpha. Since gtkmm 4.12
G8 | One byte; for grayscale. The data is opaque. Since gtkmm 4.12
G16A16_PREMULTIPLIED | 2 guint16 values; for grayscale, alpha. The color values are premultiplied with the alpha value. Since gtkmm 4.12
G16A16 | 2 guint16 values; for grayscale, alpha. Since gtkmm 4.12
G16 | One guint16 value; for grayscale. The data is opaque. Since gtkmm 4.12
A8 | One byte; for alpha. Since gtkmm 4.12
A16 | One guint16 value; for alpha. Since gtkmm 4.12
A16_FLOAT | One half-float value; for alpha. Since gtkmm 4.12
A32_FLOAT | One float value; for alpha. Since gtkmm 4.12
A8B8G8R8_PREMULTIPLIED | 4 bytes; for alpha, blue, green, red, The color values are premultiplied with the alpha value. Since gtkmm 4.14
B8G8R8X8 | 4 bytes; for blue, green, red, unused. Since gtkmm 4.14
X8R8G8B8 | 4 bytes; for unused, red, green, blue. Since gtkmm 4.14
R8G8B8X8 | 4 bytes; for red, green, blue, unused. Since gtkmm 4.14
X8B8G8R8 | 4 bytes; for unused, blue, green, red. Since gtkmm 4.14
G8_B8R8_420 | Multiplane format with 2 planes. The first plane contains the first channel, usually containing luma values. The second plane with interleaved chroma values, Cb followed by Cr. Subsampled in both the X and Y direction. Commonly known by the fourcc "NV12". Since gtkmm 4.20
G8_R8B8_420 | Multiplane format with 2 planes. The first plane contains the first channel, usually containing luma values. The second plane with interleaved chroma values, Cr followed by Cb. Subsampled in both the X and Y direction. Commonly known by the fourcc "NV21". Since gtkmm 4.20
G8_B8R8_422 | Multiplane format with 2 planes. The first plane contains the first channel, usually containing luma values. The second plane with interleaved chroma values, Cb followed by Cr. Subsampled in the X direction. Commonly known by the fourcc "NV16". Since gtkmm 4.20
G8_R8B8_422 | Multiplane format with 2 planes. The first plane contains the first channel, usually containing luma values. The second plane with interleaved chroma values, Cr followed by Cb. Subsampled in the X direction. Commonly known by the fourcc "NV61". Since gtkmm 4.20
G8_B8R8_444 | Multiplane format with 2 planes. The first plane contains the first channel, usually containing luma values. The second plane with interleaved chroma values, Cb followed by Cr. This format is not subsampled. Commonly known by the fourcc "NV24". Since gtkmm 4.20
G8_R8B8_444 | Multiplane format with 2 planes. The first plane contains the first channel, usually containing luma values. The second plane with interleaved chroma values, Cr followed by Cb. This format is not subsampled. Commonly known by the fourcc "NV42". Since gtkmm 4.20
G10X6_B10X6R10X6_420 | Multiplane format with 2 planes. Each channel is a 16 bit integer, but only the highest 10 bits are used. The first plane contains the first channel, usually containing luma values. The second plane with interleaved chroma values, Cr followed by Cb. This format is not subsampled. Commonly known by the fourcc "P010". Since gtkmm 4.20
G12X4_B12X4R12X4_420 | Multiplane format with 2 planes. Each channel is a 16 bit integer, but only the highest 10 bits are used. The first plane contains the first channel, usually containing luma values. The second plane with interleaved chroma values, Cr followed by Cb. This format is not subsampled. Commonly known by the fourcc "P012". Since gtkmm 4.20
G16_B16R16_420 | Multiplane format with 2 planes. Each channel is a 16 bit integer. The first plane contains the first channel, usually containing luma values. The second plane with interleaved chroma values, Cr followed by Cb. This format is not subsampled. Commonly known by the fourcc "P016". Since gtkmm 4.20
G8_B8_R8_410 | Multiplane format with 3 planes. Each channel is a 8 bit integer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the first chroma chanel. Subsampled in both the X and Y direction with 4:1 ratio. It is mapped into the 3rd channel. The third plane usually contains the second chroma channel. Subsampled in both the X and Y direction with 4:1 ratio. It is mapped into the 1st channel. Commonly known by the fourcc "YUV410". Since gtkmm 4.20
G8_R8_B8_410 | Multiplane format with 3 planes. Each channel is a 8 bit integer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the second chroma chanel. Subsampled in both the X and Y direction with 4:1 ratio. It is mapped into the 1st channel. The third plane usually contains the first chroma channel. Subsampled in both the X and Y direction with 4:1 ratio. It is mapped into the 3rd channel. Commonly known by the fourcc "YVU410". Since gtkmm 4.20
G8_B8_R8_411 | Multiplane format with 3 planes. Each channel is a 8 bit integer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the first chroma chanel. Subsampled in the X direction with 4:1 ratio. It is mapped into the 3rd channel. The third plane usually contains the second chroma channel. Subsampled in the X direction with 4:1 ratio. It is mapped into the 1st channel. Commonly known by the fourcc "YUV411". Since gtkmm 4.20
G8_R8_B8_411 | Multiplane format with 3 planes. Each channel is a 8 bit integer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the second chroma chanel. Subsampled in the X direction with 4:1 ratio. It is mapped into the 1st channel. The third plane usually contains the first chroma channel. Subsampled in the X direction with 4:1 ratio. It is mapped into the 3rd channel. Commonly known by the fourcc "YVU411". Since gtkmm 4.20
G8_B8_R8_420 | Multiplane format with 3 planes. Each channel is a 8 bit integer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the first chroma chanel. Subsampled in both the X and Y direction. It is mapped into the 3rd channel. The third plane usually contains the second chroma channel. Subsampled in both the X and Y direction. It is mapped into the 1st channel. Commonly known by the fourcc "YUV420". Since gtkmm 4.20
G8_R8_B8_420 | Multiplane format with 3 planes. Each channel is a 8 bit integer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the second chroma chanel. Subsampled in both the X and Y direction. It is mapped into the 1st channel. The third plane usually contains the first chroma channel. Subsampled in both the X and Y direction. It is mapped into the 3rd channel. Commonly known by the fourcc "YVU420". Since gtkmm 4.20
G8_B8_R8_422 | Multiplane format with 3 planes. Each channel is a 8 bit integer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the first chroma chanel. Subsampled in the X direction. It is mapped into the 3rd channel. The third plane usually contains the second chroma channel. Subsampled in the X direction. It is mapped into the 1st channel. Commonly known by the fourcc "YUV422". Since gtkmm 4.20
G8_R8_B8_422 | Multiplane format with 3 planes. Each channel is a 8 bit integer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the second chroma chanel. Subsampled in the X direction. It is mapped into the 1st channel. The third plane usually contains the first chroma channel. Subsampled in the X direction. It is mapped into the 3rd channel. Commonly known by the fourcc "YVU422". Since gtkmm 4.20
G8_B8_R8_444 | Multiplane format with 3 planes. Each channel is a 8 bit integer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the first chroma chanel. It is mapped into the 3rd channel. The third plane usually contains the second chroma channel. It is mapped into the 1st channel. Commonly known by the fourcc "YUV444". Since gtkmm 4.20
G8_R8_B8_444 | Multiplane format with 3 planes. Each channel is a 8 bit integer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the second chroma chanel. Subsampled in the X direction. It is mapped into the 1st channel. The third plane usually contains the first chroma channel. Subsampled in the X direction. It is mapped into the 3rd channel. Commonly known by the fourcc "YVU444". Since gtkmm 4.20
G8B8G8R8_422 | Packed format with subsampled channels. Each channel is a 8 bit integer. The red and blue/chroma channels are subsampled and interleaved with the green/luma channel. Each block contains 2 pixels, so the width must be a multiple of 2. Commonly known by the fourcc "YUYV". Since gtkmm 4.20
G8R8G8B8_422 | Packed format with subsampled channels. Each channel is a 8 bit integer. The red and blue/chroma channels are subsampled and interleaved with the green/luma channel. Each block contains 2 pixels, so the width must be a multiple of 2. Commonly known by the fourcc "YVYU". Since gtkmm 4.20
R8G8B8G8_422 | Packed format with subsampled channels. Each channel is a 8 bit integer. The red and blue/chroma channels are subsampled and interleaved with the green/luma channel. Each block contains 2 pixels, so the width must be a multiple of 2. Commonly known by the fourcc "VYUY". Since gtkmm 4.20
B8G8R8G8_422 | Packed format with subsampled channels. Each channel is a 8 bit integer. The red and blue/chroma channels are subsampled and interleaved with the green/luma channel. Each block contains 2 pixels, so the width must be a multiple of 2. Commonly known by the fourcc "UYVY". Since gtkmm 4.20
X6G10_X6B10_X6R10_420 | Multiplane format with 3 planes. Each channel is a 16 bit integer. Only the 10 lower bits are used. The remaining ones must be set to 0 by the producer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the first chroma chanel. Subsampled in both the X and Y direction. It is mapped into the 3rd channel. The third plane usually contains the second chroma channel. Subsampled in both the X and Y direction. It is mapped into the 1st channel. Commonly known by the fourcc "S010". Since gtkmm 4.20
X6G10_X6B10_X6R10_422 | Multiplane format with 3 planes. Each channel is a 16 bit integer. Only the 10 lower bits are used. The remaining ones must be set to 0 by the producer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the first chroma chanel. Subsampled in the X direction. It is mapped into the 3rd channel. The third plane usually contains the second chroma channel. Subsampled in the X direction. It is mapped into the 1st channel. Commonly known by the fourcc "S210". Since gtkmm 4.20
X6G10_X6B10_X6R10_444 | Multiplane format with 3 planes. Each channel is a 16 bit integer. Only the 10 lower bits are used. The remaining ones must be set to 0 by the producer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the first chroma chanel. It is mapped into the 3rd channel. The third plane usually contains the second chroma channel. It is mapped into the 1st channel. Commonly known by the fourcc "S410". Since gtkmm 4.20
X4G12_X4B12_X4R12_420 | Multiplane format with 3 planes. Each channel is a 16 bit integer. Only the 12 lower bits are used. The remaining ones must be set to 0 by the producer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the first chroma chanel. Subsampled in both the X and Y direction. It is mapped into the 3rd channel. The third plane usually contains the second chroma channel. Subsampled in both the X and Y direction. It is mapped into the 1st channel. Commonly known by the fourcc "S012". Since gtkmm 4.20
X4G12_X4B12_X4R12_422 | Multiplane format with 3 planes. Each channel is a 16 bit integer. Only the 12 lower bits are used. The remaining ones must be set to 0 by the producer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the first chroma chanel. Subsampled in the X direction. It is mapped into the 3rd channel. The third plane usually contains the second chroma channel. Subsampled in the X direction. It is mapped into the 1st channel. Commonly known by the fourcc "S212". Since gtkmm 4.20
X4G12_X4B12_X4R12_444 | Multiplane format with 3 planes. Each channel is a 16 bit integer. Only the 12 lower bits are used. The remaining ones must be set to 0 by the producer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the first chroma chanel. It is mapped into the 3rd channel. The third plane usually contains the second chroma channel. It is mapped into the 1st channel. Commonly known by the fourcc "S412". Since gtkmm 4.20
G16_B16_R16_420 | Multiplane format with 3 planes. Each channel is a 16 bit integer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the first chroma chanel. Subsampled in both the X and Y direction. It is mapped into the 3rd channel. The third plane usually contains the second chroma channel. Subsampled in both the X and Y direction. It is mapped into the 1st channel. Commonly known by the fourcc "S016". Since gtkmm 4.20
G16_B16_R16_422 | Multiplane format with 3 planes. Each channel is a 16 bit integer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the first chroma chanel. Subsampled in the X direction. It is mapped into the 3rd channel. The third plane usually contains the second chroma channel. Subsampled in the X direction. It is mapped into the 1st channel. Commonly known by the fourcc "S216". Since gtkmm 4.20
G16_B16_R16_444 | Multiplane format with 3 planes. Each channel is a 16 bit integer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the first chroma chanel. It is mapped into the 3rd channel. The third plane usually contains the second chroma channel. It is mapped into the 1st channel. Commonly known by the fourcc "S416". Since gtkmm 4.20
ARGB2101010_PREMULTIPLIED | 4 bytes per pixel Bits 31..30 contain the alpha channel, 29..20 red, 19..10 green and 9..0 blue. The color values are premultiplied with the alpha value. Since gtkmm 4.24
ARGB2101010 | 4 bytes per pixel Bits 31..30 contain the alpha channel, 29..20 red, 19..10 green and 9..0 blue. Since gtkmm 4.24
XRGB2101010 | 4 bytes per pixel Bits 31..30 are padding, bits 29..20 contain red, 19..10 green and 9..0 blue. The format is opaque. Since gtkmm 4.24
ABGR2101010_PREMULTIPLIED | 4 bytes per pixel Bits 31..30 contain the alpha channel, 29..20 blue, 19..10 green and 9..0 red. The color values are premultiplied with the alpha value. Since gtkmm 4.24
ABGR2101010 | 4 bytes per pixel Bits 31..30 contain the alpha channel, 29..20 blue, 19..10 green and 9..0 red. Since gtkmm 4.24
XBGR2101010 | 4 bytes per pixel Bits 31..30 are padding, bits 29..20 contain blue, 19..10 green and 9..0 red. The format is opaque. Since gtkmm 4.24
N_FORMATS | The number of formats. This value will change as more formats get added, so do not rely on its concrete integer.

## ◆ ModifierType

enum class Gdk::ModifierType
| strong

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.

Bitwise operators:
  ModifierType operator|(ModifierType, ModifierType)
  ModifierType operator&(ModifierType, ModifierType)
  ModifierType operator^(ModifierType, ModifierType)
  ModifierType operator~(ModifierType)
  ModifierType& operator|=(ModifierType&, ModifierType)
  ModifierType& operator&=(ModifierType&, ModifierType)
  ModifierType& operator^=(ModifierType&, ModifierType)

Enumerator
NO_MODIFIER_MASK | No modifier. Since gtkmm 4.14
SHIFT_MASK | The Shift key.
LOCK_MASK | A Lock key (depending on the Windowing System configuration, this may either be `CapsLock` or `ShiftLock`).
CONTROL_MASK | The Control key.
ALT_MASK | The fourth modifier key (it depends on the Windowing System configuration which key is interpreted as this modifier, but normally it is the `Alt` key).
BUTTON1_MASK | The first mouse button.
BUTTON2_MASK | The second mouse button.
BUTTON3_MASK | The third mouse button.
BUTTON4_MASK | The fourth mouse button.
BUTTON5_MASK | The fifth mouse button.
SUPER_MASK | The Super modifier.
HYPER_MASK | The Hyper modifier.
META_MASK | The Meta modifier. Maps to Command on macOS.

## ◆ NotifyType

enum class Gdk::NotifyType
| strong

Specifies the kind of crossing for enter and leave events.

See the X11 protocol specification of LeaveNotify for full details of crossing event generation.

Enumerator
ANCESTOR | The surface is entered from an ancestor or left towards an ancestor.
VIRTUAL | The pointer moves between an ancestor and an inferior of the surface.
INFERIOR | The surface is entered from an inferior or left towards an inferior.
NONLINEAR | The surface is entered from or left towards a surface which is neither an ancestor nor an inferior.
NONLINEAR_VIRTUAL | The pointer moves between two surfaces which are not ancestors of each other and the surface is part of the ancestor chain between one of these surfaces and their least common ancestor.
UNKNOWN | An unknown type of enter/leave event occurred.

## ◆ Phase

enum class Gdk::FrameClock::Phase
| strong

Used to represent the different paint clock phases that can be requested.

The elements of the enumeration correspond to the signals of Gdk::FrameClock.

Bitwise operators:
  FrameClock::Phase operator|(FrameClock::Phase, FrameClock::Phase)
  FrameClock::Phase operator&(FrameClock::Phase, FrameClock::Phase)
  FrameClock::Phase operator^(FrameClock::Phase, FrameClock::Phase)
  FrameClock::Phase operator~(FrameClock::Phase)
  FrameClock::Phase& operator|=(FrameClock::Phase&, FrameClock::Phase)
  FrameClock::Phase& operator&=(FrameClock::Phase&, FrameClock::Phase)
  FrameClock::Phase& operator^=(FrameClock::Phase&, FrameClock::Phase)

Enumerator
NONE | No phase.
FLUSH_EVENTS | Corresponds to GdkFrameClock::flush-events. Should not be handled by applications.
BEFORE_PAINT | Corresponds to GdkFrameClock::before-paint. Should not be handled by applications.
UPDATE | Corresponds to GdkFrameClock::update.
LAYOUT | Corresponds to GdkFrameClock::layout. Should not be handled by applications.
PAINT | Corresponds to GdkFrameClock::paint.
RESUME_EVENTS | Corresponds to GdkFrameClock::resume-events. Should not be handled by applications.
AFTER_PAINT | Corresponds to GdkFrameClock::after-paint. Should not be handled by applications.

## ◆ Range

enum class Gdk::CicpParams::Range
| strong

The values of this enumeration describe whether image data uses the full range of 8-bit values.

In digital broadcasting, it is common to reserve the lowest and highest values. Typically the allowed values for the narrow range are 16-235 for Y and 16-240 for u,v (when dealing with YUV data).

Since gtkmm 4.16

Enumerator
NARROW | The values use the range of 16-235 (for Y) and 16-240 for u and v.
FULL | The values use the full range.

## ◆ Rotation

enum class Gdk::Pixbuf::Rotation
| strong

The possible rotations which can be passed to gdk_pixbuf_rotate_simple().

To make them easier to use, their numerical values are the actual degrees.

Enumerator
NONE | No rotation.
COUNTERCLOCKWISE | Rotate by 90 degrees.
UPSIDEDOWN | Rotate by 180 degrees.
CLOCKWISE | Rotate by 270 degrees.

## ◆ ScrollDirection

enum class Gdk::ScrollDirection
| strong

Specifies the direction for scroll events.

Enumerator
UP | The surface is scrolled up.
DOWN | The surface is scrolled down.
LEFT | The surface is scrolled to the left.
RIGHT | The surface is scrolled to the right.
SMOOTH | The scrolling is determined by the delta values in scroll events. See Gdk::ScrollEvent::get_deltas().

## ◆ ScrollRelativeDirection

enum class Gdk::ScrollRelativeDirection
| strong

Used in scroll events, to announce the direction relative to physical motion.

Since gtkmm 4.20

Enumerator
IDENTICAL | Physical motion and event motion are the same.
INVERTED | Physical motion is inverted relative to event motion.
UNKNOWN | Relative motion is unknown on this device or backend.

## ◆ ScrollUnit

enum class Gdk::ScrollUnit
| strong

Specifies the unit of scroll deltas.

When you get Gdk::ScrollUnit::WHEEL, a delta of 1.0 means 1 wheel detent click in the south direction, 2.0 means 2 wheel detent clicks in the south direction... This is the same logic for negative values but in the north direction.

If you get Gdk::ScrollUnit::SURFACE, are managing a scrollable view and get a value of 123, you have to scroll 123 surface logical pixels right if it's delta_x or down if it's delta_y. This is the same logic for negative values but you have to scroll left instead of right if it's delta_x and up instead of down if it's delta_y.

1 surface logical pixel is equal to 1 real screen pixel multiplied by the final scale factor of your graphical interface (the product of the desktop scale factor and eventually a custom scale factor in your app).

Since gtkmm 4.8

Enumerator
WHEEL | The delta is in number of wheel clicks.
SURFACE | The delta is in surface pixels to scroll directly on screen.

## ◆ State

enum class Gdk::Toplevel::State
| strong

Specifies the state of a toplevel surface.

On platforms that support information about individual edges, the Gdk::Toplevel::State::TILED state will be set whenever any of the individual tiled states is set. On platforms that lack that support, the tiled state will give an indication of tiledness without any of the per-edge states being set.

Bitwise operators:
  Toplevel::State operator|(Toplevel::State, Toplevel::State)
  Toplevel::State operator&(Toplevel::State, Toplevel::State)
  Toplevel::State operator^(Toplevel::State, Toplevel::State)
  Toplevel::State operator~(Toplevel::State)
  Toplevel::State& operator|=(Toplevel::State&, Toplevel::State)
  Toplevel::State& operator&=(Toplevel::State&, Toplevel::State)
  Toplevel::State& operator^=(Toplevel::State&, Toplevel::State)

Enumerator
MINIMIZED | The surface is minimized.
MAXIMIZED | The surface is maximized.
STICKY | The surface is sticky.
FULLSCREEN | The surface is maximized without decorations.
ABOVE | The surface is kept above other surfaces.
BELOW | The surface is kept below other surfaces.
FOCUSED | The surface is presented as focused (with active decorations).
TILED | The surface is in a tiled state.
TOP_TILED | Whether the top edge is tiled.
TOP_RESIZABLE | Whether the top edge is resizable.
RIGHT_TILED | Whether the right edge is tiled.
RIGHT_RESIZABLE | Whether the right edge is resizable.
BOTTOM_TILED | Whether the bottom edge is tiled.
BOTTOM_RESIZABLE | Whether the bottom edge is resizable.
LEFT_TILED | Whether the left edge is tiled.
LEFT_RESIZABLE | Whether the left edge is resizable.
SUSPENDED | The surface is not visible to the user. Since gtkmm 4.12

## ◆ SubpixelLayout

enum class Gdk::SubpixelLayout
| strong

This enumeration describes how the red, green and blue components of physical pixels on an output device are laid out.

Enumerator
UNKNOWN | The layout is not known.
NONE | Not organized in this way.
HORIZONTAL_RGB | The layout is horizontal, the order is RGB.
HORIZONTAL_BGR | The layout is horizontal, the order is BGR.
VERTICAL_RGB | The layout is vertical, the order is RGB.
VERTICAL_BGR | The layout is vertical, the order is BGR.

## ◆ SurfaceEdge

enum class Gdk::SurfaceEdge
| strong

Determines a surface edge or corner.

Enumerator
NORTH_WEST | The top left corner.
NORTH | The top edge.
NORTH_EAST | The top right corner.
WEST | The left edge.
EAST | The right edge.
SOUTH_WEST | The lower left corner.
SOUTH | The lower edge.
SOUTH_EAST | The lower right corner.

## ◆ TitlebarGesture

enum class Gdk::TitlebarGesture
| strong

The kind of title bar gesture to emit with Gdk::Toplevel::titlebar_gesture().

Since gtkmm 4.4

Enumerator
DOUBLE_CLICK | Double click gesture.
RIGHT_CLICK | Right click gesture.
MIDDLE_CLICK | Middle click gesture.

## ◆ TouchpadGesturePhase

enum class Gdk::TouchpadGesturePhase
| strong

Specifies the current state of a touchpad gesture.

All gestures are guaranteed to begin with an event with phase Gdk::TouchpadGesturePhase::BEGIN, followed by 0 or several events with phase Gdk::TouchpadGesturePhase::UPDATE.

A finished gesture may have 2 possible outcomes, an event with phase Gdk::TouchpadGesturePhase::END will be emitted when the gesture is considered successful, this should be used as the hint to perform any permanent changes.

Cancelled gestures may be so for a variety of reasons, due to hardware or the compositor, or due to the gesture recognition layers hinting the gesture did not finish resolutely (eg. a 3rd finger being added during a pinch gesture). In these cases, the last event will report the phase Gdk::TouchpadGesturePhase::CANCEL, this should be used as a hint to undo any visible/permanent changes that were done throughout the progress of the gesture.

Enumerator
BEGIN | The gesture has begun.
UPDATE | The gesture has been updated.
END | The gesture was finished, changes should be permanently applied.
CANCEL | The gesture was cancelled, all changes should be undone.

## ◆ Type [1/2]

enum class Gdk::DeviceTool::Type
| strong

Indicates the specific type of tool being used being a tablet.

Such as an airbrush, pencil, etc.

Enumerator
UNKNOWN | Tool is of an unknown type.
PEN | Tool is a standard tablet stylus.
ERASER | Tool is standard tablet eraser.
BRUSH | Tool is a brush stylus.
PENCIL | Tool is a pencil stylus.
AIRBRUSH | Tool is an airbrush stylus.
MOUSE | Tool is a mouse.
LENS | Tool is a lens cursor.

## ◆ Type [2/2]

enum class Gdk::Event::Type
| strong

Specifies the type of the event.

Enumerator
DELETE | The window manager has requested that the toplevel surface be hidden or destroyed, usually when the user clicks on a special icon in the title bar.
MOTION_NOTIFY | The pointer (usually a mouse) has moved.
BUTTON_PRESS | A mouse button has been pressed.
BUTTON_RELEASE | A mouse button has been released.
KEY_PRESS | A key has been pressed.
KEY_RELEASE | A key has been released.
ENTER_NOTIFY | The pointer has entered the surface.
LEAVE_NOTIFY | The pointer has left the surface.
FOCUS_CHANGE | The keyboard focus has entered or left the surface.
PROXIMITY_IN | An input device has moved into contact with a sensing surface (e.g. a touchscreen or graphics tablet).
PROXIMITY_OUT | An input device has moved out of contact with a sensing surface.
DRAG_ENTER | The mouse has entered the surface while a drag is in progress.
DRAG_LEAVE | The mouse has left the surface while a drag is in progress.
DRAG_MOTION | The mouse has moved in the surface while a drag is in progress.
DROP_START | A drop operation onto the surface has started.
SCROLL | The scroll wheel was turned.
GRAB_BROKEN | A pointer or keyboard grab was broken.
TOUCH_BEGIN | A new touch event sequence has just started.
TOUCH_UPDATE | A touch event sequence has been updated.
TOUCH_END | A touch event sequence has finished.
TOUCH_CANCEL | A touch event sequence has been canceled.
TOUCHPAD_SWIPE | A touchpad swipe gesture event, the current state is determined by its phase field.
TOUCHPAD_PINCH | A touchpad pinch gesture event, the current state is determined by its phase field.
PAD_BUTTON_PRESS | A tablet pad button press event.
PAD_BUTTON_RELEASE | A tablet pad button release event.
PAD_RING | A tablet pad axis event from a "ring".
PAD_STRIP | A tablet pad axis event from a "strip".
PAD_GROUP_MODE | A tablet pad group mode change.
TOUCHPAD_HOLD | A touchpad hold gesture event, the current state is determined by its phase field. Since gtkmm 4.6
PAD_DIAL | A tablet pad axis event from a "dial".
EVENT_LAST | Marks the end of the GdkEventType enumeration.

## Function Documentation

## ◆ operator&() [1/11]

AnchorHints Gdk::operator& | ( | AnchorHints | lhs,
|  | AnchorHints | rhs )
| inlineconstexpr

## ◆ operator&() [2/11]

AxisFlags Gdk::operator& | ( | AxisFlags | lhs,
|  | AxisFlags | rhs )
| inlineconstexpr

## ◆ operator&() [3/11]

DragAction Gdk::operator& | ( | DragAction | lhs,
|  | DragAction | rhs )
| inlineconstexpr

## ◆ operator&() [4/11]

FrameClock::Phase Gdk::operator& | ( | FrameClock::Phase | lhs,
|  | FrameClock::Phase | rhs )
| inlineconstexpr

## ◆ operator&() [5/11]

GLAPI Gdk::operator& | ( | GLAPI | lhs,
|  | GLAPI | rhs )
| inlineconstexpr

## ◆ operator&() [6/11]

GLApi Gdk::operator& | ( | GLApi | lhs,
|  | GLApi | rhs )
| inlineconstexpr

## ◆ operator&() [7/11]

ModifierType Gdk::operator& | ( | ModifierType | lhs,
|  | ModifierType | rhs )
| inlineconstexpr

## ◆ operator&() [8/11]

Paintable::Flags Gdk::operator& | ( | Paintable::Flags | lhs,
|  | Paintable::Flags | rhs )
| inlineconstexpr

## ◆ operator&() [9/11]

Seat::Capabilities Gdk::operator& | ( | Seat::Capabilities | lhs,
|  | Seat::Capabilities | rhs )
| inlineconstexpr

## ◆ operator&() [10/11]

Toplevel::Capabilities Gdk::operator& | ( | Toplevel::Capabilities | lhs,
|  | Toplevel::Capabilities | rhs )
| inlineconstexpr

## ◆ operator&() [11/11]

Toplevel::State Gdk::operator& | ( | Toplevel::State | lhs,
|  | Toplevel::State | rhs )
| inlineconstexpr

## ◆ operator&=() [1/11]

AnchorHints & Gdk::operator&= | ( | AnchorHints & | lhs,
|  | AnchorHints | rhs )
| inline

## ◆ operator&=() [2/11]

AxisFlags & Gdk::operator&= | ( | AxisFlags & | lhs,
|  | AxisFlags | rhs )
| inline

## ◆ operator&=() [3/11]

DragAction & Gdk::operator&= | ( | DragAction & | lhs,
|  | DragAction | rhs )
| inline

## ◆ operator&=() [4/11]

FrameClock::Phase & Gdk::operator&= | ( | FrameClock::Phase & | lhs,
|  | FrameClock::Phase | rhs )
| inline

## ◆ operator&=() [5/11]

GLAPI & Gdk::operator&= | ( | GLAPI & | lhs,
|  | GLAPI | rhs )
| inline

## ◆ operator&=() [6/11]

GLApi & Gdk::operator&= | ( | GLApi & | lhs,
|  | GLApi | rhs )
| inline

## ◆ operator&=() [7/11]

ModifierType & Gdk::operator&= | ( | ModifierType & | lhs,
|  | ModifierType | rhs )
| inline

## ◆ operator&=() [8/11]

Paintable::Flags & Gdk::operator&= | ( | Paintable::Flags & | lhs,
|  | Paintable::Flags | rhs )
| inline

## ◆ operator&=() [9/11]

Seat::Capabilities & Gdk::operator&= | ( | Seat::Capabilities & | lhs,
|  | Seat::Capabilities | rhs )
| inline

## ◆ operator&=() [10/11]

Toplevel::Capabilities & Gdk::operator&= | ( | Toplevel::Capabilities & | lhs,
|  | Toplevel::Capabilities | rhs )
| inline

## ◆ operator&=() [11/11]

Toplevel::State & Gdk::operator&= | ( | Toplevel::State & | lhs,
|  | Toplevel::State | rhs )
| inline

## ◆ operator^() [1/11]

AnchorHints Gdk::operator^ | ( | AnchorHints | lhs,
|  | AnchorHints | rhs )
| inlineconstexpr

## ◆ operator^() [2/11]

AxisFlags Gdk::operator^ | ( | AxisFlags | lhs,
|  | AxisFlags | rhs )
| inlineconstexpr

## ◆ operator^() [3/11]

DragAction Gdk::operator^ | ( | DragAction | lhs,
|  | DragAction | rhs )
| inlineconstexpr

## ◆ operator^() [4/11]

FrameClock::Phase Gdk::operator^ | ( | FrameClock::Phase | lhs,
|  | FrameClock::Phase | rhs )
| inlineconstexpr

## ◆ operator^() [5/11]

GLAPI Gdk::operator^ | ( | GLAPI | lhs,
|  | GLAPI | rhs )
| inlineconstexpr

## ◆ operator^() [6/11]

GLApi Gdk::operator^ | ( | GLApi | lhs,
|  | GLApi | rhs )
| inlineconstexpr

## ◆ operator^() [7/11]

ModifierType Gdk::operator^ | ( | ModifierType | lhs,
|  | ModifierType | rhs )
| inlineconstexpr

## ◆ operator^() [8/11]

Paintable::Flags Gdk::operator^ | ( | Paintable::Flags | lhs,
|  | Paintable::Flags | rhs )
| inlineconstexpr

## ◆ operator^() [9/11]

Seat::Capabilities Gdk::operator^ | ( | Seat::Capabilities | lhs,
|  | Seat::Capabilities | rhs )
| inlineconstexpr

## ◆ operator^() [10/11]

Toplevel::Capabilities Gdk::operator^ | ( | Toplevel::Capabilities | lhs,
|  | Toplevel::Capabilities | rhs )
| inlineconstexpr

## ◆ operator^() [11/11]

Toplevel::State Gdk::operator^ | ( | Toplevel::State | lhs,
|  | Toplevel::State | rhs )
| inlineconstexpr

## ◆ operator^=() [1/11]

AnchorHints & Gdk::operator^= | ( | AnchorHints & | lhs,
|  | AnchorHints | rhs )
| inline

## ◆ operator^=() [2/11]

AxisFlags & Gdk::operator^= | ( | AxisFlags & | lhs,
|  | AxisFlags | rhs )
| inline

## ◆ operator^=() [3/11]

DragAction & Gdk::operator^= | ( | DragAction & | lhs,
|  | DragAction | rhs )
| inline

## ◆ operator^=() [4/11]

FrameClock::Phase & Gdk::operator^= | ( | FrameClock::Phase & | lhs,
|  | FrameClock::Phase | rhs )
| inline

## ◆ operator^=() [5/11]

GLAPI & Gdk::operator^= | ( | GLAPI & | lhs,
|  | GLAPI | rhs )
| inline

## ◆ operator^=() [6/11]

GLApi & Gdk::operator^= | ( | GLApi & | lhs,
|  | GLApi | rhs )
| inline

## ◆ operator^=() [7/11]

ModifierType & Gdk::operator^= | ( | ModifierType & | lhs,
|  | ModifierType | rhs )
| inline

## ◆ operator^=() [8/11]

Paintable::Flags & Gdk::operator^= | ( | Paintable::Flags & | lhs,
|  | Paintable::Flags | rhs )
| inline

## ◆ operator^=() [9/11]

Seat::Capabilities & Gdk::operator^= | ( | Seat::Capabilities & | lhs,
|  | Seat::Capabilities | rhs )
| inline

## ◆ operator^=() [10/11]

Toplevel::Capabilities & Gdk::operator^= | ( | Toplevel::Capabilities & | lhs,
|  | Toplevel::Capabilities | rhs )
| inline

## ◆ operator^=() [11/11]

Toplevel::State & Gdk::operator^= | ( | Toplevel::State & | lhs,
|  | Toplevel::State | rhs )
| inline

## ◆ operator|() [1/11]

AnchorHints Gdk::operator| | ( | AnchorHints | lhs,
|  | AnchorHints | rhs )
| inlineconstexpr

## ◆ operator|() [2/11]

AxisFlags Gdk::operator| | ( | AxisFlags | lhs,
|  | AxisFlags | rhs )
| inlineconstexpr

## ◆ operator|() [3/11]

DragAction Gdk::operator| | ( | DragAction | lhs,
|  | DragAction | rhs )
| inlineconstexpr

## ◆ operator|() [4/11]

FrameClock::Phase Gdk::operator| | ( | FrameClock::Phase | lhs,
|  | FrameClock::Phase | rhs )
| inlineconstexpr

## ◆ operator|() [5/11]

GLAPI Gdk::operator| | ( | GLAPI | lhs,
|  | GLAPI | rhs )
| inlineconstexpr

## ◆ operator|() [6/11]

GLApi Gdk::operator| | ( | GLApi | lhs,
|  | GLApi | rhs )
| inlineconstexpr

## ◆ operator|() [7/11]

ModifierType Gdk::operator| | ( | ModifierType | lhs,
|  | ModifierType | rhs )
| inlineconstexpr

## ◆ operator|() [8/11]

Paintable::Flags Gdk::operator| | ( | Paintable::Flags | lhs,
|  | Paintable::Flags | rhs )
| inlineconstexpr

## ◆ operator|() [9/11]

Seat::Capabilities Gdk::operator| | ( | Seat::Capabilities | lhs,
|  | Seat::Capabilities | rhs )
| inlineconstexpr

## ◆ operator|() [10/11]

Toplevel::Capabilities Gdk::operator| | ( | Toplevel::Capabilities | lhs,
|  | Toplevel::Capabilities | rhs )
| inlineconstexpr

## ◆ operator|() [11/11]

Toplevel::State Gdk::operator| | ( | Toplevel::State | lhs,
|  | Toplevel::State | rhs )
| inlineconstexpr

## ◆ operator|=() [1/11]

AnchorHints & Gdk::operator|= | ( | AnchorHints & | lhs,
|  | AnchorHints | rhs )
| inline

## ◆ operator|=() [2/11]

AxisFlags & Gdk::operator|= | ( | AxisFlags & | lhs,
|  | AxisFlags | rhs )
| inline

## ◆ operator|=() [3/11]

DragAction & Gdk::operator|= | ( | DragAction & | lhs,
|  | DragAction | rhs )
| inline

## ◆ operator|=() [4/11]

FrameClock::Phase & Gdk::operator|= | ( | FrameClock::Phase & | lhs,
|  | FrameClock::Phase | rhs )
| inline

## ◆ operator|=() [5/11]

GLAPI & Gdk::operator|= | ( | GLAPI & | lhs,
|  | GLAPI | rhs )
| inline

## ◆ operator|=() [6/11]

GLApi & Gdk::operator|= | ( | GLApi & | lhs,
|  | GLApi | rhs )
| inline

## ◆ operator|=() [7/11]

ModifierType & Gdk::operator|= | ( | ModifierType & | lhs,
|  | ModifierType | rhs )
| inline

## ◆ operator|=() [8/11]

Paintable::Flags & Gdk::operator|= | ( | Paintable::Flags & | lhs,
|  | Paintable::Flags | rhs )
| inline

## ◆ operator|=() [9/11]

Seat::Capabilities & Gdk::operator|= | ( | Seat::Capabilities & | lhs,
|  | Seat::Capabilities | rhs )
| inline

## ◆ operator|=() [10/11]

Toplevel::Capabilities & Gdk::operator|= | ( | Toplevel::Capabilities & | lhs,
|  | Toplevel::Capabilities | rhs )
| inline

## ◆ operator|=() [11/11]

Toplevel::State & Gdk::operator|= | ( | Toplevel::State & | lhs,
|  | Toplevel::State | rhs )
| inline

## ◆ operator~() [1/11]

AnchorHints Gdk::operator~ | ( | AnchorHints | flags | ) |
| inlineconstexpr

## ◆ operator~() [2/11]

AxisFlags Gdk::operator~ | ( | AxisFlags | flags | ) |
| inlineconstexpr

## ◆ operator~() [3/11]

DragAction Gdk::operator~ | ( | DragAction | flags | ) |
| inlineconstexpr

## ◆ operator~() [4/11]

FrameClock::Phase Gdk::operator~ | ( | FrameClock::Phase | flags | ) |
| inlineconstexpr

## ◆ operator~() [5/11]

GLAPI Gdk::operator~ | ( | GLAPI | flags | ) |
| inlineconstexpr

## ◆ operator~() [6/11]

GLApi Gdk::operator~ | ( | GLApi | flags | ) |
| inlineconstexpr

## ◆ operator~() [7/11]

ModifierType Gdk::operator~ | ( | ModifierType | flags | ) |
| inlineconstexpr

## ◆ operator~() [8/11]

Paintable::Flags Gdk::operator~ | ( | Paintable::Flags | flags | ) |
| inlineconstexpr

## ◆ operator~() [9/11]

Seat::Capabilities Gdk::operator~ | ( | Seat::Capabilities | flags | ) |
| inlineconstexpr

## ◆ operator~() [10/11]

Toplevel::Capabilities Gdk::operator~ | ( | Toplevel::Capabilities | flags | ) |
| inlineconstexpr

## ◆ operator~() [11/11]

Toplevel::State Gdk::operator~ | ( | Toplevel::State | flags | ) |
| inlineconstexpr