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.70.
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_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
- 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.
- AppLaunchContexthandles 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.
- CairoContextis an object representing the platform-specific draw context.
- TheClipboardobject represents data shared between applications or inside an application.
- AContentDeserializeris used to deserialize content received via inter-application data transfers.
- TheContentFormatsstructure is used to advertise and negotiate the format of content.
- AContentFormatsBuilderis an auxiliary struct used to create newContentFormats, and should not be kept around.
- AContentProvideris used to provide content for the clipboard or for drag-and-drop operations in a number of formats.
- AContentSerializeris used to serialize content for inter-application data transfers.
- An event caused by a pointing device moving between surfaces.
- Cursoris used to create and destroy cursors.
- An event related to drag and drop operations.
- An event related to closing a top-level surface.
- TheDeviceobject represents an input device, such as a keyboard, a mouse, or a touchpad.
- DevicePadis an interface implemented by devices of type- InputSource::TabletPad
- A physical tool associated to aDevice.
- Displayobjects are the GDK representation of a workstation.
- A singleton object that offers notification when displays appear or disappear.
- TheDragobject represents the source of an ongoing DND operation.
- ADragSurfaceis an interface for surfaces used during DND.
- DragSurfaceSizev4_12TheDragSurfaceSizestruct contains information that is useful to compute the size of a drag surface.
- Base class for objects implementing different rendering methods.
- TheDropobject represents the target of an ongoing DND operation.
- Events are immutable data structures, created by GDK to represent windowing system events.
- EventSequenceis an opaque type representing a sequence of related touch events.
- FileListv4_6An opaque type representing a list of files.
- An event related to a keyboard focus change.
- AFrameClocktells the application when to update and repaint a surface.
- Used to represent the different paint clock phases that can be requested.
- AFrameTimingsobject holds timing information for a single frame of the application’s displays.
- GLAPIv4_6The list of the different APIs that GdkGLContext can potentially support.
- GLContextis an object representing a platform-specific OpenGL draw context.
- A GdkTexture representing a GL texture object.
- GLTextureBuilderv4_12GLTextureBuilderis a buider used to constructTextureobjects from GL textures.
- An event related to a broken windowing system grab.
- A wrapper aroundGDK_KEY_constants and keyval methods.
- An event related to a key-based device.
- AKeymapKeyis a hardware key that can be mapped to a keyval.
- ATexturerepresenting 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.
- Paintableis a simple interface used by GTK to represent content that can be painted.
- Flags about a paintable object.
- APopupis a surface that is attached to another surface.
- ThePopupLayoutstruct contains information that is necessary position aPopuprelative to its parent.
- An event related to the proximity of a tool to a device.
- ARGBAis used to represent a color, in a way that is compatible with cairo’s notion of color.
- ARectangledata type for representing rectangles.
- An event related to a scrolling motion.
- TheSeatobject represents a collection of input devices that belong to a user.
- Flags describing the seat capabilities.
- Base type for snapshot operations.
- ASurfaceis a rectangular region on the screen.
- Textureis the basic element used to refer to pixel data.
- TextureDownloaderv4_10TheTextureDownloaderis used to download the contents of aTexture.
- ATimeCoordstores a single event in a motion history.
- AToplevelis a freestanding toplevel surface.
- TheToplevelLayoutstruct contains information that is necessary to present a sovereign window on screen.
- TheToplevelSizestruct 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.
- VulkanContextis 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 inDragto 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.
- Error enumeration forGLContext.
- Defines the reference point of a surface and is used inPopupLayout.
- An enumeration describing the type of an input device in general terms.
- Describes how well an event matches a given keyval and modifiers.
- MemoryFormatdescribes formats that image data can have in memory.
- Specifies the kind of crossing for enter and leave events.
- Specifies the direction for scroll events.
- ScrollUnitv4_8Specifies 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.
- TextureErrorv4_6Possible errors that can be returned byTextureconstructors.
- TitlebarGesturev4_4
- Specifies the current state of a touchpad gesture.
- Error enumeration forVulkanContext.
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 inModifierType.
- 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.
- pixbuf_get_from_surfaceDeprecatedTransfers image data from acairo::Surfaceand converts it to agdk_pixbuf::Pixbuf.
- pixbuf_get_from_textureDeprecatedCreates 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.