Expand description
§Rust GDK 4 bindings
The project website is here.
Rust bindings of GDK 4, part of gtk4-rs.
§Minimum supported Rust version
Currently, the minimum supported Rust version is 1.83.
§Documentation
- The Rust API Stable/Development
- The C API
- GTK Installation instructions
§Using
We recommend using crates from crates.io, as demonstrated here.
If you want to track the bleeding edge, use the git dependency instead:
[dependencies]
gdk = { git = "https://github.com/gtk-rs/gtk4-rs.git", package = "gdk4" }Avoid mixing versioned and git crates like this:
# This will not compile
[dependencies]
gtk = {version = "0.1", package = "gtk4"}
gdk = { git = "https://github.com/gtk-rs/gtk4-rs.git", package = "gdk4" }§Features
| Feature | Description | 
|---|---|
| `v4_20 | Enable the new APIs part of GTK 4.20 | 
| v4_18 | Enable the new APIs part of GTK 4.18 | 
| v4_16 | Enable the new APIs part of GTK 4.16 | 
| v4_14 | Enable the new APIs part of GTK 4.14 | 
| v4_12 | Enable the new APIs part of GTK 4.12 | 
| v4_10 | Enable the new APIs part of GTK 4.10 | 
| v4_8 | Enable the new APIs part of GTK 4.8 | 
| v4_6 | Enable the new APIs part of GTK 4.6 | 
| v4_4 | Enable the new APIs part of GTK 4.4 | 
| v4_2 | Enable the new APIs part of GTK 4.2 | 
| gl | Integration with the gl crate | 
§See Also
§License
The Rust bindings of gdk4 are available under the MIT License, please refer to it.
Re-exports§
Modules§
- builders
- Builder pattern types.
- prelude
- Traits intended for blanket imports.
- subclass
- Traits intended for creating custom types.
Structs§
- AnchorHints 
- Positioning hints for aligning a surface relative to a rectangle.
- AppLaunchContext 
- Handles launching an application in a graphical context.
- AxisFlags 
- Flags describing the current capabilities of a device/tool.
- ButtonEvent 
- An event related to a button on a pointer device.
- CairoContext 
- Represents the platform-specific draw context.
- CicpParams v4_16
- Contains the parameters that define a colorstate with cicp parameters.
- Clipboard
- Represents data shared between applications or inside an application.
- ColorState v4_16
- Provides information to interpret colors and pixels in a variety of ways.
- ContentDeserializer 
- Deserializes content received via inter-application data transfers.
- ContentFormats 
- Used to advertise and negotiate the format of content.
- ContentFormats Builder 
- Creates ContentFormatsobjects.
- ContentProvider 
- Provides content for the clipboard or for drag-and-drop operations in a number of formats.
- ContentSerializer 
- Serializes content for inter-application data transfers.
- CrossingEvent 
- An event caused by a pointing device moving between surfaces.
- Cursor
- Used to create and destroy cursors.
- DNDEvent
- An event related to drag and drop operations.
- DeleteEvent 
- An event related to closing a top-level surface.
- Device
- Represents an input device, such as a keyboard, mouse or touchpad.
- DevicePad 
- An interface for tablet pad devices.
- DeviceTool 
- A physical tool associated to a Device.
- Display
- A representation of a workstation.
- DisplayManager 
- Offers notification when displays appear or disappear.
- DmabufFormats Linux and v4_14
- Provides information about supported DMA buffer formats.
- DmabufTexture Linux and v4_14
- A Texturerepresenting a DMA buffer.
- DmabufTexture Builder Linux and v4_14
- Constructs Textureobjects from DMA buffers.
- Drag
- Represents the source of an ongoing DND operation.
- DragAction 
- Used in DropandDragto indicate the actions that the destination can and should do with the dropped data.
- DragSurface 
- A surface that is used during DND.
- DragSurface Size v4_12
- Contains information that is useful to compute the size of a drag surface.
- DrawContext 
- Base class for objects implementing different rendering methods.
- Drop
- Represents the target of an ongoing DND operation.
- Event
- Represents windowing system events.
- EventSequence 
- An opaque type representing a sequence of related events.
- FileList v4_6
- An opaque type representing a list of files.
- FocusEvent 
- An event related to a keyboard focus change.
- FrameClock 
- Tells the application when to update and repaint a surface.
- FrameClock Phase 
- Used to represent the different paint clock phases that can be requested.
- FrameTimings 
- Holds timing information for a single frame of the application’s displays.
- GLAPIv4_6
- The list of the different APIs that GdkGLContext can potentially support.
- GLContext
- Represents a platform-specific OpenGL draw context.
- GLTexture
- A Texturerepresenting a GL texture object.
- GLTextureBuilder v4_12
- Constructs Textureobjects from GL textures.
- GRange
- GrabBroken Event 
- An event related to a broken windowing system grab.
- Key
- A wrapper around GDK_KEY_constants and keyval methods.
- KeyEvent
- An event related to a key-based device.
- KeymapKey 
- Represents a hardware key that can be mapped to a keyval.
- MemoryTexture 
- A Texturerepresenting image data in memory.
- MemoryTexture Builder v4_16
- Constructs Textureobjects from system memory provided viaglib::Bytes.
- ModifierType 
- Flags to indicate the state of modifier keys and mouse buttons in events.
- Monitor
- Represents the individual outputs that are associated with a Display.
- MotionEvent 
- An event related to a pointer or touch device motion.
- PadEvent
- An event related to a pad-based device.
- Paintable
- An interface for content that can be painted.
- PaintableFlags 
- Flags about a paintable object.
- Popup
- A surface that is attached to another surface.
- PopupLayout 
- Contains information that is necessary position a Popuprelative to its parent.
- ProximityEvent 
- An event related to the proximity of a tool to a device.
- RGBA
- Represents a color, in a way that is compatible with cairo’s notion of color.
- Rectangle
- Represents a rectangle.
- ScrollEvent 
- An event related to a scrolling motion.
- Seat
- Represents a collection of input devices that belong to a user.
- SeatCapabilities 
- Flags describing the seat capabilities.
- Snapshot
- Base type for snapshot operations.
- Surface
- Represents a rectangular region on the screen.
- Texture
- Refers to pixel data in various forms.
- TextureDownloader v4_10
- Used to download the contents of a Texture.
- TimeCoord 
- Stores a single event in a motion history.
- Toplevel
- A freestanding toplevel surface.
- ToplevelCapabilities v4_20
- Reflects what features a Toplevelsupports.
- ToplevelLayout 
- Contains information that is necessary to present a sovereign window on screen.
- ToplevelSize 
- Contains information that is useful to compute the size of a toplevel.
- ToplevelState 
- Specifies the state of a toplevel surface.
- TouchEvent 
- An event related to a touch-based device.
- TouchpadEvent 
- An event related to a gesture on a touchpad device.
- VulkanContext Deprecated 
- GTK does not expose any Vulkan internals. This struct is a leftover that was accidentally exposed. Represents the platform-specific Vulkan draw context.
Enums§
- AxisUse
- Defines how device axes are interpreted by GTK.
- Backend
- CicpRange v4_16
- The values of this enumeration describe whether image data uses the full range of 8-bit values.
- CrossingMode 
- Specifies the crossing mode for enter and leave events.
- DevicePadFeature 
- A pad feature.
- DeviceTool Type 
- Indicates the specific type of tool being used being a tablet. Such as an airbrush, pencil, etc.
- DmabufError v4_14and Linux
- Error enumeration for DmabufTexture.
- DragCancel Reason 
- Used in Dragto the reason of a cancelled DND operation.
- EventType 
- Specifies the type of the event.
- FullscreenMode 
- Indicates which monitor a surface should span over when in fullscreen mode.
- GLError
- Error enumeration for GLContext.
- Gravity
- Defines the reference point of a surface and is used in PopupLayout.
- InputSource 
- An enumeration describing the type of an input device in general terms.
- KeyMatch
- Describes how well an event matches a given keyval and modifiers.
- MemoryFormat 
- Describes formats that image data can have in memory.
- NotifyType 
- Specifies the kind of crossing for enter and leave events.
- ScrollDirection 
- Specifies the direction for scroll events.
- ScrollRelative Direction v4_20
- Used in scroll events, to announce the direction relative to physical motion.
- ScrollUnit v4_8
- Specifies the unit of scroll deltas.
- SubpixelLayout 
- This enumeration describes how the red, green and blue components of physical pixels on an output device are laid out.
- SurfaceEdge 
- Determines a surface edge or corner.
- TextureError v4_6
- Possible errors that can be returned by Textureconstructors.
- TitlebarGesture v4_4
- The kind of title bar gesture to emit with
ToplevelExt::titlebar_gesture().
- TouchpadGesture Phase 
- Specifies the current state of a touchpad gesture.
- VulkanError 
- Error enumeration for VulkanContext.
Constants§
- ACTION_ALL 
- Defines all possible DND actions.
- BUTTON_MIDDLE 
- The middle button.
- BUTTON_PRIMARY 
- The primary button. This is typically the left mouse button, or the right button in a left-handed setup.
- BUTTON_SECONDARY 
- The secondary button. This is typically the right mouse button, or the left button in a left-handed setup.
- CURRENT_TIME 
- Represents the current time, and can be used anywhere a time is expected.
- EVENT_PROPAGATE 
- Use this macro as the return value for continuing the propagation of an event handler.
- EVENT_STOP 
- Use this macro as the return value for stopping the propagation of an event handler.
- MODIFIER_MASK 
- A mask covering all entries in ModifierType.
- PRIORITY_REDRAW 
- This is the priority that the idle handler processing surface updates is given in the main loop.
Functions§
- content_deserialize_ async 
- Reads content from the given input stream and deserialize it, asynchronously.
- content_deserialize_ future 
- content_register_ deserializer 
- Registers a function to deserialize object of a given type.
- content_register_ serializer 
- Registers a function to serialize objects of a given type.
- content_serialize_ async 
- Serialize content and write it to the given output stream, asynchronously.
- content_serialize_ future 
- intern_mime_ type 
- Canonicalizes the given mime type and interns the result.
- pango_layout_ get_ clip_ region 
- Obtains a clip region which contains the areas where the given ranges of text would be drawn.
- pango_layout_ line_ get_ clip_ region 
- Obtains a clip region which contains the areas where the given ranges of text would be drawn.
- pixbuf_get_ from_ surface Deprecated 
- Transfers image data from a cairo::Surfaceand converts it to agdk_pixbuf::Pixbuf.
- pixbuf_get_ from_ texture Deprecated 
- Creates a new pixbuf from @texture.
- set_allowed_ backends 
- Sets a list of backends that GDK should try to use.
- unicode_to_ keyval 
- Converts from a Unicode character to a key symbol.