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.63.0
.
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_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 |
See Also
License
The Rust bindings of gdk4 are available under the MIT License, please refer to it.
Re-exports
Modules
Builder pattern types.
Traits intended for blanket imports.
Traits intended for creating custom types.
Structs
Positioning hints for aligning a surface relative to a rectangle.
AppLaunchContext
handles launching an application in a graphical context.Flags describing the current capabilities of a device/tool.
An event related to a button on a pointer device.
CairoContext
is an object representing the platform-specific
draw context.A
ContentDeserializer
is used to deserialize content received via
inter-application data transfers.The
ContentFormats
structure is used to advertise and negotiate the
format of content.A
ContentFormatsBuilder
is an auxiliary struct used to create
new ContentFormats
, and should not be kept around.A
ContentProvider
is used to provide content for the clipboard or
for drag-and-drop operations in a number of formats.A
ContentSerializer
is used to serialize content for
inter-application data transfers.An event caused by a pointing device moving between surfaces.
An event related to drag and drop operations.
An event related to closing a top-level surface.
DevicePad
is an interface implemented by devices of type
InputSource::TabletPad
A physical tool associated to a
Device
.A singleton object that offers notification when displays appear or
disappear.
A
DragSurface
is an interface for surfaces used during DND.Base class for objects implementing different rendering methods.
EventSequence
is an opaque type representing a sequence
of related touch events.FileList
v4_6
An opaque type representing a list of files.
An event related to a keyboard focus change.
A
FrameClock
tells the application when to update and repaint
a surface.Used to represent the different paint clock phases that can be requested.
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.
A GdkTexture representing a GL texture object.
An event related to a broken windowing system grab.
A wrapper around
GDK_KEY_
constants and keyval methods.An event related to a key-based device.
A
Texture
representing image data in memory.Flags to indicate the state of modifier keys and mouse buttons
in events.
An event related to a pointer or touch device motion.
An event related to a pad-based device.
Flags about a paintable object.
The
PopupLayout
struct contains information that is
necessary position a Popup
relative to its parent.An event related to the proximity of a tool to a device.
An event related to a scrolling motion.
Flags describing the seat capabilities.
Base type for snapshot operations.
The
ToplevelLayout
struct contains information that
is necessary to present a sovereign window on screen.The
ToplevelSize
struct contains information that is useful
to compute the size of a toplevel.Specifies the state of a toplevel surface.
An event related to a touch-based device.
An event related to a gesture on a touchpad device.
VulkanContext
is an object representing the platform-specific
Vulkan draw context.Enums
Defines how device axes are interpreted by GTK.
Specifies the crossing mode for enter and leave events.
A pad feature.
Indicates the specific type of tool being used being a tablet. Such as an
airbrush, pencil, etc.
Used in
Drag
to the reason of a cancelled DND operation.Specifies the type of the event.
Indicates which monitor a surface should span over when in fullscreen mode.
Defines the reference point of a surface and is used in
PopupLayout
.An enumeration describing the type of an input device in general terms.
Describes how well an event matches a given keyval and modifiers.
MemoryFormat
describes formats that image data can have in memory.Specifies the kind of crossing for enter and leave events.
Specifies the direction for scroll events.
ScrollUnit
v4_8
Specifies the unit of scroll deltas.
This enumeration describes how the red, green and blue components
of physical pixels on an output device are laid out.
Determines a surface edge or corner.
TextureError
v4_6
Possible errors that can be returned by
Texture
constructors.TitlebarGesture
v4_4
Specifies the current state of a touchpad gesture.
Error enumeration for
VulkanContext
.Constants
Defines all possible DND actions.
The middle button.
The primary button. This is typically the left mouse button, or the
right button in a left-handed setup.
The secondary button. This is typically the right mouse button, or the
left button in a left-handed setup.
Represents the current time, and can be used anywhere a time is expected.
Use this macro as the return value for continuing the propagation of
an event handler.
Use this macro as the return value for stopping the propagation of
an event handler.
A mask covering all entries in
ModifierType
.This is the priority that the idle handler processing surface updates
is given in the main loop.
Functions
Read content from the given input stream and deserialize it, asynchronously.
Registers a function to deserialize object of a given type.
Registers a function to serialize objects of a given type.
Serialize content and write it to the given output stream, asynchronously.
Canonicalizes the given mime type and interns the result.
Obtains a clip region which contains the areas where the given ranges
of text would be drawn.
Obtains a clip region which contains the areas where the given
ranges of text would be drawn.
Transfers image data from a
cairo::Surface
and converts it
to a gdk_pixbuf::Pixbuf
.Creates a new pixbuf from @texture.
Sets a list of backends that GDK should try to use.
Convert from a Unicode character to a key symbol.