Crate gtk4[−][src]
Expand description
Rust GTK 4 bindings
The project website is here.
Rust bindings of GTK 4, part of gtk4-rs.
This library contains safe Rust bindings for GTK 4, a multi-platform GUI toolkit. It is a part of gtk-rs.
Most of this documentation is generated from the C API. Until all parts of the documentation have been reviewed there will be incongruities with the actual Rust API.
For a gentle introduction to gtk-rs we recommend the online book GUI development with Rust and GTK 4.
See also:
Minimum supported Rust version
Currently, the minimum supported Rust version is 1.54.0
.
“Hello, World!” example program
GTK needs to be initialized before use by calling init
. Creating an
Application
will call init
for you.
The gtk4
crate is usually renamed to gtk
. You can find an example in
the features section for how to do this globally in your Cargo.toml
.
use gtk4 as gtk;
use gtk::prelude::*;
use gtk::{Application, ApplicationWindow};
fn main() {
let app = Application::builder()
.application_id("org.example.HelloWorld")
.build();
app.connect_activate(|app| {
// We create the main window.
let window = ApplicationWindow::builder()
.application(app)
.default_width(320)
.default_height(200)
.title("Hello, World!")
.build();
// Show the window.
window.show();
});
app.run();
}
The main loop
In a typical GTK application you set up the UI, assign signal handlers and run the main event loop.
use gtk4 as gtk;
use gtk::prelude::*;
use gtk::{Application, ApplicationWindow, Button};
fn main() {
let application = Application::builder()
.application_id("com.example.FirstGtkApp")
.build();
application.connect_activate(|app| {
let window = ApplicationWindow::builder()
.application(app)
.title("First GTK Program")
.default_width(350)
.default_height(70)
.build();
let button = Button::with_label("Click me!");
button.connect_clicked(|_| {
eprintln!("Clicked!");
});
window.set_child(Some(&button));
window.show();
});
application.run();
}
Threads
GTK is not thread-safe. Accordingly, none of this crate’s structs implement
Send
or Sync
.
The thread where init
was called is considered the main thread. OS X has
its own notion of the main thread and init
must be called on that thread.
After successful initialization, calling any gtk
or gdk
functions (including init
) from other threads will panic
.
Any thread can schedule a closure to be run by the main loop on the main
thread via glib::idle_add
or
glib::timeout_add
. While
working with GTK you might need the glib::idle_add_local
or glib::timeout_add_local][
fn@glib::timeout_add_local] version without the [
Send` bound. Those may only be called from the main thread.
Panics
The gtk
and gdk
crates have some run-time safety and contract
checks.
-
Any constructor or free function will panic if called before
init][
fn@init` or on a non-main thread. -
Any
&str
or&Path
parameter with an interior null (\0
) character will cause a panic. -
Some functions will panic if supplied out-of-range integer parameters. All such cases will be documented individually but they are not yet.
-
A panic in a closure that handles signals or in any other closure passed to a
gtk
function will abort the process.
Features
Library versions
By default this crate provides only GTK 4.0 APIs. You can access additional
functionality by selecting one of the v4_2
, v4_4
, etc. features.
Cargo.toml
example:
[dependencies.gtk]
package = "gtk4"
version = "0.x.y"
features = ["v4_2"]
Take care when choosing the version to target: some of your users might not have easy access to the latest ones. The higher the version, the fewer users will have it installed.
Documentation
- The Rust API Stable/Development
- Book Stable/Development
- Examples
- 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]
gtk = { git = "https://github.com/gtk-rs/gtk4-rs.git", package = "gtk4" }
Avoid mixing versioned and git crates like this:
[dependencies]
gdk = {version = "0.1", package = "gdk4"}
gtk = { git = "https://github.com/gtk-rs/gtk4-rs.git", package = "gtk4" }
Features
Feature | Description |
---|---|
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 gtk4 are available under the MIT License, please refer to it.
Re-exports
pub use ffi;
pub use cairo;
pub use gdk;
pub use gdk_pixbuf;
pub use gio;
pub use glib;
pub use graphene;
pub use gsk;
pub use pango;
Modules
Structs
ATContext
is an abstract class provided by GTK to communicate to
platform-specific assistive technologies API.
The AboutDialog
offers a simple way to display information about
a program.
A builder-pattern type to construct AboutDialog
objects.
Accessible
is an interface for describing UI elements for
Assistive Technologies.
A builder-pattern type to construct ActionBar
objects.
The Actionable
interface provides a convenient way of asscociating
widgets with actions.
A ShortcutAction
that calls WidgetExt::activate()
.
Adjustment
is a model for a numeric value.
A builder-pattern type to construct Adjustment
objects.
A ShortcutTrigger
that combines two triggers.
A builder-pattern type to construct AlternativeTrigger
objects.
AppChooser
is an interface for widgets which allow the user to
choose an application.
The AppChooserButton
lets the user select an application.
A builder-pattern type to construct AppChooserButton
objects.
AppChooserDialog
shows a AppChooserWidget
inside a Dialog
.
A builder-pattern type to construct AppChooserDialog
objects.
AppChooserWidget
is a widget for selecting applications.
A builder-pattern type to construct AppChooserWidget
objects.
Application
is a high-level API for writing applications.
A builder-pattern type to construct Application
objects.
Types of user actions that may be blocked by Application
.
ApplicationWindow
is a Window
subclass that integrates with
Application
.
A builder-pattern type to construct ApplicationWindow
objects.
AspectFrame
preserves the aspect ratio of its child.
A builder-pattern type to construct AspectFrame
objects.
A builder-pattern type to construct Assistant
objects.
AssistantPage
is an auxiliary object used by `GtkAssistant.
BinLayout
is a LayoutManager
subclass useful for create “bins” of
widgets.
An opaque, stack-allocated struct for iterating
over the elements of a Bitset
.
BookmarkList
is a list model that wraps GBookmarkFile
.
BoolFilter
evaluates a boolean Expression
to determine whether to include items.
A builder-pattern type to construct BoolFilter
objects.
A struct that specifies a border around a rectangular area.
A builder-pattern type to construct Box
objects.
A builder-pattern type to construct BoxLayout
objects.
The list of flags that can be passed to Builder::create_closure()
.
BuilderListItemFactory
is a ListItemFactory
that creates
widgets by instantiating Builder
UI templates.
BuilderScope
is an interface to provide language binding support
to Builder
.
The Button
widget is generally used to trigger a callback function that is
called when the button is pressed.
A builder-pattern type to construct Button
objects.
A builder-pattern type to construct Calendar
objects.
A ShortcutAction
that invokes a callback.
An abstract class for laying out GtkCellRenderers
A cell area that renders GtkCellRenderers into a row or a column
A builder-pattern type to construct CellAreaBox
objects.
Stores geometrical information for a series of rows in a GtkCellArea
Interface for widgets that can be used for editing cells
An interface for packing cells
An object for rendering a single cell
Renders a keyboard accelerator in a cell
A builder-pattern type to construct CellRendererAccel
objects.
Renders a combobox in a cell
A builder-pattern type to construct CellRendererCombo
objects.
Renders a pixbuf in a cell
A builder-pattern type to construct CellRendererPixbuf
objects.
Renders numbers as progress bars
A builder-pattern type to construct CellRendererProgress
objects.
Renders a spin button in a cell
A builder-pattern type to construct CellRendererSpin
objects.
Renders a spinning animation in a cell
A builder-pattern type to construct CellRendererSpinner
objects.
Tells how a cell is to be rendered.
Renders text in a cell
A builder-pattern type to construct CellRendererText
objects.
Renders a toggle button in a cell
A builder-pattern type to construct CellRendererToggle
objects.
A widget displaying a single row of a GtkTreeModel
A builder-pattern type to construct CellView
objects.
CenterBox
arranges three children in a row, keeping the middle child
centered as well as possible.
A builder-pattern type to construct CenterBox
objects.
CenterLayout
is a layout manager that manages up to three children.
A CheckButton
places a label next to an indicator.
A builder-pattern type to construct CheckButton
objects.
An expression using a custom GClosure
to compute the value from
its parameters.
The ColorButton
allows to open a color chooser dialog to change
the color.
A builder-pattern type to construct ColorButton
objects.
ColorChooser
is an interface that is implemented by widgets
for choosing colors.
A dialog for choosing a color.
A builder-pattern type to construct ColorChooserDialog
objects.
The ColorChooserWidget
widget lets the user select a color.
A builder-pattern type to construct ColorChooserWidget
objects.
ColumnView
presents a large dynamic list of items using multiple columns
with headers.
A builder-pattern type to construct ColumnView
objects.
ColumnViewColumn
represents the columns being added to ColumnView
.
A builder-pattern type to construct ColumnViewColumn
objects.
A builder-pattern type to construct ComboBox
objects.
A ComboBoxText
is a simple variant of ComboBox
for text-only
use cases.
A builder-pattern type to construct ComboBoxText
objects.
A constant value in a Expression
.
Constraint
describes a constraint between attributes of two widgets,
expressed as a linear equation.
A builder-pattern type to construct Constraint
objects.
A ConstraintGuide
is an invisible layout element in a
ConstraintLayout
.
A builder-pattern type to construct ConstraintGuide
objects.
A layout manager using constraints to describe relations between widgets.
LayoutChild
subclass for children in a ConstraintLayout
.
A builder-pattern type to construct ConstraintLayoutChild
objects.
The ConstraintTarget
interface is implemented by objects that
can be used as source or target in Constraint
s.
Represents a location in a file or other source of data parsed by the CSS engine.
CssProvider
is an object implementing the StyleProvider
interface
for CSS.
Defines a part of a CSS document.
CustomFilter
determines whether to include items with a callback.
CustomSorter
is a Sorter
implementation that sorts via a callback
function.
Flags to use with set_debug_flags()
.
Dialogs are a convenient way to prompt the user for a small amount of input.
A builder-pattern type to construct Dialog
objects.
Flags used to influence dialog construction.
DirectoryList
is a list model that wraps FileExtManual::enumerate_children_async()
.
A builder-pattern type to construct DragIcon
objects.
DragSource
is an event controller to initiate Drag-And-Drop operations.
A builder-pattern type to construct DragSource
objects.
DrawingArea
is a widget that allows drawing with cairo.
A builder-pattern type to construct DrawingArea
objects.
DropControllerMotion
is an event controller tracking
the pointer during Drag-and-Drop operations.
A builder-pattern type to construct DropControllerMotion
objects.
A builder-pattern type to construct DropDown
objects.
DropTarget
is an event controller to receive Drag-and-Drop operations.
DropTargetAsync
is an event controller to receive Drag-and-Drop
operations, asynchronously.
A builder-pattern type to construct DropTargetAsync
objects.
A builder-pattern type to construct DropTarget
objects.
A EditableLabel
is a label that allows users to
edit the text by switching to an “edit mode”.
A builder-pattern type to construct EditableLabel
objects.
The EmojiChooser
is used by text widgets such as Entry
or
TextView
to let users insert Emoji characters.
A builder-pattern type to construct EmojiChooser
objects.
A EntryBuffer
hold the text displayed in a Text
widget.
A builder-pattern type to construct EntryBuffer
objects.
A builder-pattern type to construct Entry
objects.
EntryCompletion
is an auxiliary object to provide completion functionality
for Entry
.
A builder-pattern type to construct EntryCompletion
objects.
EventController
is the base class for event controllers.
EventControllerFocus
is an event controller to keep track of
keyboard focus.
A builder-pattern type to construct EventControllerFocus
objects.
EventControllerKey
is an event controller that provides access
to key events.
A builder-pattern type to construct EventControllerKey
objects.
EventControllerLegacy
is an event controller that provides raw
access to the event stream.
A builder-pattern type to construct EventControllerLegacy
objects.
EventControllerMotion
is an event controller tracking the pointer
position.
A builder-pattern type to construct EventControllerMotion
objects.
EventControllerScroll
is an event controller that handles scroll
events.
A builder-pattern type to construct EventControllerScroll
objects.
Describes the behavior of a EventControllerScroll
.
EveryFilter
matches an item when each of its filters matches.
A builder-pattern type to construct Expander
objects.
Expression
provides a way to describe references to values.
An opaque structure representing a watched Expression
.
FileChooser
is an interface that can be implemented by file
selection widgets.
FileChooserDialog
is a dialog suitable for use with
“File Open” or “File Save” commands.
A builder-pattern type to construct FileChooserDialog
objects.
FileChooserNative
is an abstraction of a dialog suitable
for use with “File Open” or “File Save as” commands.
A builder-pattern type to construct FileChooserNative
objects.
FileChooserWidget
is a widget for choosing files.
A builder-pattern type to construct FileChooserWidget
objects.
FileFilter
filters files by name or mime type.
A Filter
object describes the filtering to be performed by a
FilterListModel
.
FilterListModel
is a list model that filters the elements of
the underlying model according to a Filter
.
A builder-pattern type to construct FilterListModel
objects.
A builder-pattern type to construct Fixed
objects.
FixedLayout
is a layout manager which can place child widgets
at fixed positions.
LayoutChild
subclass for children in a FixedLayout
.
A builder-pattern type to construct FixedLayoutChild
objects.
FlattenListModel
is a list model that concatenates other list models.
A builder-pattern type to construct FlowBox
objects.
FlowBoxChild
is the kind of widget that can be added to a FlowBox
.
A builder-pattern type to construct FlowBoxChild
objects.
The FontButton
allows to open a font chooser dialog to change
the font.
A builder-pattern type to construct FontButton
objects.
FontChooser
is an interface that can be implemented by widgets
for choosing fonts.
The FontChooserDialog
widget is a dialog for selecting a font.
A builder-pattern type to construct FontChooserDialog
objects.
Specifies the granularity of font selection
that is desired in a FontChooser
.
The FontChooserWidget
widget lets the user select a font.
A builder-pattern type to construct FontChooserWidget
objects.
A builder-pattern type to construct Frame
objects.
A builder-pattern type to construct GLArea
objects.
GestureClick
is a Gesture
implementation for clicks.
A builder-pattern type to construct GestureClick
objects.
GestureDrag
is a Gesture
implementation for drags.
A builder-pattern type to construct GestureDrag
objects.
GestureLongPress
is a Gesture
for long presses.
A builder-pattern type to construct GestureLongPress
objects.
GesturePan
is a Gesture
for pan gestures.
A builder-pattern type to construct GesturePan
objects.
GestureRotate
is a Gesture
for 2-finger rotations.
A builder-pattern type to construct GestureRotate
objects.
GestureSingle
is a GtkGestures
subclass optimized for singe-touch
and mouse gestures.
GestureStylus
is a Gesture
specific to stylus input.
A builder-pattern type to construct GestureStylus
objects.
GestureSwipe
is a Gesture
for swipe gestures.
A builder-pattern type to construct GestureSwipe
objects.
GestureZoom
is a Gesture
for 2-finger pinch/zoom gestures.
A builder-pattern type to construct GestureZoom
objects.
A builder-pattern type to construct Grid
objects.
GridLayout
is a layout manager which arranges child widgets in
rows and columns.
A builder-pattern type to construct GridLayout
objects.
LayoutChild
subclass for children in a GridLayout
.
A builder-pattern type to construct GridLayoutChild
objects.
A builder-pattern type to construct GridView
objects.
A builder-pattern type to construct HeaderBar
objects.
IMContextSimple
is an input method supporting table-based input methods.
A builder-pattern type to construct IMContextSimple
objects.
IMMulticontext
is an input method context supporting multiple,
switchable input methods.
A builder-pattern type to construct IMMulticontext
objects.
Used to specify options for IconTheme::lookup_icon()
.
Contains information found when looking up an icon in IconTheme
.
A builder-pattern type to construct IconPaintable
objects.
A builder-pattern type to construct IconTheme
objects.
A builder-pattern type to construct IconView
objects.
A builder-pattern type to construct Image
objects.
A builder-pattern type to construct InfoBar
objects.
Whether to propagate the signal to the default handler.
Describes hints that might be taken into account by input methods or applications.
A ShortcutTrigger
that triggers when a specific keyval and modifiers are pressed.
A builder-pattern type to construct Label
objects.
LayoutChild
is the base class for objects that are meant to hold
layout properties.
Layout managers are delegate classes that handle the preferred size and the allocation of a widget.
A builder-pattern type to construct LevelBar
objects.
A LinkButton
is a button with a hyperlink.
A builder-pattern type to construct LinkButton
objects.
A builder-pattern type to construct ListBox
objects.
ListBoxRow
is the kind of widget that can be added to a ListBox
.
A builder-pattern type to construct ListBoxRow
objects.
A ListItemFactory
creates widgets for the items taken from a GListModel
.
A list-like data structure that can be used with the GtkTreeView
A builder-pattern type to construct ListView
objects.
LockButton
is a widget to obtain and revoke authorizations
needed to operate the controls.
A builder-pattern type to construct LockButton
objects.
A MapListModel
maps the items in a list model to different items.
MediaControls
is a widget to show controls for a video.
A builder-pattern type to construct MediaControls
objects.
MediaFile
implements MediaStream
for files.
MediaStream
is the integration point for media playback inside GTK.
The MenuButton
widget is used to display a popup when clicked.
A builder-pattern type to construct MenuButton
objects.
MessageDialog
presents a dialog with some message text.
A builder-pattern type to construct MessageDialog
objects.
A ShortcutAction
that calls WidgetExt::mnemonic_activate()
.
A ShortcutTrigger
that triggers when a specific mnemonic is pressed.
MountOperation
is an implementation of GMountOperation
.
A builder-pattern type to construct MountOperation
objects.
MultiFilter
is the base class for filters that combine multiple filters.
MultiSelection
is a SelectionModel
that allows selecting multiple
elements.
MultiSorter
combines multiple sorters by trying them
in turn.
A ShortcutAction
that activates an action by name.
Native
is the interface implemented by all widgets that have
their own gdk::Surface
.
Native dialogs are platform dialogs that don’t use Dialog
.
A ShortcutTrigger
that never triggers.
NoSelection
is a SelectionModel
that does not allow selecting
anything.
A builder-pattern type to construct Notebook
objects.
NotebookPage
is an auxiliary object used by Notebook
.
A ShortcutAction
that does nothing.
NumericSorter
is a Sorter
that compares numbers.
A builder-pattern type to construct NumericSorter
objects.
A GObject
value in a Expression
.
The Orientable
interface is implemented by all widgets that can be
oriented horizontally or vertically.
Overlay
is a container which contains a single main child, on top
of which it can place “overlay” widgets.
A builder-pattern type to construct Overlay
objects.
OverlayLayout
is the layout manager used by Overlay
.
LayoutChild
subclass for children in a OverlayLayout
.
A builder-pattern type to construct OverlayLayoutChild
objects.
Struct defining a pad action entry.
PadController
is an event controller for the pads found in drawing
tablets.
A builder-pattern type to construct PadController
objects.
A range of pages to print.
PageSetupUnixDialog
implements a page setup dialog for platforms
which don’t provide a native page setup dialog, like Unix.
A builder-pattern type to construct PageSetupUnixDialog
objects.
A builder-pattern type to construct Paned
objects.
A GParamSpec
for properties holding a Expression
.
PasswordEntry
is an entry that has been tailored for entering secrets.
A EntryBuffer
that locks the underlying memory to prevent it
from being swapped to disk.
A builder-pattern type to construct PasswordEntryBuffer
objects.
A builder-pattern type to construct PasswordEntry
objects.
Flags that influence the behavior of WidgetExt::pick()
.
The Picture
widget displays a gdk::Paintable
.
A builder-pattern type to construct Picture
objects.
A builder-pattern type to construct Popover
objects.
PopoverMenu
is a subclass of Popover
that implements menu
behavior.
PopoverMenuBar
presents a horizontal bar of items that pop
up popover menus when clicked.
A builder-pattern type to construct PopoverMenuBar
objects.
A builder-pattern type to construct PopoverMenu
objects.
Flags that affect how popover menus are created from a menu model.
Specifies which features the print dialog should offer.
A PrintContext
encapsulates context information that is required when
drawing pages for printing.
A builder-pattern type to construct PrintJob
objects.
PrintOperation
is the high-level, portable printing API.
A builder-pattern type to construct PrintOperation
objects.
PrintOperationPreview
is the interface that is used to
implement print preview.
A PrintSettings
object represents the settings of a print dialog in
a system-independent way.
PrintUnixDialog
implements a print dialog for platforms
which don’t provide a native print dialog, like Unix.
A builder-pattern type to construct PrintUnixDialog
objects.
A builder-pattern type to construct Printer
objects.
ProgressBar
is typically used to display the progress of a long
running operation.
A builder-pattern type to construct ProgressBar
objects.
A GObject
property value in a Expression
.
Meta-data to be passed to RecentManagerExt::add_full()
when
registering a recently used resource.
RecentInfo
contains the metadata associated with an item in the
recently used files list.
RecentManager
manages and looks up recently used files.
A Requisition
represents the desired size of a widget. See
[GtkWidget’s geometry management section][geometry-management] for
more information.
A builder-pattern type to construct Revealer
objects.
A builder-pattern type to construct Scale
objects.
ScaleButton
provides a button which pops up a scale widget.
A builder-pattern type to construct ScaleButton
objects.
Scrollable
is an interface for widgets with native scrolling ability.
A builder-pattern type to construct Scrollbar
objects.
ScrolledWindow
is a container that makes its child scrollable.
A builder-pattern type to construct ScrolledWindow
objects.
A builder-pattern type to construct SearchBar
objects.
SearchEntry
is an entry widget that has been tailored for use
as a search entry.
A builder-pattern type to construct SearchEntry
objects.
SelectionFilterModel
is a list model that presents the selection from
a SelectionModel
.
SelectionModel
is an interface that add support for selection to list models.
A builder-pattern type to construct Separator
objects.
A builder-pattern type to construct Settings
objects.
ShortcutAction
encodes an action that can be triggered by a
keyboard shortcut.
List of flags that can be passed to action activation.
A builder-pattern type to construct Shortcut
objects.
ShortcutController
is an event controller that manages shortcuts.
A builder-pattern type to construct ShortcutController
objects.
ShortcutLabel
displays a single keyboard shortcut or gesture.
A builder-pattern type to construct ShortcutLabel
objects.
The ShortcutManager
interface is used to implement
shortcut scopes.
ShortcutTrigger
tracks how a Shortcut
should be activated.
A ShortcutsGroup
represents a group of related keyboard shortcuts
or gestures.
A builder-pattern type to construct ShortcutsGroup
objects.
A ShortcutsSection
collects all the keyboard shortcuts and gestures
for a major application mode.
A builder-pattern type to construct ShortcutsSection
objects.
A ShortcutsShortcut
represents a single keyboard shortcut or gesture
with a short text.
A builder-pattern type to construct ShortcutsShortcut
objects.
A ShortcutsWindow
shows information about the keyboard shortcuts
and gestures of an application.
A builder-pattern type to construct ShortcutsWindow
objects.
A Shortcut
Action that emits a signal.
SignalListItemFactory
is a ListItemFactory
that emits signals
to to manage listitems.
SingleSelection
is a SelectionModel
that allows selecting a single
item.
A builder-pattern type to construct SingleSelection
objects.
SliceListModel
is a list model that presents a slice of another model.
A builder-pattern type to construct SliceListModel
objects.
A GListModel
that sorts the elements of an underlying model
according to a Sorter
.
A builder-pattern type to construct SortListModel
objects.
A SpinButton
is an ideal way to allow the user to set the
value of some attribute.
A builder-pattern type to construct SpinButton
objects.
A builder-pattern type to construct Spinner
objects.
A builder-pattern type to construct Stack
objects.
A StackSidebar
uses a sidebar to switch between Stack
pages.
A builder-pattern type to construct StackSidebar
objects.
The StackSwitcher
shows a row of buttons to switch between Stack
pages.
A builder-pattern type to construct StackSwitcher
objects.
Describes a widget state.
A builder-pattern type to construct Statusbar
objects.
StringFilter
determines whether to include items by comparing
strings to a fixed search term.
A builder-pattern type to construct StringFilter
objects.
StringList
is a list model that wraps an array of strings.
StringObject
is the type of items in a StringList
.
StringSorter
is a Sorter
that compares strings.
A builder-pattern type to construct StringSorter
objects.
StyleContext
stores styling information affecting a widget.
Flags that modify the behavior of StyleContextExt::to_string()
.
StyleProvider
is an interface for style information used by
StyleContext
.
A builder-pattern type to construct Switch
objects.
Stores text and attributes for display in a TextView
.
A builder-pattern type to construct TextBuffer
objects.
A builder-pattern type to construct Text
objects.
A TextChildAnchor
is a spot in a TextBuffer
where child widgets can
be “anchored”.
An iterator for the contents of a TextBuffer
.
A builder-pattern type to construct TextMark
objects.
Flags affecting how a search is done.
A tag that can be applied to text contained in a TextBuffer
.
A builder-pattern type to construct TextTag
objects.
The collection of tags in a TextBuffer
A widget that displays the contents of a TextBuffer
.
A builder-pattern type to construct TextView
objects.
A ToggleButton
is a button which remains “pressed-in” when
clicked.
A builder-pattern type to construct ToggleButton
objects.
Interface for Drag-and-Drop destinations in TreeView
.
Interface for Drag-and-Drop destinations in TreeView
.
TreeExpander
is a widget that provides an expander for a list.
A builder-pattern type to construct TreeExpander
objects.
TreeListModel
is a list model that can create child models on demand.
A builder-pattern type to construct TreeListModel
objects.
TreeListRow
is used by TreeListModel
to represent items.
TreeListRowSorter
is a special-purpose sorter that will apply a given
sorter to the levels in a tree.
The tree interface used by GtkTreeView
A TreeModel
which hides parts of an underlying tree model
These flags indicate various properties of a TreeModel
.
A GtkTreeModel which makes an underlying tree model sortable
An opaque structure representing a path to a row in a model.
The selection object for GtkTreeView
The interface for sortable models used by GtkTreeView
A tree-like data structure that can be used with the GtkTreeView
A widget for displaying both trees and lists
A builder-pattern type to construct TreeView
objects.
A visible column in a GtkTreeView widget
A builder-pattern type to construct TreeViewColumn
objects.
Video
is a widget to show a MediaStream
with media controls.
A builder-pattern type to construct Video
objects.
A builder-pattern type to construct Viewport
objects.
VolumeButton
is a ScaleButton
subclass tailored for
volume control.
A builder-pattern type to construct VolumeButton
objects.
The base class for all widgets.
WidgetPaintable
is a gdk::Paintable
that displays the contents
of a widget.
A builder-pattern type to construct Window
objects.
WindowControls
shows window frame controls.
A builder-pattern type to construct WindowControls
objects.
WindowGroup
makes group of windows behave like separate applications.
WindowHandle
is a titlebar area widget.
A builder-pattern type to construct WindowHandle
objects.
Enums
The possible values for the AccessibleProperty::Autocomplete
accessible property.
The possible values for the AccessibleState::Invalid
accessible state.
The possible accessible properties of a Accessible
.
The possible accessible relations of a Accessible
.
The accessible role for a Accessible
implementation.
The possible values for the AccessibleProperty::Sort
accessible property.
The possible accessible states of a Accessible
.
The possible values for the AccessibleState::Pressed
accessible state.
Controls how a widget deals with extra space in a single dimension.
Used to indicate the direction in which an arrow should point.
Determines the page role inside a Assistant
.
Baseline position in a row of widgets.
Describes how the border of a UI element should be rendered.
Error codes that identify various errors that can occur while using
Builder
.
Prebuilt sets of buttons for Dialog
.
Determines if the edited accelerators are GTK accelerators. If they are, consumed modifiers are suppressed, only accelerators accepted by GTK are allowed, and the accelerators are rendered in the same way as they are in menus.
Identifies how the user can interact with a particular cell.
The widget attributes that can be used when creating a Constraint
.
The relation between two terms of a constraint.
The strength of a constraint, expressed as a symbolic constant.
Domain for VFL parsing errors.
Specifies which corner a child widget should be placed in when packed into
a ScrolledWindow
Errors that can occur while parsing CSS.
Warnings that can occur while parsing CSS.
Passed to various keybinding signals for deleting text.
Focus movement types.
Specifies the side of the entry at which an icon is placed.
Describes the state of a gdk::EventSequence
in a Gesture
.
Describes whether a FileChooser
is being used to open existing files
or to save to a possibly new file.
These identify the various errors that can occur while calling
FileChooser
functions.
Describes changes in a filter in more detail and allows objects using the filter to optimize refiltering items.
Describes the known strictness of a filter.
Built-in icon sizes.
Error codes for IconTheme
operations.
An enum for determining where a dropped item goes.
Describes primary purpose of the input widget.
Used for justifying the text inside a Label
widget.
Describes how LevelBar
contents should be rendered.
The type of license for an application.
The type of message being displayed in a MessageDialog
.
Passed as argument to various keybinding signals for moving the cursor position.
The parameter used in the action signals of Notebook
.
Used to determine the layout of pages on a sheet when printing multiple pages per sheet.
Describes the way two values can be compared.
Represents the orientation of widgets and other objects.
Defines how content overflowing a given area should be handled.
Represents the packing location of a children in its parent.
The type of a pad action.
See also PrintJob::set_page_set()
.
Describes the panning direction of a GesturePan
Determines how the size should be computed to achieve the one of the visibility mode for the scrollbars.
Describes which edge of a widget a certain feature is positioned at.
See also PrintSettings::set_duplex()
.
Error codes that identify various errors that can occur while using the GTK printing support.
Determines what action the print operation should perform.
The result of a print operation.
See also PrintJob::set_pages()
See also PrintSettings::set_quality()
.
The status gives a rough indication of the completion of a running print operation.
Describes limits of a EventController
for handling events
targeting other widgets.
Describes the stage at which events are fed into a EventController
.
Error codes for RecentManager
operations
Predefined values for use as response ids in DialogExt::add_button()
.
These enumeration values describe the possible transitions
when the child of a Revealer
widget is shown or hidden.
Passed as argument to various keybinding signals.
Scrolling types.
Defines the policy to be used in a scrollable widget when updating the scrolled window adjustments in a given orientation.
Used to control what selections users are allowed to make.
Determines how GTK handles the sensitivity of various controls, such as combo box buttons.
Describes where Shortcut
s added to a
ShortcutController
get handled.
GtkShortcutType specifies the kind of shortcut that is being described.
The mode of the size group determines the directions in which the size group affects the requested sizes of its component widgets.
Specifies a preference for height-for-width or width-for-height geometry management.
Determines the direction of a sort.
Describes changes in a sorter in more detail and allows users to optimize resorting.
Describes the type of order that a Sorter
may produce.
Determines whether the spin button displays values outside the adjustment bounds.
The values of the GtkSpinType enumeration are used to specify the
change to make in SpinButton::spin()
.
Possible transitions between pages in a Stack
widget.
Specifies how search strings are matched inside text.
Values that can be passed to the vfunc::Gtk::Widget::system_setting_changed
vfunc.
Reading directions for text.
Granularity types that extend the text selection. Use the
GtkTextView::extend-selection
signal to customize the selection.
Used to reference the layers of TextView
for the purpose of customized
drawing with the ::snapshot_layer vfunc.
Used to reference the parts of TextView
.
The sizing method the column uses to determine its width. Please note
that Autosize
are inefficient for large views, and
can make columns appear choppy.
An enum for determining where a dropped row goes.
Used to indicate which grid lines to draw in a tree view.
See also PrintSettings::set_paper_width()
.
Describes a type of line wrapping.
Constants
An undefined value. The accessible attribute is either unset, or its value is undefined.
The value used to refer to a guaranteed invalid position
in a GListModel
.
Use this priority for functionality related to size allocation.
A priority that can be used when adding a StyleProvider
for application-specific style information.
The priority used for default style information that is used in the absence of themes.
The priority used for style information provided
via Settings
.
The priority used for style information provided by themes.
The priority used for the style information from
$XDG_CONFIG_HOME/gtk-4.0/gtk.css
.
The priority at which the text view validates onscreen lines in an idle job in the background.
Statics
The name used for the stock full offset included by LevelBar
.
The name used for the stock high offset included by LevelBar
.
The name used for the stock low offset included by LevelBar
.
Name for the A3 paper size.
Name for the A4 paper size.
Name for the A5 paper size.
Name for the B5 paper size.
Name for the Executive paper size.
Name for the Legal paper size.
Name for the Letter paper size.
The key used by the “Print to file” printer to store the file name of the output without the path to the directory and the file extension.
The key used by the “Print to file” printer to store the directory to which the output should be written.
The key used by the “Print to file” printer to store the format of the output. The supported values are “PS” and “PDF”.
The key used by the “Print to file” printer to store the URI to which the output should be written. GTK itself supports only “file://” URIs.
Functions
Gets the modifier mask.
Converts an accelerator keyval and modifier mask into a string which can be used to represent the accelerator to the user.
Converts an accelerator keyval and modifier mask into a string that can be displayed to the user.
Converts an accelerator keyval and modifier mask into a string
parseable by accelerator_parse()
.
Converts an accelerator keyval and modifier mask
into a string parseable by gtk_accelerator_parse_with_keycode()
.
Parses a string representing an accelerator.
Determines whether a given keyval and modifier mask constitute a valid keyboard accelerator.
Returns the binary age as passed to libtool
.
Checks that the GTK library in use is compatible with the given version.
Returns the GTK debug flags that are currently active.
Returns the pango::Language
for the default language
currently in effect.
Prevents gtk_init
and gtk_init_check
from automatically calling
setlocale (LC_ALL, "")
.
Calls a function for all Printer
s.
Converts a color from HSV space to RGB.
Tries to initialize GTK.
Returns the interface age as passed to libtool
.
Returns true
if GTK has been initialized.
Returns true
if GTK has been initialized and this is the main thread.
Get the direction of the current locale. This is the expected reading direction for text and UI.
Returns the major version number of the GTK library.
Returns the micro version number of the GTK library.
Returns the minor version number of the GTK library.
Runs a page setup dialog, letting the user modify the values from
page_setup
. If the user cancels the dialog, the returned PageSetup
is identical to the passed in page_setup
, otherwise it contains the
modifications done in the dialog.
Runs a page setup dialog, letting the user modify the values from page_setup
.
Renders an activity indicator (such as in Spinner
).
The state StateFlags::CHECKED
determines whether there is
activity going on.
Renders an arrow pointing to angle
.
Renders the background of an element.
Renders a checkmark (as in a CheckButton
).
Renders an expander (as used in TreeView
and Expander
) in the area
defined by x
, y
, width
, height
. The state StateFlags::CHECKED
determines whether the expander is collapsed or expanded.
Renders a focus indicator on the rectangle determined by x
, y
, width
, height
.
Renders a frame around the rectangle defined by x
, y
, width
, height
.
Renders the icon in texture
at the specified x
and y
coordinates.
Renders layout
on the coordinates x
, y
Renders a line from (x0, y0) to (x1, y1).
Renders an option mark (as in a radio button), the StateFlags::CHECKED
state will determine whether the option is on or off, and
StateFlags::INCONSISTENT
whether it should be marked as undefined.
Converts a color from RGB space to HSV.
Sets the GTK debug flags.
Informs this crate that GTK has been initialized and the current thread is the main one.
A convenience function for showing an application’s about dialog.
This function launches the default application for showing a given uri, or shows an error dialog if that fails.
Checks whether the Accessible
has property
set.
Checks whether the Accessible
has relation
set.
Checks whether the GtkAccessible:accessible-role
of the accessible
is role
.
Checks whether the Accessible
has state
set.
Return the type ids that have been registered after
calling test_register_all_types()
.
Force registration of all core GTK object types.
Enters the main loop and waits for widget
to be “drawn”.
Creates a content provider for dragging path
from tree_model
.
Obtains a tree_model
and path
from value of target type
GTK_TYPE_TREE_ROW_DATA
.