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.80
.
§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_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§
pub use cairo;
pub use gdk4_sys as ffi;
pub use gdk_pixbuf;
pub use gio;
pub use gl;
gl
pub use glib;
pub use pango;
Modules§
- builders
- Builder pattern types.
- prelude
- Traits intended for blanket imports.
- subclass
- Traits intended for creating custom types.
Structs§
- Anchor
Hints - Positioning hints for aligning a surface relative to a rectangle.
- AppLaunch
Context AppLaunchContext
handles launching an application in a graphical context.- Axis
Flags - Flags describing the current capabilities of a device/tool.
- Button
Event - An event related to a button on a pointer device.
- Cairo
Context CairoContext
is an object representing the platform-specific draw context.- Cicp
Params v4_16
- The
CicpParams
struct contains the parameters that define a colorstate according to the ITU-T H.273 specification. - Clipboard
- The
Clipboard
object represents data shared between applications or inside an application. - Color
State v4_16
- A
ColorState
object provides the information to interpret colors and pixels in a variety of ways. - Content
Deserializer - A
ContentDeserializer
is used to deserialize content received via inter-application data transfers. - Content
Formats - The
ContentFormats
structure is used to advertise and negotiate the format of content. - Content
Formats Builder - Auxiliary object to create a
ContentFormats
. - Content
Provider - A
ContentProvider
is used to provide content for the clipboard or for drag-and-drop operations in a number of formats. - Content
Serializer - A
ContentSerializer
is used to serialize content for inter-application data transfers. - Crossing
Event - An event caused by a pointing device moving between surfaces.
- Cursor
Cursor
is used to create and destroy cursors.- DNDEvent
- An event related to drag and drop operations.
- Delete
Event - An event related to closing a top-level surface.
- Device
- The
Device
object represents an input device, such as a keyboard, a mouse, or a touchpad. - Device
Pad DevicePad
is an interface implemented by devices of typeInputSource::TabletPad
- Device
Tool - A physical tool associated to a
Device
. - Display
Display
objects are the GDK representation of a workstation.- Display
Manager - A singleton object that offers notification when displays appear or disappear.
- Dmabuf
Formats v4_14
- The
DmabufFormats
struct provides information about supported DMA buffer formats. - Dmabuf
Texture v4_14
- A
Texture
representing a DMA buffer. - Dmabuf
Texture Builder v4_14
DmabufTextureBuilder
is a builder used to constructTexture
objects from DMA buffers.- Drag
- The
Drag
object represents the source of an ongoing DND operation. - Drag
Action - Used in
Drop
andDrag
to indicate the actions that the destination can and should do with the dropped data. - Drag
Surface - A
DragSurface
is an interface for surfaces used during DND. - Drag
Surface Size v4_12
- The
DragSurfaceSize
struct contains information that is useful to compute the size of a drag surface. - Draw
Context - Base class for objects implementing different rendering methods.
- Drop
- The
Drop
object represents the target of an ongoing DND operation. - Event
Event
s are immutable data structures, created by GDK to represent windowing system events.- Event
Sequence EventSequence
is an opaque type representing a sequence of related touch events.- File
List v4_6
- An opaque type representing a list of files.
- Focus
Event - An event related to a keyboard focus change.
- Frame
Clock - A
FrameClock
tells the application when to update and repaint a surface. - Frame
Clock Phase - Used to represent the different paint clock phases that can be requested.
- Frame
Timings - A
FrameTimings
object holds timing information for a single frame of the application’s displays. - GLAPI
v4_6
- The list of the different APIs that GdkGLContext can potentially support.
- GLContext
GLContext
is an object representing a platform-specific OpenGL draw context.- GLTexture
- A GdkTexture representing a GL texture object.
- GLTexture
Builder v4_12
GLTextureBuilder
is a builder used to constructTexture
objects from GL textures.- GRange
- Grab
Broken 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.
- Keymap
Key - A
KeymapKey
is a hardware key that can be mapped to a keyval. - Memory
Texture - A
Texture
representing image data in memory. - Memory
Texture Builder v4_16
MemoryTextureBuilder
is a builder used to constructTexture
objects from system memory provided viaglib::Bytes
.- Modifier
Type - Flags to indicate the state of modifier keys and mouse buttons in events.
- Monitor
Monitor
objects represent the individual outputs that are associated with aDisplay
.- Motion
Event - An event related to a pointer or touch device motion.
- PadEvent
- An event related to a pad-based device.
- Paintable
Paintable
is a simple interface used by GTK to represent content that can be painted.- Paintable
Flags - Flags about a paintable object.
- Popup
- A
Popup
is a surface that is attached to another surface. - Popup
Layout - The
PopupLayout
struct contains information that is necessary position aPopup
relative to its parent. - Proximity
Event - An event related to the proximity of a tool to a device.
- RGBA
- A
RGBA
is used to represent a color, in a way that is compatible with cairo’s notion of color. - Rectangle
- A
Rectangle
data type for representing rectangles. - Scroll
Event - An event related to a scrolling motion.
- Seat
- The
Seat
object represents a collection of input devices that belong to a user. - Seat
Capabilities - Flags describing the seat capabilities.
- Snapshot
- Base type for snapshot operations.
- Surface
- A
Surface
is a rectangular region on the screen. - Texture
Texture
is the basic element used to refer to pixel data.- Texture
Downloader v4_10
- The
TextureDownloader
is used to download the contents of aTexture
. - Time
Coord - A
TimeCoord
stores a single event in a motion history. - Toplevel
- A
Toplevel
is a freestanding toplevel surface. - Toplevel
Layout - The
ToplevelLayout
struct contains information that is necessary to present a sovereign window on screen. - Toplevel
Size - The
ToplevelSize
struct contains information that is useful to compute the size of a toplevel. - Toplevel
State - Specifies the state of a toplevel surface.
- Touch
Event - An event related to a touch-based device.
- Touchpad
Event - An event related to a gesture on a touchpad device.
- Vulkan
Context Deprecated - GTK does not expose any Vulkan internals. This
struct is a leftover that was accidentally exposed.
VulkanContext
is an object representing the platform-specific Vulkan draw context.
Enums§
- AxisUse
- Defines how device axes are interpreted by GTK.
- Backend
- Cicp
Range v4_16
- The values of this enumeration describe whether image data uses the full range of 8-bit values.
- Crossing
Mode - Specifies the crossing mode for enter and leave events.
- Device
PadFeature - A pad feature.
- Device
Tool Type - Indicates the specific type of tool being used being a tablet. Such as an airbrush, pencil, etc.
- Dmabuf
Error v4_14
- Error enumeration for
DmabufTexture
. - Drag
Cancel Reason - Used in
Drag
to the reason of a cancelled DND operation. - Event
Type - Specifies the type of the event.
- Fullscreen
Mode - 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
. - Input
Source - An enumeration describing the type of an input device in general terms.
- KeyMatch
- Describes how well an event matches a given keyval and modifiers.
- Memory
Format MemoryFormat
describes formats that image data can have in memory.- Notify
Type - Specifies the kind of crossing for enter and leave events.
- Scroll
Direction - Specifies the direction for scroll events.
- Scroll
Unit v4_8
- Specifies the unit of scroll deltas.
- Subpixel
Layout - This enumeration describes how the red, green and blue components of physical pixels on an output device are laid out.
- Surface
Edge - Determines a surface edge or corner.
- Texture
Error v4_6
- Possible errors that can be returned by
Texture
constructors. - Titlebar
Gesture v4_4
- The kind of title bar gesture to emit with
ToplevelExt::titlebar_gesture()
. - Touchpad
Gesture Phase - Specifies the current state of a touchpad gesture.
- Vulkan
Error - 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 - Read 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::Surface
and 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 - Convert from a Unicode character to a key symbol.