diff --git a/dev/diff3to4/index.html b/dev/diff3to4/index.html index c192693b..24d6300a 100644 --- a/dev/diff3to4/index.html +++ b/dev/diff3to4/index.html @@ -1,2 +1,2 @@ -Gtk.jl to Gtk4.jl · Gtk4.jl

Differences between Gtk.jl and Gtk4.jl

Gtk4.jl builds on and is very similar to Gtk.jl. Here is a summary of what's different.

Properties

GObject properties can still be set and accessed using get_gtk_property and set_gtk_property!. However, properties are now mapped onto Julia properties, so one can set a window title using win.title = "My title". Also, the submodule GAccessor no longer exists. In Gtk4.jl, getter and setter methods are in the main Gtk4 module, but most are not exported. Whereas in Gtk.jl one uses GAccessor.title(win, "My title") to set the title, in Gtk4.jl the equivalent is Gtk4.title(win, "My title").

Constants, enums, and flags

GTK constants in Gtk4.jl are in the main module instead of a Constants submodule.

In Gtk.jl, GTK's enum and flags constants are turned into integers. In Gtk4.jl, these are now mapped onto Julia enums, specifically the implementations CEnum.jl for enums and BitFlags.jl for flags. This improves understandability when a function returns an enum or flag, but the downside is the sometimes extreme length of the enum's name. To mitigate this, convert methods are defined for commonly used enums so that shorter symbols can be used instead of the full enum name. For example, :h can be used instead of Gtk4.Orientation_HORIZONTAL in GtkBox(orientation, spacing).

G_ contains automatically generated methods

In Gtk.jl, the submodule Gtk.GAccessor contains getter and setter methods, which often correspond to object properties. In Gtk4.jl, the submodule Gtk4.G_ contains automatically generated methods, which include all methods in GAccessor and many more. These methods directly call the C functions in libgtk and thus use 0-based indexing. Where possible, they translate between Julia types and C types, for example converting nothing to C_NULL and vice versa.

For consistency, the getter and setter methods in G_ keep their full names, including "set" and "get". For example, to set the title of a window in Gtk4.jl use G_.set_title(w, "text") rather than GAccessor.title(w, "text") as in Gtk.jl.

GObject and struct names

The equivalent of Gtk.ShortNames doesn't exist. All GObject types are mapped onto Julia types with the same name. Leaving out the namespace, as is done in the Python pygobject bindings, would have led to name collisions between Gtk types and Julia types or between Gtk and other GObject libraries.

No showall

In GTK 4, widgets are shown by default, so showall does not exist. Controlling a widget's initial visibility can be done using the visible property.

No GtkContainer

In GTK 4, GtkContainer has been removed and most widgets derive directly from GtkWidget. Each class that can contain child widgets has its own functions for adding and/or removing them. In Gtk4.jl, collection interface methods like push! have been defined for containers that hold many widgets, such as GtkBox. For widgets that have one child, such as GtkWindow, getindex and setindex! have been defined, so that one can set a child widget using window[] = child.

Events

Events such as button presses are handled through "event controllers" in GTK 4.

Dialogs

Dialogs no longer have a run method that takes over the GLib main loop while waiting for the user's response.

GLib event loop

The GLib main loop starts automatically if Julia is in an interactive session. If not, you will have to start it by calling start_main_loop or by creating a GtkApplication and calling run (see the example application.jl).

MutableTypes and GValue

All uses of mutable from Gtk.jl's GLib.MutableTypes should be replaced by Julia's Ref. The type of a GValue can be set using settype! rather than setindex!.

More information

The GTK docs have a migration guide with detailed recommendations for migrating C code from GTK version 3 to version 4. Much of that advice applies to Julia code.

+Gtk.jl to Gtk4.jl · Gtk4.jl

Differences between Gtk.jl and Gtk4.jl

Gtk4.jl builds on and is very similar to Gtk.jl. Here is a summary of what's different.

Properties

GObject properties can still be set and accessed using get_gtk_property and set_gtk_property!. However, properties are now mapped onto Julia properties, so one can set a window title using win.title = "My title". Also, the submodule GAccessor no longer exists. In Gtk4.jl, getter and setter methods are in the main Gtk4 module, but most are not exported. Whereas in Gtk.jl one uses GAccessor.title(win, "My title") to set the title, in Gtk4.jl the equivalent is Gtk4.title(win, "My title").

Constants, enums, and flags

GTK constants in Gtk4.jl are in the main module instead of a Constants submodule.

In Gtk.jl, GTK's enum and flags constants are turned into integers. In Gtk4.jl, these are now mapped onto Julia enums, specifically the implementations CEnum.jl for enums and BitFlags.jl for flags. This improves understandability when a function returns an enum or flag, but the downside is the sometimes extreme length of the enum's name. To mitigate this, convert methods are defined for commonly used enums so that shorter symbols can be used instead of the full enum name. For example, :h can be used instead of Gtk4.Orientation_HORIZONTAL in GtkBox(orientation, spacing).

G_ contains automatically generated methods

In Gtk.jl, the submodule Gtk.GAccessor contains getter and setter methods, which often correspond to object properties. In Gtk4.jl, the submodule Gtk4.G_ contains automatically generated methods, which include all methods in GAccessor and many more. These methods directly call the C functions in libgtk and thus use 0-based indexing. Where possible, they translate between Julia types and C types, for example converting nothing to C_NULL and vice versa.

For consistency, the getter and setter methods in G_ keep their full names, including "set" and "get". For example, to set the title of a window in Gtk4.jl use G_.set_title(w, "text") rather than GAccessor.title(w, "text") as in Gtk.jl.

GObject and struct names

The equivalent of Gtk.ShortNames doesn't exist. All GObject types are mapped onto Julia types with the same name. Leaving out the namespace, as is done in the Python pygobject bindings, would have led to name collisions between Gtk types and Julia types or between Gtk and other GObject libraries.

No showall

In GTK 4, widgets are shown by default, so showall does not exist. Controlling a widget's initial visibility can be done using the visible property.

No GtkContainer

In GTK 4, GtkContainer has been removed and most widgets derive directly from GtkWidget. Each class that can contain child widgets has its own functions for adding and/or removing them. In Gtk4.jl, collection interface methods like push! have been defined for containers that hold many widgets, such as GtkBox. For widgets that have one child, such as GtkWindow, getindex and setindex! have been defined, so that one can set a child widget using window[] = child.

Events

Events such as button presses are handled through "event controllers" in GTK 4.

Dialogs

Dialogs no longer have a run method that takes over the GLib main loop while waiting for the user's response.

GLib event loop

The GLib main loop starts automatically if Julia is in an interactive session. If not, you will have to start it by calling start_main_loop or by creating a GtkApplication and calling run (see the example application.jl).

MutableTypes and GValue

All uses of mutable from Gtk.jl's GLib.MutableTypes should be replaced by Julia's Ref. The type of a GValue can be set using settype! rather than setindex!.

More information

The GTK docs have a migration guide with detailed recommendations for migrating C code from GTK version 3 to version 4. Much of that advice applies to Julia code.

diff --git a/dev/doc/GLib_reference/index.html b/dev/doc/GLib_reference/index.html index e005fb07..09787750 100644 --- a/dev/doc/GLib_reference/index.html +++ b/dev/doc/GLib_reference/index.html @@ -1,2 +1,2 @@ -GLib Reference · Gtk4.jl

GLib Reference

Event loop

Gtk4.GLib.pause_main_loopFunction
pause_main_loop(f)

Pauses the GLib event loop around a function. Restores the original state of the event loop after calling the function. This function does not pause the event loop if it is being run by a GApplication.

source
Gtk4.GLib.start_main_loopFunction
start_main_loop(wait=false)

If the default GLib main event loop is not already running, start a Julia task that runs it. Returns the task. If wait is true, it will block until the main loop starts running.

See also stop_main_loop.

source
Gtk4.GLib.stop_main_loopFunction
stop_main_loop(wait=false)

Stops the default GLib main loop after the next iteration. If wait is true, it will block until the main loop stops running.

Does not affect loop operation if GApplication's run() method is being used instead of GLib.start_main_loop().

See also start_main_loop.

source
Gtk4.GLib.@idle_addMacro
@idle_add(ex)

Create a function from an expression ex that will be called when there are no higher priority GTK events to be processed. This function can be used from any thread.

See also g_idle_add.

Related GTK function: g_idle_add()

source
Gtk4.GLib.g_idle_addFunction
g_idle_add(f, priority=PRIORITY_DEFAULT_IDLE)

Add a Julia function f that will be called when there are no higher priority GTK events to be processed. This function can be used from any thread. The optional priority argument, which is an integer, sets the priority of the event source (smaller is higher priority). The GLib main loop uses this priority value to decide what sources to handle next.

See also @idle_add.

Related GTK function: g_idle_add_full()

source
Gtk4.GLib.g_timeout_addFunction
g_timeout_add(f, interval, priority=PRIORITY_DEFAULT)

Add a function f that will be called every interval milliseconds by the GTK main loop. If the function returns true, it will be called again after another interval milliseconds. If it returns false it will not be called again. The optional priority argument, which is an integer, sets the priority of the event source (smaller is higher priority). The GLib main loop uses this priority value to decide what sources to handle next.

This function returns an event source ID that can be used with g_source_remove to stop the timeout externally.

Related GTK function: g_timeout_add()

source
Gtk4.GLib.g_source_removeFunction
g_source_remove(id::Integer)

Remove the event source identified by id from the GLib main loop. The id is returned by g_idle_add and g_timeout_add. The main loop reuses id's so care should be taken that the source intended to be removed is still active.

Related GTK function: g_source_remove()

source
Gtk4.GLib.set_uv_loop_integrationFunction
set_uv_loop_integration(s = "auto")

Change Gtk4.jl's libuv loop integration setting. The argument s should be "auto" to use Gtk4.jl's default setting or "enabled" or "disabled" to override this. This setting will take effect after restarting Julia.

Enabling libuv loop integration may improve REPL response on some platforms (Mac) but negatively impacts multithreaded performance. This function has no effect when running on Windows.

source
Base.runFunction
run(app::GApplication)

Calls g_application_run, starting the main loop. If the loop is already running, it will stop it before starting the application loop.

source

REPL helper functions

These are functions that are intended to be used in the REPL to look up information about GObjects and their properties and signals.

Gtk4.GLib.propertyinfoFunction
propertyinfo(w::GObject, name)

Prints information about a property of the GObject w, including a brief description, its type, its default value, and its current value.

source
Gtk4.GLib.signalnamesFunction
signalnames(::Type{T}) where T <: GObject

Returns a list of the names of supported signals for T.

source
Gtk4.GLib.signal_return_typeFunction
signal_return_type(::Type{T}, name::Symbol) where T <: GObject

Gets the return type for the callback for the signal name of a GObject type (for example GtkWidget).

source
Gtk4.GLib.signal_argument_typesFunction
signal_argument_types(::Type{T}, name::Symbol) where T <: GObject

Gets the argument types for the callback for the signal name of a GObject type (for example GtkWidget).

source

Properties

Gtk4.GLib.on_notifyFunction
on_notify(f, object::GObject, property, user_data = object, after = false)

Connect a callback f to the object's "notify::property" signal that will be called whenever the property changes. The callback signature should be f(::Ptr, param::Ptr{GParamSpec}, user_data) and the function should return nothing.

source
Gtk4.GLib.bind_propertyFunction
bind_property(source::GObject, source_property, target::GObject, target_property, flags = BindingFlags_DEFAULT)

Creates a binding between source_property on source and target_property on target. When source_property is changed, target_property will be updated to the same value. Returns a GBinding object that can be used to release the binding using unbind_property.

See also unbind_property.

Related GTK function: g_object_bind_property

source
Gtk4.GLib.setproperties!Function
setproperties!(obj::GObject; kwargs...)

Set many GObject properties at once using keyword arguments. For example for a GtkWindow, setproperties!(win; title="New title", visible=true).

source
Gtk4.GLib.set_gtk_property!Function
set_gtk_property!(w::GObject, name, ::Type{T}, value)

Set a GObject property name (which can be a string or symbol) to value converted to type T.

source
set_gtk_property!(w::GObject, name, value)

Set a GObject property name (which can be a string or symbol) to value. The type of value will be converted to match the property type, if possible.

GObject properties are mapped onto Julia instance properties, so note that this function is equivalent to the more convenient syntax w.name = value.

See also get_gtk_property.

source
Gtk4.GLib.get_gtk_propertyFunction
get_gtk_property(w::GObject, name::AbstractString, ::Type{T})

Get a GObject property's value as type T.

source
get_gtk_property(w::GObject, name::AbstractString)

Get a GObject property's value. The type of the returned value depends on the property, so this function's output is type unstable.

GObject properties are mapped onto Julia instance properties, so this function is equivalent to the syntax w.name.

See also set_gtk_property!.

source

Signals

Gtk4.GLib.signal_emitFunction
signal_emit(w::GObject, sig::AbstractStringLike, ::Type{RT}, args...) where RT

Cause an object signal to be emitted. The return type RT and the correct number of arguments (of the correct type) must be provided. The argument list should exclude the user_data argument.

source
Gtk4.GLib.waitforsignalFunction
waitforsignal(obj::GObject, signal)

Returns when a GObject's signal is emitted. Can be used to wait for a window to be closed. This function should only be used for signals that return nothing, with one exception: the "close-request" signal of GtkWindow.

source

Actions and action groups

Gtk4.GLib.add_actionFunction
add_action(m::GActionMap, name::AbstractString, parameter::Type{T}, handler::Function)

Add an action with name and a parameter of type T to a GActionMap. Also connect a handler for the action's "activate" signal.

source
add_action(m::GActionMap, name::AbstractString, handler::Function)

Add an action with name to a GActionMap. Also connect a handler for the action's "activate" signal.

source
Gtk4.GLib.add_stateful_actionFunction
add_stateful_action(m::GActionMap, name::AbstractString, parameter::Type{T}, initial_state, handler::Function)

Add a stateful action with name, a parameter of type T, and an initial state to a GActionMap. Also connect a handler for the action's "change-state" signal.

source
add_stateful_action(m::GActionMap, name::AbstractString, initial_state, handler::Function)

Add a stateful action with name and an initial state to a GActionMap. Also connect a handler for the action's "change-state" signal.

source

GObject type system

Gtk4.GLib.find_leaf_typeFunction
find_leaf_type(hnd::Ptr{T}) where T <: GObject

For a pointer to a GObject, look up its type in the GType system and return the Julia leaf type that best matches it. For types supported by Gtk4, for example GtkWindow, this will be the leaf type GtkWindowLeaf. Some types defined in GTK4 and other libraries are not exported. In this case, the nearest parent type supported by the Julia package will be returned. For example, objects in GIO that implement the GFile interface are returned as GObjectLeaf.

source
+GLib Reference · Gtk4.jl

GLib Reference

Event loop

Gtk4.GLib.pause_main_loopFunction
pause_main_loop(f)

Pauses the GLib event loop around a function. Restores the original state of the event loop after calling the function. This function does not pause the event loop if it is being run by a GApplication.

source
Gtk4.GLib.start_main_loopFunction
start_main_loop(wait=false)

If the default GLib main event loop is not already running, start a Julia task that runs it. Returns the task. If wait is true, it will block until the main loop starts running.

See also stop_main_loop.

source
Gtk4.GLib.stop_main_loopFunction
stop_main_loop(wait=false)

Stops the default GLib main loop after the next iteration. If wait is true, it will block until the main loop stops running.

Does not affect loop operation if GApplication's run() method is being used instead of GLib.start_main_loop().

See also start_main_loop.

source
Gtk4.GLib.@idle_addMacro
@idle_add(ex)

Create a function from an expression ex that will be called when there are no higher priority GTK events to be processed. This function can be used from any thread.

See also g_idle_add.

Related GTK function: g_idle_add()

source
Gtk4.GLib.g_idle_addFunction
g_idle_add(f, priority=PRIORITY_DEFAULT_IDLE)

Add a Julia function f that will be called when there are no higher priority GTK events to be processed. This function can be used from any thread. The optional priority argument, which is an integer, sets the priority of the event source (smaller is higher priority). The GLib main loop uses this priority value to decide what sources to handle next.

See also @idle_add.

Related GTK function: g_idle_add_full()

source
Gtk4.GLib.g_timeout_addFunction
g_timeout_add(f, interval, priority=PRIORITY_DEFAULT)

Add a function f that will be called every interval milliseconds by the GTK main loop. If the function returns true, it will be called again after another interval milliseconds. If it returns false it will not be called again. The optional priority argument, which is an integer, sets the priority of the event source (smaller is higher priority). The GLib main loop uses this priority value to decide what sources to handle next.

This function returns an event source ID that can be used with g_source_remove to stop the timeout externally.

Related GTK function: g_timeout_add()

source
Gtk4.GLib.g_source_removeFunction
g_source_remove(id::Integer)

Remove the event source identified by id from the GLib main loop. The id is returned by g_idle_add and g_timeout_add. The main loop reuses id's so care should be taken that the source intended to be removed is still active.

Related GTK function: g_source_remove()

source
Gtk4.GLib.set_uv_loop_integrationFunction
set_uv_loop_integration(s = "auto")

Change Gtk4.jl's libuv loop integration setting. The argument s should be "auto" to use Gtk4.jl's default setting or "enabled" or "disabled" to override this. This setting will take effect after restarting Julia.

Enabling libuv loop integration may improve REPL response on some platforms (Mac) but negatively impacts multithreaded performance. This function has no effect when running on Windows.

source
Base.runFunction
run(app::GApplication)

Calls g_application_run, starting the main loop. If the loop is already running, it will stop it before starting the application loop.

source

REPL helper functions

These are functions that are intended to be used in the REPL to look up information about GObjects and their properties and signals.

Gtk4.GLib.propertyinfoFunction
propertyinfo(w::GObject, name)

Prints information about a property of the GObject w, including a brief description, its type, its default value, and its current value.

source
Gtk4.GLib.signalnamesFunction
signalnames(::Type{T}) where T <: GObject

Returns a list of the names of supported signals for T.

source
Gtk4.GLib.signal_return_typeFunction
signal_return_type(::Type{T}, name::Symbol) where T <: GObject

Gets the return type for the callback for the signal name of a GObject type (for example GtkWidget).

source
Gtk4.GLib.signal_argument_typesFunction
signal_argument_types(::Type{T}, name::Symbol) where T <: GObject

Gets the argument types for the callback for the signal name of a GObject type (for example GtkWidget).

source

Properties

Gtk4.GLib.on_notifyFunction
on_notify(f, object::GObject, property, user_data = object, after = false)

Connect a callback f to the object's "notify::property" signal that will be called whenever the property changes. The callback signature should be f(::Ptr, param::Ptr{GParamSpec}, user_data) and the function should return nothing.

source
Gtk4.GLib.bind_propertyFunction
bind_property(source::GObject, source_property, target::GObject, target_property, flags = BindingFlags_DEFAULT)

Creates a binding between source_property on source and target_property on target. When source_property is changed, target_property will be updated to the same value. Returns a GBinding object that can be used to release the binding using unbind_property.

See also unbind_property.

Related GTK function: g_object_bind_property

source
Gtk4.GLib.setproperties!Function
setproperties!(obj::GObject; kwargs...)

Set many GObject properties at once using keyword arguments. For example for a GtkWindow, setproperties!(win; title="New title", visible=true).

source
Gtk4.GLib.set_gtk_property!Function
set_gtk_property!(w::GObject, name, ::Type{T}, value)

Set a GObject property name (which can be a string or symbol) to value converted to type T.

source
set_gtk_property!(w::GObject, name, value)

Set a GObject property name (which can be a string or symbol) to value. The type of value will be converted to match the property type, if possible.

GObject properties are mapped onto Julia instance properties, so note that this function is equivalent to the more convenient syntax w.name = value.

See also get_gtk_property.

source
Gtk4.GLib.get_gtk_propertyFunction
get_gtk_property(w::GObject, name::AbstractString, ::Type{T})

Get a GObject property's value as type T.

source
get_gtk_property(w::GObject, name::AbstractString)

Get a GObject property's value. The type of the returned value depends on the property, so this function's output is type unstable.

GObject properties are mapped onto Julia instance properties, so this function is equivalent to the syntax w.name.

See also set_gtk_property!.

source

Signals

Gtk4.GLib.signal_emitFunction
signal_emit(w::GObject, sig::AbstractStringLike, ::Type{RT}, args...) where RT

Cause an object signal to be emitted. The return type RT and the correct number of arguments (of the correct type) must be provided. The argument list should exclude the user_data argument.

source
Gtk4.GLib.waitforsignalFunction
waitforsignal(obj::GObject, signal)

Returns when a GObject's signal is emitted. Can be used to wait for a window to be closed. This function should only be used for signals that return nothing, with one exception: the "close-request" signal of GtkWindow.

source

Actions and action groups

Gtk4.GLib.add_actionFunction
add_action(m::GActionMap, name::AbstractString, parameter::Type{T}, handler::Function)

Add an action with name and a parameter of type T to a GActionMap. Also connect a handler for the action's "activate" signal.

source
add_action(m::GActionMap, name::AbstractString, handler::Function)

Add an action with name to a GActionMap. Also connect a handler for the action's "activate" signal.

source
Gtk4.GLib.add_stateful_actionFunction
add_stateful_action(m::GActionMap, name::AbstractString, parameter::Type{T}, initial_state, handler::Function)

Add a stateful action with name, a parameter of type T, and an initial state to a GActionMap. Also connect a handler for the action's "change-state" signal.

source
add_stateful_action(m::GActionMap, name::AbstractString, initial_state, handler::Function)

Add a stateful action with name and an initial state to a GActionMap. Also connect a handler for the action's "change-state" signal.

source

GObject type system

Gtk4.GLib.find_leaf_typeFunction
find_leaf_type(hnd::Ptr{T}) where T <: GObject

For a pointer to a GObject, look up its type in the GType system and return the Julia leaf type that best matches it. For types supported by Gtk4, for example GtkWindow, this will be the leaf type GtkWindowLeaf. Some types defined in GTK4 and other libraries are not exported. In this case, the nearest parent type supported by the Julia package will be returned. For example, objects in GIO that implement the GFile interface are returned as GObjectLeaf.

source
diff --git a/dev/doc/GLib_types_reference/index.html b/dev/doc/GLib_types_reference/index.html index a9ed1bfa..5bad12d4 100644 --- a/dev/doc/GLib_types_reference/index.html +++ b/dev/doc/GLib_types_reference/index.html @@ -1,3 +1,3 @@ -GLib Types · Gtk4.jl

GLib Types

Gtk4.GLib.GSimpleActionMethod
GSimpleAction(name::AbstractString, 
-              [parameter_type::Type{T}, [initial_state]]; kwargs...) where T

Create an action with a name and optionally a parameter_type from a Julia type (only a few simple types are supported) and an initial_state. If initial_state is not provided, the action will be stateless.

Keyword arguments set the action's GObject properties.

source
+GLib Types · Gtk4.jl

GLib Types

Gtk4.GLib.GSimpleActionMethod
GSimpleAction(name::AbstractString, 
+              [parameter_type::Type{T}, [initial_state]]; kwargs...) where T

Create an action with a name and optionally a parameter_type from a Julia type (only a few simple types are supported) and an initial_state. If initial_state is not provided, the action will be stateless.

Keyword arguments set the action's GObject properties.

source
diff --git a/dev/doc/Gtk4_types_reference/index.html b/dev/doc/Gtk4_types_reference/index.html index 36e9fdf0..bc2e2c65 100644 --- a/dev/doc/Gtk4_types_reference/index.html +++ b/dev/doc/Gtk4_types_reference/index.html @@ -1,4 +1,4 @@ -Gtk4 Types · Gtk4.jl

Gtk4 Types

Types

Gtk4.GdkMemoryTextureType
GdkMemoryTexture(img::Array, tp = true)

Creates a GdkMemoryTexture, copying an image array. If tp is set to true, the image will be transposed before copying so that the texture's orientation when displayed by GTK widgets like GtkPicture will match how the image is displayed in Julia apps like ImageShow.

source
Gtk4.GtkApplicationWindowMethod
GtkApplicationWindow(app::GtkApplication, title::AbstractString; kwargs...)

Create an empty GtkApplicationWindow for a GtkApplication app and a title. Keyword arguments can be used to set GObject properties.

source
Gtk4.GtkBoxType
GtkBox(orientation::Symbol, spacing::Integer=0; kwargs...)

Create and return a GtkBox widget. The orientation argument can be :h for horizontal, or :v for vertical. The spacing argument controls the spacing between child widgets in pixels. Keyword arguments allow you to set GObject properties.

source
Gtk4.GtkBuilderType
GtkBuilder(; kwargs...)
+Gtk4 Types · Gtk4.jl

Gtk4 Types

Types

Gtk4.GdkMemoryTextureType
GdkMemoryTexture(img::Array, tp = true)

Creates a GdkMemoryTexture, copying an image array. If tp is set to true, the image will be transposed before copying so that the texture's orientation when displayed by GTK widgets like GtkPicture will match how the image is displayed in Julia apps like ImageShow.

source
Gtk4.GtkApplicationWindowMethod
GtkApplicationWindow(app::GtkApplication, title::AbstractString; kwargs...)

Create an empty GtkApplicationWindow for a GtkApplication app and a title. Keyword arguments can be used to set GObject properties.

source
Gtk4.GtkBoxType
GtkBox(orientation::Symbol, spacing::Integer=0; kwargs...)

Create and return a GtkBox widget. The orientation argument can be :h for horizontal, or :v for vertical. The spacing argument controls the spacing between child widgets in pixels. Keyword arguments allow you to set GObject properties.

source
Gtk4.GtkBuilderType
GtkBuilder(; kwargs...)
 GtkBuilder(filename::AbstractString; kwargs...)
-GtkBuilder(string::AbstractString, _length::Integer; kwargs...)

Create a GtkBuilder object. If filename is given (the constructor with a single string argument), XML describing the user interface will be read from a file. If string and length are given (the constructor with a string and an integer), XML will be read from a string of a certain length. If length is -1 the full string will be used.

See the GTK docs.

source
Gtk4.GtkButtonMethod
GtkButton(w::GtkWidget)

Create a GtkButton and add a widget w as its child.

source
Gtk4.GtkButtonMethod
GtkButton(s::Symbol, str::AbstractString)

Create and return a GtkButton widget.

If s is :label, create a button with a string label.

If s is :mnemonic, create a button with a string label, where the first letter preceded by an underscore character defines a mnemonic. Pressing Alt and that letter activates the button.

If s is :icon_name, create a button with an icon from the current icon theme.

Related GTK functions: gtk_button_new_with_label(), gtk_button_new_with_mnemonic(), gtk_button_new_from_icon_name()

source
Gtk4.GtkCenterBoxMethod
GtkCenterBox(orientation::Symbol; kwargs...)

Create and return a GtkCenterBox widget. The orientation argument can be :h for horizontal, or :v for vertical. Keyword arguments allow you to set GObject properties.

source
Gtk4.GtkDropDownMethod
GtkDropDown(a::AbstractArray; kwargs...)

Create a dropdown widget with a GtkStringList as its model. The model will be populated with the elements of a converted to strings. Keyword arguments set GObject properties.

source
Gtk4.GtkDropDownMethod
GtkDropDown(; kwargs...)

Create a dropdown widget with no model (and thus no options to selected). A model can be added using model. Keyword arguments set GObject properties.

source
Gtk4.GtkFileDialogMethod
GtkFileDialog(; kwargs...)

Selected keyword arguments

  • accept_label: the text to show on the dialog's accept button
  • default_filter: the GtkFileFilter initially active in the file dialog
  • filters: a GListModel of file filters
  • initial_name: the filename or directory that is initially selected in the file chooser dialog
  • title: the title of the dialog
  • modal: whether the dialog is modal
source
Gtk4.GtkFrameType
GtkFrame(w::GtkWidget, label=nothing; kwargs...)

Create a GtkFrame with an optional string label and add w as its child. Keyword arguments allow you to set GObject properties.

source
Gtk4.GtkFrameMethod
GtkFrame(label=nothing; kwargs...)

Create a GtkFrame, a layout widget that can hold a single child widget, with an optional string label. Keyword arguments allow you to set GObject properties.

source
Gtk4.GtkGridViewType
GtkGridView(model=nothing; kwargs...)

Create a GtkGridView widget, optionally with a model. Keyword arguments set GObject properties.

source
Gtk4.GtkListViewType
GtkListView(model=nothing; kwargs...)

Create a GtkListView widget, optionally with a model. Keyword arguments set GObject properties.

source
Gtk4.GtkOverlayMethod
GtkOverlay(w=nothing; kwargs...)

Create a GtkOverlay, a layout widget that holds one main child and other child "overlay" widgets that are drawn on top of the main child. The main child can be set using the argument w.

source
Gtk4.GtkPanedMethod
GtkPaned(orientation::Symbol; kwargs...)

Create and return a GtkPaned widget. The orientation argument can be :h for horizontal, or :v for vertical. Keyword arguments allow you to set GObject properties.

source
Gtk4.GtkScaleMethod
GtkScale(orientation, [scale::AbstractRange]; kwargs...)

Create a scale widget with horizontal (:h) or vertical (:v) orientation and an optional range. Keyword arguments can be used to set properties.

source
Gtk4.GtkSignalListItemFactoryMethod
GtkSignalListItemFactory(setup_cb, bind_cb)

Create a GtkSignalListItemFactory and immediately connect "setup" and "bind" callback functions setup_cb and bind_cb, respectively.

source
Gtk4.GtkStringListMethod
GtkStringList()

Create an empty GtkStringList, which implements the GListModel interface and holds an array of strings.

source
Gtk4._GtkTextIterMethod
_GtkTextIter(text::GtkTextBuffer, char_offset::Integer)

Creates a _GtkTextIter with offset char_offset (one-based index).

source
+GtkBuilder(string::AbstractString, _length::Integer; kwargs...)

Create a GtkBuilder object. If filename is given (the constructor with a single string argument), XML describing the user interface will be read from a file. If string and length are given (the constructor with a string and an integer), XML will be read from a string of a certain length. If length is -1 the full string will be used.

See the GTK docs.

source
Gtk4.GtkButtonMethod
GtkButton(w::GtkWidget)

Create a GtkButton and add a widget w as its child.

source
Gtk4.GtkButtonMethod
GtkButton(s::Symbol, str::AbstractString)

Create and return a GtkButton widget.

If s is :label, create a button with a string label.

If s is :mnemonic, create a button with a string label, where the first letter preceded by an underscore character defines a mnemonic. Pressing Alt and that letter activates the button.

If s is :icon_name, create a button with an icon from the current icon theme.

Related GTK functions: gtk_button_new_with_label(), gtk_button_new_with_mnemonic(), gtk_button_new_from_icon_name()

source
Gtk4.GtkCenterBoxMethod
GtkCenterBox(orientation::Symbol; kwargs...)

Create and return a GtkCenterBox widget. The orientation argument can be :h for horizontal, or :v for vertical. Keyword arguments allow you to set GObject properties.

source
Gtk4.GtkDropDownMethod
GtkDropDown(a::AbstractArray; kwargs...)

Create a dropdown widget with a GtkStringList as its model. The model will be populated with the elements of a converted to strings. Keyword arguments set GObject properties.

source
Gtk4.GtkDropDownMethod
GtkDropDown(; kwargs...)

Create a dropdown widget with no model (and thus no options to selected). A model can be added using model. Keyword arguments set GObject properties.

source
Gtk4.GtkFileDialogMethod
GtkFileDialog(; kwargs...)

Selected keyword arguments

  • accept_label: the text to show on the dialog's accept button
  • default_filter: the GtkFileFilter initially active in the file dialog
  • filters: a GListModel of file filters
  • initial_name: the filename or directory that is initially selected in the file chooser dialog
  • title: the title of the dialog
  • modal: whether the dialog is modal
source
Gtk4.GtkFrameType
GtkFrame(w::GtkWidget, label=nothing; kwargs...)

Create a GtkFrame with an optional string label and add w as its child. Keyword arguments allow you to set GObject properties.

source
Gtk4.GtkFrameMethod
GtkFrame(label=nothing; kwargs...)

Create a GtkFrame, a layout widget that can hold a single child widget, with an optional string label. Keyword arguments allow you to set GObject properties.

source
Gtk4.GtkGridViewType
GtkGridView(model=nothing; kwargs...)

Create a GtkGridView widget, optionally with a model. Keyword arguments set GObject properties.

source
Gtk4.GtkListViewType
GtkListView(model=nothing; kwargs...)

Create a GtkListView widget, optionally with a model. Keyword arguments set GObject properties.

source
Gtk4.GtkOverlayMethod
GtkOverlay(w=nothing; kwargs...)

Create a GtkOverlay, a layout widget that holds one main child and other child "overlay" widgets that are drawn on top of the main child. The main child can be set using the argument w.

source
Gtk4.GtkPanedMethod
GtkPaned(orientation::Symbol; kwargs...)

Create and return a GtkPaned widget. The orientation argument can be :h for horizontal, or :v for vertical. Keyword arguments allow you to set GObject properties.

source
Gtk4.GtkScaleMethod
GtkScale(orientation, [scale::AbstractRange]; kwargs...)

Create a scale widget with horizontal (:h) or vertical (:v) orientation and an optional range. Keyword arguments can be used to set properties.

source
Gtk4.GtkSignalListItemFactoryMethod
GtkSignalListItemFactory(setup_cb, bind_cb)

Create a GtkSignalListItemFactory and immediately connect "setup" and "bind" callback functions setup_cb and bind_cb, respectively.

source
Gtk4.GtkStringListMethod
GtkStringList()

Create an empty GtkStringList, which implements the GListModel interface and holds an array of strings.

source
Gtk4._GtkTextIterMethod
_GtkTextIter(text::GtkTextBuffer, char_offset::Integer)

Creates a _GtkTextIter with offset char_offset (one-based index).

source
diff --git a/dev/doc/constants_reference/index.html b/dev/doc/constants_reference/index.html index c3d65ea3..99f4838b 100644 --- a/dev/doc/constants_reference/index.html +++ b/dev/doc/constants_reference/index.html @@ -1,2 +1,2 @@ -Constants · Gtk4.jl

Constants

Gtk4

Gtk4.GdkPixbufLib

Gtk4.GLib

+Constants · Gtk4.jl

Constants

Gtk4

Gtk4.GdkPixbufLib

Gtk4.GLib

diff --git a/dev/doc/preferences/index.html b/dev/doc/preferences/index.html index 359185fc..b660b251 100644 --- a/dev/doc/preferences/index.html +++ b/dev/doc/preferences/index.html @@ -1,4 +1,4 @@ Preference Settings · Gtk4.jl

Preference Settings

Here is a list of preferences for Gtk4 that can be set using Preferences.jl.

EGL directories (Linux & Wayland)

GTK4 has a few different rendering backends, and by default on Linux it uses one based on OpenGL. Gtk4.jl uses JLL based libraries rather than the ones that come with your Linux distribution, and on Wayland, unfortunately, unless you tell libglvnd_jll where to find libEGL, it will be unable to find an OpenGL provider. As a result, on Wayland a Cairo-based fallback backend will be used. This may work fine for you, but it means that GtkGLArea will not work. We can tell libglvnd_jll where to find libEGL by setting the environment variable __EGL_VENDOR_LIBRARY_DIRS. See here for details.

You can point libglvnd_jll to a libEGL location using the preference "EGL_vendorlib_dirs":

using Gtk4
 Gtk4.set_EGL_vendorlib_dirs("/usr/share/glvnd/egl_vendor.d")
-[ Info: Setting will take effect after restarting Julia.

where "/usr/share/glvnd/egl_vendor.d" is a typical location for Mesa's libEGL (this should be modified if it's somewhere else on your distribution). Other vendor-provided libraries may be in other locations, and a colon-separated list of directories can be used for that situation. Note that this has only been tested for the Mesa-provided libEGL on Fedora and Ubuntu.

UV loop integration

GTK relies on an event loop (provided by GLib) to process and handle mouse and keyboard events, while Julia relies on its own event loop (provided by libuv) for IO, timers, etc. Interactions between these event loops can cause REPL lag and can interfere with multithreading performance. Explicit integration of the two loops by creating a libuv event source in the GLib main loop is currently disabled because it caused slowdowns in multithreaded code. On some Macs, unfortunately, REPL lag occurs without this explicit integration (explicit in the sense that libuv can insert events in the GLib main loop through its own GSource).

By default, explicit GLib loop integration is only turned on on Macs in an interactive session. You can override this using the preference "uv_loop_integration". If it's set to "enabled", the libuv GSource will be created. If it's set to "disabled", the libuv GSource will not be created, even on Macs in an interactive session. The setting "auto" uses the default behavior. The functions GLib.set_uv_loop_integration and GLib.get_uv_loop_integration can be used to set and get the preference.

+[ Info: Setting will take effect after restarting Julia.

where "/usr/share/glvnd/egl_vendor.d" is a typical location for Mesa's libEGL (this should be modified if it's somewhere else on your distribution). Other vendor-provided libraries may be in other locations, and a colon-separated list of directories can be used for that situation. Note that this has only been tested for the Mesa-provided libEGL on Fedora and Ubuntu.

UV loop integration

GTK relies on an event loop (provided by GLib) to process and handle mouse and keyboard events, while Julia relies on its own event loop (provided by libuv) for IO, timers, etc. Interactions between these event loops can cause REPL lag and can interfere with multithreading performance. Explicit integration of the two loops by creating a libuv event source in the GLib main loop is currently disabled because it caused slowdowns in multithreaded code. On some Macs, unfortunately, REPL lag occurs without this explicit integration (explicit in the sense that libuv can insert events in the GLib main loop through its own GSource).

By default, explicit GLib loop integration is only turned on on Macs in an interactive session. You can override this using the preference "uv_loop_integration". If it's set to "enabled", the libuv GSource will be created. If it's set to "disabled", the libuv GSource will not be created, even on Macs in an interactive session. The setting "auto" uses the default behavior. The functions GLib.set_uv_loop_integration and GLib.get_uv_loop_integration can be used to set and get the preference.

diff --git a/dev/doc/reference/index.html b/dev/doc/reference/index.html index 31c0439a..a514b10a 100644 --- a/dev/doc/reference/index.html +++ b/dev/doc/reference/index.html @@ -1,15 +1,15 @@ -Gtk4 Reference · Gtk4.jl

Gtk4 Reference

Widgets

Base.parentFunction
parent(w::GtkWidget)

Returns the parent widget of w, or nothing if the widget has not been set as the child of another widget (or is a toplevel widget, like a GtkWindow).

See also toplevel.

Related GTK function: gtk_widget_get_parent()

source
Gtk4.GLib.activateFunction
activate(a::GAction, par = nothing)

Activates an action, optionally with a parameter par, which if given should be a GVariant.

source
activate(w::GtkWidget)

Activates widgets like buttons, menu items, etc. that support being activated. Returns false if the widget is not activatable.

Related GTK function: gtk_widget_activate()

source
Gtk4.monitorFunction
monitor(w::GtkWidget)

Gets the GdkMonitor where w is displayed, or nothing if the widget is not part of a widget hierarchy.

source
Gtk4.isrealizedFunction
isrealized(w::GtkWidget)

Returns whether w is realized (that is, whether it has been associated with a drawing surface).

source

Windows

Gtk4.isactiveFunction
isactive(win::GtkWindow)

Returns whether win is the currently active toplevel. This is the window that receives keystrokes.

source
Gtk4.presentFunction
present(win::GtkWindow)
-present(win::GtkWindow, timestamp)

Presents a window to the user. Usually means move it to the front. According to the GTK docs, this function "should not be used" without including a timestamp for the user's request.

Related GTK function: gtk_window_present() Related GTK function: gtk_window_present_with_time()

source
Gtk4.toplevelsFunction
toplevels()

Returns a GListModel of all toplevel widgets (i.e. windows) known to GTK4.

source

Input widgets

Gtk4.configure!Function
configure!(adj::GtkAdjustment; value = nothing, lower = nothing, upper = nothing, step_increment = nothing, page_increment = nothing, page_size = nothing)

Sets all properties of an adjustment, while only resulting in one emission of the changed signal. If an argument is nothing, it is not changed.

Related GTK function: gtk_adjustment_configure()

source
configure!(sb::GtkSpinButton; adj = nothing, climb_rate = nothing, digits = nothing)

Sets the adjustment adj, the climb_rate, and the number of digits of a GtkSpinButton. If an argument is nothing, it is not changed.

Related GTK function: gtk_spin_button_configure()

source
Gtk4.selected_string!Function
selected_string!(d::GtkDropDown, s::AbstractString)

Set the selected item in a dropdown widget. This method assumes that the widget's model is a GtkStringList.

source
Gtk4.selected_stringFunction
selected_string(d::GtkDropDown)

Get the currently selected item in a dropdown widget. This method assumes that the widget's model is a GtkStringList or that items in the model have a "string" property.

source

Dialogs

Gtk4.ask_dialogFunction
ask_dialog(question::AbstractString, parent = nothing; timeout = -1)

Create a dialog with a message question and two buttons "No" and "Yes". Returns true if "Yes" is selected and false if "No" is selected or the dialog (or its parent window parent) is closed. The optional input timeout (disabled by default) can be used to set a time in seconds after which the dialog will close and false will be returned.

source
Gtk4.info_dialogFunction
info_dialog(message::AbstractString, parent = nothing; timeout = -1)

Create a dialog with an informational message message. Returns when the dialog (or its parent window parent) is closed. The optional input timeout (disabled by default) can be used to set a time in seconds after which the dialog will close and false will be returned.

source
Gtk4.input_dialogFunction
input_dialog(message::AbstractString, entry_default::AbstractString, buttons = (("Cancel", 0), ("Accept", 1)), parent = nothing; timeout = -1)

Create a dialog with a message message and a text entry. Returns the string in the entry when the "Accept" button is pressed, or entry_default if "Cancel" is pressed or the dialog or its parent window parent is closed. The optional input timeout (disabled by default) can be used to set a time in seconds after which the dialog will close and entry_default will be returned.

source
Gtk4.open_dialogFunction
open_dialog(title::AbstractString, parent = nothing, filters::Union{AbstractVector, Tuple} = String[]; timeout = -1, multiple = false, start_folder = "")

Create a dialog for choosing a file or folder to be opened. Returns the path chosen by the user, or "" if "Cancel" is pressed or the dialog or its parent window parent is closed. The dialog title is set using title. The argument filters can be used to show only directory contents that match certain file extensions.

Keyword arguments: timeout: The optional input timeout (disabled by default) can be used to set a time in seconds after which the dialog will close and "" will be returned. multiple: if true, multiple files can be selected, and a list of file paths is returned rather than a single path. start_folder: if set, the dialog will start out browsing a particular folder. Otherwise GTK will decide.

source
Gtk4.save_dialogFunction
save_dialog(title::AbstractString, parent = nothing, filters::Union{AbstractVector, Tuple} = String[]; timeout = -1, start_folder = "")

Create a dialog for choosing a file to be saved to. Returns the path chosen by the user, or "" if "Cancel" is pressed or the dialog or its parent window parent is closed. The window title is set using title. The argument filters can be used to show only directory contents that match certain file extensions.

Keyword arguments: timeout: The optional input timeout (disabled by default) can be used to set a time in seconds after which the dialog will close and "" will be returned. start_folder: if set, the dialog will start out browsing a particular folder. Otherwise GTK will decide.

source

GtkCanvas (for Cairo drawing)

Gtk4.GtkCanvasType
GtkCanvas(w = -1, h = -1, init_back = false; kwargs...)

Create a GtkCanvas widget for drawing using Cairo (based on GtkDrawingArea). Optional arguments w and h can be used to set the minimum width and height of the drawing area in pixels. If init_back is set to true, the canvas's image CairoSurface will be initialized immediately, which is useful for precompilation.

Keyword arguments can be used to set properties of the GtkDrawingArea widget.

source
Gtk4.drawFunction
draw(redraw::Function, widget::GtkCanvas)

Set a function redraw to be called whenever the GtkCanvas's CairoSurface needs to be redrawn. The function should have a single argument, the GtkCanvas, from which the CairoSurface can be retrieved using getgc.

source
Graphics.getgcFunction
getgc(c::GtkCanvas)

Return the CairoContext of the CairoSurface backing store of a GtkCanvas.

source
Gtk4.cairo_surfaceFunction
cairo_surface(c::GtkCanvas)

Return the image CairoSurface backing store for a GtkCanvas.

source

GtkGLArea

Event controllers

Gtk4.find_controllerFunction
find_controller(w::GtkWidget, ::Type{T}) where T <: GtkEventController

Returns an event controller of type T connected to a widget, or nothing if one doesn't exist. This function is intended for testing purposes (to simulate events) and is not recommended otherwise, as there is a performance penalty for creating a list of a widget's event controllers.

Related GTK function: gtk_widget_observe_controllers)

source
Gtk4.widgetFunction
widget(c::GtkEventController)

Returns the widget associated with an event controller.

source
Gtk4.add_action_shortcutFunction
add_action_shortcut(scc::GtkShortcutController,trigger::AbstractString,action::AbstractString)

Adds a shortcut specified by a string like "<Control>S" for an action (such as "app.save") to a GtkShortcutController.

source

GtkTextView

Gtk4.bufferFunction
buffer(iter::Union{Ref{_GtkTextIter}, _GtkTextIter})

Returns the buffer associated with iter.

source
Gtk4.undo!Function
undo!(buffer::GtkTextBuffer)

Implements gtk_text_buffer_undo.

source
Gtk4.redo!Function
redo!(buffer::GtkTextBuffer)

Implements gtk_text_buffer_redo.

source
Gtk4.create_markFunction
create_mark(buffer::GtkTextBuffer, mark_name, it::TI, left_gravity::Bool)
-create_mark(buffer::GtkTextBuffer, it::TI)

Implements gtk_text_buffer_create_mark.

source
Gtk4.place_cursorFunction
place_cursor(buffer::GtkTextBuffer, it::_GtkTextIter)
-place_cursor(buffer::GtkTextBuffer, pos::Int)

Place the cursor at indicated position.

source
Gtk4.scroll_toFunction
scroll_to(view::GtkTextView, mark::GtkTextMark, within_margin::Real,
+Gtk4 Reference · Gtk4.jl

Gtk4 Reference

Widgets

Base.parentFunction
parent(w::GtkWidget)

Returns the parent widget of w, or nothing if the widget has not been set as the child of another widget (or is a toplevel widget, like a GtkWindow).

See also toplevel.

Related GTK function: gtk_widget_get_parent()

source
Gtk4.GLib.activateFunction
activate(a::GAction, par = nothing)

Activates an action, optionally with a parameter par, which if given should be a GVariant.

source
activate(w::GtkWidget)

Activates widgets like buttons, menu items, etc. that support being activated. Returns false if the widget is not activatable.

Related GTK function: gtk_widget_activate()

source
Gtk4.monitorFunction
monitor(w::GtkWidget)

Gets the GdkMonitor where w is displayed, or nothing if the widget is not part of a widget hierarchy.

source
Gtk4.isrealizedFunction
isrealized(w::GtkWidget)

Returns whether w is realized (that is, whether it has been associated with a drawing surface).

source

Windows

Gtk4.isactiveFunction
isactive(win::GtkWindow)

Returns whether win is the currently active toplevel. This is the window that receives keystrokes.

source
Gtk4.presentFunction
present(win::GtkWindow)
+present(win::GtkWindow, timestamp)

Presents a window to the user. Usually means move it to the front. According to the GTK docs, this function "should not be used" without including a timestamp for the user's request.

Related GTK function: gtk_window_present() Related GTK function: gtk_window_present_with_time()

source
Gtk4.toplevelsFunction
toplevels()

Returns a GListModel of all toplevel widgets (i.e. windows) known to GTK4.

source

Input widgets

Gtk4.configure!Function
configure!(adj::GtkAdjustment; value = nothing, lower = nothing, upper = nothing, step_increment = nothing, page_increment = nothing, page_size = nothing)

Sets all properties of an adjustment, while only resulting in one emission of the changed signal. If an argument is nothing, it is not changed.

Related GTK function: gtk_adjustment_configure()

source
configure!(sb::GtkSpinButton; adj = nothing, climb_rate = nothing, digits = nothing)

Sets the adjustment adj, the climb_rate, and the number of digits of a GtkSpinButton. If an argument is nothing, it is not changed.

Related GTK function: gtk_spin_button_configure()

source
Gtk4.selected_string!Function
selected_string!(d::GtkDropDown, s::AbstractString)

Set the selected item in a dropdown widget. This method assumes that the widget's model is a GtkStringList.

source
Gtk4.selected_stringFunction
selected_string(d::GtkDropDown)

Get the currently selected item in a dropdown widget. This method assumes that the widget's model is a GtkStringList or that items in the model have a "string" property.

source

Dialogs

Gtk4.ask_dialogFunction
ask_dialog(question::AbstractString, parent = nothing; timeout = -1)

Create a dialog with a message question and two buttons "No" and "Yes". Returns true if "Yes" is selected and false if "No" is selected or the dialog (or its parent window parent) is closed. The optional input timeout (disabled by default) can be used to set a time in seconds after which the dialog will close and false will be returned.

source
Gtk4.info_dialogFunction
info_dialog(message::AbstractString, parent = nothing; timeout = -1)

Create a dialog with an informational message message. Returns when the dialog (or its parent window parent) is closed. The optional input timeout (disabled by default) can be used to set a time in seconds after which the dialog will close and false will be returned.

source
Gtk4.input_dialogFunction
input_dialog(message::AbstractString, entry_default::AbstractString, buttons = (("Cancel", 0), ("Accept", 1)), parent = nothing; timeout = -1)

Create a dialog with a message message and a text entry. Returns the string in the entry when the "Accept" button is pressed, or entry_default if "Cancel" is pressed or the dialog or its parent window parent is closed. The optional input timeout (disabled by default) can be used to set a time in seconds after which the dialog will close and entry_default will be returned.

source
Gtk4.open_dialogFunction
open_dialog(title::AbstractString, parent = nothing, filters::Union{AbstractVector, Tuple} = String[]; timeout = -1, multiple = false, start_folder = "")

Create a dialog for choosing a file or folder to be opened. Returns the path chosen by the user, or "" if "Cancel" is pressed or the dialog or its parent window parent is closed. The dialog title is set using title. The argument filters can be used to show only directory contents that match certain file extensions.

Keyword arguments: timeout: The optional input timeout (disabled by default) can be used to set a time in seconds after which the dialog will close and "" will be returned. multiple: if true, multiple files can be selected, and a list of file paths is returned rather than a single path. start_folder: if set, the dialog will start out browsing a particular folder. Otherwise GTK will decide.

source
Gtk4.save_dialogFunction
save_dialog(title::AbstractString, parent = nothing, filters::Union{AbstractVector, Tuple} = String[]; timeout = -1, start_folder = "")

Create a dialog for choosing a file to be saved to. Returns the path chosen by the user, or "" if "Cancel" is pressed or the dialog or its parent window parent is closed. The window title is set using title. The argument filters can be used to show only directory contents that match certain file extensions.

Keyword arguments: timeout: The optional input timeout (disabled by default) can be used to set a time in seconds after which the dialog will close and "" will be returned. start_folder: if set, the dialog will start out browsing a particular folder. Otherwise GTK will decide.

source

GtkCanvas (for Cairo drawing)

Gtk4.GtkCanvasType
GtkCanvas(w = -1, h = -1, init_back = false; kwargs...)

Create a GtkCanvas widget for drawing using Cairo (based on GtkDrawingArea). Optional arguments w and h can be used to set the minimum width and height of the drawing area in pixels. If init_back is set to true, the canvas's image CairoSurface will be initialized immediately, which is useful for precompilation.

Keyword arguments can be used to set properties of the GtkDrawingArea widget.

source
Gtk4.drawFunction
draw(redraw::Function, widget::GtkCanvas)

Set a function redraw to be called whenever the GtkCanvas's CairoSurface needs to be redrawn. The function should have a single argument, the GtkCanvas, from which the CairoSurface can be retrieved using getgc.

source
Graphics.getgcFunction
getgc(c::GtkCanvas)

Return the CairoContext of the CairoSurface backing store of a GtkCanvas.

source
Gtk4.cairo_surfaceFunction
cairo_surface(c::GtkCanvas)

Return the image CairoSurface backing store for a GtkCanvas.

source

GtkGLArea

Event controllers

Gtk4.find_controllerFunction
find_controller(w::GtkWidget, ::Type{T}) where T <: GtkEventController

Returns an event controller of type T connected to a widget, or nothing if one doesn't exist. This function is intended for testing purposes (to simulate events) and is not recommended otherwise, as there is a performance penalty for creating a list of a widget's event controllers.

Related GTK function: gtk_widget_observe_controllers)

source
Gtk4.widgetFunction
widget(c::GtkEventController)

Returns the widget associated with an event controller.

source
Gtk4.add_action_shortcutFunction
add_action_shortcut(scc::GtkShortcutController,trigger::AbstractString,action::AbstractString)

Adds a shortcut specified by a string like "<Control>S" for an action (such as "app.save") to a GtkShortcutController.

source

GtkTextView

Gtk4.bufferFunction
buffer(iter::Union{Ref{_GtkTextIter}, _GtkTextIter})

Returns the buffer associated with iter.

source
Gtk4.undo!Function
undo!(buffer::GtkTextBuffer)

Implements gtk_text_buffer_undo.

source
Gtk4.redo!Function
redo!(buffer::GtkTextBuffer)

Implements gtk_text_buffer_redo.

source
Gtk4.create_markFunction
create_mark(buffer::GtkTextBuffer, mark_name, it::TI, left_gravity::Bool)
+create_mark(buffer::GtkTextBuffer, it::TI)

Implements gtk_text_buffer_create_mark.

source
Gtk4.place_cursorFunction
place_cursor(buffer::GtkTextBuffer, it::_GtkTextIter)
+place_cursor(buffer::GtkTextBuffer, pos::Int)

Place the cursor at indicated position.

source
Gtk4.scroll_toFunction
scroll_to(view::GtkTextView, mark::GtkTextMark, within_margin::Real,
                use_align::Bool, xalign::Real, yalign::Real)
 
 scroll_to(view::GtkTextView, iter::TI, within_margin::Real,
-          use_align::Bool, xalign::Real, yalign::Real)

Implements gtk_text_view_scroll_to_mark and gtk_text_view_scroll_to_iter.

source
Gtk4.searchFunction
search(buffer::GtkTextBuffer, str::AbstractString, direction = :forward,
-    flag = GtkTextSearchFlags.GTK_TEXT_SEARCH_TEXT_ONLY)

Search text str in buffer in direction :forward or :backward starting from the cursor position in the buffer.

Returns a tuple (found, start, stop) where found indicates whether the search was successful and start and stop are _GtkTextIters containing the location of the match.

source
Gtk4.select_rangeFunction
select_range(buffer::GtkTextBuffer, ins::TI, bound::TI)
-select_range(buffer::GtkTextBuffer, range::GtkTextRange)

Select the text in buffer accorind to _GtkTextIter ins and bound.

Implements gtk_text_buffer_select_range.

source
Gtk4.selection_boundsFunction
selection_bounds(buffer::GtkTextBuffer)

Returns a tuple (selected, start, stop) indicating if text is selected in the buffer, and if so sets the _GtkTextIter start and stop to point to the selected text.

Implements gtk_text_buffer_get_selection_bounds.

source
Base.skipFunction
skip(iter::Ref{_GtkTextIter}, count::Integer)

Moves iter count characters. Returns a Bool indicating if the move was successful.

source
skip(iter::Ref{_GtkTextIter}, what::Symbol)

Moves iter according to the operation specified by what. Operations are :

  • :forward_line (gtk_text_iter_forward_line)
  • :backward_line (gtk_text_iter_backward_line)
  • :forward_to_line_end (gtk_text_iter_forward_to_line_end)
  • :backward_word_start (gtk_text_iter_forward_word_end)
  • :forward_word_end (gtk_text_iter_backward_word_start)
  • :backward_sentence_start (gtk_text_iter_backward_sentence_start)
  • :forward_sentence_end (gtk_text_iter_forward_sentence_end)
source
skip(iter::Ref{_GtkTextIter}, count::Integer, what::Symbol)

Moves iter according to the operation specified by what and count. Operations are :

  • :chars (gtk_text_iter_forward_chars)
  • :lines (gtk_text_iter_forward_lines)
  • :words (gtk_text_iter_forward_word_ends)
  • :word_cursor_positions (gtk_text_iter_forward_cursor_positions)
  • :sentences (gtk_text_iter_forward_sentence_ends)
  • :visible_words (gtk_text_iter_forward_visible_word_ends)
  • :visible_cursor_positions (gtk_text_iter_forward_visible_cursor_positions)
  • :visible_lines (gtk_text_iter_forward_visible_lines)
  • :line_ends (gtk_text_iter_forward_visible_lines)
source
Gtk4.backward_searchFunction
backward_search(iter::Ref{_GtkTextIter},
+          use_align::Bool, xalign::Real, yalign::Real)

Implements gtk_text_view_scroll_to_mark and gtk_text_view_scroll_to_iter.

source
Gtk4.searchFunction
search(buffer::GtkTextBuffer, str::AbstractString, direction = :forward,
+    flag = GtkTextSearchFlags.GTK_TEXT_SEARCH_TEXT_ONLY)

Search text str in buffer in direction :forward or :backward starting from the cursor position in the buffer.

Returns a tuple (found, start, stop) where found indicates whether the search was successful and start and stop are _GtkTextIters containing the location of the match.

source
Gtk4.select_rangeFunction
select_range(buffer::GtkTextBuffer, ins::TI, bound::TI)
+select_range(buffer::GtkTextBuffer, range::GtkTextRange)

Select the text in buffer accorind to _GtkTextIter ins and bound.

Implements gtk_text_buffer_select_range.

source
Gtk4.selection_boundsFunction
selection_bounds(buffer::GtkTextBuffer)

Returns a tuple (selected, start, stop) indicating if text is selected in the buffer, and if so sets the _GtkTextIter start and stop to point to the selected text.

Implements gtk_text_buffer_get_selection_bounds.

source
Base.skipFunction
skip(iter::Ref{_GtkTextIter}, count::Integer)

Moves iter count characters. Returns a Bool indicating if the move was successful.

source
skip(iter::Ref{_GtkTextIter}, what::Symbol)

Moves iter according to the operation specified by what. Operations are :

  • :forward_line (gtk_text_iter_forward_line)
  • :backward_line (gtk_text_iter_backward_line)
  • :forward_to_line_end (gtk_text_iter_forward_to_line_end)
  • :backward_word_start (gtk_text_iter_forward_word_end)
  • :forward_word_end (gtk_text_iter_backward_word_start)
  • :backward_sentence_start (gtk_text_iter_backward_sentence_start)
  • :forward_sentence_end (gtk_text_iter_forward_sentence_end)
source
skip(iter::Ref{_GtkTextIter}, count::Integer, what::Symbol)

Moves iter according to the operation specified by what and count. Operations are :

  • :chars (gtk_text_iter_forward_chars)
  • :lines (gtk_text_iter_forward_lines)
  • :words (gtk_text_iter_forward_word_ends)
  • :word_cursor_positions (gtk_text_iter_forward_cursor_positions)
  • :sentences (gtk_text_iter_forward_sentence_ends)
  • :visible_words (gtk_text_iter_forward_visible_word_ends)
  • :visible_cursor_positions (gtk_text_iter_forward_visible_cursor_positions)
  • :visible_lines (gtk_text_iter_forward_visible_lines)
  • :line_ends (gtk_text_iter_forward_visible_lines)
source
Gtk4.backward_searchFunction
backward_search(iter::Ref{_GtkTextIter},
     str::AbstractString, start::Ref{_GtkTextIter},
-    stop::Ref{_GtkTextIter}, limit::Ref{_GtkTextIter}, flag::Int32)

Implements gtk_text_iter_backward_search.

source
Gtk4.buffer_to_window_coordsFunction
buffer_to_window_coords(view::GtkTextView, buffer_x::Integer, buffer_y::Integer, wintype::Integer = 0)

Implements gtk_text_view_buffer_to_window_coords.

source
Gtk4.char_offsetFunction
char_offset(iter::Union{Ref{_GtkTextIter}, _GtkTextIter})

Returns the offset of iter (one-based index).

source
Gtk4.forward_searchFunction
forward_search(iter::Ref{_GtkTextIter},
+    stop::Ref{_GtkTextIter}, limit::Ref{_GtkTextIter}, flag::Int32)

Implements gtk_text_iter_backward_search.

source
Gtk4.buffer_to_window_coordsFunction
buffer_to_window_coords(view::GtkTextView, buffer_x::Integer, buffer_y::Integer, wintype::Integer = 0)

Implements gtk_text_view_buffer_to_window_coords.

source
Gtk4.char_offsetFunction
char_offset(iter::Union{Ref{_GtkTextIter}, _GtkTextIter})

Returns the offset of iter (one-based index).

source
Gtk4.forward_searchFunction
forward_search(iter::Ref{_GtkTextIter},
     str::AbstractString, start::Ref{_GtkTextIter},
-    stop::Ref{_GtkTextIter}, limit::Ref{_GtkTextIter}, flag::Int32)

Implements gtk_text_iter_forward_search.

source
Gtk4.window_to_buffer_coordsFunction
window_to_buffer_coords(view::GtkTextView, window_x::Integer, window_y::Integer, wintype::Integer = 2)

Implements gtk_text_view_window_to_buffer_coords.

source
Gtk4._GtkTextIterType
_GtkTextIter(text::GtkTextBuffer, char_offset::Integer)

Creates a _GtkTextIter with offset char_offset (one-based index).

source
+ stop::Ref{_GtkTextIter}, limit::Ref{_GtkTextIter}, flag::Int32)

Implements gtk_text_iter_forward_search.

source
Gtk4.window_to_buffer_coordsFunction
window_to_buffer_coords(view::GtkTextView, window_x::Integer, window_y::Integer, wintype::Integer = 2)

Implements gtk_text_view_window_to_buffer_coords.

source
Gtk4._GtkTextIterType
_GtkTextIter(text::GtkTextBuffer, char_offset::Integer)

Creates a _GtkTextIter with offset char_offset (one-based index).

source
diff --git a/dev/howto/async/index.html b/dev/howto/async/index.html index ded497d0..c0a05f11 100644 --- a/dev/howto/async/index.html +++ b/dev/howto/async/index.html @@ -64,4 +64,4 @@ end end -win = GtkWindow(grid, "Distributed", 200, 200) +win = GtkWindow(grid, "Distributed", 200, 200) diff --git a/dev/howto/nonreplusage/index.html b/dev/howto/nonreplusage/index.html index 0e873619..84ac61d7 100644 --- a/dev/howto/nonreplusage/index.html +++ b/dev/howto/nonreplusage/index.html @@ -30,4 +30,4 @@ Gtk4.signal_connect(activate, app, :activate) -run(app)

In the activate function, you can create your windows, widgets, etc. and connect them to signals. When all GtkApplicationWindows have been closed, the script will exit.

Creating an app with PackageCompiler

PackageCompiler.jl can be used to create an executable file that can be transferred to other computers without installing Julia. An example can be found in the examples/ExampleApplication directory in the Gtk4.jl repo.

+run(app)

In the activate function, you can create your windows, widgets, etc. and connect them to signals. When all GtkApplicationWindows have been closed, the script will exit.

Creating an app with PackageCompiler

PackageCompiler.jl can be used to create an executable file that can be transferred to other computers without installing Julia. An example can be found in the examples/ExampleApplication directory in the Gtk4.jl repo.

diff --git a/dev/howto/sysimage/index.html b/dev/howto/sysimage/index.html index 09c703f6..0f0aa8db 100644 --- a/dev/howto/sysimage/index.html +++ b/dev/howto/sysimage/index.html @@ -1,2 +1,2 @@ -Gtk4 in a sysimage · Gtk4.jl

Gtk4 in a sysimage

Note that if Gtk4 is included in a sysimage using PackageCompiler.jl, the main loop will not be started automatically when calling using Gtk4 even in an interactive Julia session. You will have to call GLib.start_main_loop() before windows will appear.

+Gtk4 in a sysimage · Gtk4.jl

Gtk4 in a sysimage

Note that if Gtk4 is included in a sysimage using PackageCompiler.jl, the main loop will not be started automatically when calling using Gtk4 even in an interactive Julia session. You will have to call GLib.start_main_loop() before windows will appear.

diff --git a/dev/index.html b/dev/index.html index 3fa63900..1b3217cf 100644 --- a/dev/index.html +++ b/dev/index.html @@ -1,2 +1,2 @@ -Home · Gtk4.jl

Gtk4.jl

Julia Bindings for Gtk version 4.x.

Introduction

Gtk4.jl is a Julia package providing bindings for the Gtk library: https://www.gtk.org/

Complete Gtk documentation is available at https://www.gtk.org/docs/

Usage

History

This package and its documentation were adapted from Gtk.jl, which was written by Jameson Nash and others and supported GTK versions 2 and 3. With version 4 there were so many changes to the GTK API that it would have been messy to try to support it and previous versions in the same package. Note that much of the GLib/GObject functionality that underlies GTK is largely the same code as in Gtk.jl. Some changes were made to try to take better advantage of GObject introspection or to remove old code that was no longer necessary in recent versions of Julia.

+Home · Gtk4.jl

Gtk4.jl

Julia Bindings for Gtk version 4.x.

Introduction

Gtk4.jl is a Julia package providing bindings for the Gtk library: https://www.gtk.org/

Complete Gtk documentation is available at https://www.gtk.org/docs/

Usage

History

This package and its documentation were adapted from Gtk.jl, which was written by Jameson Nash and others and supported GTK versions 2 and 3. With version 4 there were so many changes to the GTK API that it would have been messy to try to support it and previous versions in the same package. Note that much of the GLib/GObject functionality that underlies GTK is largely the same code as in Gtk.jl. Some changes were made to try to take better advantage of GObject introspection or to remove old code that was no longer necessary in recent versions of Julia.

diff --git a/dev/manual/actions/index.html b/dev/manual/actions/index.html index ecd224c8..d616479b 100644 --- a/dev/manual/actions/index.html +++ b/dev/manual/actions/index.html @@ -51,4 +51,4 @@ action_group = GSimpleActionGroup() add_stateful_action(GActionMap(action_group), "option", String, "1", opt_action_cb) -push!(win, Gtk4.GLib.GActionGroup(action_group), "win")

Actions in an application

As mentioned above, the objects GtkApplication and GtkApplicationWindow implement the GActionMap interface, so there is no need to create a GSimpleActionGroup and add it to the window. For GtkApplicationWindows, you can add window-associated actions using add_action(GActionMap(win), "fullscreen", fullscreen_cb). Assuming you have created a GtkApplication called app, you can add actions to the application using add_action(GActionMap(app), "fullscreen", fullscreen_cb).

+push!(win, Gtk4.GLib.GActionGroup(action_group), "win")

Actions in an application

As mentioned above, the objects GtkApplication and GtkApplicationWindow implement the GActionMap interface, so there is no need to create a GSimpleActionGroup and add it to the window. For GtkApplicationWindows, you can add window-associated actions using add_action(GActionMap(win), "fullscreen", fullscreen_cb). Assuming you have created a GtkApplication called app, you can add actions to the application using add_action(GActionMap(app), "fullscreen", fullscreen_cb).

diff --git a/dev/manual/builder/index.html b/dev/manual/builder/index.html index 9fcd672f..1cdaa41a 100644 --- a/dev/manual/builder/index.html +++ b/dev/manual/builder/index.html @@ -13,4 +13,4 @@ </object> </interface>

In order to access the widgets from Julia we first create a GtkBuilder object that will serve as a connector between the XML definition and our Julia code.

b = GtkBuilder("path/to/myapp.ui")
Note

If you are developing the code in a package you can get the package directory using the @__DIR__ macro. For instance, if your UI file is located at MyPackage/src/builder/myuifile.ui, you can get the full path using uifile = joinpath(@__DIR__, "builder", "myuifile.ui").

Alternatively, if we store the above XML definition in a Julia string myapp we can initialize the builder by

b = GtkBuilder(myapp, -1)

Now we want to access a widget from the XML file in order to actually display it on the screen. To do so we can call

win = b["window1"]

for each widget we want to access in our Julia code. Widgets that we don't need to access from Julia, for example layout widgets like GtkBox that are being used only to arrange more interesting widgets for input or display, do not need to be loaded. You can thus see your builder as a kind of a widget store that you use when you need access to your widgets.

Note

Fetching an object from GtkBuilder is type unstable since the Julia compiler has no way of knowing the type of the object. A type assertion can be used to set a concrete type (ending in "Leaf") and potentially improve performance. In the example above, the correct assertion would be win = b["window1"]::GtkWindowLeaf.

In Gtk4.jl a macro @load_builder is defined that iterates over the GtkWidgets in a GtkBuilder object and automatically assigns them to Julia variables with the same id. For example, if a GtkEntry with an id entry1 and two GtkButtons with id's button1 and button2 are present in myapp.ui, calling

@load_builder(GtkBuilder(filename="myapp.ui"))

is equivalent to

entry1 = b["entry1"]
 button1 = b["button1"]
-button2 = b["button2"]

Note that this only works for GtkWidgets that implement the interface GtkBuildable, which excludes some objects often defined in UI files, for example GtkAdjustment. Those objects will have to be fetched using calls to get_object.

Callbacks

The XML file lets us only describe the visual structure of our widgets and not their behavior when the using is interacting with it. For this reason, we will have to add callbacks to the widgets which we do in Julia code as it was described in Signals and Callbacks. Alternatively you can use Actions, which are described in the next section.

+button2 = b["button2"]

Note that this only works for GtkWidgets that implement the interface GtkBuildable, which excludes some objects often defined in UI files, for example GtkAdjustment. Those objects will have to be fetched using calls to get_object.

Callbacks

The XML file lets us only describe the visual structure of our widgets and not their behavior when the using is interacting with it. For this reason, we will have to add callbacks to the widgets which we do in Julia code as it was described in Signals and Callbacks. Alternatively you can use Actions, which are described in the next section.

diff --git a/dev/manual/buttons/index.html b/dev/manual/buttons/index.html index 9cb24ad6..fee3d6f3 100644 --- a/dev/manual/buttons/index.html +++ b/dev/manual/buttons/index.html @@ -14,4 +14,4 @@ group(green_button, red_button) group(blue_button, red_button) -# now only one button can be active at a time

Selected signals:

signalargumentsreturns
"toggled"self::GtkToggleButtonNothingEmitted when the button state is changed

GtkCheckButton

This widget is a checkbox that can be used to control whether something is active (true) or inactive (false). Functionally it is identical to a GtkToggleButton but it is rendered differently. There is typically a label that is rendered next to the checkbox.

Like a toggle button, a check button can also be added to a group, in which case it is rendered as a "radio button" that can be used to choose from a few mutually exclusive options.

Selected signals:

signalargumentsreturns
"toggled"self::GtkCheckButtonNothingEmitted when the button state is changed

GtkSwitch

This widget is very much like a check button but looks like a switch.

Like GtkCheckButton, its "active" property can be used to get and set the switch's state.

GtkLinkButton

This widget can be used to open a URL:

lb = GtkLinkButton("https://julialang.org","Julia website")
+# now only one button can be active at a time

Selected signals:

signalargumentsreturns
"toggled"self::GtkToggleButtonNothingEmitted when the button state is changed

GtkCheckButton

This widget is a checkbox that can be used to control whether something is active (true) or inactive (false). Functionally it is identical to a GtkToggleButton but it is rendered differently. There is typically a label that is rendered next to the checkbox.

Like a toggle button, a check button can also be added to a group, in which case it is rendered as a "radio button" that can be used to choose from a few mutually exclusive options.

Selected signals:

signalargumentsreturns
"toggled"self::GtkCheckButtonNothingEmitted when the button state is changed

GtkSwitch

This widget is very much like a check button but looks like a switch.

Like GtkCheckButton, its "active" property can be used to get and set the switch's state.

GtkLinkButton

This widget can be used to open a URL:

lb = GtkLinkButton("https://julialang.org","Julia website")
diff --git a/dev/manual/canvas/index.html b/dev/manual/canvas/index.html index c7c74eb5..6be41973 100644 --- a/dev/manual/canvas/index.html +++ b/dev/manual/canvas/index.html @@ -40,4 +40,4 @@ screen = CairoMakie.Screen(f.scene, config, Gtk4.cairo_surface(canvas)) CairoMakie.resize!(f.scene, Gtk4.width(widget), Gtk4.height(widget)) CairoMakie.cairo_draw(screen, f.scene) -end
Example

A more complicated example can be found in "canvas_cairomakie.jl" in the "examples" subdirectory.

+end
Example

A more complicated example can be found in "canvas_cairomakie.jl" in the "examples" subdirectory.

diff --git a/dev/manual/combobox/index.html b/dev/manual/combobox/index.html index 33d76818..4503b149 100644 --- a/dev/manual/combobox/index.html +++ b/dev/manual/combobox/index.html @@ -35,4 +35,4 @@ end win = GtkWindow("ComboBoxText Example",400,200) -push!(win, cb) +push!(win, cb) diff --git a/dev/manual/dialogs/index.html b/dev/manual/dialogs/index.html index 9db7a1e5..efd24bd2 100644 --- a/dev/manual/dialogs/index.html +++ b/dev/manual/dialogs/index.html @@ -24,4 +24,4 @@ if isdir(dir[]) # do something with dir -end

Custom dialogs

TODO

+end

Custom dialogs

TODO

diff --git a/dev/manual/display/index.html b/dev/manual/display/index.html index d2bcae03..44fd9d04 100644 --- a/dev/manual/display/index.html +++ b/dev/manual/display/index.html @@ -2,4 +2,4 @@ Display widgets · Gtk4.jl

Display widgets

We have already encountered GtkLabel, which is used to display text. GTK has a few other widgets that are useful for displaying information.

GtkSpinner

This is a simple widget that optionally shows an animated spinning icon. It's used to indicate to the user that something is happening.

The widget is constructed using GtkSpinner(). There are just two methods, start to display the spinning icon and stop to not display it.

To check if the spinner is spinning, use the "spinning" property or the spinning getter method.

GtkProgressBar

This widget shows a progress bar and optionally text.

win = GtkWindow("Progress bar")
 progbar = GtkProgressBar()
 push!(win, progbar)

The fractional progress (between 0.0 and 1.0) can be set using the fraction setter or the "fraction" property:

fraction(progbar, 0.5)
-progbar.fraction

You can show text which might, for example, say something about what is happening or an estimated time left:

Gtk4.text(progbar, "11 seconds remaining")

For processes with no well defined concept of progress, you can periodically use the pulse method to cause the progress bar to show a back and forth motion (think "Knight Rider"), reassuring the user that something is continuing to happen:

Gtk4.pulse(progbar) # moves the progress bar a little

The step size (in fractional units) for pulse can be set using Gtk4.pulse_step.

GtkPicture and GtkImage

These two widgets can be used to display an image. GtkPicture shows the image at its natural size, while GtkImage shows it at a fixed, potentially smaller size (for example, an icon). The image can be set in a constructor or be set by a method.

For GtkPicture, there are constructors that read from a file (in PNG, JPEG, or TIFF format), either using a GFile object or a filename. Alternatively you can construct a GtkPicture from a GdkPixbuf or GdkPaintable.

+progbar.fraction

You can show text which might, for example, say something about what is happening or an estimated time left:

Gtk4.text(progbar, "11 seconds remaining")

For processes with no well defined concept of progress, you can periodically use the pulse method to cause the progress bar to show a back and forth motion (think "Knight Rider"), reassuring the user that something is continuing to happen:

Gtk4.pulse(progbar) # moves the progress bar a little

The step size (in fractional units) for pulse can be set using Gtk4.pulse_step.

GtkPicture and GtkImage

These two widgets can be used to display an image. GtkPicture shows the image at its natural size, while GtkImage shows it at a fixed, potentially smaller size (for example, an icon). The image can be set in a constructor or be set by a method.

For GtkPicture, there are constructors that read from a file (in PNG, JPEG, or TIFF format), either using a GFile object or a filename. Alternatively you can construct a GtkPicture from a GdkPixbuf or GdkPaintable.

diff --git a/dev/manual/gettingStarted/index.html b/dev/manual/gettingStarted/index.html index cad8275f..fbc55242 100644 --- a/dev/manual/gettingStarted/index.html +++ b/dev/manual/gettingStarted/index.html @@ -22,4 +22,4 @@ true

The toplevel widget in a particular widget's hierarchy can be found using the method toplevel:

julia> toplevel(b) == win
 true

Iterating over a widget gives you its child widgets:

for child in widget
     myfunc(child)
-end

Widgets can be added and removed using interface methods defined by Gtk4.jl. For many widgets that can contain children, push! is defined to append a widget to another's children. Some widget types can only have one child. For this situation, Gtk4.jl defines setindex!(w,x) and getindex(w) methods with no arguments, which can be written as w[] = x and output = w[], respectively. For example, a GtkWindow can have only one child widget, so we could have added the button to the window in our example using

win[] = b
+end

Widgets can be added and removed using interface methods defined by Gtk4.jl. For many widgets that can contain children, push! is defined to append a widget to another's children. Some widget types can only have one child. For this situation, Gtk4.jl defines setindex!(w,x) and getindex(w) methods with no arguments, which can be written as w[] = x and output = w[], respectively. For example, a GtkWindow can have only one child widget, so we could have added the button to the window in our example using

win[] = b
diff --git a/dev/manual/keyevents/index.html b/dev/manual/keyevents/index.html index 4be1de74..89c49bf6 100644 --- a/dev/manual/keyevents/index.html +++ b/dev/manual/keyevents/index.html @@ -37,4 +37,4 @@ event = Gtk4.current_event(controller) duration = Gtk4.time(event) - start_time # key press duration in milliseconds println("You released key ", keyval, " after time ", duration, " msec.") -end +end diff --git a/dev/manual/layout/index.html b/dev/manual/layout/index.html index e410aee5..6b0b4b3f 100644 --- a/dev/manual/layout/index.html +++ b/dev/manual/layout/index.html @@ -42,4 +42,4 @@ push!(s, GtkLabel("Second label"), "id2", "Label 2") # widget can be retrieved using s[id] win[]=vbox

Julia interface methods defined for GtkStack:

methodwhat it does
getindex(s::GtkStack, name::AbstractString) or s[name]Gets a widget by name
setindex!(s::GtkStack, x::GtkWidget, name::AbstractString) or s[name] = xSets a widget by name
push!(s::GtkStack, x::GtkWidget)Appends a widget
push!(s::GtkStack, x::GtkWidget, name::AbstractString)Appends a widget with a name
push!(s::GtkStack, x::GtkWidget, name::AbstractString, title::AbstractString)Appends a widget with a name and a title
delete!(s::GtkStack, x::GtkWidget)Removes a widget from the stack
empty!(s::GtkStack)Removes all widgets from the stack

GtkFrame, GtkAspectFrame, and GtkExpander

These widgets hold one child widget. GtkFrame and GtkAspectFrame display them in a decorative frame with an optional label. GtkExpander allows the user to hide the child.

Julia interface methods defined for GtkFrame, GtkAspectFrame, and GtkExpander:

methodwhat it does
getindex(f) or f[]Gets the child widget
setindex!(f, w::Union{GtkWidget,Nothing}) or f[] = wSets or clears the child widget

Iterating over child widgets

For any of the widgets described above (or any GtkWidget that has children), you can iterate over all child widgets using

for child in widget
     myfunc(child)
-end
+end diff --git a/dev/manual/listtreeview/index.html b/dev/manual/listtreeview/index.html index a76d6c0a..cad69bbc 100644 --- a/dev/manual/listtreeview/index.html +++ b/dev/manual/listtreeview/index.html @@ -164,4 +164,4 @@ win = GtkWindow(tv, "Tree View") iter = Gtk4.iter_from_index(ts, [1]) -ts[iter,1] = "ONE" +ts[iter,1] = "ONE" diff --git a/dev/manual/methods/index.html b/dev/manual/methods/index.html index 8571364c..4a9515c8 100644 --- a/dev/manual/methods/index.html +++ b/dev/manual/methods/index.html @@ -1,2 +1,2 @@ -Automatically generated methods · Gtk4.jl

Automatically generated methods

Like Gtk.jl, the purpose of this package is to provide functions that wrap ccall's of GTK functions in a Julian and hopefully user friendly way. While in Gtk.jl these ccall's are handwritten, in Gtk4.jl most of the wrappers call automatically generated methods that contain the ccall's. If you don't see a particular functionality wrapped, you can call these autogenerated functions yourself by using a submodule G_ defined in each of the main modules (Gtk4, Pango, GLib, and GdkPixbufLib). The names of these functions and methods are intended to be easy to predict from the corresponding C library function names, and most are the same as in the pygobject bindings for GTK.

The autogenerated methods in G_, like the corresponding C functions, use 0-based indexing, while the more user-friendly wrappers outside G_ use 1-based indexing. Some types of methods are not yet supported. For example, methods involving callbacks must be wrapped by using ccall currently.

The following table lists a few examples that should give you an idea of how these work.

C functionGtk4.G_ Julia methodComments
void gtk_window_add_child (GtkWindow* window, GtkWidget* child)add_child (window::GtkWindow, child::GtkWidget)C arguments mapped directly onto Julia arguments
GtkStackPage* gtk_stack_add_child (GtkStack* stack, GtkWidget* child)add_child (stack::GtkStack, child::GtkWidget)many widgets have add_child methods, but we dispatch using the type of the first argument
void gtk_builder_add_from_file (GtkBuilder* builder, const gchar* filename, GError** error)add_from_file (builder::GtkBuilder, filename::AbstractString)if ccall fills GError argument, a Julia exception is thrown
guint gtk_get_major_version ()get_major_version ()Julia method returns a UInt32
void gtk_rgb_to_hsv (float r, float g, float b, float* h, float* s, float* v)rgb_to_hsv (r::Real, g::Real, b::Real)The arguments h, s, and v are outputs. Julia method returns (h, s, v)
gboolean gtk_tree_view_get_path_at_pos (GtkTreeView* tree_view, int x, int y, GtkTreePath** path, GtkTreeViewColumn** column, int* cell_x, int* cell_y)get_path_at_pos (instance::GtkTreeView, _x::Integer, _y::Integer)C function has a return value ret in addition to output arguments _path, _column, _cell_x, and _cell_y. The Julia method returns (ret, _path, _column, _cell_x, _cell_y)

If you are confused about what one of these automatically generated methods does, you can examine the code, which is defined in the src/gen directory. They are separated into "methods" (in an object-oriented sense, these are functions associated with a particular class) and "functions" (general C functions that aren't associated with a particular class). Constants and struct definitions are also generated using GObject introspection.

Constructors

Constructor methods in G_ are treated a little differently. They are named according to GObject_$constructor_name, as in the following table:

C functionGtk4.G_ Julia methodComments
GtkWidget* gtk_window_new()Window_new()Returns a newly constructed GtkWindow
GtkWidget* gtk_scale_new_with_range(GtkOrientation orientation, double min, double max, double step)Scale_new_with_range(orientation, min, max, step)Example with arguments
+Automatically generated methods · Gtk4.jl

Automatically generated methods

Like Gtk.jl, the purpose of this package is to provide functions that wrap ccall's of GTK functions in a Julian and hopefully user friendly way. While in Gtk.jl these ccall's are handwritten, in Gtk4.jl most of the wrappers call automatically generated methods that contain the ccall's. If you don't see a particular functionality wrapped, you can call these autogenerated functions yourself by using a submodule G_ defined in each of the main modules (Gtk4, Pango, GLib, and GdkPixbufLib). The names of these functions and methods are intended to be easy to predict from the corresponding C library function names, and most are the same as in the pygobject bindings for GTK.

The autogenerated methods in G_, like the corresponding C functions, use 0-based indexing, while the more user-friendly wrappers outside G_ use 1-based indexing. Some types of methods are not yet supported. For example, methods involving callbacks must be wrapped by using ccall currently.

The following table lists a few examples that should give you an idea of how these work.

C functionGtk4.G_ Julia methodComments
void gtk_window_add_child (GtkWindow* window, GtkWidget* child)add_child (window::GtkWindow, child::GtkWidget)C arguments mapped directly onto Julia arguments
GtkStackPage* gtk_stack_add_child (GtkStack* stack, GtkWidget* child)add_child (stack::GtkStack, child::GtkWidget)many widgets have add_child methods, but we dispatch using the type of the first argument
void gtk_builder_add_from_file (GtkBuilder* builder, const gchar* filename, GError** error)add_from_file (builder::GtkBuilder, filename::AbstractString)if ccall fills GError argument, a Julia exception is thrown
guint gtk_get_major_version ()get_major_version ()Julia method returns a UInt32
void gtk_rgb_to_hsv (float r, float g, float b, float* h, float* s, float* v)rgb_to_hsv (r::Real, g::Real, b::Real)The arguments h, s, and v are outputs. Julia method returns (h, s, v)
gboolean gtk_tree_view_get_path_at_pos (GtkTreeView* tree_view, int x, int y, GtkTreePath** path, GtkTreeViewColumn** column, int* cell_x, int* cell_y)get_path_at_pos (instance::GtkTreeView, _x::Integer, _y::Integer)C function has a return value ret in addition to output arguments _path, _column, _cell_x, and _cell_y. The Julia method returns (ret, _path, _column, _cell_x, _cell_y)

If you are confused about what one of these automatically generated methods does, you can examine the code, which is defined in the src/gen directory. They are separated into "methods" (in an object-oriented sense, these are functions associated with a particular class) and "functions" (general C functions that aren't associated with a particular class). Constants and struct definitions are also generated using GObject introspection.

Constructors

Constructor methods in G_ are treated a little differently. They are named according to GObject_$constructor_name, as in the following table:

C functionGtk4.G_ Julia methodComments
GtkWidget* gtk_window_new()Window_new()Returns a newly constructed GtkWindow
GtkWidget* gtk_scale_new_with_range(GtkOrientation orientation, double min, double max, double step)Scale_new_with_range(orientation, min, max, step)Example with arguments
diff --git a/dev/manual/properties/index.html b/dev/manual/properties/index.html index 81f372d1..5da1f979 100644 --- a/dev/manual/properties/index.html +++ b/dev/manual/properties/index.html @@ -18,4 +18,4 @@ julia> visible(win) false -julia> visible(win, true)

This sequence makes the window disappear and then reappear.

The most important accessors are exported from Gtk4 but the more obscure will have to be called including the module name. For example, the property resizable for a GtkWindow, which controls whether a user is allowed to resize the window, can be set using

julia> Gtk4.resizable(win, false)

Binding properties

Properties can be bound to one another through the GObject signal system using the method bind_property. For example, if one wanted the title of a window win2 to automatically track that of another window win1, one could use

julia> b = bind_property(win1, "title", win2, "title")

Now if one calls

julia> win1.title = "New title"

the title of win2 is automatically updated to the same value. The binding can be released using unbind_property(b).

+julia> visible(win, true)

This sequence makes the window disappear and then reappear.

The most important accessors are exported from Gtk4 but the more obscure will have to be called including the module name. For example, the property resizable for a GtkWindow, which controls whether a user is allowed to resize the window, can be set using

julia> Gtk4.resizable(win, false)

Binding properties

Properties can be bound to one another through the GObject signal system using the method bind_property. For example, if one wanted the title of a window win2 to automatically track that of another window win1, one could use

julia> b = bind_property(win1, "title", win2, "title")

Now if one calls

julia> win1.title = "New title"

the title of win2 is automatically updated to the same value. The binding can be released using unbind_property(b).

diff --git a/dev/manual/signals/index.html b/dev/manual/signals/index.html index 0ec97b77..de5ea667 100644 --- a/dev/manual/signals/index.html +++ b/dev/manual/signals/index.html @@ -67,4 +67,4 @@ signal_connect(button_cb, button, "clicked", Nothing, (), false, (label, counter))

You should note that the value of counter[] matches the display in the GUI.

Specifying the event type

If your callback function takes an event argument, it is important to declare its type correctly. An easy way to do that is to first write a callback using the "simple" interface, e.g.,

    signal_connect(win, "delete-event") do widget, event
         @show typeof(event)
         @show event
-    end

and then use the reported type in parameter_type_tuple.

+ end

and then use the reported type in parameter_type_tuple.

diff --git a/dev/manual/textwidgets/index.html b/dev/manual/textwidgets/index.html index 82938087..3133a38e 100644 --- a/dev/manual/textwidgets/index.html +++ b/dev/manual/textwidgets/index.html @@ -8,4 +8,4 @@ str = ent.text

A maximum number of characters can be set using ent.max_length = 10.

Sometimes you might want to make the widget non-editable. This can be done using the call

# using the accessor method
 Gtk4.editable(GtkEditable(ent),false)
 # using the property system
-ent.editable = false

If you want to use the entry to retrieve passwords you can hide the visibility of the entered text. This can be achieved by calling

ent.visibility = false

To get notified by changes to the entry one can listen to the "changed" event.

GtkSearchEntry

A special variant of the entry that can be used as a search box is GtkSearchEntry. It is equipped with a button to clear the entry.

+ent.editable = false

If you want to use the entry to retrieve passwords you can hide the visibility of the entered text. This can be achieved by calling

ent.visibility = false

To get notified by changes to the entry one can listen to the "changed" event.

GtkSearchEntry

A special variant of the entry that can be used as a search box is GtkSearchEntry. It is equipped with a button to clear the entry.

diff --git a/dev/search/index.html b/dev/search/index.html index 96ab751f..4f10625d 100644 --- a/dev/search/index.html +++ b/dev/search/index.html @@ -1,2 +1,2 @@ -Search · Gtk4.jl

Loading search...

    +Search · Gtk4.jl

    Loading search...

      diff --git a/dev/search_index.js b/dev/search_index.js index 02d1eb79..291d803a 100644 --- a/dev/search_index.js +++ b/dev/search_index.js @@ -1,3 +1,3 @@ var documenterSearchIndex = {"docs": -[{"location":"diff3to4/#Differences-between-Gtk.jl-and-Gtk4.jl","page":"Gtk.jl to Gtk4.jl","title":"Differences between Gtk.jl and Gtk4.jl","text":"","category":"section"},{"location":"diff3to4/","page":"Gtk.jl to Gtk4.jl","title":"Gtk.jl to Gtk4.jl","text":"Gtk4.jl builds on and is very similar to Gtk.jl. Here is a summary of what's different.","category":"page"},{"location":"diff3to4/#Properties","page":"Gtk.jl to Gtk4.jl","title":"Properties","text":"","category":"section"},{"location":"diff3to4/","page":"Gtk.jl to Gtk4.jl","title":"Gtk.jl to Gtk4.jl","text":"GObject properties can still be set and accessed using get_gtk_property and set_gtk_property!. However, properties are now mapped onto Julia properties, so one can set a window title using win.title = \"My title\". Also, the submodule GAccessor no longer exists. In Gtk4.jl, getter and setter methods are in the main Gtk4 module, but most are not exported. Whereas in Gtk.jl one uses GAccessor.title(win, \"My title\") to set the title, in Gtk4.jl the equivalent is Gtk4.title(win, \"My title\").","category":"page"},{"location":"diff3to4/#Constants,-enums,-and-flags","page":"Gtk.jl to Gtk4.jl","title":"Constants, enums, and flags","text":"","category":"section"},{"location":"diff3to4/","page":"Gtk.jl to Gtk4.jl","title":"Gtk.jl to Gtk4.jl","text":"GTK constants in Gtk4.jl are in the main module instead of a Constants submodule.","category":"page"},{"location":"diff3to4/","page":"Gtk.jl to Gtk4.jl","title":"Gtk.jl to Gtk4.jl","text":"In Gtk.jl, GTK's enum and flags constants are turned into integers. In Gtk4.jl, these are now mapped onto Julia enums, specifically the implementations CEnum.jl for enums and BitFlags.jl for flags. This improves understandability when a function returns an enum or flag, but the downside is the sometimes extreme length of the enum's name. To mitigate this, convert methods are defined for commonly used enums so that shorter symbols can be used instead of the full enum name. For example, :h can be used instead of Gtk4.Orientation_HORIZONTAL in GtkBox(orientation, spacing).","category":"page"},{"location":"diff3to4/#G_-contains-automatically-generated-methods","page":"Gtk.jl to Gtk4.jl","title":"G_ contains automatically generated methods","text":"","category":"section"},{"location":"diff3to4/","page":"Gtk.jl to Gtk4.jl","title":"Gtk.jl to Gtk4.jl","text":"In Gtk.jl, the submodule Gtk.GAccessor contains getter and setter methods, which often correspond to object properties. In Gtk4.jl, the submodule Gtk4.G_ contains automatically generated methods, which include all methods in GAccessor and many more. These methods directly call the C functions in libgtk and thus use 0-based indexing. Where possible, they translate between Julia types and C types, for example converting nothing to C_NULL and vice versa.","category":"page"},{"location":"diff3to4/","page":"Gtk.jl to Gtk4.jl","title":"Gtk.jl to Gtk4.jl","text":"For consistency, the getter and setter methods in G_ keep their full names, including \"set\" and \"get\". For example, to set the title of a window in Gtk4.jl use G_.set_title(w, \"text\") rather than GAccessor.title(w, \"text\") as in Gtk.jl.","category":"page"},{"location":"diff3to4/#GObject-and-struct-names","page":"Gtk.jl to Gtk4.jl","title":"GObject and struct names","text":"","category":"section"},{"location":"diff3to4/","page":"Gtk.jl to Gtk4.jl","title":"Gtk.jl to Gtk4.jl","text":"The equivalent of Gtk.ShortNames doesn't exist. All GObject types are mapped onto Julia types with the same name. Leaving out the namespace, as is done in the Python pygobject bindings, would have led to name collisions between Gtk types and Julia types or between Gtk and other GObject libraries.","category":"page"},{"location":"diff3to4/#No-showall","page":"Gtk.jl to Gtk4.jl","title":"No showall","text":"","category":"section"},{"location":"diff3to4/","page":"Gtk.jl to Gtk4.jl","title":"Gtk.jl to Gtk4.jl","text":"In GTK 4, widgets are shown by default, so showall does not exist. Controlling a widget's initial visibility can be done using the visible property.","category":"page"},{"location":"diff3to4/#No-GtkContainer","page":"Gtk.jl to Gtk4.jl","title":"No GtkContainer","text":"","category":"section"},{"location":"diff3to4/","page":"Gtk.jl to Gtk4.jl","title":"Gtk.jl to Gtk4.jl","text":"In GTK 4, GtkContainer has been removed and most widgets derive directly from GtkWidget. Each class that can contain child widgets has its own functions for adding and/or removing them. In Gtk4.jl, collection interface methods like push! have been defined for containers that hold many widgets, such as GtkBox. For widgets that have one child, such as GtkWindow, getindex and setindex! have been defined, so that one can set a child widget using window[] = child.","category":"page"},{"location":"diff3to4/#Events","page":"Gtk.jl to Gtk4.jl","title":"Events","text":"","category":"section"},{"location":"diff3to4/","page":"Gtk.jl to Gtk4.jl","title":"Gtk.jl to Gtk4.jl","text":"Events such as button presses are handled through \"event controllers\" in GTK 4.","category":"page"},{"location":"diff3to4/#Dialogs","page":"Gtk.jl to Gtk4.jl","title":"Dialogs","text":"","category":"section"},{"location":"diff3to4/","page":"Gtk.jl to Gtk4.jl","title":"Gtk.jl to Gtk4.jl","text":"Dialogs no longer have a run method that takes over the GLib main loop while waiting for the user's response.","category":"page"},{"location":"diff3to4/#GLib-event-loop","page":"Gtk.jl to Gtk4.jl","title":"GLib event loop","text":"","category":"section"},{"location":"diff3to4/","page":"Gtk.jl to Gtk4.jl","title":"Gtk.jl to Gtk4.jl","text":"The GLib main loop starts automatically if Julia is in an interactive session. If not, you will have to start it by calling start_main_loop or by creating a GtkApplication and calling run (see the example application.jl).","category":"page"},{"location":"diff3to4/#MutableTypes-and-GValue","page":"Gtk.jl to Gtk4.jl","title":"MutableTypes and GValue","text":"","category":"section"},{"location":"diff3to4/","page":"Gtk.jl to Gtk4.jl","title":"Gtk.jl to Gtk4.jl","text":"All uses of mutable from Gtk.jl's GLib.MutableTypes should be replaced by Julia's Ref. The type of a GValue can be set using settype! rather than setindex!.","category":"page"},{"location":"diff3to4/#More-information","page":"Gtk.jl to Gtk4.jl","title":"More information","text":"","category":"section"},{"location":"diff3to4/","page":"Gtk.jl to Gtk4.jl","title":"Gtk.jl to Gtk4.jl","text":"The GTK docs have a migration guide with detailed recommendations for migrating C code from GTK version 3 to version 4. Much of that advice applies to Julia code.","category":"page"},{"location":"doc/constants_reference/#Constants","page":"Constants","title":"Constants","text":"","category":"section"},{"location":"doc/constants_reference/#Gtk4","page":"Constants","title":"Gtk4","text":"","category":"section"},{"location":"doc/constants_reference/","page":"Constants","title":"Constants","text":"Modules = [Gtk4]\nOrder = [:constant]","category":"page"},{"location":"doc/constants_reference/#Gtk4.ACCESSIBLE_VALUE_UNDEFINED","page":"Constants","title":"Gtk4.ACCESSIBLE_VALUE_UNDEFINED","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.ACTION_ALL","page":"Constants","title":"Gtk4.ACTION_ALL","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.BINARY_AGE","page":"Constants","title":"Gtk4.BINARY_AGE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.BUTTON_MIDDLE","page":"Constants","title":"Gtk4.BUTTON_MIDDLE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.BUTTON_PRIMARY","page":"Constants","title":"Gtk4.BUTTON_PRIMARY","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.BUTTON_SECONDARY","page":"Constants","title":"Gtk4.BUTTON_SECONDARY","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.CURRENT_TIME","page":"Constants","title":"Gtk4.CURRENT_TIME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.EVENT_PROPAGATE","page":"Constants","title":"Gtk4.EVENT_PROPAGATE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.EVENT_STOP","page":"Constants","title":"Gtk4.EVENT_STOP","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.INPUT_ERROR","page":"Constants","title":"Gtk4.INPUT_ERROR","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.INTERFACE_AGE","page":"Constants","title":"Gtk4.INTERFACE_AGE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.INVALID_LIST_POSITION","page":"Constants","title":"Gtk4.INVALID_LIST_POSITION","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.LEVEL_BAR_OFFSET_FULL","page":"Constants","title":"Gtk4.LEVEL_BAR_OFFSET_FULL","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.LEVEL_BAR_OFFSET_HIGH","page":"Constants","title":"Gtk4.LEVEL_BAR_OFFSET_HIGH","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.LEVEL_BAR_OFFSET_LOW","page":"Constants","title":"Gtk4.LEVEL_BAR_OFFSET_LOW","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.MAJOR_VERSION","page":"Constants","title":"Gtk4.MAJOR_VERSION","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.MICRO_VERSION","page":"Constants","title":"Gtk4.MICRO_VERSION","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.MINOR_VERSION","page":"Constants","title":"Gtk4.MINOR_VERSION","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.MODIFIER_MASK","page":"Constants","title":"Gtk4.MODIFIER_MASK","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.PAPER_NAME_A3","page":"Constants","title":"Gtk4.PAPER_NAME_A3","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.PAPER_NAME_A4","page":"Constants","title":"Gtk4.PAPER_NAME_A4","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.PAPER_NAME_A5","page":"Constants","title":"Gtk4.PAPER_NAME_A5","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.PAPER_NAME_B5","page":"Constants","title":"Gtk4.PAPER_NAME_B5","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.PAPER_NAME_EXECUTIVE","page":"Constants","title":"Gtk4.PAPER_NAME_EXECUTIVE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.PAPER_NAME_LEGAL","page":"Constants","title":"Gtk4.PAPER_NAME_LEGAL","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.PAPER_NAME_LETTER","page":"Constants","title":"Gtk4.PAPER_NAME_LETTER","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.PRINT_SETTINGS_OUTPUT_BASENAME","page":"Constants","title":"Gtk4.PRINT_SETTINGS_OUTPUT_BASENAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.PRINT_SETTINGS_OUTPUT_DIR","page":"Constants","title":"Gtk4.PRINT_SETTINGS_OUTPUT_DIR","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.PRINT_SETTINGS_OUTPUT_FILE_FORMAT","page":"Constants","title":"Gtk4.PRINT_SETTINGS_OUTPUT_FILE_FORMAT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.PRINT_SETTINGS_OUTPUT_URI","page":"Constants","title":"Gtk4.PRINT_SETTINGS_OUTPUT_URI","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.PRIORITY_REDRAW","page":"Constants","title":"Gtk4.PRIORITY_REDRAW","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.PRIORITY_RESIZE","page":"Constants","title":"Gtk4.PRIORITY_RESIZE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.STYLE_PROVIDER_PRIORITY_APPLICATION","page":"Constants","title":"Gtk4.STYLE_PROVIDER_PRIORITY_APPLICATION","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.STYLE_PROVIDER_PRIORITY_FALLBACK","page":"Constants","title":"Gtk4.STYLE_PROVIDER_PRIORITY_FALLBACK","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.STYLE_PROVIDER_PRIORITY_SETTINGS","page":"Constants","title":"Gtk4.STYLE_PROVIDER_PRIORITY_SETTINGS","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.STYLE_PROVIDER_PRIORITY_THEME","page":"Constants","title":"Gtk4.STYLE_PROVIDER_PRIORITY_THEME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.STYLE_PROVIDER_PRIORITY_USER","page":"Constants","title":"Gtk4.STYLE_PROVIDER_PRIORITY_USER","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.TEXT_VIEW_PRIORITY_VALIDATE","page":"Constants","title":"Gtk4.TEXT_VIEW_PRIORITY_VALIDATE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID","page":"Constants","title":"Gtk4.TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID","page":"Constants","title":"Gtk4.TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GdkPixbufLib","page":"Constants","title":"Gtk4.GdkPixbufLib","text":"","category":"section"},{"location":"doc/constants_reference/","page":"Constants","title":"Constants","text":"Modules = [Gtk4.GdkPixbufLib]\nOrder = [:constant]","category":"page"},{"location":"doc/constants_reference/#Gtk4.GdkPixbufLib.PIXBUF_MAJOR","page":"Constants","title":"Gtk4.GdkPixbufLib.PIXBUF_MAJOR","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GdkPixbufLib.PIXBUF_MICRO","page":"Constants","title":"Gtk4.GdkPixbufLib.PIXBUF_MICRO","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GdkPixbufLib.PIXBUF_MINOR","page":"Constants","title":"Gtk4.GdkPixbufLib.PIXBUF_MINOR","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GdkPixbufLib.PIXBUF_VERSION","page":"Constants","title":"Gtk4.GdkPixbufLib.PIXBUF_VERSION","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib","page":"Constants","title":"Gtk4.GLib","text":"","category":"section"},{"location":"doc/constants_reference/","page":"Constants","title":"Constants","text":"Modules = [Gtk4.GLib]\nOrder = [:constant]","category":"page"},{"location":"doc/constants_reference/#Gtk4.GLib.ASCII_DTOSTR_BUF_SIZE","page":"Constants","title":"Gtk4.GLib.ASCII_DTOSTR_BUF_SIZE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.ATOMIC_REF_COUNT_INIT","page":"Constants","title":"Gtk4.GLib.ATOMIC_REF_COUNT_INIT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.BIG_ENDIAN","page":"Constants","title":"Gtk4.GLib.BIG_ENDIAN","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.CSET_A_2_Z","page":"Constants","title":"Gtk4.GLib.CSET_A_2_Z","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.CSET_DIGITS","page":"Constants","title":"Gtk4.GLib.CSET_DIGITS","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.CSET_a_2_z","page":"Constants","title":"Gtk4.GLib.CSET_a_2_z","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.C_STD_VERSION","page":"Constants","title":"Gtk4.GLib.C_STD_VERSION","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.DATALIST_FLAGS_MASK","page":"Constants","title":"Gtk4.GLib.DATALIST_FLAGS_MASK","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.DATE_BAD_DAY","page":"Constants","title":"Gtk4.GLib.DATE_BAD_DAY","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.DATE_BAD_JULIAN","page":"Constants","title":"Gtk4.GLib.DATE_BAD_JULIAN","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.DATE_BAD_YEAR","page":"Constants","title":"Gtk4.GLib.DATE_BAD_YEAR","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.DBUS_METHOD_INVOCATION_HANDLED","page":"Constants","title":"Gtk4.GLib.DBUS_METHOD_INVOCATION_HANDLED","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.DBUS_METHOD_INVOCATION_UNHANDLED","page":"Constants","title":"Gtk4.GLib.DBUS_METHOD_INVOCATION_UNHANDLED","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.DEBUG_CONTROLLER_EXTENSION_POINT_NAME","page":"Constants","title":"Gtk4.GLib.DEBUG_CONTROLLER_EXTENSION_POINT_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.DIR_SEPARATOR","page":"Constants","title":"Gtk4.GLib.DIR_SEPARATOR","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.DIR_SEPARATOR_S","page":"Constants","title":"Gtk4.GLib.DIR_SEPARATOR_S","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.DRIVE_IDENTIFIER_KIND_UNIX_DEVICE","page":"Constants","title":"Gtk4.GLib.DRIVE_IDENTIFIER_KIND_UNIX_DEVICE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_ACCESS_CAN_DELETE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_ACCESS_CAN_DELETE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_ACCESS_CAN_EXECUTE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_ACCESS_CAN_EXECUTE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_ACCESS_CAN_READ","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_ACCESS_CAN_READ","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_ACCESS_CAN_RENAME","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_ACCESS_CAN_RENAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_ACCESS_CAN_TRASH","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_ACCESS_CAN_TRASH","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_ACCESS_CAN_WRITE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_ACCESS_CAN_WRITE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_DOS_IS_ARCHIVE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_DOS_IS_ARCHIVE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_DOS_IS_MOUNTPOINT","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_DOS_IS_MOUNTPOINT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_DOS_IS_SYSTEM","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_DOS_IS_SYSTEM","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_DOS_REPARSE_POINT_TAG","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_DOS_REPARSE_POINT_TAG","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_ETAG_VALUE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_ETAG_VALUE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_FILESYSTEM_FREE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_FILESYSTEM_FREE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_FILESYSTEM_READONLY","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_FILESYSTEM_READONLY","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_FILESYSTEM_REMOTE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_FILESYSTEM_REMOTE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_FILESYSTEM_SIZE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_FILESYSTEM_SIZE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_FILESYSTEM_TYPE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_FILESYSTEM_TYPE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_FILESYSTEM_USED","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_FILESYSTEM_USED","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_FILESYSTEM_USE_PREVIEW","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_FILESYSTEM_USE_PREVIEW","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_GVFS_BACKEND","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_GVFS_BACKEND","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_ID_FILE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_ID_FILE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_ID_FILESYSTEM","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_ID_FILESYSTEM","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_CAN_EJECT","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_CAN_EJECT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_CAN_MOUNT","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_CAN_MOUNT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_CAN_POLL","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_CAN_POLL","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_CAN_START","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_CAN_START","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_CAN_START_DEGRADED","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_CAN_START_DEGRADED","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_CAN_STOP","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_CAN_STOP","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_CAN_UNMOUNT","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_CAN_UNMOUNT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_HAL_UDI","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_HAL_UDI","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_IS_MEDIA_CHECK_AUTOMATIC","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_IS_MEDIA_CHECK_AUTOMATIC","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_START_STOP_TYPE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_START_STOP_TYPE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE_FILE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE_FILE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_OWNER_GROUP","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_OWNER_GROUP","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_OWNER_USER","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_OWNER_USER","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_OWNER_USER_REAL","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_OWNER_USER_REAL","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_PREVIEW_ICON","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_PREVIEW_ICON","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_RECENT_MODIFIED","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_RECENT_MODIFIED","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_SELINUX_CONTEXT","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_SELINUX_CONTEXT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_ALLOCATED_SIZE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_ALLOCATED_SIZE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_COPY_NAME","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_COPY_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_DESCRIPTION","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_DESCRIPTION","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_EDIT_NAME","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_EDIT_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_ICON","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_ICON","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_IS_BACKUP","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_IS_BACKUP","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_IS_HIDDEN","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_IS_HIDDEN","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_IS_SYMLINK","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_IS_SYMLINK","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_IS_VIRTUAL","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_IS_VIRTUAL","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_IS_VOLATILE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_IS_VOLATILE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_NAME","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_SIZE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_SIZE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_SORT_ORDER","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_SORT_ORDER","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_SYMBOLIC_ICON","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_SYMBOLIC_ICON","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_TARGET_URI","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_TARGET_URI","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_TYPE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_TYPE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAILING_FAILED","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAILING_FAILED","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAILING_FAILED_LARGE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAILING_FAILED_LARGE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAILING_FAILED_NORMAL","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAILING_FAILED_NORMAL","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAILING_FAILED_XLARGE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAILING_FAILED_XLARGE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAILING_FAILED_XXLARGE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAILING_FAILED_XXLARGE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_IS_VALID","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_IS_VALID","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_LARGE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_LARGE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_NORMAL","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_NORMAL","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_XLARGE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_XLARGE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_XXLARGE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_XXLARGE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_PATH","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_PATH","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_PATH_LARGE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_PATH_LARGE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_PATH_NORMAL","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_PATH_NORMAL","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_PATH_XLARGE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_PATH_XLARGE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_PATH_XXLARGE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_PATH_XXLARGE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_TIME_ACCESS","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_TIME_ACCESS","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_TIME_ACCESS_NSEC","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_TIME_ACCESS_NSEC","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_TIME_ACCESS_USEC","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_TIME_ACCESS_USEC","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_TIME_CHANGED","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_TIME_CHANGED","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_TIME_CHANGED_NSEC","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_TIME_CHANGED_NSEC","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_TIME_CHANGED_USEC","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_TIME_CHANGED_USEC","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_TIME_CREATED","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_TIME_CREATED","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_TIME_CREATED_NSEC","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_TIME_CREATED_NSEC","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_TIME_CREATED_USEC","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_TIME_CREATED_USEC","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_TIME_MODIFIED","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_TIME_MODIFIED","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_TIME_MODIFIED_NSEC","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_TIME_MODIFIED_NSEC","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_TIME_MODIFIED_USEC","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_TIME_MODIFIED_USEC","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_TRASH_DELETION_DATE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_TRASH_DELETION_DATE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_TRASH_ITEM_COUNT","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_TRASH_ITEM_COUNT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_TRASH_ORIG_PATH","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_TRASH_ORIG_PATH","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_UNIX_BLOCKS","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_UNIX_BLOCKS","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_UNIX_BLOCK_SIZE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_UNIX_BLOCK_SIZE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_UNIX_DEVICE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_UNIX_DEVICE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_UNIX_GID","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_UNIX_GID","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_UNIX_INODE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_UNIX_INODE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_UNIX_IS_MOUNTPOINT","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_UNIX_IS_MOUNTPOINT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_UNIX_MODE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_UNIX_MODE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_UNIX_NLINK","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_UNIX_NLINK","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_UNIX_RDEV","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_UNIX_RDEV","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_UNIX_UID","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_UNIX_UID","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.GINT16_FORMAT","page":"Constants","title":"Gtk4.GLib.GINT16_FORMAT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.GINT16_MODIFIER","page":"Constants","title":"Gtk4.GLib.GINT16_MODIFIER","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.GINT32_FORMAT","page":"Constants","title":"Gtk4.GLib.GINT32_FORMAT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.GINT32_MODIFIER","page":"Constants","title":"Gtk4.GLib.GINT32_MODIFIER","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.GINT64_FORMAT","page":"Constants","title":"Gtk4.GLib.GINT64_FORMAT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.GINT64_MODIFIER","page":"Constants","title":"Gtk4.GLib.GINT64_MODIFIER","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.GINTPTR_FORMAT","page":"Constants","title":"Gtk4.GLib.GINTPTR_FORMAT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.GINTPTR_MODIFIER","page":"Constants","title":"Gtk4.GLib.GINTPTR_MODIFIER","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.GSIZE_FORMAT","page":"Constants","title":"Gtk4.GLib.GSIZE_FORMAT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.GSIZE_MODIFIER","page":"Constants","title":"Gtk4.GLib.GSIZE_MODIFIER","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.GSSIZE_FORMAT","page":"Constants","title":"Gtk4.GLib.GSSIZE_FORMAT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.GSSIZE_MODIFIER","page":"Constants","title":"Gtk4.GLib.GSSIZE_MODIFIER","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.GUINT16_FORMAT","page":"Constants","title":"Gtk4.GLib.GUINT16_FORMAT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.GUINT32_FORMAT","page":"Constants","title":"Gtk4.GLib.GUINT32_FORMAT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.GUINT64_FORMAT","page":"Constants","title":"Gtk4.GLib.GUINT64_FORMAT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.GUINTPTR_FORMAT","page":"Constants","title":"Gtk4.GLib.GUINTPTR_FORMAT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.HAVE_GNUC_VISIBILITY","page":"Constants","title":"Gtk4.GLib.HAVE_GNUC_VISIBILITY","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.HOOK_FLAG_USER_SHIFT","page":"Constants","title":"Gtk4.GLib.HOOK_FLAG_USER_SHIFT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.IEEE754_DOUBLE_BIAS","page":"Constants","title":"Gtk4.GLib.IEEE754_DOUBLE_BIAS","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.IEEE754_FLOAT_BIAS","page":"Constants","title":"Gtk4.GLib.IEEE754_FLOAT_BIAS","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_GROUP","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_GROUP","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_ACTIONS","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_ACTIONS","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_CATEGORIES","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_CATEGORIES","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_COMMENT","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_COMMENT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_DBUS_ACTIVATABLE","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_DBUS_ACTIVATABLE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_EXEC","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_EXEC","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_GENERIC_NAME","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_GENERIC_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_HIDDEN","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_HIDDEN","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_ICON","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_ICON","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_MIME_TYPE","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_MIME_TYPE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_NAME","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_NOT_SHOW_IN","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_NOT_SHOW_IN","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_NO_DISPLAY","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_NO_DISPLAY","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_ONLY_SHOW_IN","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_ONLY_SHOW_IN","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_PATH","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_PATH","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_STARTUP_NOTIFY","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_STARTUP_NOTIFY","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_STARTUP_WM_CLASS","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_STARTUP_WM_CLASS","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_TERMINAL","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_TERMINAL","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_TRY_EXEC","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_TRY_EXEC","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_TYPE","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_TYPE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_URL","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_URL","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_VERSION","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_VERSION","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_TYPE_APPLICATION","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_TYPE_APPLICATION","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_TYPE_DIRECTORY","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_TYPE_DIRECTORY","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_TYPE_LINK","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_TYPE_LINK","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.LITTLE_ENDIAN","page":"Constants","title":"Gtk4.GLib.LITTLE_ENDIAN","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.LOG_DOMAIN","page":"Constants","title":"Gtk4.GLib.LOG_DOMAIN","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.LOG_FATAL_MASK","page":"Constants","title":"Gtk4.GLib.LOG_FATAL_MASK","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.LOG_LEVEL_USER_SHIFT","page":"Constants","title":"Gtk4.GLib.LOG_LEVEL_USER_SHIFT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MAJOR_VERSION","page":"Constants","title":"Gtk4.GLib.MAJOR_VERSION","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MAXINT16","page":"Constants","title":"Gtk4.GLib.MAXINT16","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MAXINT32","page":"Constants","title":"Gtk4.GLib.MAXINT32","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MAXINT64","page":"Constants","title":"Gtk4.GLib.MAXINT64","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MAXINT8","page":"Constants","title":"Gtk4.GLib.MAXINT8","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MAXUINT16","page":"Constants","title":"Gtk4.GLib.MAXUINT16","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MAXUINT32","page":"Constants","title":"Gtk4.GLib.MAXUINT32","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MAXUINT64","page":"Constants","title":"Gtk4.GLib.MAXUINT64","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MAXUINT8","page":"Constants","title":"Gtk4.GLib.MAXUINT8","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MEMORY_MONITOR_EXTENSION_POINT_NAME","page":"Constants","title":"Gtk4.GLib.MEMORY_MONITOR_EXTENSION_POINT_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MENU_ATTRIBUTE_ACTION","page":"Constants","title":"Gtk4.GLib.MENU_ATTRIBUTE_ACTION","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MENU_ATTRIBUTE_ACTION_NAMESPACE","page":"Constants","title":"Gtk4.GLib.MENU_ATTRIBUTE_ACTION_NAMESPACE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MENU_ATTRIBUTE_ICON","page":"Constants","title":"Gtk4.GLib.MENU_ATTRIBUTE_ICON","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MENU_ATTRIBUTE_LABEL","page":"Constants","title":"Gtk4.GLib.MENU_ATTRIBUTE_LABEL","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MENU_ATTRIBUTE_TARGET","page":"Constants","title":"Gtk4.GLib.MENU_ATTRIBUTE_TARGET","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MENU_EXPORTER_MAX_SECTION_SIZE","page":"Constants","title":"Gtk4.GLib.MENU_EXPORTER_MAX_SECTION_SIZE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MENU_LINK_SECTION","page":"Constants","title":"Gtk4.GLib.MENU_LINK_SECTION","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MENU_LINK_SUBMENU","page":"Constants","title":"Gtk4.GLib.MENU_LINK_SUBMENU","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MICRO_VERSION","page":"Constants","title":"Gtk4.GLib.MICRO_VERSION","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MININT16","page":"Constants","title":"Gtk4.GLib.MININT16","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MININT32","page":"Constants","title":"Gtk4.GLib.MININT32","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MININT64","page":"Constants","title":"Gtk4.GLib.MININT64","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MININT8","page":"Constants","title":"Gtk4.GLib.MININT8","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MINOR_VERSION","page":"Constants","title":"Gtk4.GLib.MINOR_VERSION","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.NETWORK_MONITOR_EXTENSION_POINT_NAME","page":"Constants","title":"Gtk4.GLib.NETWORK_MONITOR_EXTENSION_POINT_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.OPTION_REMAINING","page":"Constants","title":"Gtk4.GLib.OPTION_REMAINING","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.PARAM_MASK","page":"Constants","title":"Gtk4.GLib.PARAM_MASK","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.PARAM_STATIC_STRINGS","page":"Constants","title":"Gtk4.GLib.PARAM_STATIC_STRINGS","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.PARAM_USER_SHIFT","page":"Constants","title":"Gtk4.GLib.PARAM_USER_SHIFT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.PDP_ENDIAN","page":"Constants","title":"Gtk4.GLib.PDP_ENDIAN","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.PID_FORMAT","page":"Constants","title":"Gtk4.GLib.PID_FORMAT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.POLLFD_FORMAT","page":"Constants","title":"Gtk4.GLib.POLLFD_FORMAT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.POWER_PROFILE_MONITOR_EXTENSION_POINT_NAME","page":"Constants","title":"Gtk4.GLib.POWER_PROFILE_MONITOR_EXTENSION_POINT_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.PRIORITY_DEFAULT","page":"Constants","title":"Gtk4.GLib.PRIORITY_DEFAULT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.PRIORITY_DEFAULT_IDLE","page":"Constants","title":"Gtk4.GLib.PRIORITY_DEFAULT_IDLE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.PRIORITY_HIGH","page":"Constants","title":"Gtk4.GLib.PRIORITY_HIGH","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.PRIORITY_HIGH_IDLE","page":"Constants","title":"Gtk4.GLib.PRIORITY_HIGH_IDLE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.PRIORITY_LOW","page":"Constants","title":"Gtk4.GLib.PRIORITY_LOW","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.PROXY_EXTENSION_POINT_NAME","page":"Constants","title":"Gtk4.GLib.PROXY_EXTENSION_POINT_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.PROXY_RESOLVER_EXTENSION_POINT_NAME","page":"Constants","title":"Gtk4.GLib.PROXY_RESOLVER_EXTENSION_POINT_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.REF_COUNT_INIT","page":"Constants","title":"Gtk4.GLib.REF_COUNT_INIT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.SEARCHPATH_SEPARATOR","page":"Constants","title":"Gtk4.GLib.SEARCHPATH_SEPARATOR","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.SEARCHPATH_SEPARATOR_S","page":"Constants","title":"Gtk4.GLib.SEARCHPATH_SEPARATOR_S","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.SETTINGS_BACKEND_EXTENSION_POINT_NAME","page":"Constants","title":"Gtk4.GLib.SETTINGS_BACKEND_EXTENSION_POINT_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.SIGNAL_FLAGS_MASK","page":"Constants","title":"Gtk4.GLib.SIGNAL_FLAGS_MASK","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.SIGNAL_MATCH_MASK","page":"Constants","title":"Gtk4.GLib.SIGNAL_MATCH_MASK","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.SOURCE_CONTINUE","page":"Constants","title":"Gtk4.GLib.SOURCE_CONTINUE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.SOURCE_REMOVE","page":"Constants","title":"Gtk4.GLib.SOURCE_REMOVE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.STR_DELIMITERS","page":"Constants","title":"Gtk4.GLib.STR_DELIMITERS","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.TEST_OPTION_ISOLATE_DIRS","page":"Constants","title":"Gtk4.GLib.TEST_OPTION_ISOLATE_DIRS","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.TIME_SPAN_DAY","page":"Constants","title":"Gtk4.GLib.TIME_SPAN_DAY","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.TIME_SPAN_HOUR","page":"Constants","title":"Gtk4.GLib.TIME_SPAN_HOUR","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.TIME_SPAN_MILLISECOND","page":"Constants","title":"Gtk4.GLib.TIME_SPAN_MILLISECOND","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.TIME_SPAN_MINUTE","page":"Constants","title":"Gtk4.GLib.TIME_SPAN_MINUTE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.TIME_SPAN_SECOND","page":"Constants","title":"Gtk4.GLib.TIME_SPAN_SECOND","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.TLS_BACKEND_EXTENSION_POINT_NAME","page":"Constants","title":"Gtk4.GLib.TLS_BACKEND_EXTENSION_POINT_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.TLS_DATABASE_PURPOSE_AUTHENTICATE_CLIENT","page":"Constants","title":"Gtk4.GLib.TLS_DATABASE_PURPOSE_AUTHENTICATE_CLIENT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.TLS_DATABASE_PURPOSE_AUTHENTICATE_SERVER","page":"Constants","title":"Gtk4.GLib.TLS_DATABASE_PURPOSE_AUTHENTICATE_SERVER","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.TYPE_FLAG_RESERVED_ID_BIT","page":"Constants","title":"Gtk4.GLib.TYPE_FLAG_RESERVED_ID_BIT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.TYPE_FUNDAMENTAL_MAX","page":"Constants","title":"Gtk4.GLib.TYPE_FUNDAMENTAL_MAX","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.TYPE_FUNDAMENTAL_SHIFT","page":"Constants","title":"Gtk4.GLib.TYPE_FUNDAMENTAL_SHIFT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.TYPE_RESERVED_BSE_FIRST","page":"Constants","title":"Gtk4.GLib.TYPE_RESERVED_BSE_FIRST","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.TYPE_RESERVED_BSE_LAST","page":"Constants","title":"Gtk4.GLib.TYPE_RESERVED_BSE_LAST","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.TYPE_RESERVED_GLIB_FIRST","page":"Constants","title":"Gtk4.GLib.TYPE_RESERVED_GLIB_FIRST","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.TYPE_RESERVED_GLIB_LAST","page":"Constants","title":"Gtk4.GLib.TYPE_RESERVED_GLIB_LAST","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.TYPE_RESERVED_USER_FIRST","page":"Constants","title":"Gtk4.GLib.TYPE_RESERVED_USER_FIRST","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.UNICHAR_MAX_DECOMPOSITION_LENGTH","page":"Constants","title":"Gtk4.GLib.UNICHAR_MAX_DECOMPOSITION_LENGTH","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.URI_RESERVED_CHARS_GENERIC_DELIMITERS","page":"Constants","title":"Gtk4.GLib.URI_RESERVED_CHARS_GENERIC_DELIMITERS","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.URI_RESERVED_CHARS_SUBCOMPONENT_DELIMITERS","page":"Constants","title":"Gtk4.GLib.URI_RESERVED_CHARS_SUBCOMPONENT_DELIMITERS","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.USEC_PER_SEC","page":"Constants","title":"Gtk4.GLib.USEC_PER_SEC","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.VALUE_INTERNED_STRING","page":"Constants","title":"Gtk4.GLib.VALUE_INTERNED_STRING","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.VALUE_NOCOPY_CONTENTS","page":"Constants","title":"Gtk4.GLib.VALUE_NOCOPY_CONTENTS","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.VERSION_MIN_REQUIRED","page":"Constants","title":"Gtk4.GLib.VERSION_MIN_REQUIRED","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.VFS_EXTENSION_POINT_NAME","page":"Constants","title":"Gtk4.GLib.VFS_EXTENSION_POINT_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.VOLUME_IDENTIFIER_KIND_CLASS","page":"Constants","title":"Gtk4.GLib.VOLUME_IDENTIFIER_KIND_CLASS","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.VOLUME_IDENTIFIER_KIND_LABEL","page":"Constants","title":"Gtk4.GLib.VOLUME_IDENTIFIER_KIND_LABEL","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.VOLUME_IDENTIFIER_KIND_NFS_MOUNT","page":"Constants","title":"Gtk4.GLib.VOLUME_IDENTIFIER_KIND_NFS_MOUNT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.VOLUME_IDENTIFIER_KIND_UNIX_DEVICE","page":"Constants","title":"Gtk4.GLib.VOLUME_IDENTIFIER_KIND_UNIX_DEVICE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.VOLUME_IDENTIFIER_KIND_UUID","page":"Constants","title":"Gtk4.GLib.VOLUME_IDENTIFIER_KIND_UUID","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.VOLUME_MONITOR_EXTENSION_POINT_NAME","page":"Constants","title":"Gtk4.GLib.VOLUME_MONITOR_EXTENSION_POINT_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"howto/sysimage/#Gtk4-in-a-sysimage","page":"Gtk4 in a sysimage","title":"Gtk4 in a sysimage","text":"","category":"section"},{"location":"howto/sysimage/","page":"Gtk4 in a sysimage","title":"Gtk4 in a sysimage","text":"Note that if Gtk4 is included in a sysimage using PackageCompiler.jl, the main loop will not be started automatically when calling using Gtk4 even in an interactive Julia session. You will have to call GLib.start_main_loop() before windows will appear.","category":"page"},{"location":"manual/buttons/#Buttons","page":"Buttons","title":"Buttons","text":"","category":"section"},{"location":"manual/buttons/","page":"Buttons","title":"Buttons","text":"GTK defines many button and button-like widgets.","category":"page"},{"location":"manual/buttons/#[GtkButton](https://docs.gtk.org/gtk4/class.Button.html)","page":"Buttons","title":"GtkButton","text":"","category":"section"},{"location":"manual/buttons/","page":"Buttons","title":"Buttons","text":"We have already encountered the widget GtkButton, which defines a \"clicked\" signal that can be used to let the user trigger callback functions.","category":"page"},{"location":"manual/buttons/","page":"Buttons","title":"Buttons","text":"The button holds a child widget that can be a GtkLabel in the case of text, an image-displaying widget in the case of an icon, or potentially anything else you want. The child widget can be set and accessed using getindex(b::GtkButton) and setindex!(b::GtkButton, child_widget::GtkWidget):","category":"page"},{"location":"manual/buttons/","page":"Buttons","title":"Buttons","text":"b = GtkButton()\nb[] = my_widget\nchild_widget = b[]","category":"page"},{"location":"manual/buttons/","page":"Buttons","title":"Buttons","text":"You can also associate an action (see Actions) with a button by setting its property \"action-name\".","category":"page"},{"location":"manual/buttons/","page":"Buttons","title":"Buttons","text":"Selected signals:","category":"page"},{"location":"manual/buttons/","page":"Buttons","title":"Buttons","text":"signal arguments returns \n\"clicked\" self::GtkButton Nothing Emitted when the button is clicked","category":"page"},{"location":"manual/buttons/#[GtkToggleButton](https://docs.gtk.org/gtk4/class.ToggleButton.html)","page":"Buttons","title":"GtkToggleButton","text":"","category":"section"},{"location":"manual/buttons/","page":"Buttons","title":"Buttons","text":"This widget looks like a button but it stays pressed when the user clicks it. The state of the button can be accessed or set using its property \"active\", which is true when the button is pressed.","category":"page"},{"location":"manual/buttons/","page":"Buttons","title":"Buttons","text":"A toggle button can be added to a group using the method group, in which case it can be used to select from mutually exclusive options:","category":"page"},{"location":"manual/buttons/","page":"Buttons","title":"Buttons","text":"using Gtk4\n\nred_button = GtkToggleButton(\"red\")\ngreen_button = GtkToggleButton(\"green\")\nblue_button = GtkToggleButton(\"blue\")\nwin = GtkWindow(\"choose one color\")\nwin[] = box = GtkBox(:v)\npush!(box, red_button)\npush!(box, green_button)\npush!(box, blue_button)\n\ngroup(green_button, red_button)\ngroup(blue_button, red_button)\n# now only one button can be active at a time","category":"page"},{"location":"manual/buttons/","page":"Buttons","title":"Buttons","text":"Selected signals:","category":"page"},{"location":"manual/buttons/","page":"Buttons","title":"Buttons","text":"signal arguments returns \n\"toggled\" self::GtkToggleButton Nothing Emitted when the button state is changed","category":"page"},{"location":"manual/buttons/#[GtkCheckButton](https://docs.gtk.org/gtk4/class.CheckButton.html)","page":"Buttons","title":"GtkCheckButton","text":"","category":"section"},{"location":"manual/buttons/","page":"Buttons","title":"Buttons","text":"This widget is a checkbox that can be used to control whether something is active (true) or inactive (false). Functionally it is identical to a GtkToggleButton but it is rendered differently. There is typically a label that is rendered next to the checkbox.","category":"page"},{"location":"manual/buttons/","page":"Buttons","title":"Buttons","text":"Like a toggle button, a check button can also be added to a group, in which case it is rendered as a \"radio button\" that can be used to choose from a few mutually exclusive options.","category":"page"},{"location":"manual/buttons/","page":"Buttons","title":"Buttons","text":"Selected signals:","category":"page"},{"location":"manual/buttons/","page":"Buttons","title":"Buttons","text":"signal arguments returns \n\"toggled\" self::GtkCheckButton Nothing Emitted when the button state is changed","category":"page"},{"location":"manual/buttons/#[GtkSwitch](https://docs.gtk.org/gtk4/class.Switch.html)","page":"Buttons","title":"GtkSwitch","text":"","category":"section"},{"location":"manual/buttons/","page":"Buttons","title":"Buttons","text":"This widget is very much like a check button but looks like a switch.","category":"page"},{"location":"manual/buttons/","page":"Buttons","title":"Buttons","text":"Like GtkCheckButton, its \"active\" property can be used to get and set the switch's state.","category":"page"},{"location":"manual/buttons/#[GtkLinkButton](https://docs.gtk.org/gtk4/class.LinkButton.html)","page":"Buttons","title":"GtkLinkButton","text":"","category":"section"},{"location":"manual/buttons/","page":"Buttons","title":"Buttons","text":"This widget can be used to open a URL:","category":"page"},{"location":"manual/buttons/","page":"Buttons","title":"Buttons","text":"lb = GtkLinkButton(\"https://julialang.org\",\"Julia website\")","category":"page"},{"location":"howto/async/#Asynchronous-UI","page":"Asynchronous UI","title":"Asynchronous UI","text":"","category":"section"},{"location":"howto/async/","page":"Asynchronous UI","title":"Asynchronous UI","text":"It is possible to perform background computation without interfering with user interface responsiveness either using multithreading or using separate processes. Use of a separate process includes slightly more overhead but also ensures user interface responsiveness more robustly.","category":"page"},{"location":"howto/async/#Multithreading","page":"Asynchronous UI","title":"Multithreading","text":"","category":"section"},{"location":"howto/async/","page":"Asynchronous UI","title":"Asynchronous UI","text":"note: Example\nThe code below can be found in \"thread.jl\" in the \"examples\" subdirectory.","category":"page"},{"location":"howto/async/","page":"Asynchronous UI","title":"Asynchronous UI","text":"Here is an example using threads. Notice that this example will freeze the UI during computation unless Julia is run with two or more threads, for example by calling julia -t2 or julia -t1,1 to use the interactive threadpool in recent versions of Julia.","category":"page"},{"location":"howto/async/","page":"Asynchronous UI","title":"Asynchronous UI","text":"using Gtk4\n\nbtn = GtkButton(\"Start\")\nsp = GtkSpinner()\nent = GtkEntry(;hexpand=true)\n\ngrid = GtkGrid()\ngrid[1,1] = btn\ngrid[2,1] = sp\ngrid[1:2,2] = ent\n\nsignal_connect(btn, \"clicked\") do widget\n start(sp)\n Threads.@spawn begin\n\n # Do work\n stop_time = time() + 3\n counter = 0\n while time() < stop_time\n counter += 1\n end\n\n # Interacting with GTK from a thread other than the main thread is\n # generally not allowed, so we register an idle callback instead.\n Gtk4.GLib.g_idle_add() do\n stop(sp)\n ent.text = \"I counted to $counter in a thread!\"\n false\n end\n end\nend\n\nwin = GtkWindow(grid, \"Threads\", 300, 200)","category":"page"},{"location":"howto/async/","page":"Asynchronous UI","title":"Asynchronous UI","text":"A modified version of this code that includes an updating counter can be found in \"thread_timeout.jl\" in the \"examples\" subdirectory.","category":"page"},{"location":"howto/async/#Separate-processes","page":"Asynchronous UI","title":"Separate processes","text":"","category":"section"},{"location":"howto/async/","page":"Asynchronous UI","title":"Asynchronous UI","text":"Here is an example using a separate process to offload the work. This toy example is fairly straightforward, but things can get more complex if the offloaded task is more complex. See the manual for details.","category":"page"},{"location":"howto/async/","page":"Asynchronous UI","title":"Asynchronous UI","text":"using Gtk4, Distributed\n\nbtn = GtkButton(\"Start\")\nsp = GtkSpinner()\nent = GtkEntry()\n\ngrid = GtkGrid()\ngrid[1,1] = btn\ngrid[2,1] = sp\ngrid[1:2,2] = ent\n\nid = addprocs(1)[1]\n\nsignal_connect(btn, \"clicked\") do widget\n start(sp)\n @async begin\n\n # Offload work to a separate process and block until it is done.\n counter = @fetchfrom id begin\n stop_time = time() + 3\n counter = 0\n while time() < stop_time\n counter += 1\n end\n counter\n end\n\n # We are still in the main thread so it is okay to directly access widgets\n stop(sp)\n ent.text = \"I counted to $counter in a separate process!\"\n end\nend\n\nwin = GtkWindow(grid, \"Distributed\", 200, 200)","category":"page"},{"location":"manual/display/#Display-widgets","page":"Display widgets","title":"Display widgets","text":"","category":"section"},{"location":"manual/display/","page":"Display widgets","title":"Display widgets","text":"We have already encountered GtkLabel, which is used to display text. GTK has a few other widgets that are useful for displaying information.","category":"page"},{"location":"manual/display/#[GtkSpinner](https://docs.gtk.org/gtk4/class.Spinner.html)","page":"Display widgets","title":"GtkSpinner","text":"","category":"section"},{"location":"manual/display/","page":"Display widgets","title":"Display widgets","text":"This is a simple widget that optionally shows an animated spinning icon. It's used to indicate to the user that something is happening.","category":"page"},{"location":"manual/display/","page":"Display widgets","title":"Display widgets","text":"The widget is constructed using GtkSpinner(). There are just two methods, start to display the spinning icon and stop to not display it.","category":"page"},{"location":"manual/display/","page":"Display widgets","title":"Display widgets","text":"To check if the spinner is spinning, use the \"spinning\" property or the spinning getter method.","category":"page"},{"location":"manual/display/#[GtkProgressBar](https://docs.gtk.org/gtk4/class.ProgressBar.html)","page":"Display widgets","title":"GtkProgressBar","text":"","category":"section"},{"location":"manual/display/","page":"Display widgets","title":"Display widgets","text":"This widget shows a progress bar and optionally text.","category":"page"},{"location":"manual/display/","page":"Display widgets","title":"Display widgets","text":"win = GtkWindow(\"Progress bar\")\nprogbar = GtkProgressBar()\npush!(win, progbar)","category":"page"},{"location":"manual/display/","page":"Display widgets","title":"Display widgets","text":"The fractional progress (between 0.0 and 1.0) can be set using the fraction setter or the \"fraction\" property:","category":"page"},{"location":"manual/display/","page":"Display widgets","title":"Display widgets","text":"fraction(progbar, 0.5)\nprogbar.fraction","category":"page"},{"location":"manual/display/","page":"Display widgets","title":"Display widgets","text":"You can show text which might, for example, say something about what is happening or an estimated time left:","category":"page"},{"location":"manual/display/","page":"Display widgets","title":"Display widgets","text":"Gtk4.text(progbar, \"11 seconds remaining\")","category":"page"},{"location":"manual/display/","page":"Display widgets","title":"Display widgets","text":"For processes with no well defined concept of progress, you can periodically use the pulse method to cause the progress bar to show a back and forth motion (think \"Knight Rider\"), reassuring the user that something is continuing to happen:","category":"page"},{"location":"manual/display/","page":"Display widgets","title":"Display widgets","text":"Gtk4.pulse(progbar) # moves the progress bar a little","category":"page"},{"location":"manual/display/","page":"Display widgets","title":"Display widgets","text":"The step size (in fractional units) for pulse can be set using Gtk4.pulse_step.","category":"page"},{"location":"manual/display/#[GtkPicture](https://docs.gtk.org/gtk4/class.Picture.html)-and-[GtkImage](https://docs.gtk.org/gtk4/class.Image.html)","page":"Display widgets","title":"GtkPicture and GtkImage","text":"","category":"section"},{"location":"manual/display/","page":"Display widgets","title":"Display widgets","text":"These two widgets can be used to display an image. GtkPicture shows the image at its natural size, while GtkImage shows it at a fixed, potentially smaller size (for example, an icon). The image can be set in a constructor or be set by a method.","category":"page"},{"location":"manual/display/","page":"Display widgets","title":"Display widgets","text":"For GtkPicture, there are constructors that read from a file (in PNG, JPEG, or TIFF format), either using a GFile object or a filename. Alternatively you can construct a GtkPicture from a GdkPixbuf or GdkPaintable.","category":"page"},{"location":"manual/combobox/#Dropdown-widgets","page":"Dropdown widgets","title":"Dropdown widgets","text":"","category":"section"},{"location":"manual/combobox/","page":"Dropdown widgets","title":"Dropdown widgets","text":"One often needs a widget to allow a user to select something from a few options. There are two easy ways to do this in Gtk4.jl.","category":"page"},{"location":"manual/combobox/#[GtkDropDown](https://docs.gtk.org/gtk4/class.DropDown.html)","page":"Dropdown widgets","title":"GtkDropDown","text":"","category":"section"},{"location":"manual/combobox/","page":"Dropdown widgets","title":"Dropdown widgets","text":"A simple option that was introduced in GTK version 4 is GtkDropDown. An example is shown below.","category":"page"},{"location":"manual/combobox/","page":"Dropdown widgets","title":"Dropdown widgets","text":"using Gtk4\n\nchoices = [\"one\", \"two\", \"three\", \"four\"]\ndd = GtkDropDown(choices)\n# Let's set the active element to be \"two\", keeping in mind that the \"selected\" property uses 0 based indexing\ndd.selected = 1\n\nsignal_connect(dd, \"notify::selected\") do widget, others...\n # get the active index\n idx = dd.selected\n # get the active string\n str = Gtk4.selected_string(dd)\n println(\"Active element is \\\"$str\\\" at index $idx\")\nend\n\nwin = GtkWindow(\"DropDown Example\",400,200)\npush!(win, dd)","category":"page"},{"location":"manual/combobox/","page":"Dropdown widgets","title":"Dropdown widgets","text":"A search entry can be added using Gtk4.enable_search(dd, true). You can set which item is selected using selected_string!.","category":"page"},{"location":"manual/combobox/","page":"Dropdown widgets","title":"Dropdown widgets","text":"To change the list of options after the dropdown widget is created, you have to change its list of strings. The model holding this list can fetched using the model method and then the string list can be modified using the Julia array interface (push!, pushfirst!, empty!, etc.):","category":"page"},{"location":"manual/combobox/","page":"Dropdown widgets","title":"Dropdown widgets","text":"m = Gtk4.model(dd)\npush!(m, \"five\")","category":"page"},{"location":"manual/combobox/","page":"Dropdown widgets","title":"Dropdown widgets","text":"More complex uses of GtkDropDown are possible by using models other than GtkStringList. This may be supported in future versions of Gtk4.jl.","category":"page"},{"location":"manual/combobox/#[GtkComboBox](https://docs.gtk.org/gtk4/class.ComboBox.html)","page":"Dropdown widgets","title":"GtkComboBox","text":"","category":"section"},{"location":"manual/combobox/","page":"Dropdown widgets","title":"Dropdown widgets","text":"The older API for dropdown menu functionality is GtkComboBox. The full, generic GtkComboBox widget is powerful but harder to use and won't be covered here. The simpler GtkComboBoxText subtype allows the user to select from text options.","category":"page"},{"location":"manual/combobox/#[GtkComboBoxText](https://docs.gtk.org/gtk4/class.ComboBoxText.html)","page":"Dropdown widgets","title":"GtkComboBoxText","text":"","category":"section"},{"location":"manual/combobox/","page":"Dropdown widgets","title":"Dropdown widgets","text":"The following example shows how to fill a GtkComboBoxText with elements and listen on the changed event (this example is functionally equivalent to the example above for GtkDropDown):","category":"page"},{"location":"manual/combobox/","page":"Dropdown widgets","title":"Dropdown widgets","text":"using Gtk4\n\ncb = GtkComboBoxText()\nchoices = [\"one\", \"two\", \"three\", \"four\"]\nfor choice in choices\n push!(cb,choice)\nend\n# Let's set the active element to be \"two\"\ncb.active = 1\n\nsignal_connect(cb, \"changed\") do widget, others...\n # get the active index\n idx = cb.active\n # get the active string\n str = Gtk4.active_text(cb)\n println(\"Active element is \\\"$str\\\" at index $idx\")\nend\n\nwin = GtkWindow(\"ComboBoxText Example\",400,200)\npush!(win, cb)","category":"page"},{"location":"doc/Gtk4_types_reference/#Gtk4-Types","page":"Gtk4 Types","title":"Gtk4 Types","text":"","category":"section"},{"location":"doc/Gtk4_types_reference/#Types","page":"Gtk4 Types","title":"Types","text":"","category":"section"},{"location":"doc/Gtk4_types_reference/","page":"Gtk4 Types","title":"Gtk4 Types","text":"Modules = [Gtk4, Gtk4.GdkPixbufLib]\nOrder = [:type]\nPublic = true\nPrivate = false\nFilter = t->(t!=GtkCanvas && t!=GtkWindow)","category":"page"},{"location":"doc/Gtk4_types_reference/#Gtk4.AccessibleAutocomplete","page":"Gtk4 Types","title":"Gtk4.AccessibleAutocomplete","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.AccessibleInvalidState","page":"Gtk4 Types","title":"Gtk4.AccessibleInvalidState","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.AccessiblePlatformState","page":"Gtk4 Types","title":"Gtk4.AccessiblePlatformState","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.AccessibleProperty","page":"Gtk4 Types","title":"Gtk4.AccessibleProperty","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.AccessibleRelation","page":"Gtk4 Types","title":"Gtk4.AccessibleRelation","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.AccessibleRole","page":"Gtk4 Types","title":"Gtk4.AccessibleRole","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.AccessibleSort","page":"Gtk4 Types","title":"Gtk4.AccessibleSort","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.AccessibleState","page":"Gtk4 Types","title":"Gtk4.AccessibleState","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.AccessibleTristate","page":"Gtk4 Types","title":"Gtk4.AccessibleTristate","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.Align","page":"Gtk4 Types","title":"Gtk4.Align","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.AnchorHints","page":"Gtk4 Types","title":"Gtk4.AnchorHints","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.ApplicationInhibitFlags","page":"Gtk4 Types","title":"Gtk4.ApplicationInhibitFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.ArrowType","page":"Gtk4 Types","title":"Gtk4.ArrowType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.AssistantPageType","page":"Gtk4 Types","title":"Gtk4.AssistantPageType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.AxisFlags","page":"Gtk4 Types","title":"Gtk4.AxisFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.AxisUse","page":"Gtk4 Types","title":"Gtk4.AxisUse","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.BaselinePosition","page":"Gtk4 Types","title":"Gtk4.BaselinePosition","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.BorderStyle","page":"Gtk4 Types","title":"Gtk4.BorderStyle","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.BuilderClosureFlags","page":"Gtk4 Types","title":"Gtk4.BuilderClosureFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.BuilderError","page":"Gtk4 Types","title":"Gtk4.BuilderError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.ButtonsType","page":"Gtk4 Types","title":"Gtk4.ButtonsType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.CellRendererAccelMode","page":"Gtk4 Types","title":"Gtk4.CellRendererAccelMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.CellRendererMode","page":"Gtk4 Types","title":"Gtk4.CellRendererMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.CellRendererState","page":"Gtk4 Types","title":"Gtk4.CellRendererState","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.Collation","page":"Gtk4 Types","title":"Gtk4.Collation","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.ConstraintAttribute","page":"Gtk4 Types","title":"Gtk4.ConstraintAttribute","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.ConstraintRelation","page":"Gtk4 Types","title":"Gtk4.ConstraintRelation","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.ConstraintStrength","page":"Gtk4 Types","title":"Gtk4.ConstraintStrength","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.ConstraintVflParserError","page":"Gtk4 Types","title":"Gtk4.ConstraintVflParserError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.ContentFit","page":"Gtk4 Types","title":"Gtk4.ContentFit","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.CornerType","page":"Gtk4 Types","title":"Gtk4.CornerType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.CrossingMode","page":"Gtk4 Types","title":"Gtk4.CrossingMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.CssParserError","page":"Gtk4 Types","title":"Gtk4.CssParserError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.CssParserWarning","page":"Gtk4 Types","title":"Gtk4.CssParserWarning","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.DebugFlags","page":"Gtk4 Types","title":"Gtk4.DebugFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.DeleteType","page":"Gtk4 Types","title":"Gtk4.DeleteType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.DevicePadFeature","page":"Gtk4 Types","title":"Gtk4.DevicePadFeature","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.DeviceToolType","page":"Gtk4 Types","title":"Gtk4.DeviceToolType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.DialogError","page":"Gtk4 Types","title":"Gtk4.DialogError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.DialogFlags","page":"Gtk4 Types","title":"Gtk4.DialogFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.DirectionType","page":"Gtk4 Types","title":"Gtk4.DirectionType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.DragAction","page":"Gtk4 Types","title":"Gtk4.DragAction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.DragCancelReason","page":"Gtk4 Types","title":"Gtk4.DragCancelReason","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.EditableProperties","page":"Gtk4 Types","title":"Gtk4.EditableProperties","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.EntryIconPosition","page":"Gtk4 Types","title":"Gtk4.EntryIconPosition","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.EventControllerScrollFlags","page":"Gtk4 Types","title":"Gtk4.EventControllerScrollFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.EventSequenceState","page":"Gtk4 Types","title":"Gtk4.EventSequenceState","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.EventType","page":"Gtk4 Types","title":"Gtk4.EventType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.FileChooserAction","page":"Gtk4 Types","title":"Gtk4.FileChooserAction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.FileChooserError","page":"Gtk4 Types","title":"Gtk4.FileChooserError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.FilterChange","page":"Gtk4 Types","title":"Gtk4.FilterChange","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.FilterMatch","page":"Gtk4 Types","title":"Gtk4.FilterMatch","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.FontChooserLevel","page":"Gtk4 Types","title":"Gtk4.FontChooserLevel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.FontLevel","page":"Gtk4 Types","title":"Gtk4.FontLevel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.FrameClockPhase","page":"Gtk4 Types","title":"Gtk4.FrameClockPhase","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.FullscreenMode","page":"Gtk4 Types","title":"Gtk4.FullscreenMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GLAPI","page":"Gtk4 Types","title":"Gtk4.GLAPI","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GLError","page":"Gtk4 Types","title":"Gtk4.GLError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkAppLaunchContext","page":"Gtk4 Types","title":"Gtk4.GdkAppLaunchContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkButtonEvent","page":"Gtk4 Types","title":"Gtk4.GdkButtonEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkCairoContext","page":"Gtk4 Types","title":"Gtk4.GdkCairoContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkClipboard","page":"Gtk4 Types","title":"Gtk4.GdkClipboard","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkContentDeserializer","page":"Gtk4 Types","title":"Gtk4.GdkContentDeserializer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkContentFormats","page":"Gtk4 Types","title":"Gtk4.GdkContentFormats","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkContentFormatsBuilder","page":"Gtk4 Types","title":"Gtk4.GdkContentFormatsBuilder","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkContentProvider","page":"Gtk4 Types","title":"Gtk4.GdkContentProvider","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkContentSerializer","page":"Gtk4 Types","title":"Gtk4.GdkContentSerializer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkCrossingEvent","page":"Gtk4 Types","title":"Gtk4.GdkCrossingEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkCursor","page":"Gtk4 Types","title":"Gtk4.GdkCursor","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkDNDEvent","page":"Gtk4 Types","title":"Gtk4.GdkDNDEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkDeleteEvent","page":"Gtk4 Types","title":"Gtk4.GdkDeleteEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkDevice","page":"Gtk4 Types","title":"Gtk4.GdkDevice","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkDeviceTool","page":"Gtk4 Types","title":"Gtk4.GdkDeviceTool","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkDisplay","page":"Gtk4 Types","title":"Gtk4.GdkDisplay","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkDisplay-Tuple{}","page":"Gtk4 Types","title":"Gtk4.GdkDisplay","text":"GdkDisplay()\n\nGet the default GdkDisplay.\n\nRelated GDK function: gdk_display_get_default()\n\n\n\n\n\n","category":"method"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkDisplayManager","page":"Gtk4 Types","title":"Gtk4.GdkDisplayManager","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkDrag","page":"Gtk4 Types","title":"Gtk4.GdkDrag","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkDragSurfaceSize","page":"Gtk4 Types","title":"Gtk4.GdkDragSurfaceSize","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkDrawContext","page":"Gtk4 Types","title":"Gtk4.GdkDrawContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkDrop","page":"Gtk4 Types","title":"Gtk4.GdkDrop","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkEvent","page":"Gtk4 Types","title":"Gtk4.GdkEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkEventSequence","page":"Gtk4 Types","title":"Gtk4.GdkEventSequence","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkFileList","page":"Gtk4 Types","title":"Gtk4.GdkFileList","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkFocusEvent","page":"Gtk4 Types","title":"Gtk4.GdkFocusEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkFrameClock","page":"Gtk4 Types","title":"Gtk4.GdkFrameClock","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkFrameTimings","page":"Gtk4 Types","title":"Gtk4.GdkFrameTimings","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkGLContext","page":"Gtk4 Types","title":"Gtk4.GdkGLContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkGLTexture","page":"Gtk4 Types","title":"Gtk4.GdkGLTexture","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkGLTextureBuilder","page":"Gtk4 Types","title":"Gtk4.GdkGLTextureBuilder","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkGrabBrokenEvent","page":"Gtk4 Types","title":"Gtk4.GdkGrabBrokenEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkKeyEvent","page":"Gtk4 Types","title":"Gtk4.GdkKeyEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkKeymapKey","page":"Gtk4 Types","title":"Gtk4.GdkKeymapKey","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkMemoryTexture","page":"Gtk4 Types","title":"Gtk4.GdkMemoryTexture","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkMemoryTexture-2","page":"Gtk4 Types","title":"Gtk4.GdkMemoryTexture","text":"GdkMemoryTexture(img::Array, tp = true)\n\nCreates a GdkMemoryTexture, copying an image array. If tp is set to true, the image will be transposed before copying so that the texture's orientation when displayed by GTK widgets like GtkPicture will match how the image is displayed in Julia apps like ImageShow.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkMonitor","page":"Gtk4 Types","title":"Gtk4.GdkMonitor","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkMotionEvent","page":"Gtk4 Types","title":"Gtk4.GdkMotionEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkPadEvent","page":"Gtk4 Types","title":"Gtk4.GdkPadEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkPopupLayout","page":"Gtk4 Types","title":"Gtk4.GdkPopupLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkProximityEvent","page":"Gtk4 Types","title":"Gtk4.GdkProximityEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkRGBA","page":"Gtk4 Types","title":"Gtk4.GdkRGBA","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkRectangle","page":"Gtk4 Types","title":"Gtk4.GdkRectangle","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkScrollEvent","page":"Gtk4 Types","title":"Gtk4.GdkScrollEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkSeat","page":"Gtk4 Types","title":"Gtk4.GdkSeat","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkSnapshot","page":"Gtk4 Types","title":"Gtk4.GdkSnapshot","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkSurface","page":"Gtk4 Types","title":"Gtk4.GdkSurface","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkTexture","page":"Gtk4 Types","title":"Gtk4.GdkTexture","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkTimeCoord","page":"Gtk4 Types","title":"Gtk4.GdkTimeCoord","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkToplevelLayout","page":"Gtk4 Types","title":"Gtk4.GdkToplevelLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkTouchEvent","page":"Gtk4 Types","title":"Gtk4.GdkTouchEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkTouchpadEvent","page":"Gtk4 Types","title":"Gtk4.GdkTouchpadEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkVulkanContext","page":"Gtk4 Types","title":"Gtk4.GdkVulkanContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.Gravity","page":"Gtk4 Types","title":"Gtk4.Gravity","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskBlendNode","page":"Gtk4 Types","title":"Gtk4.GskBlendNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskBlurNode","page":"Gtk4 Types","title":"Gtk4.GskBlurNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskBorderNode","page":"Gtk4 Types","title":"Gtk4.GskBorderNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskCairoNode","page":"Gtk4 Types","title":"Gtk4.GskCairoNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskCairoRenderer","page":"Gtk4 Types","title":"Gtk4.GskCairoRenderer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskClipNode","page":"Gtk4 Types","title":"Gtk4.GskClipNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskColorMatrixNode","page":"Gtk4 Types","title":"Gtk4.GskColorMatrixNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskColorNode","page":"Gtk4 Types","title":"Gtk4.GskColorNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskColorStop","page":"Gtk4 Types","title":"Gtk4.GskColorStop","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskConicGradientNode","page":"Gtk4 Types","title":"Gtk4.GskConicGradientNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskContainerNode","page":"Gtk4 Types","title":"Gtk4.GskContainerNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskCrossFadeNode","page":"Gtk4 Types","title":"Gtk4.GskCrossFadeNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskDebugNode","page":"Gtk4 Types","title":"Gtk4.GskDebugNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskGLShader","page":"Gtk4 Types","title":"Gtk4.GskGLShader","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskGLShaderNode","page":"Gtk4 Types","title":"Gtk4.GskGLShaderNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskInsetShadowNode","page":"Gtk4 Types","title":"Gtk4.GskInsetShadowNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskLinearGradientNode","page":"Gtk4 Types","title":"Gtk4.GskLinearGradientNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskMaskNode","page":"Gtk4 Types","title":"Gtk4.GskMaskNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskOpacityNode","page":"Gtk4 Types","title":"Gtk4.GskOpacityNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskOutsetShadowNode","page":"Gtk4 Types","title":"Gtk4.GskOutsetShadowNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskParseLocation","page":"Gtk4 Types","title":"Gtk4.GskParseLocation","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskRadialGradientNode","page":"Gtk4 Types","title":"Gtk4.GskRadialGradientNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskRenderNode","page":"Gtk4 Types","title":"Gtk4.GskRenderNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskRenderer","page":"Gtk4 Types","title":"Gtk4.GskRenderer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskRepeatNode","page":"Gtk4 Types","title":"Gtk4.GskRepeatNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskRepeatingLinearGradientNode","page":"Gtk4 Types","title":"Gtk4.GskRepeatingLinearGradientNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskRepeatingRadialGradientNode","page":"Gtk4 Types","title":"Gtk4.GskRepeatingRadialGradientNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskRoundedClipNode","page":"Gtk4 Types","title":"Gtk4.GskRoundedClipNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskRoundedRect","page":"Gtk4 Types","title":"Gtk4.GskRoundedRect","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskShadow","page":"Gtk4 Types","title":"Gtk4.GskShadow","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskShadowNode","page":"Gtk4 Types","title":"Gtk4.GskShadowNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskTextNode","page":"Gtk4 Types","title":"Gtk4.GskTextNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskTextureNode","page":"Gtk4 Types","title":"Gtk4.GskTextureNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskTextureScaleNode","page":"Gtk4 Types","title":"Gtk4.GskTextureScaleNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskTransform","page":"Gtk4 Types","title":"Gtk4.GskTransform","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskTransformNode","page":"Gtk4 Types","title":"Gtk4.GskTransformNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkATContext","page":"Gtk4 Types","title":"Gtk4.GtkATContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkAboutDialog","page":"Gtk4 Types","title":"Gtk4.GtkAboutDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkActionBar","page":"Gtk4 Types","title":"Gtk4.GtkActionBar","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkActivateAction","page":"Gtk4 Types","title":"Gtk4.GtkActivateAction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkAdjustment","page":"Gtk4 Types","title":"Gtk4.GtkAdjustment","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkAlertDialog","page":"Gtk4 Types","title":"Gtk4.GtkAlertDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkAlternativeTrigger","page":"Gtk4 Types","title":"Gtk4.GtkAlternativeTrigger","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkAnyFilter","page":"Gtk4 Types","title":"Gtk4.GtkAnyFilter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkAppChooserButton","page":"Gtk4 Types","title":"Gtk4.GtkAppChooserButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkAppChooserDialog","page":"Gtk4 Types","title":"Gtk4.GtkAppChooserDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkAppChooserWidget","page":"Gtk4 Types","title":"Gtk4.GtkAppChooserWidget","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkApplication","page":"Gtk4 Types","title":"Gtk4.GtkApplication","text":"GtkApplication(id = nothing, flags = GLib.ApplicationFlags_FLAGS_NONE)\n\nCreate a GtkApplication with DBus id id and flags.\n\nRelated GTK function: gtk_application_new()\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkApplication-2","page":"Gtk4 Types","title":"Gtk4.GtkApplication","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkApplicationWindow","page":"Gtk4 Types","title":"Gtk4.GtkApplicationWindow","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkApplicationWindow-Tuple{GtkApplication, AbstractString}","page":"Gtk4 Types","title":"Gtk4.GtkApplicationWindow","text":"GtkApplicationWindow(app::GtkApplication, title::AbstractString; kwargs...)\n\nCreate an empty GtkApplicationWindow for a GtkApplication app and a title. Keyword arguments can be used to set GObject properties.\n\n\n\n\n\n","category":"method"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkAspectFrame","page":"Gtk4 Types","title":"Gtk4.GtkAspectFrame","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkAssistant","page":"Gtk4 Types","title":"Gtk4.GtkAssistant","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkAssistantPage","page":"Gtk4 Types","title":"Gtk4.GtkAssistantPage","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkBinLayout","page":"Gtk4 Types","title":"Gtk4.GtkBinLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkBitset","page":"Gtk4 Types","title":"Gtk4.GtkBitset","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkBitsetIter","page":"Gtk4 Types","title":"Gtk4.GtkBitsetIter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkBookmarkList","page":"Gtk4 Types","title":"Gtk4.GtkBookmarkList","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkBoolFilter","page":"Gtk4 Types","title":"Gtk4.GtkBoolFilter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkBorder","page":"Gtk4 Types","title":"Gtk4.GtkBorder","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkBox","page":"Gtk4 Types","title":"Gtk4.GtkBox","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkBox-2","page":"Gtk4 Types","title":"Gtk4.GtkBox","text":"GtkBox(orientation::Symbol, spacing::Integer=0; kwargs...)\n\nCreate and return a GtkBox widget. The orientation argument can be :h for horizontal, or :v for vertical. The spacing argument controls the spacing between child widgets in pixels. Keyword arguments allow you to set GObject properties.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkBoxLayout","page":"Gtk4 Types","title":"Gtk4.GtkBoxLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkBuildableParseContext","page":"Gtk4 Types","title":"Gtk4.GtkBuildableParseContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkBuildableParser","page":"Gtk4 Types","title":"Gtk4.GtkBuildableParser","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkBuilder","page":"Gtk4 Types","title":"Gtk4.GtkBuilder","text":"GtkBuilder(; kwargs...)\nGtkBuilder(filename::AbstractString; kwargs...)\nGtkBuilder(string::AbstractString, _length::Integer; kwargs...)\n\nCreate a GtkBuilder object. If filename is given (the constructor with a single string argument), XML describing the user interface will be read from a file. If string and length are given (the constructor with a string and an integer), XML will be read from a string of a certain length. If length is -1 the full string will be used.\n\nSee the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkBuilderCScope","page":"Gtk4 Types","title":"Gtk4.GtkBuilderCScope","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkBuilderListItemFactory","page":"Gtk4 Types","title":"Gtk4.GtkBuilderListItemFactory","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkButton","page":"Gtk4 Types","title":"Gtk4.GtkButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkButton-Tuple{GtkWidget}","page":"Gtk4 Types","title":"Gtk4.GtkButton","text":"GtkButton(w::GtkWidget)\n\nCreate a GtkButton and add a widget w as its child.\n\n\n\n\n\n","category":"method"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkButton-Tuple{Symbol, AbstractString}","page":"Gtk4 Types","title":"Gtk4.GtkButton","text":"GtkButton(s::Symbol, str::AbstractString)\n\nCreate and return a GtkButton widget.\n\nIf s is :label, create a button with a string label.\n\nIf s is :mnemonic, create a button with a string label, where the first letter preceded by an underscore character defines a mnemonic. Pressing Alt and that letter activates the button.\n\nIf s is :icon_name, create a button with an icon from the current icon theme.\n\nRelated GTK functions: gtk_button_new_with_label(), gtk_button_new_with_mnemonic(), gtk_button_new_from_icon_name()\n\n\n\n\n\n","category":"method"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCalendar","page":"Gtk4 Types","title":"Gtk4.GtkCalendar","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCallbackAction","page":"Gtk4 Types","title":"Gtk4.GtkCallbackAction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCellArea","page":"Gtk4 Types","title":"Gtk4.GtkCellArea","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCellAreaBox","page":"Gtk4 Types","title":"Gtk4.GtkCellAreaBox","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCellAreaContext","page":"Gtk4 Types","title":"Gtk4.GtkCellAreaContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCellRenderer","page":"Gtk4 Types","title":"Gtk4.GtkCellRenderer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCellRendererAccel","page":"Gtk4 Types","title":"Gtk4.GtkCellRendererAccel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCellRendererCombo","page":"Gtk4 Types","title":"Gtk4.GtkCellRendererCombo","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCellRendererPixbuf","page":"Gtk4 Types","title":"Gtk4.GtkCellRendererPixbuf","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCellRendererProgress","page":"Gtk4 Types","title":"Gtk4.GtkCellRendererProgress","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCellRendererSpin","page":"Gtk4 Types","title":"Gtk4.GtkCellRendererSpin","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCellRendererSpinner","page":"Gtk4 Types","title":"Gtk4.GtkCellRendererSpinner","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCellRendererText","page":"Gtk4 Types","title":"Gtk4.GtkCellRendererText","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCellRendererToggle","page":"Gtk4 Types","title":"Gtk4.GtkCellRendererToggle","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCellView","page":"Gtk4 Types","title":"Gtk4.GtkCellView","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCenterBox","page":"Gtk4 Types","title":"Gtk4.GtkCenterBox","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCenterBox-Tuple{Symbol}","page":"Gtk4 Types","title":"Gtk4.GtkCenterBox","text":"GtkCenterBox(orientation::Symbol; kwargs...)\n\nCreate and return a GtkCenterBox widget. The orientation argument can be :h for horizontal, or :v for vertical. Keyword arguments allow you to set GObject properties.\n\n\n\n\n\n","category":"method"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCenterLayout","page":"Gtk4 Types","title":"Gtk4.GtkCenterLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCheckButton","page":"Gtk4 Types","title":"Gtk4.GtkCheckButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkColorButton","page":"Gtk4 Types","title":"Gtk4.GtkColorButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkColorChooserDialog","page":"Gtk4 Types","title":"Gtk4.GtkColorChooserDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkColorChooserWidget","page":"Gtk4 Types","title":"Gtk4.GtkColorChooserWidget","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkColorDialog","page":"Gtk4 Types","title":"Gtk4.GtkColorDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkColorDialogButton","page":"Gtk4 Types","title":"Gtk4.GtkColorDialogButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkColumnView","page":"Gtk4 Types","title":"Gtk4.GtkColumnView","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkColumnViewCell","page":"Gtk4 Types","title":"Gtk4.GtkColumnViewCell","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkColumnViewColumn","page":"Gtk4 Types","title":"Gtk4.GtkColumnViewColumn","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkColumnViewRow","page":"Gtk4 Types","title":"Gtk4.GtkColumnViewRow","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkColumnViewSorter","page":"Gtk4 Types","title":"Gtk4.GtkColumnViewSorter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkComboBox","page":"Gtk4 Types","title":"Gtk4.GtkComboBox","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkComboBoxText","page":"Gtk4 Types","title":"Gtk4.GtkComboBoxText","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkConstantExpression","page":"Gtk4 Types","title":"Gtk4.GtkConstantExpression","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkConstraint","page":"Gtk4 Types","title":"Gtk4.GtkConstraint","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkConstraintGuide","page":"Gtk4 Types","title":"Gtk4.GtkConstraintGuide","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkConstraintLayout","page":"Gtk4 Types","title":"Gtk4.GtkConstraintLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkConstraintLayoutChild","page":"Gtk4 Types","title":"Gtk4.GtkConstraintLayoutChild","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCssProvider","page":"Gtk4 Types","title":"Gtk4.GtkCssProvider","text":"GtkCssProvider(data, filename = nothing)\n\nCreate a GtkCssProvider object using CSS from a string data. If data is set to nothing, CSS is instead loaded from a file filename. If both arguments are nothing, an empty GtkCssProvider is returned.\n\nRelated GTK functions: gtk_css_provider_load_from_path(), gtk_css_provider_load_from_data()\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCssProvider-2","page":"Gtk4 Types","title":"Gtk4.GtkCssProvider","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCssSection","page":"Gtk4 Types","title":"Gtk4.GtkCssSection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCustomFilter","page":"Gtk4 Types","title":"Gtk4.GtkCustomFilter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCustomLayout","page":"Gtk4 Types","title":"Gtk4.GtkCustomLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCustomSorter","page":"Gtk4 Types","title":"Gtk4.GtkCustomSorter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkDialog","page":"Gtk4 Types","title":"Gtk4.GtkDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkDirectoryList","page":"Gtk4 Types","title":"Gtk4.GtkDirectoryList","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkDragIcon","page":"Gtk4 Types","title":"Gtk4.GtkDragIcon","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkDragSource","page":"Gtk4 Types","title":"Gtk4.GtkDragSource","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkDrawingArea","page":"Gtk4 Types","title":"Gtk4.GtkDrawingArea","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkDropControllerMotion","page":"Gtk4 Types","title":"Gtk4.GtkDropControllerMotion","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkDropDown","page":"Gtk4 Types","title":"Gtk4.GtkDropDown","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkDropDown-Tuple{AbstractArray}","page":"Gtk4 Types","title":"Gtk4.GtkDropDown","text":"GtkDropDown(a::AbstractArray; kwargs...)\n\nCreate a dropdown widget with a GtkStringList as its model. The model will be populated with the elements of a converted to strings. Keyword arguments set GObject properties.\n\n\n\n\n\n","category":"method"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkDropDown-Tuple{}","page":"Gtk4 Types","title":"Gtk4.GtkDropDown","text":"GtkDropDown(; kwargs...)\n\nCreate a dropdown widget with no model (and thus no options to selected). A model can be added using model. Keyword arguments set GObject properties.\n\n\n\n\n\n","category":"method"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkDropTarget","page":"Gtk4 Types","title":"Gtk4.GtkDropTarget","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkDropTargetAsync","page":"Gtk4 Types","title":"Gtk4.GtkDropTargetAsync","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkEditableLabel","page":"Gtk4 Types","title":"Gtk4.GtkEditableLabel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkEmojiChooser","page":"Gtk4 Types","title":"Gtk4.GtkEmojiChooser","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkEntry","page":"Gtk4 Types","title":"Gtk4.GtkEntry","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkEntryBuffer","page":"Gtk4 Types","title":"Gtk4.GtkEntryBuffer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkEntryCompletion","page":"Gtk4 Types","title":"Gtk4.GtkEntryCompletion","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkEventController","page":"Gtk4 Types","title":"Gtk4.GtkEventController","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkEventControllerFocus","page":"Gtk4 Types","title":"Gtk4.GtkEventControllerFocus","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkEventControllerKey","page":"Gtk4 Types","title":"Gtk4.GtkEventControllerKey","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkEventControllerLegacy","page":"Gtk4 Types","title":"Gtk4.GtkEventControllerLegacy","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkEventControllerMotion","page":"Gtk4 Types","title":"Gtk4.GtkEventControllerMotion","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkEventControllerScroll","page":"Gtk4 Types","title":"Gtk4.GtkEventControllerScroll","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkEveryFilter","page":"Gtk4 Types","title":"Gtk4.GtkEveryFilter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkExpander","page":"Gtk4 Types","title":"Gtk4.GtkExpander","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkExpression","page":"Gtk4 Types","title":"Gtk4.GtkExpression","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkExpressionWatch","page":"Gtk4 Types","title":"Gtk4.GtkExpressionWatch","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkFileChooserDialog","page":"Gtk4 Types","title":"Gtk4.GtkFileChooserDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkFileChooserNative","page":"Gtk4 Types","title":"Gtk4.GtkFileChooserNative","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkFileChooserWidget","page":"Gtk4 Types","title":"Gtk4.GtkFileChooserWidget","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkFileDialog","page":"Gtk4 Types","title":"Gtk4.GtkFileDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkFileDialog-Tuple{}","page":"Gtk4 Types","title":"Gtk4.GtkFileDialog","text":"GtkFileDialog(; kwargs...)\n\nSelected keyword arguments\n\naccept_label: the text to show on the dialog's accept button\ndefault_filter: the GtkFileFilter initially active in the file dialog\nfilters: a GListModel of file filters\ninitial_name: the filename or directory that is initially selected in the file chooser dialog\ntitle: the title of the dialog\nmodal: whether the dialog is modal\n\n\n\n\n\n","category":"method"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkFileFilter","page":"Gtk4 Types","title":"Gtk4.GtkFileFilter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkFileLauncher","page":"Gtk4 Types","title":"Gtk4.GtkFileLauncher","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkFilter","page":"Gtk4 Types","title":"Gtk4.GtkFilter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkFilterListModel","page":"Gtk4 Types","title":"Gtk4.GtkFilterListModel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkFixed","page":"Gtk4 Types","title":"Gtk4.GtkFixed","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkFixedLayout","page":"Gtk4 Types","title":"Gtk4.GtkFixedLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkFixedLayoutChild","page":"Gtk4 Types","title":"Gtk4.GtkFixedLayoutChild","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkFlattenListModel","page":"Gtk4 Types","title":"Gtk4.GtkFlattenListModel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkFlowBox","page":"Gtk4 Types","title":"Gtk4.GtkFlowBox","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkFlowBoxChild","page":"Gtk4 Types","title":"Gtk4.GtkFlowBoxChild","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkFontButton","page":"Gtk4 Types","title":"Gtk4.GtkFontButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkFontChooserDialog","page":"Gtk4 Types","title":"Gtk4.GtkFontChooserDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkFontChooserWidget","page":"Gtk4 Types","title":"Gtk4.GtkFontChooserWidget","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkFontDialog","page":"Gtk4 Types","title":"Gtk4.GtkFontDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkFontDialogButton","page":"Gtk4 Types","title":"Gtk4.GtkFontDialogButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkFrame","page":"Gtk4 Types","title":"Gtk4.GtkFrame","text":"GtkFrame(w::GtkWidget, label=nothing; kwargs...)\n\nCreate a GtkFrame with an optional string label and add w as its child. Keyword arguments allow you to set GObject properties.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkFrame-2","page":"Gtk4 Types","title":"Gtk4.GtkFrame","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkFrame-Tuple{}","page":"Gtk4 Types","title":"Gtk4.GtkFrame","text":"GtkFrame(label=nothing; kwargs...)\n\nCreate a GtkFrame, a layout widget that can hold a single child widget, with an optional string label. Keyword arguments allow you to set GObject properties.\n\n\n\n\n\n","category":"method"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkGLArea","page":"Gtk4 Types","title":"Gtk4.GtkGLArea","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkGesture","page":"Gtk4 Types","title":"Gtk4.GtkGesture","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkGestureClick","page":"Gtk4 Types","title":"Gtk4.GtkGestureClick","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkGestureDrag","page":"Gtk4 Types","title":"Gtk4.GtkGestureDrag","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkGestureLongPress","page":"Gtk4 Types","title":"Gtk4.GtkGestureLongPress","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkGesturePan","page":"Gtk4 Types","title":"Gtk4.GtkGesturePan","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkGestureRotate","page":"Gtk4 Types","title":"Gtk4.GtkGestureRotate","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkGestureSingle","page":"Gtk4 Types","title":"Gtk4.GtkGestureSingle","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkGestureStylus","page":"Gtk4 Types","title":"Gtk4.GtkGestureStylus","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkGestureSwipe","page":"Gtk4 Types","title":"Gtk4.GtkGestureSwipe","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkGestureZoom","page":"Gtk4 Types","title":"Gtk4.GtkGestureZoom","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkGrid","page":"Gtk4 Types","title":"Gtk4.GtkGrid","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkGridLayout","page":"Gtk4 Types","title":"Gtk4.GtkGridLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkGridLayoutChild","page":"Gtk4 Types","title":"Gtk4.GtkGridLayoutChild","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkGridView","page":"Gtk4 Types","title":"Gtk4.GtkGridView","text":"GtkGridView(model=nothing; kwargs...)\n\nCreate a GtkGridView widget, optionally with a model. Keyword arguments set GObject properties.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkGridView-2","page":"Gtk4 Types","title":"Gtk4.GtkGridView","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkHeaderBar","page":"Gtk4 Types","title":"Gtk4.GtkHeaderBar","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkIMContext","page":"Gtk4 Types","title":"Gtk4.GtkIMContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkIMContextSimple","page":"Gtk4 Types","title":"Gtk4.GtkIMContextSimple","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkIMMulticontext","page":"Gtk4 Types","title":"Gtk4.GtkIMMulticontext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkIconPaintable","page":"Gtk4 Types","title":"Gtk4.GtkIconPaintable","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkIconTheme","page":"Gtk4 Types","title":"Gtk4.GtkIconTheme","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkIconTheme-Tuple{GdkDisplay}","page":"Gtk4 Types","title":"Gtk4.GtkIconTheme","text":"GtkIconTheme(d::GdkDisplay)\n\nGet the icon theme for a GdkDisplay.\n\nRelated GTK function: gtk_icon_theme_get_for_display()\n\n\n\n\n\n","category":"method"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkIconView","page":"Gtk4 Types","title":"Gtk4.GtkIconView","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkImage","page":"Gtk4 Types","title":"Gtk4.GtkImage","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkInfoBar","page":"Gtk4 Types","title":"Gtk4.GtkInfoBar","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkInscription","page":"Gtk4 Types","title":"Gtk4.GtkInscription","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkKeyvalTrigger","page":"Gtk4 Types","title":"Gtk4.GtkKeyvalTrigger","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkLabel","page":"Gtk4 Types","title":"Gtk4.GtkLabel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkLayoutChild","page":"Gtk4 Types","title":"Gtk4.GtkLayoutChild","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkLayoutManager","page":"Gtk4 Types","title":"Gtk4.GtkLayoutManager","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkLevelBar","page":"Gtk4 Types","title":"Gtk4.GtkLevelBar","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkLinkButton","page":"Gtk4 Types","title":"Gtk4.GtkLinkButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkListBase","page":"Gtk4 Types","title":"Gtk4.GtkListBase","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkListBox","page":"Gtk4 Types","title":"Gtk4.GtkListBox","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkListBoxRow","page":"Gtk4 Types","title":"Gtk4.GtkListBoxRow","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkListHeader","page":"Gtk4 Types","title":"Gtk4.GtkListHeader","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkListItem","page":"Gtk4 Types","title":"Gtk4.GtkListItem","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkListItemFactory","page":"Gtk4 Types","title":"Gtk4.GtkListItemFactory","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkListStore","page":"Gtk4 Types","title":"Gtk4.GtkListStore","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkListView","page":"Gtk4 Types","title":"Gtk4.GtkListView","text":"GtkListView(model=nothing; kwargs...)\n\nCreate a GtkListView widget, optionally with a model. Keyword arguments set GObject properties.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkListView-2","page":"Gtk4 Types","title":"Gtk4.GtkListView","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkLockButton","page":"Gtk4 Types","title":"Gtk4.GtkLockButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkMapListModel","page":"Gtk4 Types","title":"Gtk4.GtkMapListModel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkMediaControls","page":"Gtk4 Types","title":"Gtk4.GtkMediaControls","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkMediaFile","page":"Gtk4 Types","title":"Gtk4.GtkMediaFile","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkMediaStream","page":"Gtk4 Types","title":"Gtk4.GtkMediaStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkMenuButton","page":"Gtk4 Types","title":"Gtk4.GtkMenuButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkMessageDialog","page":"Gtk4 Types","title":"Gtk4.GtkMessageDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkMnemonicAction","page":"Gtk4 Types","title":"Gtk4.GtkMnemonicAction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkMnemonicTrigger","page":"Gtk4 Types","title":"Gtk4.GtkMnemonicTrigger","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkMountOperation","page":"Gtk4 Types","title":"Gtk4.GtkMountOperation","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkMultiFilter","page":"Gtk4 Types","title":"Gtk4.GtkMultiFilter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkMultiSelection","page":"Gtk4 Types","title":"Gtk4.GtkMultiSelection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkMultiSorter","page":"Gtk4 Types","title":"Gtk4.GtkMultiSorter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkNamedAction","page":"Gtk4 Types","title":"Gtk4.GtkNamedAction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkNativeDialog","page":"Gtk4 Types","title":"Gtk4.GtkNativeDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkNeverTrigger","page":"Gtk4 Types","title":"Gtk4.GtkNeverTrigger","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkNoSelection","page":"Gtk4 Types","title":"Gtk4.GtkNoSelection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkNotebook","page":"Gtk4 Types","title":"Gtk4.GtkNotebook","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkNotebookPage","page":"Gtk4 Types","title":"Gtk4.GtkNotebookPage","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkNothingAction","page":"Gtk4 Types","title":"Gtk4.GtkNothingAction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkNumericSorter","page":"Gtk4 Types","title":"Gtk4.GtkNumericSorter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkObjectExpression","page":"Gtk4 Types","title":"Gtk4.GtkObjectExpression","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkOverlay","page":"Gtk4 Types","title":"Gtk4.GtkOverlay","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkOverlay-Tuple{GtkWidget}","page":"Gtk4 Types","title":"Gtk4.GtkOverlay","text":"GtkOverlay(w=nothing; kwargs...)\n\nCreate a GtkOverlay, a layout widget that holds one main child and other child \"overlay\" widgets that are drawn on top of the main child. The main child can be set using the argument w.\n\n\n\n\n\n","category":"method"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkOverlayLayout","page":"Gtk4 Types","title":"Gtk4.GtkOverlayLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkOverlayLayoutChild","page":"Gtk4 Types","title":"Gtk4.GtkOverlayLayoutChild","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkPadActionEntry","page":"Gtk4 Types","title":"Gtk4.GtkPadActionEntry","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkPadController","page":"Gtk4 Types","title":"Gtk4.GtkPadController","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkPageSetup","page":"Gtk4 Types","title":"Gtk4.GtkPageSetup","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkPaned","page":"Gtk4 Types","title":"Gtk4.GtkPaned","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkPaned-Tuple{Symbol}","page":"Gtk4 Types","title":"Gtk4.GtkPaned","text":"GtkPaned(orientation::Symbol; kwargs...)\n\nCreate and return a GtkPaned widget. The orientation argument can be :h for horizontal, or :v for vertical. Keyword arguments allow you to set GObject properties.\n\n\n\n\n\n","category":"method"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkPaperSize","page":"Gtk4 Types","title":"Gtk4.GtkPaperSize","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkPasswordEntry","page":"Gtk4 Types","title":"Gtk4.GtkPasswordEntry","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkPasswordEntryBuffer","page":"Gtk4 Types","title":"Gtk4.GtkPasswordEntryBuffer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkPicture","page":"Gtk4 Types","title":"Gtk4.GtkPicture","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkPopover","page":"Gtk4 Types","title":"Gtk4.GtkPopover","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkPopoverMenu","page":"Gtk4 Types","title":"Gtk4.GtkPopoverMenu","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkPopoverMenuBar","page":"Gtk4 Types","title":"Gtk4.GtkPopoverMenuBar","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkPrintContext","page":"Gtk4 Types","title":"Gtk4.GtkPrintContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkPrintJob","page":"Gtk4 Types","title":"Gtk4.GtkPrintJob","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkPrintOperation","page":"Gtk4 Types","title":"Gtk4.GtkPrintOperation","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkPrintSettings","page":"Gtk4 Types","title":"Gtk4.GtkPrintSettings","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkPrinter","page":"Gtk4 Types","title":"Gtk4.GtkPrinter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkProgressBar","page":"Gtk4 Types","title":"Gtk4.GtkProgressBar","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkPropertyExpression","page":"Gtk4 Types","title":"Gtk4.GtkPropertyExpression","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkRange","page":"Gtk4 Types","title":"Gtk4.GtkRange","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkRecentData","page":"Gtk4 Types","title":"Gtk4.GtkRecentData","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkRecentInfo","page":"Gtk4 Types","title":"Gtk4.GtkRecentInfo","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkRecentManager","page":"Gtk4 Types","title":"Gtk4.GtkRecentManager","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkRequestedSize","page":"Gtk4 Types","title":"Gtk4.GtkRequestedSize","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkRequisition","page":"Gtk4 Types","title":"Gtk4.GtkRequisition","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkRevealer","page":"Gtk4 Types","title":"Gtk4.GtkRevealer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkScale","page":"Gtk4 Types","title":"Gtk4.GtkScale","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkScale-Tuple{Symbol}","page":"Gtk4 Types","title":"Gtk4.GtkScale","text":"GtkScale(orientation, [scale::AbstractRange]; kwargs...)\n\nCreate a scale widget with horizontal (:h) or vertical (:v) orientation and an optional range. Keyword arguments can be used to set properties.\n\n\n\n\n\n","category":"method"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkScaleButton","page":"Gtk4 Types","title":"Gtk4.GtkScaleButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkScrollInfo","page":"Gtk4 Types","title":"Gtk4.GtkScrollInfo","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkScrollbar","page":"Gtk4 Types","title":"Gtk4.GtkScrollbar","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkScrolledWindow","page":"Gtk4 Types","title":"Gtk4.GtkScrolledWindow","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkSearchBar","page":"Gtk4 Types","title":"Gtk4.GtkSearchBar","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkSearchEntry","page":"Gtk4 Types","title":"Gtk4.GtkSearchEntry","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkSelectionFilterModel","page":"Gtk4 Types","title":"Gtk4.GtkSelectionFilterModel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkSeparator","page":"Gtk4 Types","title":"Gtk4.GtkSeparator","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkSettings","page":"Gtk4 Types","title":"Gtk4.GtkSettings","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkShortcut","page":"Gtk4 Types","title":"Gtk4.GtkShortcut","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkShortcutAction","page":"Gtk4 Types","title":"Gtk4.GtkShortcutAction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkShortcutController","page":"Gtk4 Types","title":"Gtk4.GtkShortcutController","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkShortcutLabel","page":"Gtk4 Types","title":"Gtk4.GtkShortcutLabel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkShortcutTrigger","page":"Gtk4 Types","title":"Gtk4.GtkShortcutTrigger","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkShortcutsGroup","page":"Gtk4 Types","title":"Gtk4.GtkShortcutsGroup","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkShortcutsSection","page":"Gtk4 Types","title":"Gtk4.GtkShortcutsSection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkShortcutsShortcut","page":"Gtk4 Types","title":"Gtk4.GtkShortcutsShortcut","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkShortcutsWindow","page":"Gtk4 Types","title":"Gtk4.GtkShortcutsWindow","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkSignalAction","page":"Gtk4 Types","title":"Gtk4.GtkSignalAction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkSignalListItemFactory","page":"Gtk4 Types","title":"Gtk4.GtkSignalListItemFactory","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkSignalListItemFactory-Tuple{Function, Function}","page":"Gtk4 Types","title":"Gtk4.GtkSignalListItemFactory","text":"GtkSignalListItemFactory(setup_cb, bind_cb)\n\nCreate a GtkSignalListItemFactory and immediately connect \"setup\" and \"bind\" callback functions setup_cb and bind_cb, respectively.\n\n\n\n\n\n","category":"method"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkSingleSelection","page":"Gtk4 Types","title":"Gtk4.GtkSingleSelection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkSizeGroup","page":"Gtk4 Types","title":"Gtk4.GtkSizeGroup","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkSliceListModel","page":"Gtk4 Types","title":"Gtk4.GtkSliceListModel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkSnapshot","page":"Gtk4 Types","title":"Gtk4.GtkSnapshot","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkSortListModel","page":"Gtk4 Types","title":"Gtk4.GtkSortListModel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkSorter","page":"Gtk4 Types","title":"Gtk4.GtkSorter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkSpinButton","page":"Gtk4 Types","title":"Gtk4.GtkSpinButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkSpinner","page":"Gtk4 Types","title":"Gtk4.GtkSpinner","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkStack","page":"Gtk4 Types","title":"Gtk4.GtkStack","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkStackPage","page":"Gtk4 Types","title":"Gtk4.GtkStackPage","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkStackSidebar","page":"Gtk4 Types","title":"Gtk4.GtkStackSidebar","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkStackSwitcher","page":"Gtk4 Types","title":"Gtk4.GtkStackSwitcher","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkStatusbar","page":"Gtk4 Types","title":"Gtk4.GtkStatusbar","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkStringFilter","page":"Gtk4 Types","title":"Gtk4.GtkStringFilter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkStringList","page":"Gtk4 Types","title":"Gtk4.GtkStringList","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkStringList-Tuple{}","page":"Gtk4 Types","title":"Gtk4.GtkStringList","text":"GtkStringList()\n\nCreate an empty GtkStringList, which implements the GListModel interface and holds an array of strings.\n\n\n\n\n\n","category":"method"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkStringObject","page":"Gtk4 Types","title":"Gtk4.GtkStringObject","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkStringSorter","page":"Gtk4 Types","title":"Gtk4.GtkStringSorter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkStyleContext","page":"Gtk4 Types","title":"Gtk4.GtkStyleContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkSwitch","page":"Gtk4 Types","title":"Gtk4.GtkSwitch","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkText","page":"Gtk4 Types","title":"Gtk4.GtkText","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkTextBuffer","page":"Gtk4 Types","title":"Gtk4.GtkTextBuffer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkTextChildAnchor","page":"Gtk4 Types","title":"Gtk4.GtkTextChildAnchor","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkTextIter","page":"Gtk4 Types","title":"Gtk4.GtkTextIter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkTextMark","page":"Gtk4 Types","title":"Gtk4.GtkTextMark","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkTextTag","page":"Gtk4 Types","title":"Gtk4.GtkTextTag","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkTextTagTable","page":"Gtk4 Types","title":"Gtk4.GtkTextTagTable","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkTextView","page":"Gtk4 Types","title":"Gtk4.GtkTextView","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkToggleButton","page":"Gtk4 Types","title":"Gtk4.GtkToggleButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkTooltip","page":"Gtk4 Types","title":"Gtk4.GtkTooltip","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkTreeExpander","page":"Gtk4 Types","title":"Gtk4.GtkTreeExpander","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkTreeIter","page":"Gtk4 Types","title":"Gtk4.GtkTreeIter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkTreeListModel","page":"Gtk4 Types","title":"Gtk4.GtkTreeListModel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkTreeListRow","page":"Gtk4 Types","title":"Gtk4.GtkTreeListRow","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkTreeListRowSorter","page":"Gtk4 Types","title":"Gtk4.GtkTreeListRowSorter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkTreeModelFilter","page":"Gtk4 Types","title":"Gtk4.GtkTreeModelFilter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkTreeModelSort","page":"Gtk4 Types","title":"Gtk4.GtkTreeModelSort","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkTreePath","page":"Gtk4 Types","title":"Gtk4.GtkTreePath","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkTreeSelection","page":"Gtk4 Types","title":"Gtk4.GtkTreeSelection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkTreeStore","page":"Gtk4 Types","title":"Gtk4.GtkTreeStore","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkTreeView","page":"Gtk4 Types","title":"Gtk4.GtkTreeView","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkTreeViewColumn","page":"Gtk4 Types","title":"Gtk4.GtkTreeViewColumn","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkUriLauncher","page":"Gtk4 Types","title":"Gtk4.GtkUriLauncher","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkVideo","page":"Gtk4 Types","title":"Gtk4.GtkVideo","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkViewport","page":"Gtk4 Types","title":"Gtk4.GtkViewport","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkVolumeButton","page":"Gtk4 Types","title":"Gtk4.GtkVolumeButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkWidget","page":"Gtk4 Types","title":"Gtk4.GtkWidget","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkWidgetPaintable","page":"Gtk4 Types","title":"Gtk4.GtkWidgetPaintable","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkWindowControls","page":"Gtk4 Types","title":"Gtk4.GtkWindowControls","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkWindowGroup","page":"Gtk4 Types","title":"Gtk4.GtkWindowGroup","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkWindowHandle","page":"Gtk4 Types","title":"Gtk4.GtkWindowHandle","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.IconLookupFlags","page":"Gtk4 Types","title":"Gtk4.IconLookupFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.IconSize","page":"Gtk4 Types","title":"Gtk4.IconSize","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.IconThemeError","page":"Gtk4 Types","title":"Gtk4.IconThemeError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.IconViewDropPosition","page":"Gtk4 Types","title":"Gtk4.IconViewDropPosition","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.ImageType","page":"Gtk4 Types","title":"Gtk4.ImageType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.InputHints","page":"Gtk4 Types","title":"Gtk4.InputHints","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.InputPurpose","page":"Gtk4 Types","title":"Gtk4.InputPurpose","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.InputSource","page":"Gtk4 Types","title":"Gtk4.InputSource","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.InscriptionOverflow","page":"Gtk4 Types","title":"Gtk4.InscriptionOverflow","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.Justification","page":"Gtk4 Types","title":"Gtk4.Justification","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.KeyMatch","page":"Gtk4 Types","title":"Gtk4.KeyMatch","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.LevelBarMode","page":"Gtk4 Types","title":"Gtk4.LevelBarMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.License","page":"Gtk4 Types","title":"Gtk4.License","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.ListScrollFlags","page":"Gtk4 Types","title":"Gtk4.ListScrollFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.ListTabBehavior","page":"Gtk4 Types","title":"Gtk4.ListTabBehavior","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.MemoryFormat","page":"Gtk4 Types","title":"Gtk4.MemoryFormat","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.MessageType","page":"Gtk4 Types","title":"Gtk4.MessageType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.ModifierType","page":"Gtk4 Types","title":"Gtk4.ModifierType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.MovementStep","page":"Gtk4 Types","title":"Gtk4.MovementStep","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.NaturalWrapMode","page":"Gtk4 Types","title":"Gtk4.NaturalWrapMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.NotebookTab","page":"Gtk4 Types","title":"Gtk4.NotebookTab","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.NotifyType","page":"Gtk4 Types","title":"Gtk4.NotifyType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.NumberUpLayout","page":"Gtk4 Types","title":"Gtk4.NumberUpLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.Ordering","page":"Gtk4 Types","title":"Gtk4.Ordering","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.Orientation","page":"Gtk4 Types","title":"Gtk4.Orientation","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.Overflow","page":"Gtk4 Types","title":"Gtk4.Overflow","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.PackType","page":"Gtk4 Types","title":"Gtk4.PackType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.PadActionType","page":"Gtk4 Types","title":"Gtk4.PadActionType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.PageOrientation","page":"Gtk4 Types","title":"Gtk4.PageOrientation","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.PageSet","page":"Gtk4 Types","title":"Gtk4.PageSet","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.PaintableFlags","page":"Gtk4 Types","title":"Gtk4.PaintableFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.PanDirection","page":"Gtk4 Types","title":"Gtk4.PanDirection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.PickFlags","page":"Gtk4 Types","title":"Gtk4.PickFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.PolicyType","page":"Gtk4 Types","title":"Gtk4.PolicyType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.PopoverMenuFlags","page":"Gtk4 Types","title":"Gtk4.PopoverMenuFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.PositionType","page":"Gtk4 Types","title":"Gtk4.PositionType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.PrintCapabilities","page":"Gtk4 Types","title":"Gtk4.PrintCapabilities","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.PrintDuplex","page":"Gtk4 Types","title":"Gtk4.PrintDuplex","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.PrintError","page":"Gtk4 Types","title":"Gtk4.PrintError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.PrintOperationAction","page":"Gtk4 Types","title":"Gtk4.PrintOperationAction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.PrintOperationResult","page":"Gtk4 Types","title":"Gtk4.PrintOperationResult","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.PrintPages","page":"Gtk4 Types","title":"Gtk4.PrintPages","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.PrintQuality","page":"Gtk4 Types","title":"Gtk4.PrintQuality","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.PrintStatus","page":"Gtk4 Types","title":"Gtk4.PrintStatus","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.PropagationLimit","page":"Gtk4 Types","title":"Gtk4.PropagationLimit","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.PropagationPhase","page":"Gtk4 Types","title":"Gtk4.PropagationPhase","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.RecentManagerError","page":"Gtk4 Types","title":"Gtk4.RecentManagerError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.ResponseType","page":"Gtk4 Types","title":"Gtk4.ResponseType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.RevealerTransitionType","page":"Gtk4 Types","title":"Gtk4.RevealerTransitionType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.ScrollDirection","page":"Gtk4 Types","title":"Gtk4.ScrollDirection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.ScrollStep","page":"Gtk4 Types","title":"Gtk4.ScrollStep","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.ScrollType","page":"Gtk4 Types","title":"Gtk4.ScrollType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.ScrollUnit","page":"Gtk4 Types","title":"Gtk4.ScrollUnit","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.ScrollablePolicy","page":"Gtk4 Types","title":"Gtk4.ScrollablePolicy","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.SeatCapabilities","page":"Gtk4 Types","title":"Gtk4.SeatCapabilities","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.SelectionMode","page":"Gtk4 Types","title":"Gtk4.SelectionMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.SensitivityType","page":"Gtk4 Types","title":"Gtk4.SensitivityType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.ShortcutActionFlags","page":"Gtk4 Types","title":"Gtk4.ShortcutActionFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.ShortcutScope","page":"Gtk4 Types","title":"Gtk4.ShortcutScope","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.ShortcutType","page":"Gtk4 Types","title":"Gtk4.ShortcutType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.SizeGroupMode","page":"Gtk4 Types","title":"Gtk4.SizeGroupMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.SizeRequestMode","page":"Gtk4 Types","title":"Gtk4.SizeRequestMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.SortType","page":"Gtk4 Types","title":"Gtk4.SortType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.SorterChange","page":"Gtk4 Types","title":"Gtk4.SorterChange","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.SorterOrder","page":"Gtk4 Types","title":"Gtk4.SorterOrder","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.SpinButtonUpdatePolicy","page":"Gtk4 Types","title":"Gtk4.SpinButtonUpdatePolicy","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.SpinType","page":"Gtk4 Types","title":"Gtk4.SpinType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.StackTransitionType","page":"Gtk4 Types","title":"Gtk4.StackTransitionType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.StateFlags","page":"Gtk4 Types","title":"Gtk4.StateFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.StringFilterMatchMode","page":"Gtk4 Types","title":"Gtk4.StringFilterMatchMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.StyleContextPrintFlags","page":"Gtk4 Types","title":"Gtk4.StyleContextPrintFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.SubpixelLayout","page":"Gtk4 Types","title":"Gtk4.SubpixelLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.SurfaceEdge","page":"Gtk4 Types","title":"Gtk4.SurfaceEdge","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.SymbolicColor","page":"Gtk4 Types","title":"Gtk4.SymbolicColor","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.SystemSetting","page":"Gtk4 Types","title":"Gtk4.SystemSetting","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.TextDirection","page":"Gtk4 Types","title":"Gtk4.TextDirection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.TextExtendSelection","page":"Gtk4 Types","title":"Gtk4.TextExtendSelection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.TextSearchFlags","page":"Gtk4 Types","title":"Gtk4.TextSearchFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.TextViewLayer","page":"Gtk4 Types","title":"Gtk4.TextViewLayer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.TextWindowType","page":"Gtk4 Types","title":"Gtk4.TextWindowType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.TextureError","page":"Gtk4 Types","title":"Gtk4.TextureError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.ToplevelState","page":"Gtk4 Types","title":"Gtk4.ToplevelState","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.TouchpadGesturePhase","page":"Gtk4 Types","title":"Gtk4.TouchpadGesturePhase","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.TreeModelFlags","page":"Gtk4 Types","title":"Gtk4.TreeModelFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.TreeViewColumnSizing","page":"Gtk4 Types","title":"Gtk4.TreeViewColumnSizing","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.TreeViewDropPosition","page":"Gtk4 Types","title":"Gtk4.TreeViewDropPosition","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.TreeViewGridLines","page":"Gtk4 Types","title":"Gtk4.TreeViewGridLines","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.Unit","page":"Gtk4 Types","title":"Gtk4.Unit","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.VulkanError","page":"Gtk4 Types","title":"Gtk4.VulkanError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.WrapMode","page":"Gtk4 Types","title":"Gtk4.WrapMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4._GtkTextIter-Tuple{GtkTextBuffer, Integer}","page":"Gtk4 Types","title":"Gtk4._GtkTextIter","text":"_GtkTextIter(text::GtkTextBuffer, char_offset::Integer)\n\nCreates a _GtkTextIter with offset char_offset (one-based index).\n\n\n\n\n\n","category":"method"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkPixbufLib.GdkPixbuf","page":"Gtk4 Types","title":"Gtk4.GdkPixbufLib.GdkPixbuf","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkPixbufLib.GdkPixbufAnimation","page":"Gtk4 Types","title":"Gtk4.GdkPixbufLib.GdkPixbufAnimation","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkPixbufLib.GdkPixbufAnimationIter","page":"Gtk4 Types","title":"Gtk4.GdkPixbufLib.GdkPixbufAnimationIter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkPixbufLib.GdkPixbufFormat","page":"Gtk4 Types","title":"Gtk4.GdkPixbufLib.GdkPixbufFormat","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkPixbufLib.GdkPixbufLoader","page":"Gtk4 Types","title":"Gtk4.GdkPixbufLib.GdkPixbufLoader","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkPixbufLib.GdkPixbufSimpleAnim","page":"Gtk4 Types","title":"Gtk4.GdkPixbufLib.GdkPixbufSimpleAnim","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/preferences/#Preference-Settings","page":"Preference Settings","title":"Preference Settings","text":"","category":"section"},{"location":"doc/preferences/","page":"Preference Settings","title":"Preference Settings","text":"Here is a list of preferences for Gtk4 that can be set using Preferences.jl.","category":"page"},{"location":"doc/preferences/#EGL-directories-(Linux-and-Wayland)","page":"Preference Settings","title":"EGL directories (Linux & Wayland)","text":"","category":"section"},{"location":"doc/preferences/","page":"Preference Settings","title":"Preference Settings","text":"GTK4 has a few different rendering backends, and by default on Linux it uses one based on OpenGL. Gtk4.jl uses JLL based libraries rather than the ones that come with your Linux distribution, and on Wayland, unfortunately, unless you tell libglvnd_jll where to find libEGL, it will be unable to find an OpenGL provider. As a result, on Wayland a Cairo-based fallback backend will be used. This may work fine for you, but it means that GtkGLArea will not work. We can tell libglvnd_jll where to find libEGL by setting the environment variable __EGL_VENDOR_LIBRARY_DIRS. See here for details.","category":"page"},{"location":"doc/preferences/","page":"Preference Settings","title":"Preference Settings","text":"You can point libglvnd_jll to a libEGL location using the preference \"EGL_vendorlib_dirs\":","category":"page"},{"location":"doc/preferences/","page":"Preference Settings","title":"Preference Settings","text":"using Gtk4\nGtk4.set_EGL_vendorlib_dirs(\"/usr/share/glvnd/egl_vendor.d\")\n[ Info: Setting will take effect after restarting Julia.","category":"page"},{"location":"doc/preferences/","page":"Preference Settings","title":"Preference Settings","text":"where \"/usr/share/glvnd/egl_vendor.d\" is a typical location for Mesa's libEGL (this should be modified if it's somewhere else on your distribution). Other vendor-provided libraries may be in other locations, and a colon-separated list of directories can be used for that situation. Note that this has only been tested for the Mesa-provided libEGL on Fedora and Ubuntu.","category":"page"},{"location":"doc/preferences/#UV-loop-integration","page":"Preference Settings","title":"UV loop integration","text":"","category":"section"},{"location":"doc/preferences/","page":"Preference Settings","title":"Preference Settings","text":"GTK relies on an event loop (provided by GLib) to process and handle mouse and keyboard events, while Julia relies on its own event loop (provided by libuv) for IO, timers, etc. Interactions between these event loops can cause REPL lag and can interfere with multithreading performance. Explicit integration of the two loops by creating a libuv event source in the GLib main loop is currently disabled because it caused slowdowns in multithreaded code. On some Macs, unfortunately, REPL lag occurs without this explicit integration (explicit in the sense that libuv can insert events in the GLib main loop through its own GSource).","category":"page"},{"location":"doc/preferences/","page":"Preference Settings","title":"Preference Settings","text":"By default, explicit GLib loop integration is only turned on on Macs in an interactive session. You can override this using the preference \"uv_loop_integration\". If it's set to \"enabled\", the libuv GSource will be created. If it's set to \"disabled\", the libuv GSource will not be created, even on Macs in an interactive session. The setting \"auto\" uses the default behavior. The functions GLib.set_uv_loop_integration and GLib.get_uv_loop_integration can be used to set and get the preference.","category":"page"},{"location":"howto/nonreplusage/#Using-Gtk4-outside-the-REPL","page":"Using Gtk4 outside the REPL","title":"Using Gtk4 outside the REPL","text":"","category":"section"},{"location":"howto/nonreplusage/","page":"Using Gtk4 outside the REPL","title":"Using Gtk4 outside the REPL","text":"If you're using Gtk4 from command-line scripts, the following design prevents Julia from quitting before you have a chance to see or interact with your windows:","category":"page"},{"location":"howto/nonreplusage/","page":"Using Gtk4 outside the REPL","title":"Using Gtk4 outside the REPL","text":"using Gtk4\nwin = GtkWindow(\"gtkwait\")\n\n# Put your GUI code here\n\nif !isinteractive()\n c = Condition()\n signal_connect(win, :close_request) do widget\n notify(c)\n end\n @async Gtk4.GLib.glib_main()\n wait(c)\nend","category":"page"},{"location":"howto/nonreplusage/","page":"Using Gtk4 outside the REPL","title":"Using Gtk4 outside the REPL","text":"By waiting on a Condition, Julia will keep running until a signal handler calls notify(c). This pattern allows for multiple events to trigger the condition, such as a button press, or one of many windows to be closed. Program flow will resume at the wait line, after which it would terminate in this example.","category":"page"},{"location":"howto/nonreplusage/","page":"Using Gtk4 outside the REPL","title":"Using Gtk4 outside the REPL","text":"In the common case that we simply wish to wait for a single window to be closed, this can be shortened by using waitforsignal:","category":"page"},{"location":"howto/nonreplusage/","page":"Using Gtk4 outside the REPL","title":"Using Gtk4 outside the REPL","text":"using Gtk4\nwin = GtkWindow(\"gtkwait\")\n\n# Put your GUI code here\n\nif !isinteractive()\n @async Gtk4.GLib.glib_main()\n Gtk4.GLib.waitforsignal(win,:close_request)\nend","category":"page"},{"location":"howto/nonreplusage/#GtkApplication","page":"Using Gtk4 outside the REPL","title":"GtkApplication","text":"","category":"section"},{"location":"howto/nonreplusage/","page":"Using Gtk4 outside the REPL","title":"Using Gtk4 outside the REPL","text":"For larger projects, you may want to use GtkApplication, which enables useful functionality based around GtkApplicationWindow, GAction, GActionMap, etc. For that you can use the following pattern in a non-interactive script:","category":"page"},{"location":"howto/nonreplusage/","page":"Using Gtk4 outside the REPL","title":"Using Gtk4 outside the REPL","text":"using Gtk4\n\nfunction activate(app)\n win = GtkApplicationWindow(app, \"my title\")\n show(win)\nend\n\napp = GtkApplication()\n\nGtk4.signal_connect(activate, app, :activate)\n\nrun(app)","category":"page"},{"location":"howto/nonreplusage/","page":"Using Gtk4 outside the REPL","title":"Using Gtk4 outside the REPL","text":"In the activate function, you can create your windows, widgets, etc. and connect them to signals. When all GtkApplicationWindows have been closed, the script will exit.","category":"page"},{"location":"howto/nonreplusage/#Creating-an-app-with-PackageCompiler","page":"Using Gtk4 outside the REPL","title":"Creating an app with PackageCompiler","text":"","category":"section"},{"location":"howto/nonreplusage/","page":"Using Gtk4 outside the REPL","title":"Using Gtk4 outside the REPL","text":"PackageCompiler.jl can be used to create an executable file that can be transferred to other computers without installing Julia. An example can be found in the examples/ExampleApplication directory in the Gtk4.jl repo.","category":"page"},{"location":"manual/actions/#Actions","page":"Actions","title":"Actions","text":"","category":"section"},{"location":"manual/actions/","page":"Actions","title":"Actions","text":"Actions are another way of associating callbacks with widgets. While they are a bit more complicated to set up, they have a few advantages over connecting to widget signals such as \"clicked\".","category":"page"},{"location":"manual/actions/","page":"Actions","title":"Actions","text":"Actions are based on an interface GAction, the most straightforward implementation of which is GSimpleAction. Actions have a property \"name\" which must be a non-empty string consisting of alphanumeric characters, dashes ('-'), and dots ('.'). Actions also have a method activate that takes an optional parameter argument (more on those later).","category":"page"},{"location":"manual/actions/","page":"Actions","title":"Actions","text":"Some widgets, including GtkButton, GtkToggleButton, and GtkCheckButton, (to be precise, widgets that implement the GtkActionable interface) have a property \"action-name\" that sets an associated action.","category":"page"},{"location":"manual/actions/","page":"Actions","title":"Actions","text":"Let's say we want to define an action that closes a window. We could use","category":"page"},{"location":"manual/actions/","page":"Actions","title":"Actions","text":"using Gtk4, Gtk4.GLib\n\nwin = GtkWindow(\"Action demo\", 400, 200)\n\nb = GtkButton(\"Click to close this window\")\nb.action_name = \"win.close\"\npush!(win,b)\n\nfunction close_action_cb(a, par)::Nothing # important to return nothing!\n close(win)\nend\n\naction_group = GSimpleActionGroup()\nadd_action(GActionMap(action_group), \"close\", close_action_cb)\npush!(win, Gtk4.GLib.GActionGroup(action_group), \"win\")","category":"page"},{"location":"manual/actions/","page":"Actions","title":"Actions","text":"Let's go through this. First we created the window and button and set the button's action name to \"win.close\". Next we created an action group. Then we used the helper method add_action to create an action with the name \"close\", connect a callback for the action's \"activate\" signal, and add the action to the action group. Finally we added the action group to the window and associated it with a prefix \"win\".","category":"page"},{"location":"manual/actions/","page":"Actions","title":"Actions","text":"For what it accomplishes, this code looks a bit convoluted. Why did we set the button's action name to \"win.close\" rather than \"close\", which is the action's name? Each action is put in a group, which has its own prefix, in this case \"win\". The action's global name is \"win.close\" because it was added to the \"win\" group. Often applications define an \"app\" group for application-wide actions, and each window has its own \"win\" group for window-specific actions. You can even define action groups for individual widgets. When we set an action name for the button, GTK looks for a group named \"win\", starting with the button itself and then working its way up the widget hierarchy. In our case it found that group associated with the window.","category":"page"},{"location":"manual/actions/","page":"Actions","title":"Actions","text":"You are probably asking yourself, why do it this way when we could have just connected close_cb to the button's \"clicked\" signal? Here are a few reasons to use actions:","category":"page"},{"location":"manual/actions/","page":"Actions","title":"Actions","text":"Multiple widgets can point to the same action. For example, we could have a menu item for closing the window. Actions can reduce code duplication.\nActions can be disabled. Let's say we want to temporarily turn off the \"close\" action. We can do this by setting the action's property \"enabled\" to false. Any widgets that are connected to this action will be greyed out automatically, indicating to users that they don't do anything.\nIf you use GtkApplication and GtkApplicationWindow, you get action groups associated with the application and windows for free since these two widget classes define the interface GActionGroup. So that saves you from having to create a GSimpleActionGroup and add it to the window.\nIf you use Builder, you can set the action names and targets for widgets in XML.","category":"page"},{"location":"manual/actions/#Stateful-actions","page":"Actions","title":"Stateful actions","text":"","category":"section"},{"location":"manual/actions/","page":"Actions","title":"Actions","text":"The action \"close\" in the example above was a stateless action. All one can do is \"activate\" it, which calls a function. It's possible to associate a state with an action too.","category":"page"},{"location":"manual/actions/","page":"Actions","title":"Actions","text":"Here is a simple example of a stateful action:","category":"page"},{"location":"manual/actions/","page":"Actions","title":"Actions","text":"using Gtk4, Gtk4.GLib\n\nwin = GtkWindow(\"Fullscreen action demo\", 400, 200)\n\nb = GtkButton(\"Click to change fullscreen state\"; action_name=\"win.fullscreen\")\npush!(win,b)\n\nfunction fullscreen_action_cb(a, v)::Nothing\n if v[Bool]\n Gtk4.fullscreen(win)\n else\n Gtk4.unfullscreen(win)\n end\n Gtk4.GLib.set_state(a, v)\nend\n\naction_group = GSimpleActionGroup()\nadd_stateful_action(GActionMap(action_group), \"fullscreen\", false, fullscreen_action_cb)\npush!(win, Gtk4.GLib.GActionGroup(action_group), \"win\")","category":"page"},{"location":"manual/actions/","page":"Actions","title":"Actions","text":"Here we used add_stateful_action to create an action named \"fullscreen\" that has a boolean state associated with it. The type of the state is taken from the initial state argument, which in this case was false. The callback is connected to the action's \"change-state\" signal.","category":"page"},{"location":"manual/actions/","page":"Actions","title":"Actions","text":"In the callback, the argument v is a GVariant, which is sort of a container type in GLib that is used in the action system. To read the state value from the container we used v[Bool].","category":"page"},{"location":"manual/actions/","page":"Actions","title":"Actions","text":"Note that you have to call set_state in the callback or else the state will not be updated!","category":"page"},{"location":"manual/actions/#A-more-complicated-example","page":"Actions","title":"A more complicated example","text":"","category":"section"},{"location":"manual/actions/","page":"Actions","title":"Actions","text":"using Gtk4, Gtk4.GLib\n\nwin = GtkWindow(\"Radio button demo\", 400, 200)\nwin[] = box = GtkBox(:v)\n\nb1 = GtkToggleButton(\"Option 1\"; action_name = \"win.option\", action_target=GVariant(\"1\"))\npush!(box, b1)\npush!(box, GtkToggleButton(\"Option 2\"; action_name = \"win.option\", action_target=GVariant(\"2\"), group = b1))\npush!(box, GtkToggleButton(\"Option 3\"; action_name = \"win.option\", action_target=GVariant(\"3\"), group = b1))\n\nlbl = GtkLabel(\"1\")\npush!(box, lbl)\n\nfunction opt_action_cb(a,v)::Nothing\n lbl.label = v[String]\n Gtk4.GLib.set_state(a,v)\nend\n\naction_group = GSimpleActionGroup()\nadd_stateful_action(GActionMap(action_group), \"option\", String, \"1\", opt_action_cb)\npush!(win, Gtk4.GLib.GActionGroup(action_group), \"win\")","category":"page"},{"location":"manual/actions/#Actions-in-an-application","page":"Actions","title":"Actions in an application","text":"","category":"section"},{"location":"manual/actions/","page":"Actions","title":"Actions","text":"As mentioned above, the objects GtkApplication and GtkApplicationWindow implement the GActionMap interface, so there is no need to create a GSimpleActionGroup and add it to the window. For GtkApplicationWindows, you can add window-associated actions using add_action(GActionMap(win), \"fullscreen\", fullscreen_cb). Assuming you have created a GtkApplication called app, you can add actions to the application using add_action(GActionMap(app), \"fullscreen\", fullscreen_cb).","category":"page"},{"location":"manual/dialogs/#Dialogs","page":"Dialogs","title":"Dialogs","text":"","category":"section"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"Dialogs are transient windows that show information or ask the user for information.","category":"page"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"note: Example\nSome of the code on this page can be found in \"dialogs.jl\" in the \"example\" subdirectory.","category":"page"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"tip: Creating dialogs in callbacks\nWhen creating dialogs in signal or action callbacks, you have to use the methods that take a function as the first argument (equivalently the do syntax).","category":"page"},{"location":"manual/dialogs/#Message-dialogs","page":"Dialogs","title":"Message dialogs","text":"","category":"section"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"Gtk4.jl supports GtkMessageDialog and provides several convenience functions: info_dialog, ask_dialog, warn_dialog, and error_dialog. Each takes a string for a message to show and an optional parent container, and returns nothing, except for ask_dialog which returns true if the user clicks the button corresponding to yes.","category":"page"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"For all dialog convenience functions, there are two ways of using them. For use in the REPL or an interactive script, the following forms can be used:","category":"page"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"info_dialog(\"Julia rocks!\")\nask_dialog(\"Do you like chocolate ice cream?\", \"Not at all\", \"I like it\") && println(\"That's my favorite too.\")\nwarn_dialog(\"Oops!... I did it again\")","category":"page"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"These take an optional argument timeout (in seconds) that can be used to make the dialog disappear after a certain time.","category":"page"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"In callbacks (for example when a user clicks a button in a GUI), you must use a different form, which takes a callback as the first argument that will be called when the user closes the dialog. A full example:","category":"page"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"b = GtkButton(\"Click me\")\nwin = GtkWindow(b,\"Info dialog example\")\nf() = println(\"message received\")\nfunction on_click(b)\n info_dialog(f, \"Julia rocks!\",win)\nend\nsignal_connect(on_click, b, \"clicked\")","category":"page"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"If you are using these functions in the context of a GUI, you should set the third argument of info_dialog, parent, to be the top-level window. Otherwise, for standalone usage in scripts, do not set it.","category":"page"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"The callback can alternatively be constructed using Julia's do syntax:","category":"page"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"info_dialog(\"Julia rocks!\", win) do\n println(\"message received\")\nend","category":"page"},{"location":"manual/dialogs/#File-Dialogs","page":"Dialogs","title":"File Dialogs","text":"","category":"section"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"A common reason to use a dialog is to allow the user to pick a file to be opened or saved to. For this Gtk4.jl provides the functions open_dialog for choosing an existing file or directory to be opened and save_dialog for choosing a filename to be saved to. These use GtkFileChooserNative, which uses the operating system's native dialogs where possible. The syntax of these functions is similar to the message dialogs. For a callback in a GUI (for an \"Open File\" button, for example), you can use","category":"page"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"function f(filename)\n # do something with the file\nend\n\nopen_dialog(f, \"Pick a file to open\", parent)","category":"page"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"The function f is called with the file's path as its argument when the user selects the file and clicks \"OK\". If the user clicks \"Cancel\", f is called with \"\" as its argument. Julia's do syntax can be used to construct the function f in a convenient way:","category":"page"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"open_dialog(\"Pick a file to open\", parent) do filename\n # call a function here to do something with the file\nend","category":"page"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"Multiple files can be opened by setting the multiple keyword argument:","category":"page"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"open_dialog(\"Pick files to open\", parent; multiple = true) do filenames\n # call a function here to do something with files\nend","category":"page"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"In this case filenames is a list of paths.","category":"page"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"The dialog can be preset to a particular directory using the optional argument start_folder:","category":"page"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"open_dialog(f, \"Pick a file to open\", parent; start_folder = \"/data\")","category":"page"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"The same syntax works for save_dialog.","category":"page"},{"location":"manual/dialogs/#Filters","page":"Dialogs","title":"Filters","text":"","category":"section"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"Filters can be used to limit the type of files that the user can pick. Filters can be specified as a Tuple or Vector. A filter can be specified as a string, in which case it specifies a globbing pattern, for example \"*.png\". You can specify multiple match types for a single filter by separating the patterns with a comma, for example \"*.png,*.jpg\". You can alternatively specify MIME types, or if no specification is provided it defaults to types supported by GdkPixbuf. The generic specification of a filter is","category":"page"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"GtkFileFilter(pattern = \"\", mimetype = \"\")","category":"page"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"A human-readable name can optionally be provided using a keyword argument.","category":"page"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"If on the other hand you want to choose a folder instead of a file, use select_folder = true in open_dialog:","category":"page"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"dir=Ref{String}()\nopen_dialog(\"Select Dataset Folder\"; select_folder = true) do name\n dir[] = name\nend\n\nif isdir(dir[])\n # do something with dir\nend","category":"page"},{"location":"manual/dialogs/#Custom-dialogs","page":"Dialogs","title":"Custom dialogs","text":"","category":"section"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"TODO","category":"page"},{"location":"manual/listtreeview/#List-and-Tree-Widgets","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"","category":"section"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"In version 4, GTK introduced new widgets for efficiently displaying table-like data as one-dimensional lists, trees, or two-dimensional arrays.","category":"page"},{"location":"manual/listtreeview/#[GtkListView](https://docs.gtk.org/gtk4/class.ListView.html)","page":"List and Tree Widgets","title":"GtkListView","text":"","category":"section"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"note: Example\nThe code below can be found in \"listview.jl\" in the \"examples\" subdirectory.","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"We start with the widget for displaying one-dimensional lists. Here is a simple example:","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"using Gtk4\n\nmodel = GtkStringList(string.(names(Gtk4)))\nselmodel = GtkSelectionModel(GtkSingleSelection(GListModel(model)))\n\nfunction setup_cb(f, li)\n set_child(li,GtkLabel(\"\"))\nend\n\nfunction bind_cb(f, li)\n text = li[].string\n label = get_child(li)\n label.label = text\nend\n\nfactory = GtkSignalListItemFactory(setup_cb, bind_cb)\nlist = GtkListView(selmodel, factory)\n\nwin = GtkWindow(\"Listview demo\", 250, 800)\nsw = GtkScrolledWindow()\nwin[] = sw\nsw[] = list","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"Let's go through each step. First, we create a model that holds the data we want to display. In this example we display a list of strings (all of the names exported by the Gtk4 module, which was 1053 strings when this was written), and we store them in a GtkStringList. This object implements the interface GListModel, which is what all of the list widgets require.","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"Next, we create a \"selection model\", which wraps the model we just created and controls how the user can select items in the list. Possible wrappers include GtkNoSelection (no selection allowed), GtkSingleSelection (a single item can be selected), and GtkMultiSelection (multiple items can be selected).","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"Next, a \"factory\" is created. The list widget can efficiently display a huge number of items by only populating display widgets for an item when the item becomes visible. The \"factory\" is what does this. The constructor takes two callback functions: \"setup\", which creates a suitable widget for displaying an item, and \"bind\", which sets the widget to display a particular item. The arguments of the callbacks are the factory f and a list item li, which is an object that represents elements of the GListModel. In the \"setup\" callback, you can call the function set_child on the list item to set a widget that will be used to display the item. In our example we create a GtkLabel to display the string. In the \"bind\" callback, we first fetch the element of the list model using the getindex method on the list item (by calling li[]) and we get the text from its \"string\" property. We then get the GtkLabel using the get_child function on the list item, and then we set the text of this GtkLabel.","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"Finally, we construct the GtkListView using the selection model and the factory and add it to a GtkScrolledWindow and a GtkWindow.","category":"page"},{"location":"manual/listtreeview/#Filtering","page":"List and Tree Widgets","title":"Filtering","text":"","category":"section"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"note: Example\nThe code below can be found in \"filteredlistview.jl\" in the \"examples\" subdirectory.","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"The list above is very long, and it's useful to allow the user to filter it down. An easy way to implement this is to use GtkFilterListModel, which wraps the model and allows it to be filtered before being displayed.","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"Here is an example:","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"model = GtkStringList(string.(names(Gtk4)))\n\nentry = GtkSearchEntry()\n\nfunction match(item)\n return startswith(item.string, entry.text)\nend\n\nfilter = GtkCustomFilter(match)\nfilteredModel = GtkFilterListModel(GLib.GListModel(model), filter)\nselmodel = GtkSelectionModel(GtkSingleSelection(GListModel(filteredModel)))","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"We create a GtkCustomFilter using a match callback that returns true for items that we want to display, in our case those that start with the text entered by the user in entry. We construct a GtkFilterListModel using this filter and use it instead of the GListModel in the constructor for GtkSingleSelection.","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"Finally, we update the filter when the user changes the text by connecting to the \"search-changed\" signal:","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"signal_connect(entry, :search_changed) do w\n @idle_add Gtk4.changed(filter, Gtk4.FilterChange_DIFFERENT) \nend","category":"page"},{"location":"manual/listtreeview/#Sorting","page":"List and Tree Widgets","title":"Sorting","text":"","category":"section"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"note: Example\nThe code below can be found in \"sortedlistview.jl\" in the \"examples\" subdirectory.","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"It's also useful to be able to sort the list. This can be done using another model wrapper, GtkSortListModel.","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"Here is an example that sorts the list in reverse alphabetical order:","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"model = GtkStringList(string.(names(Gtk4)))\n\nralpha_compare(item1, item2) = isless(item1.string, item2.string) ? 1 : 0\n\nsorter = GtkCustomSorter(match)\nsortedModel = GtkSortListModel(GListModel(model), sorter)","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"We create a GtkCustomSorter using a compare callback that takes two arguments item1 and item2 and returns -1 if item1 is before item2, 0 if they are equal, and 1 if item1 is after item2. We construct a GtkSortListModel using this filter and use it instead of the GListModel in the constructor for GtkSingleSelection.","category":"page"},{"location":"manual/listtreeview/#[GtkColumnView](https://docs.gtk.org/gtk4/class.ColumnView.html)","page":"List and Tree Widgets","title":"GtkColumnView","text":"","category":"section"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"What if we want to display information in columns? Let's say we want to have one column show the name of the function and another show the number of methods. For this we can use GtkColumnView. It works very similarly to GtkListView, but instead of having one factory for the entire widget, each column has a factory whose setup and bind callbacks populate the widgets used to display the information for that column.","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"Here is an example:","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"using Gtk4\n\nwin = GtkWindow(\"ColumnView demo\", 450, 800)\nsw = GtkScrolledWindow()\npush!(win, sw)\n\nmodel = GtkStringList(string.(names(Gtk4)))\n\nfunction setup_cb(f, li)\n set_child(li,GtkLabel(\"\"))\nend\n\nfunction bind_cb(f, li)\n text = li[].string\n label = get_child(li)\n label.label = text\nend\n\nfunction bind2_cb(f, li)\n text = li[].string\n label = get_child(li)\n label.label = string(length(methods(eval(Symbol(text)))))\nend\n\nlist = GtkColumnView(GtkSelectionModel(GtkSingleSelection(GListModel(model))))\n\nfactory1 = GtkSignalListItemFactory(setup_cb, bind_cb)\ncol1 = GtkColumnViewColumn(\"name\", factory1)\npush!(list, col1)\n\nfactory2 = GtkSignalListItemFactory(setup_cb, bind2_cb)\ncol2 = GtkColumnViewColumn(\"methods\", factory2)\npush!(list, col2)\n\nsw[] = list","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"Note that filtering and sorting work just the same as with GtkListView since they operate on the model.","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"note: Example\nAn example of using GtkColumnView with filtering and sorting can be found in \"columnview.jl\" in the \"examples\" subdirectory.","category":"page"},{"location":"manual/listtreeview/#[GtkTreeView](https://docs.gtk.org/gtk4/class.TreeView.html)","page":"List and Tree Widgets","title":"GtkTreeView","text":"","category":"section"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"The GtkTreeView was the widget used to display table-like or hierarchical data and trees in version 3 of GTK. It's also present in version 4 but is being deprecated in the C library in favor of the widgets discussed above. It will continue to be supported in Gtk4.jl.","category":"page"},{"location":"manual/listtreeview/#List-Store","page":"List and Tree Widgets","title":"List Store","text":"","category":"section"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"This widget uses dedicated GtkListStore and GtkTreeStore containers to hold the data.","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"Lets start with a very simple example: A table with two columns representing the name and age of a person. Each column must have a specific type. We initialize the list store using","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"ls = GtkListStore(String, Int)","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"Now we will the store with data","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"push!(ls,(\"Peter\",20))\npush!(ls,(\"Paul\",30))\npush!(ls,(\"Mary\",25))","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"If we want so insert the data at a specific position we can use the insert function","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"insert!(ls, 2, (\"Susanne\", 35))","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"You can use ls like a matrix like container. Calling length and size will give you","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"julia> length(ls)\n4\n\njulia> size(ls)\n(4,2)","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"Specific element can be be accessed using","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"julia> ls[1,1]\n\"Peter\"\njulia> ls[1,1] = \"Pete\"\n\"Pete\"","category":"page"},{"location":"manual/listtreeview/#Displaying-a-list","page":"List and Tree Widgets","title":"Displaying a list","text":"","category":"section"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"Now we actually want to display our data. To this end we create a tree view object","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"tv = GtkTreeView(GtkTreeModel(ls))","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"Then we need specific renderers for each of the columns. Usually you will only need a text renderer, but in our example we want to display the boolean value using a checkbox.","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"rTxt = GtkCellRendererText()\nrTog = GtkCellRendererToggle()","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"Finally we create for each column a TreeViewColumn object","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"c1 = GtkTreeViewColumn(\"Name\", rTxt, Dict([(\"text\",0)]))\nc2 = GtkTreeViewColumn(\"Age\", rTxt, Dict([(\"text\",1)]))","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"We need to push these column description objects to the tree view","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"push!(tv, c1, c2)","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"Then we can display the tree view widget in a window","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"win = GtkWindow(tv, \"List View\")","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"If you prefer that the columns are resizable by the user call","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"for c in [c1, c2]\n Gtk4.resizable(c, true)\nend","category":"page"},{"location":"manual/listtreeview/#Sorting-2","page":"List and Tree Widgets","title":"Sorting","text":"","category":"section"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"We next want to make the tree view sortable","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"for (i,c) in enumerate([c1,c2])\n Gtk4.sort_column_id(c,i-1)\nend","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"If you now click on one of the column headers, the data will be sorted with respect to the selected column. You can even make the columns reorderable","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"for (i,c) in enumerate([c1, c2])\n Gtk4.reorderable(c, true)\nend","category":"page"},{"location":"manual/listtreeview/#Selection","page":"List and Tree Widgets","title":"Selection","text":"","category":"section"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"Usually the interesting bit of a list will be the entry being selected. This is done using an additional GtkTreeSelection object that can be retrieved by","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"selection = Gtk4.selection(tv)","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"One either have single selection or multiple selections. We toggle this by calling","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"Gtk4.mode(selection,Gtk4.SelectionMode_MULTIPLE)","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"For single selection, if we want to know the index of the selected item we can use","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"julia> ls[selected(selection),1]\n\"Pete\"","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"For multiple selection, we can get a list of selected rows using selected_rows, which can be used to index the GtkListStore","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"julia> [ls[x,1] for x in selected_rows(selection)]\n3-element Vector{String}:\n \"Susanne\"\n \"Pete\"\n \"Paul\"","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"Since it can happen that no item has been selected at all, it is a good idea to put this into an if statement","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"if hasselection(selection)\n # do something with selected(selection)\nend","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"Sometimes you want to invoke an action of an item is selected. This can be done by","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"signal_connect(selection, \"changed\") do widget\n if hasselection(selection)\n currentIt = selected(selection)\n\n # now you can to something with the selected item\n println(\"Name: \", ls[currentIt,1], \" Age: \", ls[currentIt,1])\n end\nend","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"Another useful signal is \"row-activated\" that will be triggered by a double click of the user.","category":"page"},{"location":"manual/listtreeview/#Filtering-2","page":"List and Tree Widgets","title":"Filtering","text":"","category":"section"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"A very useful thing is to apply a filter to a list view such that only a subset of data is shown. We can do this using the GtkTreeModelFilter type. It is as the GtkListStore a GtkTreeModel and therefore we can assign it to a tree view. So the idea is to wrap a GtkListStore in a GtkTreeModelFilter and assign that to the tree view.","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"Next question is how to decide which row of the list store should be shown and which shouldn't. We will do this by adding an additional column to the list store that is hidden. The column will be of type Bool and a value true indicates that the entry is to be shown while false indicates the opposite. We make the filtering based on this column by a call to Gtk4.visible_column. The full example now looks like this:","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"using Gtk4\n\nls = GtkListStore(String, Int, Bool, Bool)\npush!(ls,(\"Peter\",20,false,true))\npush!(ls,(\"Paul\",30,false,true))\npush!(ls,(\"Mary\",25,true,true))\ninsert!(ls, 2, (\"Susanne\",35,true,true))\n\nrTxt = GtkCellRendererText()\nrTog = GtkCellRendererToggle()\n\nc1 = GtkTreeViewColumn(\"Name\", rTxt, Dict([(\"text\",0)]), sort_column_id=0)\nc2 = GtkTreeViewColumn(\"Age\", rTxt, Dict([(\"text\",1)]), sort_column_id=1)\n\ntmFiltered = GtkTreeModelFilter(ls)\nGtk4.visible_column(tmFiltered,3)\ntv = GtkTreeView(GtkTreeModel(tmFiltered))\npush!(tv, c1, c2)\n\nselection = Gtk4.selection(tv)\n\nsignal_connect(selection, \"changed\") do widget\n if hasselection(selection)\n currentIt = selected(selection)\n\n println(\"Name: \", GtkTreeModel(tmFiltered)[currentIt,0],\n \" Age: \", GtkTreeModel(tmFiltered)[currentIt,1])\n end\nend\n\nent = GtkEntry()\n\nsignal_connect(ent, \"changed\") do widget\n searchText = get_gtk_property(ent, :text, String)\n\n for l=1:length(ls)\n showMe = true\n\n if length(searchText) > 0\n showMe = showMe && occursin(lowercase(searchText), lowercase(ls[l,1]))\n end\n\n ls[l,4] = showMe\n end\nend\n\nvbox = GtkBox(:v)\npush!(vbox,ent,tv)\n\nwin = GtkWindow(vbox, \"List View with Filter\")","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"You can see that we have added a little search bar such that you can see the filtering in action. It is furthermore important to note that we had to replace ls with GtkTreeModel(tmFiltered) in the selection changed callback since the selection will give an iterator that is only valid in the filtered tree model.","category":"page"},{"location":"manual/listtreeview/#Tree-Widget","page":"List and Tree Widgets","title":"Tree Widget","text":"","category":"section"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"Here is an example of the tree model in action:","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"using Gtk4\n\nts = GtkTreeStore(String)\niter1 = push!(ts,(\"one\",))\niter2 = push!(ts,(\"two\",),iter1)\niter3 = push!(ts,(\"three\",),iter2)\ntv = GtkTreeView(GtkTreeModel(ts))\nr1 = GtkCellRendererText()\nc1 = GtkTreeViewColumn(\"A\", r1, Dict([(\"text\",0)]))\npush!(tv,c1)\nwin = GtkWindow(tv, \"Tree View\")\n\niter = Gtk4.iter_from_index(ts, [1])\nts[iter,1] = \"ONE\"","category":"page"},{"location":"doc/GLib_types_reference/#GLib-Types","page":"GLib Types","title":"GLib Types","text":"","category":"section"},{"location":"doc/GLib_types_reference/","page":"GLib Types","title":"GLib Types","text":"Modules = [Gtk4.GLib]\nOrder = [:type]\nPublic = true\nPrivate = false","category":"page"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.AppInfoCreateFlags","page":"GLib Types","title":"Gtk4.GLib.AppInfoCreateFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.ApplicationFlags","page":"GLib Types","title":"Gtk4.GLib.ApplicationFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.AskPasswordFlags","page":"GLib Types","title":"Gtk4.GLib.AskPasswordFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.BindingFlags","page":"GLib Types","title":"Gtk4.GLib.BindingFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.BookmarkFileError","page":"GLib Types","title":"Gtk4.GLib.BookmarkFileError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.BusNameOwnerFlags","page":"GLib Types","title":"Gtk4.GLib.BusNameOwnerFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.BusNameWatcherFlags","page":"GLib Types","title":"Gtk4.GLib.BusNameWatcherFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.BusType","page":"GLib Types","title":"Gtk4.GLib.BusType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.ChecksumType","page":"GLib Types","title":"Gtk4.GLib.ChecksumType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.ConnectFlags","page":"GLib Types","title":"Gtk4.GLib.ConnectFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.ConvertError","page":"GLib Types","title":"Gtk4.GLib.ConvertError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.ConverterFlags","page":"GLib Types","title":"Gtk4.GLib.ConverterFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.ConverterResult","page":"GLib Types","title":"Gtk4.GLib.ConverterResult","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.CredentialsType","page":"GLib Types","title":"Gtk4.GLib.CredentialsType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.DBusCallFlags","page":"GLib Types","title":"Gtk4.GLib.DBusCallFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.DBusCapabilityFlags","page":"GLib Types","title":"Gtk4.GLib.DBusCapabilityFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.DBusConnectionFlags","page":"GLib Types","title":"Gtk4.GLib.DBusConnectionFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.DBusError","page":"GLib Types","title":"Gtk4.GLib.DBusError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.DBusInterfaceSkeletonFlags","page":"GLib Types","title":"Gtk4.GLib.DBusInterfaceSkeletonFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.DBusMessageByteOrder","page":"GLib Types","title":"Gtk4.GLib.DBusMessageByteOrder","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.DBusMessageFlags","page":"GLib Types","title":"Gtk4.GLib.DBusMessageFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.DBusMessageHeaderField","page":"GLib Types","title":"Gtk4.GLib.DBusMessageHeaderField","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.DBusMessageType","page":"GLib Types","title":"Gtk4.GLib.DBusMessageType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.DBusObjectManagerClientFlags","page":"GLib Types","title":"Gtk4.GLib.DBusObjectManagerClientFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.DBusPropertyInfoFlags","page":"GLib Types","title":"Gtk4.GLib.DBusPropertyInfoFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.DBusProxyFlags","page":"GLib Types","title":"Gtk4.GLib.DBusProxyFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.DBusSendMessageFlags","page":"GLib Types","title":"Gtk4.GLib.DBusSendMessageFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.DBusServerFlags","page":"GLib Types","title":"Gtk4.GLib.DBusServerFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.DBusSignalFlags","page":"GLib Types","title":"Gtk4.GLib.DBusSignalFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.DBusSubtreeFlags","page":"GLib Types","title":"Gtk4.GLib.DBusSubtreeFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.DataStreamByteOrder","page":"GLib Types","title":"Gtk4.GLib.DataStreamByteOrder","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.DataStreamNewlineType","page":"GLib Types","title":"Gtk4.GLib.DataStreamNewlineType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.DateDMY","page":"GLib Types","title":"Gtk4.GLib.DateDMY","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.DateMonth","page":"GLib Types","title":"Gtk4.GLib.DateMonth","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.DateWeekday","page":"GLib Types","title":"Gtk4.GLib.DateWeekday","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.DriveStartFlags","page":"GLib Types","title":"Gtk4.GLib.DriveStartFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.DriveStartStopType","page":"GLib Types","title":"Gtk4.GLib.DriveStartStopType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.EmblemOrigin","page":"GLib Types","title":"Gtk4.GLib.EmblemOrigin","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.ErrorType","page":"GLib Types","title":"Gtk4.GLib.ErrorType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.FileAttributeInfoFlags","page":"GLib Types","title":"Gtk4.GLib.FileAttributeInfoFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.FileAttributeStatus","page":"GLib Types","title":"Gtk4.GLib.FileAttributeStatus","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.FileAttributeType","page":"GLib Types","title":"Gtk4.GLib.FileAttributeType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.FileCopyFlags","page":"GLib Types","title":"Gtk4.GLib.FileCopyFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.FileCreateFlags","page":"GLib Types","title":"Gtk4.GLib.FileCreateFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.FileError","page":"GLib Types","title":"Gtk4.GLib.FileError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.FileMeasureFlags","page":"GLib Types","title":"Gtk4.GLib.FileMeasureFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.FileMonitorEvent","page":"GLib Types","title":"Gtk4.GLib.FileMonitorEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.FileMonitorFlags","page":"GLib Types","title":"Gtk4.GLib.FileMonitorFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.FileQueryInfoFlags","page":"GLib Types","title":"Gtk4.GLib.FileQueryInfoFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.FileSetContentsFlags","page":"GLib Types","title":"Gtk4.GLib.FileSetContentsFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.FileTest","page":"GLib Types","title":"Gtk4.GLib.FileTest","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.FileType","page":"GLib Types","title":"Gtk4.GLib.FileType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.FilesystemPreviewType","page":"GLib Types","title":"Gtk4.GLib.FilesystemPreviewType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.FormatSizeFlags","page":"GLib Types","title":"Gtk4.GLib.FormatSizeFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GAppInfoMonitor","page":"GLib Types","title":"Gtk4.GLib.GAppInfoMonitor","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GAppLaunchContext","page":"GLib Types","title":"Gtk4.GLib.GAppLaunchContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GApplication","page":"GLib Types","title":"Gtk4.GLib.GApplication","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GApplicationCommandLine","page":"GLib Types","title":"Gtk4.GLib.GApplicationCommandLine","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GBinding","page":"GLib Types","title":"Gtk4.GLib.GBinding","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GBookmarkFile","page":"GLib Types","title":"Gtk4.GLib.GBookmarkFile","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GBufferedInputStream","page":"GLib Types","title":"Gtk4.GLib.GBufferedInputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GBufferedOutputStream","page":"GLib Types","title":"Gtk4.GLib.GBufferedOutputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GBytes","page":"GLib Types","title":"Gtk4.GLib.GBytes","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GBytesIcon","page":"GLib Types","title":"Gtk4.GLib.GBytesIcon","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GCancellable","page":"GLib Types","title":"Gtk4.GLib.GCancellable","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GCharsetConverter","page":"GLib Types","title":"Gtk4.GLib.GCharsetConverter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GChecksum","page":"GLib Types","title":"Gtk4.GLib.GChecksum","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GConverterInputStream","page":"GLib Types","title":"Gtk4.GLib.GConverterInputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GConverterOutputStream","page":"GLib Types","title":"Gtk4.GLib.GConverterOutputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GCredentials","page":"GLib Types","title":"Gtk4.GLib.GCredentials","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GDBusActionGroup","page":"GLib Types","title":"Gtk4.GLib.GDBusActionGroup","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GDBusAuthObserver","page":"GLib Types","title":"Gtk4.GLib.GDBusAuthObserver","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GDBusConnection","page":"GLib Types","title":"Gtk4.GLib.GDBusConnection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GDBusErrorEntry","page":"GLib Types","title":"Gtk4.GLib.GDBusErrorEntry","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GDBusInterfaceSkeleton","page":"GLib Types","title":"Gtk4.GLib.GDBusInterfaceSkeleton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GDBusMenuModel","page":"GLib Types","title":"Gtk4.GLib.GDBusMenuModel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GDBusMessage","page":"GLib Types","title":"Gtk4.GLib.GDBusMessage","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GDBusMethodInvocation","page":"GLib Types","title":"Gtk4.GLib.GDBusMethodInvocation","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GDBusObjectManagerClient","page":"GLib Types","title":"Gtk4.GLib.GDBusObjectManagerClient","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GDBusObjectManagerServer","page":"GLib Types","title":"Gtk4.GLib.GDBusObjectManagerServer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GDBusObjectProxy","page":"GLib Types","title":"Gtk4.GLib.GDBusObjectProxy","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GDBusObjectSkeleton","page":"GLib Types","title":"Gtk4.GLib.GDBusObjectSkeleton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GDBusProxy","page":"GLib Types","title":"Gtk4.GLib.GDBusProxy","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GDBusServer","page":"GLib Types","title":"Gtk4.GLib.GDBusServer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GDataInputStream","page":"GLib Types","title":"Gtk4.GLib.GDataInputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GDataOutputStream","page":"GLib Types","title":"Gtk4.GLib.GDataOutputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GDate","page":"GLib Types","title":"Gtk4.GLib.GDate","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GDateTime","page":"GLib Types","title":"Gtk4.GLib.GDateTime","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GDebugKey","page":"GLib Types","title":"Gtk4.GLib.GDebugKey","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GDesktopAppInfo","page":"GLib Types","title":"Gtk4.GLib.GDesktopAppInfo","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GEmblem","page":"GLib Types","title":"Gtk4.GLib.GEmblem","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GEmblemedIcon","page":"GLib Types","title":"Gtk4.GLib.GEmblemedIcon","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GEnumClass","page":"GLib Types","title":"Gtk4.GLib.GEnumClass","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GFileAttributeInfo","page":"GLib Types","title":"Gtk4.GLib.GFileAttributeInfo","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GFileAttributeInfoList","page":"GLib Types","title":"Gtk4.GLib.GFileAttributeInfoList","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GFileAttributeMatcher","page":"GLib Types","title":"Gtk4.GLib.GFileAttributeMatcher","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GFileEnumerator","page":"GLib Types","title":"Gtk4.GLib.GFileEnumerator","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GFileIOStream","page":"GLib Types","title":"Gtk4.GLib.GFileIOStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GFileIcon","page":"GLib Types","title":"Gtk4.GLib.GFileIcon","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GFileInfo","page":"GLib Types","title":"Gtk4.GLib.GFileInfo","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GFileInputStream","page":"GLib Types","title":"Gtk4.GLib.GFileInputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GFileMonitor","page":"GLib Types","title":"Gtk4.GLib.GFileMonitor","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GFileOutputStream","page":"GLib Types","title":"Gtk4.GLib.GFileOutputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GFilenameCompleter","page":"GLib Types","title":"Gtk4.GLib.GFilenameCompleter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GFilterInputStream","page":"GLib Types","title":"Gtk4.GLib.GFilterInputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GFilterOutputStream","page":"GLib Types","title":"Gtk4.GLib.GFilterOutputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GFlagsClass","page":"GLib Types","title":"Gtk4.GLib.GFlagsClass","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GIOModule","page":"GLib Types","title":"Gtk4.GLib.GIOModule","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GIOStream","page":"GLib Types","title":"Gtk4.GLib.GIOStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GInetAddress","page":"GLib Types","title":"Gtk4.GLib.GInetAddress","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GInetAddressMask","page":"GLib Types","title":"Gtk4.GLib.GInetAddressMask","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GInetSocketAddress","page":"GLib Types","title":"Gtk4.GLib.GInetSocketAddress","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GInitiallyUnowned","page":"GLib Types","title":"Gtk4.GLib.GInitiallyUnowned","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GInputStream","page":"GLib Types","title":"Gtk4.GLib.GInputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GInputVector","page":"GLib Types","title":"Gtk4.GLib.GInputVector","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GInterfaceInfo","page":"GLib Types","title":"Gtk4.GLib.GInterfaceInfo","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GKeyFile","page":"GLib Types","title":"Gtk4.GLib.GKeyFile","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GListStore","page":"GLib Types","title":"Gtk4.GLib.GListStore","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GLogField","page":"GLib Types","title":"Gtk4.GLib.GLogField","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GMainContext","page":"GLib Types","title":"Gtk4.GLib.GMainContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GMainLoop","page":"GLib Types","title":"Gtk4.GLib.GMainLoop","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GMappedFile","page":"GLib Types","title":"Gtk4.GLib.GMappedFile","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GMarkupParseContext","page":"GLib Types","title":"Gtk4.GLib.GMarkupParseContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GMatchInfo","page":"GLib Types","title":"Gtk4.GLib.GMatchInfo","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GMemoryInputStream","page":"GLib Types","title":"Gtk4.GLib.GMemoryInputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GMemoryOutputStream","page":"GLib Types","title":"Gtk4.GLib.GMemoryOutputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GMenu","page":"GLib Types","title":"Gtk4.GLib.GMenu","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GMenuAttributeIter","page":"GLib Types","title":"Gtk4.GLib.GMenuAttributeIter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GMenuItem","page":"GLib Types","title":"Gtk4.GLib.GMenuItem","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GMenuLinkIter","page":"GLib Types","title":"Gtk4.GLib.GMenuLinkIter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GMenuModel","page":"GLib Types","title":"Gtk4.GLib.GMenuModel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GMountOperation","page":"GLib Types","title":"Gtk4.GLib.GMountOperation","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GNativeSocketAddress","page":"GLib Types","title":"Gtk4.GLib.GNativeSocketAddress","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GNetworkAddress","page":"GLib Types","title":"Gtk4.GLib.GNetworkAddress","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GNetworkService","page":"GLib Types","title":"Gtk4.GLib.GNetworkService","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GNotification","page":"GLib Types","title":"Gtk4.GLib.GNotification","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GOptionEntry","page":"GLib Types","title":"Gtk4.GLib.GOptionEntry","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GOutputStream","page":"GLib Types","title":"Gtk4.GLib.GOutputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GOutputVector","page":"GLib Types","title":"Gtk4.GLib.GOutputVector","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GParamSpecTypeInfo","page":"GLib Types","title":"Gtk4.GLib.GParamSpecTypeInfo","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GPatternSpec","page":"GLib Types","title":"Gtk4.GLib.GPatternSpec","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GPermission","page":"GLib Types","title":"Gtk4.GLib.GPermission","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GPropertyAction","page":"GLib Types","title":"Gtk4.GLib.GPropertyAction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GProxyAddress","page":"GLib Types","title":"Gtk4.GLib.GProxyAddress","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GProxyAddressEnumerator","page":"GLib Types","title":"Gtk4.GLib.GProxyAddressEnumerator","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GRegex","page":"GLib Types","title":"Gtk4.GLib.GRegex","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GResolver","page":"GLib Types","title":"Gtk4.GLib.GResolver","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GResource","page":"GLib Types","title":"Gtk4.GLib.GResource","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GScannerConfig","page":"GLib Types","title":"Gtk4.GLib.GScannerConfig","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSettings","page":"GLib Types","title":"Gtk4.GLib.GSettings","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSettingsBackend","page":"GLib Types","title":"Gtk4.GLib.GSettingsBackend","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSettingsSchema","page":"GLib Types","title":"Gtk4.GLib.GSettingsSchema","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSettingsSchemaKey","page":"GLib Types","title":"Gtk4.GLib.GSettingsSchemaKey","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSettingsSchemaSource","page":"GLib Types","title":"Gtk4.GLib.GSettingsSchemaSource","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSignalInvocationHint","page":"GLib Types","title":"Gtk4.GLib.GSignalInvocationHint","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSignalQuery","page":"GLib Types","title":"Gtk4.GLib.GSignalQuery","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSimpleAction-Union{Tuple{T}, Tuple{AbstractString, Type{T}, Any}} where T","page":"GLib Types","title":"Gtk4.GLib.GSimpleAction","text":"GSimpleAction(name::AbstractString, \n [parameter_type::Type{T}, [initial_state]]; kwargs...) where T\n\nCreate an action with a name and optionally a parameter_type from a Julia type (only a few simple types are supported) and an initial_state. If initial_state is not provided, the action will be stateless.\n\nKeyword arguments set the action's GObject properties.\n\n\n\n\n\n","category":"method"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSimpleActionGroup","page":"GLib Types","title":"Gtk4.GLib.GSimpleActionGroup","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSimpleAsyncResult","page":"GLib Types","title":"Gtk4.GLib.GSimpleAsyncResult","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSimpleIOStream","page":"GLib Types","title":"Gtk4.GLib.GSimpleIOStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSimplePermission","page":"GLib Types","title":"Gtk4.GLib.GSimplePermission","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSimpleProxyResolver","page":"GLib Types","title":"Gtk4.GLib.GSimpleProxyResolver","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSocket","page":"GLib Types","title":"Gtk4.GLib.GSocket","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSocketAddress","page":"GLib Types","title":"Gtk4.GLib.GSocketAddress","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSocketAddressEnumerator","page":"GLib Types","title":"Gtk4.GLib.GSocketAddressEnumerator","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSocketClient","page":"GLib Types","title":"Gtk4.GLib.GSocketClient","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSocketConnection","page":"GLib Types","title":"Gtk4.GLib.GSocketConnection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSocketControlMessage","page":"GLib Types","title":"Gtk4.GLib.GSocketControlMessage","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSocketListener","page":"GLib Types","title":"Gtk4.GLib.GSocketListener","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSocketService","page":"GLib Types","title":"Gtk4.GLib.GSocketService","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSource","page":"GLib Types","title":"Gtk4.GLib.GSource","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSourceCallbackFuncs","page":"GLib Types","title":"Gtk4.GLib.GSourceCallbackFuncs","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSrvTarget","page":"GLib Types","title":"Gtk4.GLib.GSrvTarget","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GString","page":"GLib Types","title":"Gtk4.GLib.GString","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSubprocess","page":"GLib Types","title":"Gtk4.GLib.GSubprocess","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSubprocessLauncher","page":"GLib Types","title":"Gtk4.GLib.GSubprocessLauncher","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GTask","page":"GLib Types","title":"Gtk4.GLib.GTask","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GTcpConnection","page":"GLib Types","title":"Gtk4.GLib.GTcpConnection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GTcpWrapperConnection","page":"GLib Types","title":"Gtk4.GLib.GTcpWrapperConnection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GTestDBus","page":"GLib Types","title":"Gtk4.GLib.GTestDBus","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GThemedIcon","page":"GLib Types","title":"Gtk4.GLib.GThemedIcon","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GThreadedResolver","page":"GLib Types","title":"Gtk4.GLib.GThreadedResolver","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GThreadedSocketService","page":"GLib Types","title":"Gtk4.GLib.GThreadedSocketService","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GTimeZone","page":"GLib Types","title":"Gtk4.GLib.GTimeZone","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GTlsCertificate","page":"GLib Types","title":"Gtk4.GLib.GTlsCertificate","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GTlsConnection","page":"GLib Types","title":"Gtk4.GLib.GTlsConnection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GTlsDatabase","page":"GLib Types","title":"Gtk4.GLib.GTlsDatabase","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GTlsInteraction","page":"GLib Types","title":"Gtk4.GLib.GTlsInteraction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GTlsPassword","page":"GLib Types","title":"Gtk4.GLib.GTlsPassword","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GTypeFundamentalInfo","page":"GLib Types","title":"Gtk4.GLib.GTypeFundamentalInfo","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GTypeInfo","page":"GLib Types","title":"Gtk4.GLib.GTypeInfo","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GTypeModule","page":"GLib Types","title":"Gtk4.GLib.GTypeModule","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GTypePluginClass","page":"GLib Types","title":"Gtk4.GLib.GTypePluginClass","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GTypeQuery","page":"GLib Types","title":"Gtk4.GLib.GTypeQuery","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GUnixConnection","page":"GLib Types","title":"Gtk4.GLib.GUnixConnection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GUnixCredentialsMessage","page":"GLib Types","title":"Gtk4.GLib.GUnixCredentialsMessage","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GUri","page":"GLib Types","title":"Gtk4.GLib.GUri","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GValueArray","page":"GLib Types","title":"Gtk4.GLib.GValueArray","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GVariantBuilder","page":"GLib Types","title":"Gtk4.GLib.GVariantBuilder","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GVariantDict","page":"GLib Types","title":"Gtk4.GLib.GVariantDict","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GVariantType","page":"GLib Types","title":"Gtk4.GLib.GVariantType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GVfs","page":"GLib Types","title":"Gtk4.GLib.GVfs","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GVolumeMonitor","page":"GLib Types","title":"Gtk4.GLib.GVolumeMonitor","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GXdpDocumentsIface","page":"GLib Types","title":"Gtk4.GLib.GXdpDocumentsIface","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GXdpOpenURIIface","page":"GLib Types","title":"Gtk4.GLib.GXdpOpenURIIface","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GXdpProxyResolverIface","page":"GLib Types","title":"Gtk4.GLib.GXdpProxyResolverIface","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GXdpTrashIface","page":"GLib Types","title":"Gtk4.GLib.GXdpTrashIface","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GZlibCompressor","page":"GLib Types","title":"Gtk4.GLib.GZlibCompressor","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GZlibDecompressor","page":"GLib Types","title":"Gtk4.GLib.GZlibDecompressor","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.G_FreedesktopDBusIface","page":"GLib Types","title":"Gtk4.GLib.G_FreedesktopDBusIface","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.G_FreedesktopDBusProxy","page":"GLib Types","title":"Gtk4.GLib.G_FreedesktopDBusProxy","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.G_FreedesktopDBusSkeleton","page":"GLib Types","title":"Gtk4.GLib.G_FreedesktopDBusSkeleton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.HookFlagMask","page":"GLib Types","title":"Gtk4.GLib.HookFlagMask","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.IOChannelError","page":"GLib Types","title":"Gtk4.GLib.IOChannelError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.IOCondition","page":"GLib Types","title":"Gtk4.GLib.IOCondition","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.IOError","page":"GLib Types","title":"Gtk4.GLib.IOError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.IOErrorEnum","page":"GLib Types","title":"Gtk4.GLib.IOErrorEnum","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.IOFlags","page":"GLib Types","title":"Gtk4.GLib.IOFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.IOModuleScopeFlags","page":"GLib Types","title":"Gtk4.GLib.IOModuleScopeFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.IOStatus","page":"GLib Types","title":"Gtk4.GLib.IOStatus","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.IOStreamSpliceFlags","page":"GLib Types","title":"Gtk4.GLib.IOStreamSpliceFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.KeyFileError","page":"GLib Types","title":"Gtk4.GLib.KeyFileError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.KeyFileFlags","page":"GLib Types","title":"Gtk4.GLib.KeyFileFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.LogLevelFlags","page":"GLib Types","title":"Gtk4.GLib.LogLevelFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.LogWriterOutput","page":"GLib Types","title":"Gtk4.GLib.LogWriterOutput","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.MainContextFlags","page":"GLib Types","title":"Gtk4.GLib.MainContextFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.MarkupCollectType","page":"GLib Types","title":"Gtk4.GLib.MarkupCollectType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.MarkupError","page":"GLib Types","title":"Gtk4.GLib.MarkupError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.MarkupParseFlags","page":"GLib Types","title":"Gtk4.GLib.MarkupParseFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.MemoryMonitorWarningLevel","page":"GLib Types","title":"Gtk4.GLib.MemoryMonitorWarningLevel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.MountMountFlags","page":"GLib Types","title":"Gtk4.GLib.MountMountFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.MountOperationResult","page":"GLib Types","title":"Gtk4.GLib.MountOperationResult","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.MountUnmountFlags","page":"GLib Types","title":"Gtk4.GLib.MountUnmountFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.NetworkConnectivity","page":"GLib Types","title":"Gtk4.GLib.NetworkConnectivity","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.NormalizeMode","page":"GLib Types","title":"Gtk4.GLib.NormalizeMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.NotificationPriority","page":"GLib Types","title":"Gtk4.GLib.NotificationPriority","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.NumberParserError","page":"GLib Types","title":"Gtk4.GLib.NumberParserError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.OnceStatus","page":"GLib Types","title":"Gtk4.GLib.OnceStatus","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.OptionArg","page":"GLib Types","title":"Gtk4.GLib.OptionArg","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.OptionError","page":"GLib Types","title":"Gtk4.GLib.OptionError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.OptionFlags","page":"GLib Types","title":"Gtk4.GLib.OptionFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.OutputStreamSpliceFlags","page":"GLib Types","title":"Gtk4.GLib.OutputStreamSpliceFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.ParamFlags","page":"GLib Types","title":"Gtk4.GLib.ParamFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.PasswordSave","page":"GLib Types","title":"Gtk4.GLib.PasswordSave","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.PollableReturn","page":"GLib Types","title":"Gtk4.GLib.PollableReturn","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.RegexCompileFlags","page":"GLib Types","title":"Gtk4.GLib.RegexCompileFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.RegexError","page":"GLib Types","title":"Gtk4.GLib.RegexError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.RegexMatchFlags","page":"GLib Types","title":"Gtk4.GLib.RegexMatchFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.ResolverError","page":"GLib Types","title":"Gtk4.GLib.ResolverError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.ResolverNameLookupFlags","page":"GLib Types","title":"Gtk4.GLib.ResolverNameLookupFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.ResolverRecordType","page":"GLib Types","title":"Gtk4.GLib.ResolverRecordType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.ResourceError","page":"GLib Types","title":"Gtk4.GLib.ResourceError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.ResourceFlags","page":"GLib Types","title":"Gtk4.GLib.ResourceFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.ResourceLookupFlags","page":"GLib Types","title":"Gtk4.GLib.ResourceLookupFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.SeekType","page":"GLib Types","title":"Gtk4.GLib.SeekType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.SettingsBindFlags","page":"GLib Types","title":"Gtk4.GLib.SettingsBindFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.ShellError","page":"GLib Types","title":"Gtk4.GLib.ShellError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.SignalFlags","page":"GLib Types","title":"Gtk4.GLib.SignalFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.SignalMatchType","page":"GLib Types","title":"Gtk4.GLib.SignalMatchType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.SocketClientEvent","page":"GLib Types","title":"Gtk4.GLib.SocketClientEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.SocketFamily","page":"GLib Types","title":"Gtk4.GLib.SocketFamily","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.SocketListenerEvent","page":"GLib Types","title":"Gtk4.GLib.SocketListenerEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.SocketMsgFlags","page":"GLib Types","title":"Gtk4.GLib.SocketMsgFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.SocketProtocol","page":"GLib Types","title":"Gtk4.GLib.SocketProtocol","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.SocketType","page":"GLib Types","title":"Gtk4.GLib.SocketType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.SpawnError","page":"GLib Types","title":"Gtk4.GLib.SpawnError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.SpawnFlags","page":"GLib Types","title":"Gtk4.GLib.SpawnFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.SubprocessFlags","page":"GLib Types","title":"Gtk4.GLib.SubprocessFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.TestDBusFlags","page":"GLib Types","title":"Gtk4.GLib.TestDBusFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.TestFileType","page":"GLib Types","title":"Gtk4.GLib.TestFileType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.TestSubprocessFlags","page":"GLib Types","title":"Gtk4.GLib.TestSubprocessFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.ThreadError","page":"GLib Types","title":"Gtk4.GLib.ThreadError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.TimeType","page":"GLib Types","title":"Gtk4.GLib.TimeType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.TlsAuthenticationMode","page":"GLib Types","title":"Gtk4.GLib.TlsAuthenticationMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.TlsCertificateFlags","page":"GLib Types","title":"Gtk4.GLib.TlsCertificateFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.TlsCertificateRequestFlags","page":"GLib Types","title":"Gtk4.GLib.TlsCertificateRequestFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.TlsChannelBindingError","page":"GLib Types","title":"Gtk4.GLib.TlsChannelBindingError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.TlsChannelBindingType","page":"GLib Types","title":"Gtk4.GLib.TlsChannelBindingType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.TlsDatabaseLookupFlags","page":"GLib Types","title":"Gtk4.GLib.TlsDatabaseLookupFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.TlsDatabaseVerifyFlags","page":"GLib Types","title":"Gtk4.GLib.TlsDatabaseVerifyFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.TlsError","page":"GLib Types","title":"Gtk4.GLib.TlsError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.TlsInteractionResult","page":"GLib Types","title":"Gtk4.GLib.TlsInteractionResult","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.TlsPasswordFlags","page":"GLib Types","title":"Gtk4.GLib.TlsPasswordFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.TlsProtocolVersion","page":"GLib Types","title":"Gtk4.GLib.TlsProtocolVersion","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.TokenType","page":"GLib Types","title":"Gtk4.GLib.TokenType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.TraverseFlags","page":"GLib Types","title":"Gtk4.GLib.TraverseFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.TraverseType","page":"GLib Types","title":"Gtk4.GLib.TraverseType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.TypeFlags","page":"GLib Types","title":"Gtk4.GLib.TypeFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.TypeFundamentalFlags","page":"GLib Types","title":"Gtk4.GLib.TypeFundamentalFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.UnicodeBreakType","page":"GLib Types","title":"Gtk4.GLib.UnicodeBreakType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.UnicodeScript","page":"GLib Types","title":"Gtk4.GLib.UnicodeScript","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.UnicodeType","page":"GLib Types","title":"Gtk4.GLib.UnicodeType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.UnixSocketAddressType","page":"GLib Types","title":"Gtk4.GLib.UnixSocketAddressType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.UriError","page":"GLib Types","title":"Gtk4.GLib.UriError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.UriFlags","page":"GLib Types","title":"Gtk4.GLib.UriFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.UriHideFlags","page":"GLib Types","title":"Gtk4.GLib.UriHideFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.UriParamsFlags","page":"GLib Types","title":"Gtk4.GLib.UriParamsFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.UserDirectory","page":"GLib Types","title":"Gtk4.GLib.UserDirectory","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.VariantClass","page":"GLib Types","title":"Gtk4.GLib.VariantClass","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.VariantParseError","page":"GLib Types","title":"Gtk4.GLib.VariantParseError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.ZlibCompressorFormat","page":"GLib Types","title":"Gtk4.GLib.ZlibCompressorFormat","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"manual/keyevents/#Key-Events","page":"Key Events","title":"Key Events","text":"","category":"section"},{"location":"manual/keyevents/#Key-press-events","page":"Key Events","title":"Key press events","text":"","category":"section"},{"location":"manual/keyevents/","page":"Key Events","title":"Key Events","text":"To capture a keyboard event, one can add a GtkEventControllerKey to a widget (for example, a window) and add a callback, as shown in the following example.","category":"page"},{"location":"manual/keyevents/","page":"Key Events","title":"Key Events","text":"using Gtk4\n\nwin = GtkWindow(\"Key Press Example\")\neck = GtkEventControllerKey(win)\n\nsignal_connect(eck, \"key-pressed\") do controller, keyval, keycode, state\n println(\"You pressed key \", keyval, \" which is '\", Char(keyval), \"'.\")\nend","category":"page"},{"location":"manual/keyevents/","page":"Key Events","title":"Key Events","text":"You can then check if event.keyval has a certain value and invoke an action in that case.","category":"page"},{"location":"manual/keyevents/#Modifiers","page":"Key Events","title":"Modifiers","text":"","category":"section"},{"location":"manual/keyevents/","page":"Key Events","title":"Key Events","text":"To detect combination keypresses like \"Control-w\", you can use the argument state, which is a GdkModifierType.","category":"page"},{"location":"manual/keyevents/","page":"Key Events","title":"Key Events","text":"using Gtk4\n\nwin = GtkWindow(\"Control-W to close\")\neck = GtkEventControllerKey(win)\n\nsignal_connect(eck, \"key-pressed\") do controller, keyval, keycode, state\n mask = Gtk4.ModifierType_CONTROL_MASK\n if ((ModifierType(state & Gtk4.MODIFIER_MASK) & mask == mask) && keyval == UInt('w'))\n close(widget(eck))\n end\nend","category":"page"},{"location":"manual/keyevents/#Key-release-events","page":"Key Events","title":"Key release events","text":"","category":"section"},{"location":"manual/keyevents/","page":"Key Events","title":"Key Events","text":"The following example captures the events for both a key press and a key release and reports the time duration between the two. There is some state handling here because of the likely event that your keyboard is set to \"repeat\" a pressed key after some initial delay and because it is possible to press multiple keys at once. This version reports the time elapsed between the initial key press and the key release.","category":"page"},{"location":"manual/keyevents/","page":"Key Events","title":"Key Events","text":"using Gtk4\n\nconst start_times = Dict{UInt32, UInt32}()\n\nw = GtkWindow(\"Key Press/Release Example\")\neck = GtkEventControllerKey(w)\n\nid1 = signal_connect(eck, \"key-pressed\") do controller, keyval, keycode, state\n if keyval ∉ keys(start_times)\n start_times[keyval] = Gtk4.current_event_time(controller) # save the initial key press time\n println(\"You pressed key \", keyval, \" which is '\", Char(keyval), \"'.\")\n else\n println(\"repeating key \", keyval)\n end\nend\n\nid2 = signal_connect(eck, \"key-released\") do controller, keyval, keycode, state\n start_time = pop!(start_times, keyval) # remove the key from the dictionary\n event = Gtk4.current_event(controller)\n duration = Gtk4.time(event) - start_time # key press duration in milliseconds\n println(\"You released key \", keyval, \" after time \", duration, \" msec.\")\nend","category":"page"},{"location":"manual/canvas/#Drawing-with-Cairo","page":"Drawing with Cairo","title":"Drawing with Cairo","text":"","category":"section"},{"location":"manual/canvas/","page":"Drawing with Cairo","title":"Drawing with Cairo","text":"note: Example\nThe code below can be found in \"canvas.jl\" in the \"examples\" subdirectory.","category":"page"},{"location":"manual/canvas/","page":"Drawing with Cairo","title":"Drawing with Cairo","text":"Cairo based drawing can be done on Gtk4.jl's GtkCanvas widget, which is based on GTK's GtkDrawingArea. The canvas widget comes with a backing store (a Cairo image surface). You control what is drawn on this backing store by defining a draw function:","category":"page"},{"location":"manual/canvas/","page":"Drawing with Cairo","title":"Drawing with Cairo","text":"using Gtk4, Graphics\nc = GtkCanvas()\nwin = GtkWindow(c, \"Canvas\")\n@guarded draw(c) do widget\n ctx = getgc(c)\n h = height(c)\n w = width(c)\n # Paint red rectangle\n rectangle(ctx, 0, 0, w, h/2)\n set_source_rgb(ctx, 1, 0, 0)\n fill(ctx)\n # Paint blue rectangle\n rectangle(ctx, 0, 3h/4, w, h/4)\n set_source_rgb(ctx, 0, 0, 1)\n fill(ctx)\nend","category":"page"},{"location":"manual/canvas/","page":"Drawing with Cairo","title":"Drawing with Cairo","text":"This draw function will be called each time the window is resized or otherwise needs to refresh its display. If you need to force a redraw of the canvas, you can call reveal on the canvas widget.","category":"page"},{"location":"manual/canvas/","page":"Drawing with Cairo","title":"Drawing with Cairo","text":"(Image: canvas)","category":"page"},{"location":"manual/canvas/","page":"Drawing with Cairo","title":"Drawing with Cairo","text":"Errors in the draw function can corrupt Gtk4's internal state; if this happens, you have to quit julia and start a fresh session. To avoid this problem, the @guarded macro wraps your code in a try/catch block and prevents the corruption. It is especially useful when initially writing and debugging code.","category":"page"},{"location":"manual/canvas/#Mouse-events","page":"Drawing with Cairo","title":"Mouse events","text":"","category":"section"},{"location":"manual/canvas/","page":"Drawing with Cairo","title":"Drawing with Cairo","text":"Mouse events can be handled using event controllers. The event controller for mouse clicks is GtkGestureClick. We first create this event controller, then add it to the widget using push!.","category":"page"},{"location":"manual/canvas/","page":"Drawing with Cairo","title":"Drawing with Cairo","text":"g=GtkGestureClick()\npush!(c,g)\n\nfunction on_pressed(controller, n_press, x, y)\n w=widget(controller)\n ctx = getgc(w)\n set_source_rgb(ctx, 0, 1, 0)\n arc(ctx, x, y, 5, 0, 2pi)\n stroke(ctx)\n reveal(w)\nend\n\nsignal_connect(on_pressed, g, \"pressed\")","category":"page"},{"location":"manual/canvas/","page":"Drawing with Cairo","title":"Drawing with Cairo","text":"This will draw a green circle on the canvas at every mouse click. Resizing the window will make them go away; they were drawn on top of the canvas one by one, but they weren't added to the draw function, which is what is called when the widget is refreshed.","category":"page"},{"location":"manual/canvas/#Controlling-the-widget's-size","page":"Drawing with Cairo","title":"Controlling the widget's size","text":"","category":"section"},{"location":"manual/canvas/","page":"Drawing with Cairo","title":"Drawing with Cairo","text":"In the example above, the canvas was the direct child of the window, and its size is determined by the window size. If you instead make the canvas a child of one of GTK's layout widgets, like GtkBox or GtkGrid, it doesn't appear because by default, the drawing area widget does not expand to fill the space available. You can override this by setting the canvas's properties vexpand and hexpand to true. Alternatively, if you want to set the canvas to have a minimum width and height in pixels, you can set its properties content_width and content_height.","category":"page"},{"location":"manual/canvas/","page":"Drawing with Cairo","title":"Drawing with Cairo","text":"You can perform computations only when the widget is resized by connecting to the \"resize\" signal.","category":"page"},{"location":"manual/canvas/#Using-GtkCanvas-with-higher-level-Julia-packages","page":"Drawing with Cairo","title":"Using GtkCanvas with higher-level Julia packages","text":"","category":"section"},{"location":"manual/canvas/","page":"Drawing with Cairo","title":"Drawing with Cairo","text":"It's pretty straightforward to use GtkCanvas to display Cairo-based plots and diagrams produced by packages like CairoMakie.jl or Luxor.jl.","category":"page"},{"location":"manual/canvas/","page":"Drawing with Cairo","title":"Drawing with Cairo","text":"A minimal example of displaying a CairoMakie plot is shown below:","category":"page"},{"location":"manual/canvas/","page":"Drawing with Cairo","title":"Drawing with Cairo","text":"using Gtk4, CairoMakie\n\nconfig = CairoMakie.ScreenConfig(1.0, 1.0, :good, true, false)\nCairoMakie.activate!()\n\ncanvas = GtkCanvas()\nw = GtkWindow(canvas,\"CairoMakie example\")\n\n@guarded draw(canvas) do widget\n global f, ax, p = lines(1:10)\n CairoMakie.autolimits!(ax) \t\n screen = CairoMakie.Screen(f.scene, config, Gtk4.cairo_surface(canvas))\n CairoMakie.resize!(f.scene, Gtk4.width(widget), Gtk4.height(widget))\n CairoMakie.cairo_draw(screen, f.scene)\nend","category":"page"},{"location":"manual/canvas/","page":"Drawing with Cairo","title":"Drawing with Cairo","text":"note: Example\nA more complicated example can be found in \"canvas_cairomakie.jl\" in the \"examples\" subdirectory.","category":"page"},{"location":"doc/reference/#Gtk4-Reference","page":"Gtk4 Reference","title":"Gtk4 Reference","text":"","category":"section"},{"location":"doc/reference/#Widgets","page":"Gtk4 Reference","title":"Widgets","text":"","category":"section"},{"location":"doc/reference/","page":"Gtk4 Reference","title":"Gtk4 Reference","text":"Base.parent\nBase.show\nGraphics.height\nGraphics.width\nGtk4.activate\nGtk4.cursor\nGtk4.grab_focus\nGtk4.hasparent\nGtk4.hide\nGtk4.isvisible\nGtk4.reveal\nGtk4.toplevel\nGtk4.visible\nGtk4.display\nGtk4.monitor\nGtk4.size_request\nGtk4.isrealized\nGtk4.add_css_class\nGtk4.remove_css_class\nGtk4.css_classes","category":"page"},{"location":"doc/reference/#Base.parent","page":"Gtk4 Reference","title":"Base.parent","text":"parent(w::GtkWidget)\n\nReturns the parent widget of w, or nothing if the widget has not been set as the child of another widget (or is a toplevel widget, like a GtkWindow).\n\nSee also toplevel.\n\nRelated GTK function: gtk_widget_get_parent()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Base.show","page":"Gtk4 Reference","title":"Base.show","text":"show(w::GtkWidget)\n\nFlag w to be displayed and return w.\n\nRelated GTK function: gtk_widget_show()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Graphics.height","page":"Gtk4 Reference","title":"Graphics.height","text":"height(w::GtkWidget)\n\nReturns the allocated height of w in pixels.\n\nRelated GTK function: gtk_widget_get_allocated_height()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Graphics.width","page":"Gtk4 Reference","title":"Graphics.width","text":"width(w::GtkWidget)\n\nReturns the allocated width of w in pixels.\n\nRelated GTK function: gtk_widget_get_allocated_width()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.GLib.activate","page":"Gtk4 Reference","title":"Gtk4.GLib.activate","text":"activate(a::GAction, par = nothing)\n\nActivates an action, optionally with a parameter par, which if given should be a GVariant.\n\n\n\n\n\nactivate(w::GtkWidget)\n\nActivates widgets like buttons, menu items, etc. that support being activated. Returns false if the widget is not activatable.\n\nRelated GTK function: gtk_widget_activate()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.cursor","page":"Gtk4 Reference","title":"Gtk4.cursor","text":"cursor(w::GtkWidget)\n\nGets the cursor c for a widget w.\n\nRelated GTK function: gtk_widget_get_cursor()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.grab_focus","page":"Gtk4 Reference","title":"Gtk4.grab_focus","text":"grab_focus(w::GtkWidget)\n\nGives w the keyboard focus for the window it is in. Returns false if this fails.\n\nRelated GTK function: gtk_widget_grab_focus()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.hasparent","page":"Gtk4 Reference","title":"Gtk4.hasparent","text":"hasparent(w::GtkWidget) -> Bool\n\nReturns true if w has a parent widget.\n\nSee also parent.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.hide","page":"Gtk4 Reference","title":"Gtk4.hide","text":"hide(w::GtkWidget)\n\nFlag w to be hidden and return w. This is the opposite of show.\n\nRelated GTK function: gtk_widget_hide()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.isvisible","page":"Gtk4 Reference","title":"Gtk4.isvisible","text":"isvisible(w::GtkWidget) -> Bool\n\nReturns whether w and all of its parents are marked as visible.\n\nRelated GTK function: gtk_widget_is_visible()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.reveal","page":"Gtk4 Reference","title":"Gtk4.reveal","text":"reveal(w::GtkWidget)\n\nTriggers a redraw of a widget by calling GTK's gtk_widget_queue_draw.\n\nRelated GTK function: gtk_widget_queue_draw())\n\n\n\n\n\nreveal(w::GtkGLArea)\n\nTriggers a redraw of a widget by calling GTK's gtk_glarea_queue_render.\n\nRelated GTK function: gtk_gl_area_queue_render()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.toplevel","page":"Gtk4 Reference","title":"Gtk4.toplevel","text":"toplevel(w::GtkWidget)\n\nReturns the topmost ancestor of w, which in most cases will be a GtkWindow.\n\nSee also parent.\n\nRelated GTK function: gtk_widget_get_root()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.visible","page":"Gtk4 Reference","title":"Gtk4.visible","text":"visible(w::GtkWidget, state::Bool)\n\nControl visibility of w. Note that w will not be visible unless its parent is also visible.\n\nRelated GTK function: gtk_widget_set_visible()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.display","page":"Gtk4 Reference","title":"Gtk4.display","text":"display(w::GtkWidget)\n\nGets the GdkDisplay for w. Should only be called if w has been added to a widget hierarchy.\n\nRelated GTK function: gtk_widget_get_display()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.monitor","page":"Gtk4 Reference","title":"Gtk4.monitor","text":"monitor(w::GtkWidget)\n\nGets the GdkMonitor where w is displayed, or nothing if the widget is not part of a widget hierarchy.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.size_request","page":"Gtk4 Reference","title":"Gtk4.size_request","text":"size_request(w::GtkWidget, s)\n\nSet the minimum size w to s, which should be a tuple (width, height).\n\nRelated GTK function: gtk_widget_set_size_request()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.isrealized","page":"Gtk4 Reference","title":"Gtk4.isrealized","text":"isrealized(w::GtkWidget)\n\nReturns whether w is realized (that is, whether it has been associated with a drawing surface).\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.add_css_class","page":"Gtk4 Reference","title":"Gtk4.add_css_class","text":"add_css_class(w::GtkWidget, c::AbstractString)\n\nAdd a CSS class to a widget.\n\nSee also remove_css_class.\n\nRelated GTK function: gtk_widget_add_css_class()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.remove_css_class","page":"Gtk4 Reference","title":"Gtk4.remove_css_class","text":"remove_css_class(w::GtkWidget, c::AbstractString)\n\nRemove a CSS class from a widget.\n\nSee also add_css_class.\n\nRelated GTK function: gtk_widget_add_css_class()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.css_classes","page":"Gtk4 Reference","title":"Gtk4.css_classes","text":"css_classes(w::GtkWidget, c::Vector{AbstractString})\n\nSets the CSS style classes for a widget, replacing the previously set classes.\n\nRelated GTK function: gtk_widget_set_css_classes()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Windows","page":"Gtk4 Reference","title":"Windows","text":"","category":"section"},{"location":"doc/reference/","page":"Gtk4 Reference","title":"Gtk4 Reference","text":"Gtk4.GtkWindow\nBase.close\nCairo.destroy\nGtk4.default_size\nGtk4.fullscreen\nGtk4.unfullscreen\nGtk4.isfullscreen\nGtk4.isactive\nGtk4.maximize\nGtk4.unmaximize\nGtk4.present\nGtk4.toplevels","category":"page"},{"location":"doc/reference/#Gtk4.GtkWindow","page":"Gtk4 Reference","title":"Gtk4.GtkWindow","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Base.close","page":"Gtk4 Reference","title":"Base.close","text":"close(win::GtkWindow)\n\nRequest that win is closed.\n\nRelated GTK function: gtk_window_close()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Cairo.destroy","page":"Gtk4 Reference","title":"Cairo.destroy","text":"destroy(win::GtkWindow)\n\nDrop GTK's reference to win.\n\nRelated GTK function: gtk_window_destroy()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.default_size","page":"Gtk4 Reference","title":"Gtk4.default_size","text":"default_size(win::GtkWindow, w, h)\n\nSet the default size of a GtkWindow.\n\nRelated GTK function: gtk_window_default_size()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.fullscreen","page":"Gtk4 Reference","title":"Gtk4.fullscreen","text":"fullscreen(win::GtkWindow)\n\nSet win to fullscreen mode.\n\nSee also unfullscreen.\n\nRelated GTK function: gtk_window_fullscreen()\n\n\n\n\n\nfullscreen(win::GtkWindow, mon::GdkMonitor)\n\nSet win to fullscreen mode on a particular monitor mon. The windowing system (outside GTK's control) may not allow this, so it may not work on some platforms.\n\nSee also unfullscreen.\n\nRelated GTK function: gtk_window_fullscreen_on_monitor()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.unfullscreen","page":"Gtk4 Reference","title":"Gtk4.unfullscreen","text":"unfullscreen(win::GtkWindow)\n\nIf win is in fullscreen mode, return it to normal mode.\n\nSee also fullscreen.\n\nRelated GTK function: gtk_window_unfullscreen()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.isfullscreen","page":"Gtk4 Reference","title":"Gtk4.isfullscreen","text":"isfullscreen(win::GtkWindow)\n\nGet whether win is in fullscreen mode.\n\nSee also fullscreen.\n\nRelated GTK function: gtk_window_is_fullscreen()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.isactive","page":"Gtk4 Reference","title":"Gtk4.isactive","text":"isactive(win::GtkWindow)\n\nReturns whether win is the currently active toplevel. This is the window that receives keystrokes.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.maximize","page":"Gtk4 Reference","title":"Gtk4.maximize","text":"maximize(win::GtkWindow)\n\nRequest that the window win be maximized.\n\nSee also unmaximize.\n\nRelated GTK function: gtk_window_maximize()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.unmaximize","page":"Gtk4 Reference","title":"Gtk4.unmaximize","text":"unmaximize(win::GtkWindow)\n\nIf win is maximized, return it to its former size.\n\nSee also maximize.\n\nRelated GTK function: gtk_window_unmaximize()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.present","page":"Gtk4 Reference","title":"Gtk4.present","text":"present(win::GtkWindow)\npresent(win::GtkWindow, timestamp)\n\nPresents a window to the user. Usually means move it to the front. According to the GTK docs, this function \"should not be used\" without including a timestamp for the user's request.\n\nRelated GTK function: gtk_window_present() Related GTK function: gtk_window_present_with_time()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.toplevels","page":"Gtk4 Reference","title":"Gtk4.toplevels","text":"toplevels()\n\nReturns a GListModel of all toplevel widgets (i.e. windows) known to GTK4.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Input-widgets","page":"Gtk4 Reference","title":"Input widgets","text":"","category":"section"},{"location":"doc/reference/","page":"Gtk4 Reference","title":"Gtk4 Reference","text":"Gtk4.configure!\nGtk4.selected_string!\nGtk4.selected_string","category":"page"},{"location":"doc/reference/#Gtk4.configure!","page":"Gtk4 Reference","title":"Gtk4.configure!","text":"configure!(adj::GtkAdjustment; value = nothing, lower = nothing, upper = nothing, step_increment = nothing, page_increment = nothing, page_size = nothing)\n\nSets all properties of an adjustment, while only resulting in one emission of the changed signal. If an argument is nothing, it is not changed.\n\nRelated GTK function: gtk_adjustment_configure()\n\n\n\n\n\nconfigure!(sb::GtkSpinButton; adj = nothing, climb_rate = nothing, digits = nothing)\n\nSets the adjustment adj, the climb_rate, and the number of digits of a GtkSpinButton. If an argument is nothing, it is not changed.\n\nRelated GTK function: gtk_spin_button_configure()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.selected_string!","page":"Gtk4 Reference","title":"Gtk4.selected_string!","text":"selected_string!(d::GtkDropDown, s::AbstractString)\n\nSet the selected item in a dropdown widget. This method assumes that the widget's model is a GtkStringList.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.selected_string","page":"Gtk4 Reference","title":"Gtk4.selected_string","text":"selected_string(d::GtkDropDown)\n\nGet the currently selected item in a dropdown widget. This method assumes that the widget's model is a GtkStringList or that items in the model have a \"string\" property.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Dialogs","page":"Gtk4 Reference","title":"Dialogs","text":"","category":"section"},{"location":"doc/reference/","page":"Gtk4 Reference","title":"Gtk4 Reference","text":"Gtk4.ask_dialog\nGtk4.info_dialog\nGtk4.input_dialog\nGtk4.open_dialog\nGtk4.save_dialog","category":"page"},{"location":"doc/reference/#Gtk4.ask_dialog","page":"Gtk4 Reference","title":"Gtk4.ask_dialog","text":"ask_dialog(question::AbstractString, parent = nothing; timeout = -1)\n\nCreate a dialog with a message question and two buttons \"No\" and \"Yes\". Returns true if \"Yes\" is selected and false if \"No\" is selected or the dialog (or its parent window parent) is closed. The optional input timeout (disabled by default) can be used to set a time in seconds after which the dialog will close and false will be returned.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.info_dialog","page":"Gtk4 Reference","title":"Gtk4.info_dialog","text":"info_dialog(message::AbstractString, parent = nothing; timeout = -1)\n\nCreate a dialog with an informational message message. Returns when the dialog (or its parent window parent) is closed. The optional input timeout (disabled by default) can be used to set a time in seconds after which the dialog will close and false will be returned.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.input_dialog","page":"Gtk4 Reference","title":"Gtk4.input_dialog","text":"input_dialog(message::AbstractString, entry_default::AbstractString, buttons = ((\"Cancel\", 0), (\"Accept\", 1)), parent = nothing; timeout = -1)\n\nCreate a dialog with a message message and a text entry. Returns the string in the entry when the \"Accept\" button is pressed, or entry_default if \"Cancel\" is pressed or the dialog or its parent window parent is closed. The optional input timeout (disabled by default) can be used to set a time in seconds after which the dialog will close and entry_default will be returned.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.open_dialog","page":"Gtk4 Reference","title":"Gtk4.open_dialog","text":"open_dialog(title::AbstractString, parent = nothing, filters::Union{AbstractVector, Tuple} = String[]; timeout = -1, multiple = false, start_folder = \"\")\n\nCreate a dialog for choosing a file or folder to be opened. Returns the path chosen by the user, or \"\" if \"Cancel\" is pressed or the dialog or its parent window parent is closed. The dialog title is set using title. The argument filters can be used to show only directory contents that match certain file extensions.\n\nKeyword arguments: timeout: The optional input timeout (disabled by default) can be used to set a time in seconds after which the dialog will close and \"\" will be returned. multiple: if true, multiple files can be selected, and a list of file paths is returned rather than a single path. start_folder: if set, the dialog will start out browsing a particular folder. Otherwise GTK will decide.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.save_dialog","page":"Gtk4 Reference","title":"Gtk4.save_dialog","text":"save_dialog(title::AbstractString, parent = nothing, filters::Union{AbstractVector, Tuple} = String[]; timeout = -1, start_folder = \"\")\n\nCreate a dialog for choosing a file to be saved to. Returns the path chosen by the user, or \"\" if \"Cancel\" is pressed or the dialog or its parent window parent is closed. The window title is set using title. The argument filters can be used to show only directory contents that match certain file extensions.\n\nKeyword arguments: timeout: The optional input timeout (disabled by default) can be used to set a time in seconds after which the dialog will close and \"\" will be returned. start_folder: if set, the dialog will start out browsing a particular folder. Otherwise GTK will decide.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#GtkCanvas-(for-Cairo-drawing)","page":"Gtk4 Reference","title":"GtkCanvas (for Cairo drawing)","text":"","category":"section"},{"location":"doc/reference/","page":"Gtk4 Reference","title":"Gtk4 Reference","text":"Gtk4.GtkCanvas\nGtk4.draw\nGraphics.getgc\nGtk4.cairo_surface","category":"page"},{"location":"doc/reference/#Gtk4.GtkCanvas","page":"Gtk4 Reference","title":"Gtk4.GtkCanvas","text":"GtkCanvas(w = -1, h = -1, init_back = false; kwargs...)\n\nCreate a GtkCanvas widget for drawing using Cairo (based on GtkDrawingArea). Optional arguments w and h can be used to set the minimum width and height of the drawing area in pixels. If init_back is set to true, the canvas's image CairoSurface will be initialized immediately, which is useful for precompilation.\n\nKeyword arguments can be used to set properties of the GtkDrawingArea widget.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.draw","page":"Gtk4 Reference","title":"Gtk4.draw","text":"draw(redraw::Function, widget::GtkCanvas)\n\nSet a function redraw to be called whenever the GtkCanvas's CairoSurface needs to be redrawn. The function should have a single argument, the GtkCanvas, from which the CairoSurface can be retrieved using getgc.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Graphics.getgc","page":"Gtk4 Reference","title":"Graphics.getgc","text":"getgc(c::GtkCanvas)\n\nReturn the CairoContext of the CairoSurface backing store of a GtkCanvas.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.cairo_surface","page":"Gtk4 Reference","title":"Gtk4.cairo_surface","text":"cairo_surface(c::GtkCanvas)\n\nReturn the image CairoSurface backing store for a GtkCanvas.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#GtkGLArea","page":"Gtk4 Reference","title":"GtkGLArea","text":"","category":"section"},{"location":"doc/reference/","page":"Gtk4 Reference","title":"Gtk4 Reference","text":"Gtk4.get_error\nGtk4.make_current\nGtk4.queue_render","category":"page"},{"location":"doc/reference/#Gtk4.get_error","page":"Gtk4 Reference","title":"Gtk4.get_error","text":"get_error(w::GtkGLArea)\n\nGets the current error set on w.\n\nRelated GTK function: gtk_gl_area_get_error()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.make_current","page":"Gtk4 Reference","title":"Gtk4.make_current","text":"make_current(w::GtkGLArea)\n\nEnsures that the GdkGLContext used by area is associated with the GtkGLArea.\n\nRelated GTK function: gtk_gl_area_make_current()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.queue_render","page":"Gtk4 Reference","title":"Gtk4.queue_render","text":"queue_render(w::GtkGLArea)\n\nQueues a redraw of the widget.\n\nRelated GTK function: gtk_gl_area_queue_render()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Event-controllers","page":"Gtk4 Reference","title":"Event controllers","text":"","category":"section"},{"location":"doc/reference/","page":"Gtk4 Reference","title":"Gtk4 Reference","text":"Gtk4.find_controller\nGtk4.widget\nGtk4.add_action_shortcut","category":"page"},{"location":"doc/reference/#Gtk4.find_controller","page":"Gtk4 Reference","title":"Gtk4.find_controller","text":"find_controller(w::GtkWidget, ::Type{T}) where T <: GtkEventController\n\nReturns an event controller of type T connected to a widget, or nothing if one doesn't exist. This function is intended for testing purposes (to simulate events) and is not recommended otherwise, as there is a performance penalty for creating a list of a widget's event controllers.\n\nRelated GTK function: gtk_widget_observe_controllers)\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.widget","page":"Gtk4 Reference","title":"Gtk4.widget","text":"widget(c::GtkEventController)\n\nReturns the widget associated with an event controller.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.add_action_shortcut","page":"Gtk4 Reference","title":"Gtk4.add_action_shortcut","text":"add_action_shortcut(scc::GtkShortcutController,trigger::AbstractString,action::AbstractString)\n\nAdds a shortcut specified by a string like \"S\" for an action (such as \"app.save\") to a GtkShortcutController.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#GtkTextView","page":"Gtk4 Reference","title":"GtkTextView","text":"","category":"section"},{"location":"doc/reference/","page":"Gtk4 Reference","title":"Gtk4 Reference","text":"Gtk4.buffer\nGtk4.undo!\nGtk4.redo!\nGtk4.create_mark\nGtk4.place_cursor\nGtk4.scroll_to\nGtk4.search\nGtk4.select_range\nGtk4.selection_bounds\nBase.skip\nGtk4.backward_search\nGtk4.buffer_to_window_coords\nGtk4.char_offset\nGtk4.forward_search\nGtk4.text_iter_at_position\nGtk4.window_to_buffer_coords\nGtk4._GtkTextIter","category":"page"},{"location":"doc/reference/#Gtk4.buffer","page":"Gtk4 Reference","title":"Gtk4.buffer","text":"buffer(iter::Union{Ref{_GtkTextIter}, _GtkTextIter})\n\nReturns the buffer associated with iter.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.undo!","page":"Gtk4 Reference","title":"Gtk4.undo!","text":"undo!(buffer::GtkTextBuffer)\n\nImplements gtk_text_buffer_undo.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.redo!","page":"Gtk4 Reference","title":"Gtk4.redo!","text":"redo!(buffer::GtkTextBuffer)\n\nImplements gtk_text_buffer_redo.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.create_mark","page":"Gtk4 Reference","title":"Gtk4.create_mark","text":"create_mark(buffer::GtkTextBuffer, mark_name, it::TI, left_gravity::Bool)\ncreate_mark(buffer::GtkTextBuffer, it::TI)\n\nImplements gtk_text_buffer_create_mark.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.place_cursor","page":"Gtk4 Reference","title":"Gtk4.place_cursor","text":"place_cursor(buffer::GtkTextBuffer, it::_GtkTextIter)\nplace_cursor(buffer::GtkTextBuffer, pos::Int)\n\nPlace the cursor at indicated position.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.scroll_to","page":"Gtk4 Reference","title":"Gtk4.scroll_to","text":"scroll_to(view::GtkTextView, mark::GtkTextMark, within_margin::Real,\n use_align::Bool, xalign::Real, yalign::Real)\n\nscroll_to(view::GtkTextView, iter::TI, within_margin::Real,\n use_align::Bool, xalign::Real, yalign::Real)\n\nImplements gtk_text_view_scroll_to_mark and gtk_text_view_scroll_to_iter.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.search","page":"Gtk4 Reference","title":"Gtk4.search","text":"search(buffer::GtkTextBuffer, str::AbstractString, direction = :forward,\n flag = GtkTextSearchFlags.GTK_TEXT_SEARCH_TEXT_ONLY)\n\nSearch text str in buffer in direction :forward or :backward starting from the cursor position in the buffer.\n\nReturns a tuple (found, start, stop) where found indicates whether the search was successful and start and stop are _GtkTextIters containing the location of the match.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.select_range","page":"Gtk4 Reference","title":"Gtk4.select_range","text":"select_range(buffer::GtkTextBuffer, ins::TI, bound::TI)\nselect_range(buffer::GtkTextBuffer, range::GtkTextRange)\n\nSelect the text in buffer accorind to _GtkTextIter ins and bound.\n\nImplements gtk_text_buffer_select_range.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.selection_bounds","page":"Gtk4 Reference","title":"Gtk4.selection_bounds","text":"selection_bounds(buffer::GtkTextBuffer)\n\nReturns a tuple (selected, start, stop) indicating if text is selected in the buffer, and if so sets the _GtkTextIter start and stop to point to the selected text.\n\nImplements gtk_text_buffer_get_selection_bounds.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Base.skip","page":"Gtk4 Reference","title":"Base.skip","text":"skip(iter::Ref{_GtkTextIter}, count::Integer)\n\nMoves iter count characters. Returns a Bool indicating if the move was successful.\n\n\n\n\n\nskip(iter::Ref{_GtkTextIter}, what::Symbol)\n\nMoves iter according to the operation specified by what. Operations are :\n\n:forward_line (gtk_text_iter_forward_line)\n:backward_line (gtk_text_iter_backward_line)\n:forward_to_line_end (gtk_text_iter_forward_to_line_end)\n:backward_word_start (gtk_text_iter_forward_word_end)\n:forward_word_end (gtk_text_iter_backward_word_start)\n:backward_sentence_start (gtk_text_iter_backward_sentence_start)\n:forward_sentence_end (gtk_text_iter_forward_sentence_end)\n\n\n\n\n\nskip(iter::Ref{_GtkTextIter}, count::Integer, what::Symbol)\n\nMoves iter according to the operation specified by what and count. Operations are :\n\n:chars (gtk_text_iter_forward_chars)\n:lines (gtk_text_iter_forward_lines)\n:words (gtk_text_iter_forward_word_ends)\n:word_cursor_positions (gtk_text_iter_forward_cursor_positions)\n:sentences (gtk_text_iter_forward_sentence_ends)\n:visible_words (gtk_text_iter_forward_visible_word_ends)\n:visible_cursor_positions (gtk_text_iter_forward_visible_cursor_positions)\n:visible_lines (gtk_text_iter_forward_visible_lines)\n:line_ends (gtk_text_iter_forward_visible_lines)\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.backward_search","page":"Gtk4 Reference","title":"Gtk4.backward_search","text":"backward_search(iter::Ref{_GtkTextIter},\n str::AbstractString, start::Ref{_GtkTextIter},\n stop::Ref{_GtkTextIter}, limit::Ref{_GtkTextIter}, flag::Int32)\n\nImplements gtk_text_iter_backward_search.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.buffer_to_window_coords","page":"Gtk4 Reference","title":"Gtk4.buffer_to_window_coords","text":"buffer_to_window_coords(view::GtkTextView, buffer_x::Integer, buffer_y::Integer, wintype::Integer = 0)\n\nImplements gtk_text_view_buffer_to_window_coords.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.char_offset","page":"Gtk4 Reference","title":"Gtk4.char_offset","text":"char_offset(iter::Union{Ref{_GtkTextIter}, _GtkTextIter})\n\nReturns the offset of iter (one-based index).\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.forward_search","page":"Gtk4 Reference","title":"Gtk4.forward_search","text":"forward_search(iter::Ref{_GtkTextIter},\n str::AbstractString, start::Ref{_GtkTextIter},\n stop::Ref{_GtkTextIter}, limit::Ref{_GtkTextIter}, flag::Int32)\n\nImplements gtk_text_iter_forward_search.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.text_iter_at_position","page":"Gtk4 Reference","title":"Gtk4.text_iter_at_position","text":"text_iter_at_position(view::GtkTextView, x::Integer, y::Integer)\n\nImplements gtk_text_view_get_iter_at_position.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.window_to_buffer_coords","page":"Gtk4 Reference","title":"Gtk4.window_to_buffer_coords","text":"window_to_buffer_coords(view::GtkTextView, window_x::Integer, window_y::Integer, wintype::Integer = 2)\n\nImplements gtk_text_view_window_to_buffer_coords.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4._GtkTextIter","page":"Gtk4 Reference","title":"Gtk4._GtkTextIter","text":"_GtkTextIter(text::GtkTextBuffer, char_offset::Integer)\n\nCreates a _GtkTextIter with offset char_offset (one-based index).\n\n\n\n\n\n","category":"type"},{"location":"manual/gettingStarted/#Getting-Started","page":"Getting Started","title":"Getting Started","text":"","category":"section"},{"location":"manual/gettingStarted/","page":"Getting Started","title":"Getting Started","text":"We start this tutorial with a very simple example that creates an empty window of size 400x200 pixels and adds a button to it","category":"page"},{"location":"manual/gettingStarted/","page":"Getting Started","title":"Getting Started","text":"using Gtk4\n\nwin = GtkWindow(\"My First Gtk4.jl Program\", 400, 200)\n\nb = GtkButton(\"Click Me\")\npush!(win,b)\n\nshow(win)","category":"page"},{"location":"manual/gettingStarted/","page":"Getting Started","title":"Getting Started","text":"We will now go through this example step by step. First the package is loaded using Gtk4 statement. Then a window is created using the GtkWindow constructor. It gets as input the window title, the window width, and the window height. Then a button is created using the GtkButton constructor. In order to insert the button into the window we call","category":"page"},{"location":"manual/gettingStarted/","page":"Getting Started","title":"Getting Started","text":"push!(win,b)","category":"page"},{"location":"manual/gettingStarted/","page":"Getting Started","title":"Getting Started","text":"Finally, show(win) makes the window visible. This could also have been accomplished using the visible property (properties of \"GObjects\" like GtkWindow are discussed on the Properties section of this manual).","category":"page"},{"location":"manual/gettingStarted/#Extended-Example","page":"Getting Started","title":"Extended Example","text":"","category":"section"},{"location":"manual/gettingStarted/","page":"Getting Started","title":"Getting Started","text":"We will now extend the example to let the button actually do something. To this end we first define a callback function that will be executed when the user clicks the button. Our callback function just prints a message.","category":"page"},{"location":"manual/gettingStarted/","page":"Getting Started","title":"Getting Started","text":"function on_button_clicked(w)\n println(\"The button has been clicked\")\nend","category":"page"},{"location":"manual/gettingStarted/","page":"Getting Started","title":"Getting Started","text":"What happens when the user clicks the button is that a \"clicked\" signal is emitted. In order to connect this signal to our function on_button_clicked we have to call","category":"page"},{"location":"manual/gettingStarted/","page":"Getting Started","title":"Getting Started","text":"signal_connect(on_button_clicked, b, \"clicked\")","category":"page"},{"location":"manual/gettingStarted/","page":"Getting Started","title":"Getting Started","text":"Our full extended example thus looks like:","category":"page"},{"location":"manual/gettingStarted/","page":"Getting Started","title":"Getting Started","text":"using Gtk4\n\nwin = GtkWindow(\"My First Gtk4.jl Program\", 400, 200)\n\nb = GtkButton(\"Click Me\")\npush!(win,b)\n\nfunction on_button_clicked(w)\n println(\"The button has been clicked\")\nend\nsignal_connect(on_button_clicked, b, \"clicked\")","category":"page"},{"location":"manual/gettingStarted/#The-hierarchy-of-widgets","page":"Getting Started","title":"The hierarchy of widgets","text":"","category":"section"},{"location":"manual/gettingStarted/","page":"Getting Started","title":"Getting Started","text":"In the example above, GtkWindow and GtkButton are GTK \"widgets\", which represent GUI elements. Widgets are arranged in a hierarchy, with a GtkWindow at the top level (typically), inside which are widgets that contain other widgets. A widget in this hierarchy can have child widgets and a parent widget. The parent widget can be found using the method parent:","category":"page"},{"location":"manual/gettingStarted/","page":"Getting Started","title":"Getting Started","text":"julia> parent(b) == win\ntrue","category":"page"},{"location":"manual/gettingStarted/","page":"Getting Started","title":"Getting Started","text":"The toplevel widget in a particular widget's hierarchy can be found using the method toplevel:","category":"page"},{"location":"manual/gettingStarted/","page":"Getting Started","title":"Getting Started","text":"julia> toplevel(b) == win\ntrue","category":"page"},{"location":"manual/gettingStarted/","page":"Getting Started","title":"Getting Started","text":"Iterating over a widget gives you its child widgets:","category":"page"},{"location":"manual/gettingStarted/","page":"Getting Started","title":"Getting Started","text":"for child in widget\n myfunc(child)\nend","category":"page"},{"location":"manual/gettingStarted/","page":"Getting Started","title":"Getting Started","text":"Widgets can be added and removed using interface methods defined by Gtk4.jl. For many widgets that can contain children, push! is defined to append a widget to another's children. Some widget types can only have one child. For this situation, Gtk4.jl defines setindex!(w,x) and getindex(w) methods with no arguments, which can be written as w[] = x and output = w[], respectively. For example, a GtkWindow can have only one child widget, so we could have added the button to the window in our example using","category":"page"},{"location":"manual/gettingStarted/","page":"Getting Started","title":"Getting Started","text":"win[] = b","category":"page"},{"location":"manual/methods/#Automatically-generated-methods","page":"Automatically generated methods","title":"Automatically generated methods","text":"","category":"section"},{"location":"manual/methods/","page":"Automatically generated methods","title":"Automatically generated methods","text":"Like Gtk.jl, the purpose of this package is to provide functions that wrap ccall's of GTK functions in a Julian and hopefully user friendly way. While in Gtk.jl these ccall's are handwritten, in Gtk4.jl most of the wrappers call automatically generated methods that contain the ccall's. If you don't see a particular functionality wrapped, you can call these autogenerated functions yourself by using a submodule G_ defined in each of the main modules (Gtk4, Pango, GLib, and GdkPixbufLib). The names of these functions and methods are intended to be easy to predict from the corresponding C library function names, and most are the same as in the pygobject bindings for GTK.","category":"page"},{"location":"manual/methods/","page":"Automatically generated methods","title":"Automatically generated methods","text":"The autogenerated methods in G_, like the corresponding C functions, use 0-based indexing, while the more user-friendly wrappers outside G_ use 1-based indexing. Some types of methods are not yet supported. For example, methods involving callbacks must be wrapped by using ccall currently.","category":"page"},{"location":"manual/methods/","page":"Automatically generated methods","title":"Automatically generated methods","text":"The following table lists a few examples that should give you an idea of how these work.","category":"page"},{"location":"manual/methods/","page":"Automatically generated methods","title":"Automatically generated methods","text":"C function Gtk4.G_ Julia method Comments\nvoid gtk_window_add_child (GtkWindow* window, GtkWidget* child) add_child (window::GtkWindow, child::GtkWidget) C arguments mapped directly onto Julia arguments\nGtkStackPage* gtk_stack_add_child (GtkStack* stack, GtkWidget* child) add_child (stack::GtkStack, child::GtkWidget) many widgets have add_child methods, but we dispatch using the type of the first argument\nvoid gtk_builder_add_from_file (GtkBuilder* builder, const gchar* filename, GError** error) add_from_file (builder::GtkBuilder, filename::AbstractString) if ccall fills GError argument, a Julia exception is thrown\nguint gtk_get_major_version () get_major_version () Julia method returns a UInt32\nvoid gtk_rgb_to_hsv (float r, float g, float b, float* h, float* s, float* v) rgb_to_hsv (r::Real, g::Real, b::Real) The arguments h, s, and v are outputs. Julia method returns (h, s, v)\ngboolean gtk_tree_view_get_path_at_pos (GtkTreeView* tree_view, int x, int y, GtkTreePath** path, GtkTreeViewColumn** column, int* cell_x, int* cell_y) get_path_at_pos (instance::GtkTreeView, _x::Integer, _y::Integer) C function has a return value ret in addition to output arguments _path, _column, _cell_x, and _cell_y. The Julia method returns (ret, _path, _column, _cell_x, _cell_y)","category":"page"},{"location":"manual/methods/","page":"Automatically generated methods","title":"Automatically generated methods","text":"If you are confused about what one of these automatically generated methods does, you can examine the code, which is defined in the src/gen directory. They are separated into \"methods\" (in an object-oriented sense, these are functions associated with a particular class) and \"functions\" (general C functions that aren't associated with a particular class). Constants and struct definitions are also generated using GObject introspection.","category":"page"},{"location":"manual/methods/#Constructors","page":"Automatically generated methods","title":"Constructors","text":"","category":"section"},{"location":"manual/methods/","page":"Automatically generated methods","title":"Automatically generated methods","text":"Constructor methods in G_ are treated a little differently. They are named according to GObject_$constructor_name, as in the following table:","category":"page"},{"location":"manual/methods/","page":"Automatically generated methods","title":"Automatically generated methods","text":"C function Gtk4.G_ Julia method Comments\nGtkWidget* gtk_window_new() Window_new() Returns a newly constructed GtkWindow\nGtkWidget* gtk_scale_new_with_range(GtkOrientation orientation, double min, double max, double step) Scale_new_with_range(orientation, min, max, step) Example with arguments","category":"page"},{"location":"manual/signals/#Signals-and-Callbacks","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"","category":"section"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"A button is not much use if it doesn't do anything. GTK uses signals as a method for communicating that something of interest has happened. Most signals will be emitted as a consequence of user interaction: clicking on a button, closing a window, or just moving the mouse. You connect your signals to particular functions to make something happen.","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"Let's try a simple example:","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"b = GtkButton(\"Press me\")\nwin = GtkWindow(b, \"Callbacks\")\n\nfunction button_clicked_callback(widget)\n println(widget, \" was clicked!\")\nend\n\nid = signal_connect(button_clicked_callback, b, \"clicked\")","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"Here, button_clicked_callback is a callback function, something designed to be called by GTK to implement the response to user action. You use the signal_connect function to specify when it should be called: in this case, when widget b (your button) emits the \"clicked\" signal.","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"Using Julia's do syntax, the exact same code could alternatively be written as","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"b = GtkButton(\"Press me\")\nwin = GtkWindow(b, \"Callbacks\")\nid = signal_connect(b, \"clicked\") do widget\n println(widget, \" was clicked!\")\nend","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"If you try this, and click on the button, you should see something like the following:","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"julia> GtkButton(action-name=NULL, action-target, related-action, use-action-appearance=TRUE, name=\"\", parent, width-request=-1, height-request=-1, visible=TRUE, sensitive=TRUE, app-paintable=FALSE, can-focus=TRUE, has-focus=TRUE, is-focus=TRUE, can-default=FALSE, has-default=FALSE, receives-default=TRUE, composite-child=FALSE, style, events=0, no-show-all=FALSE, has-tooltip=FALSE, tooltip-markup=NULL, tooltip-text=NULL, window, double-buffered=TRUE, halign=GTK_ALIGN_FILL, valign=GTK_ALIGN_FILL, margin-left=0, margin-right=0, margin-top=0, margin-bottom=0, margin=0, hexpand=FALSE, vexpand=FALSE, hexpand-set=FALSE, vexpand-set=FALSE, expand=FALSE, border-width=0, resize-mode=GTK_RESIZE_PARENT, child, label=\"Press me\", image, relief=GTK_RELIEF_NORMAL, use-underline=TRUE, use-stock=FALSE, focus-on-click=TRUE, xalign=0.500000, yalign=0.500000, image-position=GTK_POS_LEFT, ) was clicked!","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"That's quite a lot of output; let's just print the label of the button:","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"id2 = signal_connect(b, \"clicked\") do widget\n println(\"\\\"\", get_gtk_property(widget,:label,String), \"\\\" was clicked!\")\nend","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"Now you get something like this:","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"julia> GtkButton(action-name=NULL, action-target, related-action, use-action-appearance=TRUE, name=\"\", parent, width-request=-1, height-request=-1, visible=TRUE, sensitive=TRUE, app-paintable=FALSE, can-focus=TRUE, has-focus=TRUE, is-focus=TRUE, can-default=FALSE, has-default=FALSE, receives-default=TRUE, composite-child=FALSE, style, events=0, no-show-all=FALSE, has-tooltip=FALSE, tooltip-markup=NULL, tooltip-text=NULL, window, double-buffered=TRUE, halign=GTK_ALIGN_FILL, valign=GTK_ALIGN_FILL, margin-left=0, margin-right=0, margin-top=0, margin-bottom=0, margin=0, hexpand=FALSE, vexpand=FALSE, hexpand-set=FALSE, vexpand-set=FALSE, expand=FALSE, border-width=0, resize-mode=GTK_RESIZE_PARENT, child, label=\"Press me\", image, relief=GTK_RELIEF_NORMAL, use-underline=TRUE, use-stock=FALSE, focus-on-click=TRUE, xalign=0.500000, yalign=0.500000, image-position=GTK_POS_LEFT, ) was clicked!\n\"Press me\" was clicked!","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"Notice that both of the callback functions executed! GTK allows you to define multiple signal handlers for a given object; even the execution order can be specified. Callbacks for some signals require that you return an Int32, with value 0 if you want the next handler to run or 1 if you want to prevent any other handlers from running on this event.","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"The \"clicked\" signal callback should return nothing (void in C parlance), so you can't prevent other callbacks from running. However, we can disconnect the first signal handler:","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"signal_handler_disconnect(b, id)","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"Now clicking on the button just yields","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"julia> \"Press me\" was clicked!","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"Alternatively, you can temporarily enable or disable individual handlers with signal_handler_block and signal_handler_unblock.","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"The arguments of the callback depend on the signal type. Arguments and their meaning are described along with their corresponding signals. You should omit the final user_data argument described in the GTK documentation; keep in mind that you can always address other variables from inside your function block, or define the callback in terms of an anonymous function:","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"id = signal_connect((widget, event) -> cb_buttonpressed(widget, event, guistate, drawfunction, ...), b, \"button-press-event\")","category":"page"},{"location":"manual/signals/#Property-notifications","page":"Signals and Callbacks","title":"Property notifications","text":"","category":"section"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"Any time a GObject property is changed, a \"notify\" signal is emitted.","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"To set a callback to be called when a window's title is changed, use:","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"signal_connect(win, \"notify::title\") do obj, pspec # here `obj` is the GObject\n println(obj.title)\nend","category":"page"},{"location":"manual/signals/#Alternative-approach-to-signals-and-signal-handlers","page":"Signals and Callbacks","title":"Alternative approach to signals and signal handlers","text":"","category":"section"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"In addition to the \"simple\" interface described above, Gtk4 includes an approach that allows your callback function to be directly compiled to machine code. Gtk4 makes this easier by using GObject introspection data to look up the return type and parameter types, saving the user the hassle of doing this themselves.","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"For the \"clicked\" signal of a GtkButton, the equivalent to the example at the beginning of this page is as follows:","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"b = GtkButton(\"Press me\")\nwin = GtkWindow(b, \"Callbacks\")\nfunction button_cb(::Ptr, b)\n println(b, \" was clicked!\")\nend\n\non_clicked(cb, b)","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"Note that the main difference here, other than the name of the function being called to connect the signal, is the argument list of the callback. The first argument here is always a pointer to the GObject that sends the signal, which in this case is the GtkButton.","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"The full definition of the function on_clicked is","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"on_clicked(cb::Function, widget::GtkButton, user_data = widget, after = false)","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"where:","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"cb is your callback function. This will be compiled with @cfunction, and you need to follow its rules. In particular, you should use a generic function (i.e., one defined as function foo(x,y,z) ... end), and the arguments and return type should match the GTK+ documentation for the widget and signal (see examples). In contrast with the simpler interface, when writing these callbacks you must include the user_data argument. See examples below.\nwidget is the widget that will send the signal\nuser_data contains any additional information your callback needs to operate. For example, you can pass other widgets, tuples of values, etc. If omitted (as it was in the example above), it defaults to widget.\nafter is a boolean, true if you want your callback to run after the default handler for your signal. When in doubt, specify false.","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"Functions like this are defined for every signal of every widget supported by Gtk4.jl. They are named on_signalname, where signals with - in their names have them replaced by underscores _. So to connect to GtkWindow's \"close-request\" signal, you would use on_close_request.","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"When you define the callback, you still have to use the correct argument list or else the call to @cfunction will throw an error. It should be Ptr{GObject}, param_types..., user_data. The callback should also return the right type. Functions signal_return_type(WidgetType, signame) and signal_argument_types(WidgetType, signame) are defined that return the needed types for the signal \"signame\" of the type \"WidgetType\".","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"For example, consider a GUI in which pressing a button updates a counter:","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"box = GtkBox(:h)\nbutton = GtkButton(\"click me\")\nlabel = GtkLabel(\"0\")\npush!(box, button)\npush!(box, label)\nwin = GtkWindow(box, \"Callbacks\")\n\nconst counter = [0] # Pack counter value inside array to make it a reference\n\n# \"clicked\" callback declaration is\n# void user_function(GtkButton *button, gpointer user_data)\n# But user_data gets converted into a Julia object automatically\nfunction button_cb(widgetptr::Ptr, user_data)\n widget = convert(Gtk4.GtkButtonLeaf, widgetptr) # pointer -> object\n lbl, cntr = user_data # unpack the user_data tuple\n cntr[] = cntr[]+1 # increment counter[1]\n lbl.label = string(cntr[])\n nothing # return type is void\nend\n\non_clicked(button_cb, button, (label, counter))","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"Here, the tuple (label, counter) was passed in as user_data. Note that the value of counter[] matches the display in the GUI.","category":"page"},{"location":"manual/signals/#@guarded","page":"Signals and Callbacks","title":"@guarded","text":"","category":"section"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"The \"simple\" callback interface includes protections against corrupting Gtk state from errors, but this @cfunction-based approach does not. Consequently, you may wish to use @guarded when writing these functions. (Canvas draw functions and mouse event-handling are called through this interface, which is why you should use @guarded there.) For functions that should return a value, you can specify the value to be returned on error as the first argument. For example:","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":" const unhandled = convert(Int32, false)\n @guarded unhandled function my_callback(widgetptr, ...)\n ...\n end","category":"page"},{"location":"manual/signals/#Old-approach-to-@cfunction-based-signals","page":"Signals and Callbacks","title":"Old approach to @cfunction based signals","text":"","category":"section"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"The approach taken by Gtk.jl and earlier versions of Gtk4.jl is still supported, where you supply the return type and parameter types:","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"signal_connect(cb, widget, signalname, return_type, parameter_type_tuple, after, user_data=widget)","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"where:","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"cb is your callback function. This will be compiled with @cfunction, and you need to follow its rules. In particular, you should use a generic function (i.e., one defined as function foo(x,y,z) ... end), and the arguments and return type should match the GTK+ documentation for the widget and signal (see examples). In contrast with the simpler interface, when writing these callbacks you must include the user_data argument. See examples below.\nwidget is the widget that will send the signal\nsignalname is a string or symbol identifying the signal, e.g., \"clicked\" or \"button-press-event\"\nreturn_type is the type of the value returned by your callback. Usually Nothing (for void) or Cint (for gboolean)\nparameter_type_tuple specifies the types of the middle arguments to the callback function, omitting the first (the widget) and last (user_data). For example, for \"clicked\" we have parameter_type_tuple = () (because there are no middle arguments) and for \"button-press-event\" we have parameter_type_tuple = (Cint, Cdouble, Cdouble).\nafter is a boolean, true if you want your callback to run after the default handler for your signal. When in doubt, specify false.\nuser_data contains any additional information your callback needs to operate. For example, you can pass other widgets, tuples of values, etc. If omitted, it defaults to widget.","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"The callback's arguments need to match the GTK documentation, with the exception of the user_data argument. (Rather than being a pointer, user_data will automatically be converted back to an object.)","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"For example, consider a GUI in which pressing a button updates a counter:","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"box = GtkBox(:h)\nbutton = GtkButton(\"click me\")\nlabel = GtkLabel(\"0\")\npush!(box, button)\npush!(box, label)\nwin = GtkWindow(box, \"Callbacks\")\n\nconst counter = [0] # Pack counter value inside array to make it a reference\n\n# \"clicked\" callback declaration is\n# void user_function(GtkButton *button, gpointer user_data)\n# But user_data gets converted into a Julia object automatically\nfunction button_cb(widgetptr::Ptr, user_data)\n widget = convert(Gtk4.GtkButtonLeaf, widgetptr) # pointer -> object\n lbl, cntr = user_data # unpack the user_data tuple\n cntr[] = cntr[]+1 # increment counter[1]\n lbl.label = string(cntr[])\n nothing # return type is void\nend\n\nsignal_connect(button_cb, button, \"clicked\", Nothing, (), false, (label, counter))","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"You should note that the value of counter[] matches the display in the GUI.","category":"page"},{"location":"manual/signals/#Specifying-the-event-type","page":"Signals and Callbacks","title":"Specifying the event type","text":"","category":"section"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"If your callback function takes an event argument, it is important to declare its type correctly. An easy way to do that is to first write a callback using the \"simple\" interface, e.g.,","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":" signal_connect(win, \"delete-event\") do widget, event\n @show typeof(event)\n @show event\n end","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"and then use the reported type in parameter_type_tuple.","category":"page"},{"location":"manual/layout/#Layout","page":"Layout","title":"Layout","text":"","category":"section"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"Gtk4 provides many layout widgets for arranging widgets in a window.","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"note: Note\nFor larger projects it might be a good idea to create the layout using Cambalache in combination with GtkBuilder. See Builder.","category":"page"},{"location":"manual/layout/#[GtkBox](https://docs.gtk.org/gtk4/class.Box.html)","page":"Layout","title":"GtkBox","text":"","category":"section"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"The layout widget used most often is GtkBox. It is one-dimensional and can be either be horizontally or vertical aligned.","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"win = GtkWindow(\"New title\")\nhbox = GtkBox(:h) # :h makes a horizontal layout, :v a vertical layout\npush!(win, hbox)\ncancel = GtkButton(\"Cancel\")\nok = GtkButton(\"OK\")\npush!(hbox, cancel)\npush!(hbox, ok)","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"This layout may not be exactly what you'd like. Perhaps you'd like the OK button to fill the available space, and to insert some blank space between them:","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"ok.hexpand = true\nhbox.spacing = 10","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"The first line sets the hexpand property of the ok button within the hbox container. In GTK4, a separate vexpand property controls whether the widget expands in the vertical direction. The second line sets the spacing property of hbox to 10 pixels.","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"Note that these aren't evenly sized, and that doesn't change if we set the cancel button's hexpand property to true. The homogeneous property of hbox can be used to achieve this.","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"hbox.homogeneous = true","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"To add a line between widgets in a GtkBox, you can use GtkSeparator.","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"sep = GtkSeparator(:h)\npush!(hbox, sep)\n# add more widgets here","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"Julia interface methods defined for GtkBox:","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"method what it does\npush!(b::GtkBox, w::GtkWidget) Adds a widget to the end of the box\npushfirst!(b::GtkBox, w::GtkWidget) Adds a widget to the beginning of the box\ndelete!(b::GtkBox, w::GtkWidget) Removes a widget from the box\nempty!(b::GtkBox) Removes all widgets from the box","category":"page"},{"location":"manual/layout/#[GtkGrid](https://docs.gtk.org/gtk4/class.Grid.html)","page":"Layout","title":"GtkGrid","text":"","category":"section"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"To create two-dimensional (tabular) layouts of widgets, you can use GtkGrid:","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"win = GtkWindow(\"A new window\")\ng = GtkGrid()\na = GtkEntry() # a widget for entering text\na.text = \"This is Gtk!\"\nb = GtkCheckButton(\"Check me!\")\nc = GtkScale(:h, 0:10) # a slider\n\n# Now let's place these graphical elements into the Grid:\ng[1,1] = a # Cartesian coordinates, g[x,y]\ng[2,1] = b\ng[1:2,2] = c # spans both columns\ng.column_homogeneous = true # grid forces columns to have the same width\ng.column_spacing = 15 # introduce a 15-pixel gap between columns\npush!(win, g)","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"The g[x,y] = obj assigns the location to the indicated x,y positions in the grid (note that indexing is Cartesian rather than row/column; most graphics packages address the screen using Cartesian coordinates where 1,1 is in the upper left). A range is used to indicate a span of grid cells. By default, each row/column will use only as much space as required to contain the objects, but you can force them to be of the same size by setting properties like column_homogeneous.","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"A useful method for GtkGrid is query_child, which can be used to get the coordinates and span of a widget currently in the grid:","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"julia> Gtk4.query_child(g,c)\n(1, 2, 2, 1)","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"Here, 1 is the column, 2 is the row, and the widget spans 2 columns and 1 row.","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"Julia interface methods defined for GtkGrid:","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"method what it does\ngetindex(g::GtkGrid, c::Integer, r::Integer) or g[c,r] Gets a widget, where c and r are the column and row indices\nsetindex!(g::GtkGrid, w::GtkWidget, c::Integer, r::Integer) or g[i,j] = w Sets a widget\ninsert!(g::GtkGrid, i::Integer, side) Inserts a row or column next to the existing row or column with index i; side can be :left, :right, top, or bottom.\ninsert!(g::GtkGrid, sibling::GtkWidget, side) Inserts a row or column next to the existing widget sibling that is already in the grid; side can be :left, :right, top, or bottom.\ndelete!(g::GtkGrid, w::GtkWidget) Removes a widget from the grid\nempty!(g::GtkGrid) Removes all widgets from the grid","category":"page"},{"location":"manual/layout/#[GtkCenterBox](https://docs.gtk.org/gtk4/class.CenterBox.html)","page":"Layout","title":"GtkCenterBox","text":"","category":"section"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"The GtkCenterBox widget can hold 3 widgets in a line, either horizontally or vertically oriented. It keeps the middle widget centered. Child widgets can be set and accessed like this:","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"cb = GtkCenterBox(:h) # :h makes a horizontal layout, :v a vertical layout\ncb[:start] = GtkButton(\"Left\")\ncb[:center] = GtkButton(\"Center\")\ncb[:end] = GtkButton(\"Right\")","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"For vertical orientation, :start refers to the top widget and :end to the bottom widget.","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"Julia interface methods defined for GtkCenterBox:","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"method what it does\ngetindex(b::GtkCenterBox, pos::Symbol) or b[pos] Gets a widget, where pos is :start, :center, or :end\nsetindex!(b::GtkCenterBox, w::GtkWidget, pos::Symbol) or b[pos] = w Sets a widget","category":"page"},{"location":"manual/layout/#[GtkPaned](https://docs.gtk.org/gtk4/class.Paned.html)","page":"Layout","title":"GtkPaned","text":"","category":"section"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"The GtkPaned widget creates two slots separated by a movable divider. Like GtkBox and GtkCenterBox, it can be oriented either vertically or horizontally. To add child widgets, you can use","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"paned = GtkPaned()\npaned[1] = top_or_left_widget\npaned[2] = bottom_or_right_widget","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"Julia interface methods defined for GtkPaned:","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"method what it does\ngetindex(b::GtkPaned, i::Integer) or b[i] Gets a widget, where i is 1 or 2\nsetindex!(b::GtkPaned, w::GtkWidget, i::Integer) or b[i] = w Sets a widget","category":"page"},{"location":"manual/layout/#[GtkNotebook](https://docs.gtk.org/gtk4/class.Notebook.html)","page":"Layout","title":"GtkNotebook","text":"","category":"section"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"The GtkNotebook widget places child widgets in tabs like a browser window. Child widgets can be inserted with a label like this:","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"nb = GtkNotebook()\nvbox = GtkBox(:v)\nhbox = GtkBox(:h)\npush!(nb, vbox, \"Vertical\") # here \"Vertical\" is the label for the tab\npush!(nb, hbox, \"Horizontal\")","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"Julia interface methods defined for GtkNotebook:","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"method what it does\npush!(n::GtkNotebook, x::GtkWidget, label::AbstractString) Appends a widget with a label\npush!(n::GtkNotebook, x::GtkWidget, label::GtkWidget) Appends a widget with a widget to be shown in the tab\npushfirst!(n::GtkNotebook, x::GtkWidget, label::AbstractString) Prepends a widget with a label\npushfirst!(n::GtkNotebook, x::GtkWidget, label::GtkWidget) Prepends a widget with a widget to be shown in the tab\ndeleteat!(n::GtkNotebook, x::GtkWidget) Removes a widget from the notebook\nempty!(n::GtkNotebook) Removes all widgets from the notebook","category":"page"},{"location":"manual/layout/#[GtkStack](https://docs.gtk.org/gtk4/class.Stack.html)","page":"Layout","title":"GtkStack","text":"","category":"section"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"The GtkStack widget is a lot like GtkNotebook, but a separate widget GtkStackSwitcher controls what page is shown. An interface very similar to GtkNotebook is defined:","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"win = GtkWindow(\"GtkStack\")\ns = GtkStack()\nsw = GtkStackSwitcher()\nstack(sw,s)\nvbox = GtkBox(:v)\npush!(vbox, sw)\npush!(vbox, s)\npush!(s, GtkLabel(\"First label\"), \"id1\", \"Label 1\") # first string is an id, second is a label\npush!(s, GtkLabel(\"Second label\"), \"id2\", \"Label 2\") # widget can be retrieved using s[id]\nwin[]=vbox","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"Julia interface methods defined for GtkStack:","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"method what it does\ngetindex(s::GtkStack, name::AbstractString) or s[name] Gets a widget by name\nsetindex!(s::GtkStack, x::GtkWidget, name::AbstractString) or s[name] = x Sets a widget by name\npush!(s::GtkStack, x::GtkWidget) Appends a widget\npush!(s::GtkStack, x::GtkWidget, name::AbstractString) Appends a widget with a name\npush!(s::GtkStack, x::GtkWidget, name::AbstractString, title::AbstractString) Appends a widget with a name and a title\ndelete!(s::GtkStack, x::GtkWidget) Removes a widget from the stack\nempty!(s::GtkStack) Removes all widgets from the stack","category":"page"},{"location":"manual/layout/#[GtkFrame](https://docs.gtk.org/gtk4/class.Frame.html),-[GtkAspectFrame](https://docs.gtk.org/gtk4/class.AspectFrame.html),-and-[GtkExpander](https://docs.gtk.org/gtk4/class.Expander.html)","page":"Layout","title":"GtkFrame, GtkAspectFrame, and GtkExpander","text":"","category":"section"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"These widgets hold one child widget. GtkFrame and GtkAspectFrame display them in a decorative frame with an optional label. GtkExpander allows the user to hide the child.","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"Julia interface methods defined for GtkFrame, GtkAspectFrame, and GtkExpander:","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"method what it does\ngetindex(f) or f[] Gets the child widget\nsetindex!(f, w::Union{GtkWidget,Nothing}) or f[] = w Sets or clears the child widget","category":"page"},{"location":"manual/layout/#Iterating-over-child-widgets","page":"Layout","title":"Iterating over child widgets","text":"","category":"section"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"For any of the widgets described above (or any GtkWidget that has children), you can iterate over all child widgets using","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"for child in widget\n myfunc(child)\nend","category":"page"},{"location":"doc/GLib_reference/#GLib-Reference","page":"GLib Reference","title":"GLib Reference","text":"","category":"section"},{"location":"doc/GLib_reference/#Event-loop","page":"GLib Reference","title":"Event loop","text":"","category":"section"},{"location":"doc/GLib_reference/","page":"GLib Reference","title":"GLib Reference","text":"Gtk4.GLib.is_loop_running\nGtk4.GLib.pause_main_loop\nGtk4.GLib.start_main_loop\nGtk4.GLib.stop_main_loop\nGtk4.GLib.@idle_add\nGtk4.GLib.g_idle_add\nGtk4.GLib.g_timeout_add\nGtk4.GLib.g_source_remove\nGtk4.GLib.get_uv_loop_integration\nGtk4.GLib.set_uv_loop_integration\nGtk4.GLib.is_uv_loop_integration_enabled\nGtk4.GLib.run","category":"page"},{"location":"doc/GLib_reference/#Gtk4.GLib.is_loop_running","page":"GLib Reference","title":"Gtk4.GLib.is_loop_running","text":"is_loop_running()\n\nReturn true if the default GLib main event loop is running.\n\nRelated GTK function: g_main_depth()\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.pause_main_loop","page":"GLib Reference","title":"Gtk4.GLib.pause_main_loop","text":"pause_main_loop(f)\n\nPauses the GLib event loop around a function. Restores the original state of the event loop after calling the function. This function does not pause the event loop if it is being run by a GApplication.\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.start_main_loop","page":"GLib Reference","title":"Gtk4.GLib.start_main_loop","text":"start_main_loop(wait=false)\n\nIf the default GLib main event loop is not already running, start a Julia task that runs it. Returns the task. If wait is true, it will block until the main loop starts running.\n\nSee also stop_main_loop.\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.stop_main_loop","page":"GLib Reference","title":"Gtk4.GLib.stop_main_loop","text":"stop_main_loop(wait=false)\n\nStops the default GLib main loop after the next iteration. If wait is true, it will block until the main loop stops running.\n\nDoes not affect loop operation if GApplication's run() method is being used instead of GLib.start_main_loop().\n\nSee also start_main_loop.\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.@idle_add","page":"GLib Reference","title":"Gtk4.GLib.@idle_add","text":"@idle_add(ex)\n\nCreate a function from an expression ex that will be called when there are no higher priority GTK events to be processed. This function can be used from any thread.\n\nSee also g_idle_add.\n\nRelated GTK function: g_idle_add()\n\n\n\n\n\n","category":"macro"},{"location":"doc/GLib_reference/#Gtk4.GLib.g_idle_add","page":"GLib Reference","title":"Gtk4.GLib.g_idle_add","text":"g_idle_add(f, priority=PRIORITY_DEFAULT_IDLE)\n\nAdd a Julia function f that will be called when there are no higher priority GTK events to be processed. This function can be used from any thread. The optional priority argument, which is an integer, sets the priority of the event source (smaller is higher priority). The GLib main loop uses this priority value to decide what sources to handle next.\n\nSee also @idle_add.\n\nRelated GTK function: g_idle_add_full()\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.g_timeout_add","page":"GLib Reference","title":"Gtk4.GLib.g_timeout_add","text":"g_timeout_add(f, interval, priority=PRIORITY_DEFAULT)\n\nAdd a function f that will be called every interval milliseconds by the GTK main loop. If the function returns true, it will be called again after another interval milliseconds. If it returns false it will not be called again. The optional priority argument, which is an integer, sets the priority of the event source (smaller is higher priority). The GLib main loop uses this priority value to decide what sources to handle next.\n\nThis function returns an event source ID that can be used with g_source_remove to stop the timeout externally.\n\nRelated GTK function: g_timeout_add()\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.g_source_remove","page":"GLib Reference","title":"Gtk4.GLib.g_source_remove","text":"g_source_remove(id::Integer)\n\nRemove the event source identified by id from the GLib main loop. The id is returned by g_idle_add and g_timeout_add. The main loop reuses id's so care should be taken that the source intended to be removed is still active.\n\nRelated GTK function: g_source_remove()\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.get_uv_loop_integration","page":"GLib Reference","title":"Gtk4.GLib.get_uv_loop_integration","text":"get_uv_loop_integration()\n\nGet Gtk4.jl's libuv loop integration setting: \"auto\", \"enabled\", or \"disabled\".\n\nSee also set_uv_loop_integration.\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.set_uv_loop_integration","page":"GLib Reference","title":"Gtk4.GLib.set_uv_loop_integration","text":"set_uv_loop_integration(s = \"auto\")\n\nChange Gtk4.jl's libuv loop integration setting. The argument s should be \"auto\" to use Gtk4.jl's default setting or \"enabled\" or \"disabled\" to override this. This setting will take effect after restarting Julia.\n\nEnabling libuv loop integration may improve REPL response on some platforms (Mac) but negatively impacts multithreaded performance. This function has no effect when running on Windows.\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.is_uv_loop_integration_enabled","page":"GLib Reference","title":"Gtk4.GLib.is_uv_loop_integration_enabled","text":"is_uv_loop_integration_enabled()\n\nGet whether Gtk4.jl's libuv loop integration is enabled.\n\nSee also set_uv_loop_integration.\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Base.run","page":"GLib Reference","title":"Base.run","text":"run(app::GApplication)\n\nCalls g_application_run, starting the main loop. If the loop is already running, it will stop it before starting the application loop.\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#REPL-helper-functions","page":"GLib Reference","title":"REPL helper functions","text":"","category":"section"},{"location":"doc/GLib_reference/","page":"GLib Reference","title":"GLib Reference","text":"These are functions that are intended to be used in the REPL to look up information about GObjects and their properties and signals.","category":"page"},{"location":"doc/GLib_reference/","page":"GLib Reference","title":"GLib Reference","text":"Gtk4.GLib.propertyinfo\nGtk4.GLib.gtk_propertynames\nGtk4.GLib.signalnames\nGtk4.GLib.signal_return_type\nGtk4.GLib.signal_argument_types","category":"page"},{"location":"doc/GLib_reference/#Gtk4.GLib.propertyinfo","page":"GLib Reference","title":"Gtk4.GLib.propertyinfo","text":"propertyinfo(w::GObject, name)\n\nPrints information about a property of the GObject w, including a brief description, its type, its default value, and its current value.\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.gtk_propertynames","page":"GLib Reference","title":"Gtk4.GLib.gtk_propertynames","text":"gtk_propertynames(w::GObject)\n\nPrints a list of property names for the GObject w.\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.signalnames","page":"GLib Reference","title":"Gtk4.GLib.signalnames","text":"signalnames(::Type{T}) where T <: GObject\n\nReturns a list of the names of supported signals for T.\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.signal_return_type","page":"GLib Reference","title":"Gtk4.GLib.signal_return_type","text":"signal_return_type(::Type{T}, name::Symbol) where T <: GObject\n\nGets the return type for the callback for the signal name of a GObject type (for example GtkWidget).\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.signal_argument_types","page":"GLib Reference","title":"Gtk4.GLib.signal_argument_types","text":"signal_argument_types(::Type{T}, name::Symbol) where T <: GObject\n\nGets the argument types for the callback for the signal name of a GObject type (for example GtkWidget).\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Properties","page":"GLib Reference","title":"Properties","text":"","category":"section"},{"location":"doc/GLib_reference/","page":"GLib Reference","title":"GLib Reference","text":"Gtk4.GLib.on_notify\nGtk4.GLib.bind_property\nGtk4.GLib.unbind_property\nGtk4.GLib.setproperties!\nGtk4.GLib.set_gtk_property!\nGtk4.GLib.get_gtk_property","category":"page"},{"location":"doc/GLib_reference/#Gtk4.GLib.on_notify","page":"GLib Reference","title":"Gtk4.GLib.on_notify","text":"on_notify(f, object::GObject, property, user_data = object, after = false)\n\nConnect a callback f to the object's \"notify::property\" signal that will be called whenever the property changes. The callback signature should be f(::Ptr, param::Ptr{GParamSpec}, user_data) and the function should return nothing.\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.bind_property","page":"GLib Reference","title":"Gtk4.GLib.bind_property","text":"bind_property(source::GObject, source_property, target::GObject, target_property, flags = BindingFlags_DEFAULT)\n\nCreates a binding between source_property on source and target_property on target. When source_property is changed, target_property will be updated to the same value. Returns a GBinding object that can be used to release the binding using unbind_property.\n\nSee also unbind_property.\n\nRelated GTK function: g_object_bind_property\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.unbind_property","page":"GLib Reference","title":"Gtk4.GLib.unbind_property","text":"unbind_property(b::GBinding)\n\nReleases a binding created by bind_property.\n\nSee also bind_property.\n\nRelated GTK function: g_binding_unbind\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.setproperties!","page":"GLib Reference","title":"Gtk4.GLib.setproperties!","text":"setproperties!(obj::GObject; kwargs...)\n\nSet many GObject properties at once using keyword arguments. For example for a GtkWindow, setproperties!(win; title=\"New title\", visible=true).\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.set_gtk_property!","page":"GLib Reference","title":"Gtk4.GLib.set_gtk_property!","text":"set_gtk_property!(w::GObject, name, ::Type{T}, value)\n\nSet a GObject property name (which can be a string or symbol) to value converted to type T.\n\n\n\n\n\nset_gtk_property!(w::GObject, name, value)\n\nSet a GObject property name (which can be a string or symbol) to value. The type of value will be converted to match the property type, if possible.\n\nGObject properties are mapped onto Julia instance properties, so note that this function is equivalent to the more convenient syntax w.name = value.\n\nSee also get_gtk_property.\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.get_gtk_property","page":"GLib Reference","title":"Gtk4.GLib.get_gtk_property","text":"get_gtk_property(w::GObject, name::AbstractString, ::Type{T})\n\nGet a GObject property's value as type T.\n\n\n\n\n\nget_gtk_property(w::GObject, name::AbstractString)\n\nGet a GObject property's value. The type of the returned value depends on the property, so this function's output is type unstable.\n\nGObject properties are mapped onto Julia instance properties, so this function is equivalent to the syntax w.name.\n\nSee also set_gtk_property!.\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Signals","page":"GLib Reference","title":"Signals","text":"","category":"section"},{"location":"doc/GLib_reference/","page":"GLib Reference","title":"GLib Reference","text":"Gtk4.GLib.signal_handler_is_connected\nGtk4.GLib.signal_handler_disconnect\nGtk4.GLib.signal_handler_block\nGtk4.GLib.signal_handler_unblock\nGtk4.GLib.signal_emit\nGtk4.GLib.waitforsignal","category":"page"},{"location":"doc/GLib_reference/#Gtk4.GLib.signal_handler_is_connected","page":"GLib Reference","title":"Gtk4.GLib.signal_handler_is_connected","text":"signal_handler_is_connected(widget, id) -> Bool\n\nReturn true/false depending on whether widget has a connected signal handler with the given id.\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.signal_handler_disconnect","page":"GLib Reference","title":"Gtk4.GLib.signal_handler_disconnect","text":"signal_handler_disconnect(w::GObject, id)\n\nDisconnect a signal handler from a widget w by its id.\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.signal_handler_block","page":"GLib Reference","title":"Gtk4.GLib.signal_handler_block","text":"signal_handler_block(w::GObject, id)\n\nTemporarily block a signal handler from running on a GObject instance.\n\nSee also signal_handler_unblock.\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.signal_handler_unblock","page":"GLib Reference","title":"Gtk4.GLib.signal_handler_unblock","text":"signal_handler_block(w::GObject, id)\n\nUnblock a signal handler that had been previously blocked.\n\nSee also signal_handler_block.\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.signal_emit","page":"GLib Reference","title":"Gtk4.GLib.signal_emit","text":"signal_emit(w::GObject, sig::AbstractStringLike, ::Type{RT}, args...) where RT\n\nCause an object signal to be emitted. The return type RT and the correct number of arguments (of the correct type) must be provided. The argument list should exclude the user_data argument.\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.waitforsignal","page":"GLib Reference","title":"Gtk4.GLib.waitforsignal","text":"waitforsignal(obj::GObject, signal)\n\nReturns when a GObject's signal is emitted. Can be used to wait for a window to be closed. This function should only be used for signals that return nothing, with one exception: the \"close-request\" signal of GtkWindow.\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Actions-and-action-groups","page":"GLib Reference","title":"Actions and action groups","text":"","category":"section"},{"location":"doc/GLib_reference/","page":"GLib Reference","title":"GLib Reference","text":"Gtk4.GLib.GSimpleAction\nGtk4.GLib.add_action\nGtk4.GLib.add_stateful_action\nGtk4.GLib.set_state","category":"page"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSimpleAction","page":"GLib Reference","title":"Gtk4.GLib.GSimpleAction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.add_action","page":"GLib Reference","title":"Gtk4.GLib.add_action","text":"add_action(m::GActionMap, name::AbstractString, parameter::Type{T}, handler::Function)\n\nAdd an action with name and a parameter of type T to a GActionMap. Also connect a handler for the action's \"activate\" signal.\n\n\n\n\n\nadd_action(m::GActionMap, name::AbstractString, handler::Function)\n\nAdd an action with name to a GActionMap. Also connect a handler for the action's \"activate\" signal.\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.add_stateful_action","page":"GLib Reference","title":"Gtk4.GLib.add_stateful_action","text":"add_stateful_action(m::GActionMap, name::AbstractString, parameter::Type{T}, initial_state, handler::Function)\n\nAdd a stateful action with name, a parameter of type T, and an initial state to a GActionMap. Also connect a handler for the action's \"change-state\" signal.\n\n\n\n\n\nadd_stateful_action(m::GActionMap, name::AbstractString, initial_state, handler::Function)\n\nAdd a stateful action with name and an initial state to a GActionMap. Also connect a handler for the action's \"change-state\" signal.\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.set_state","page":"GLib Reference","title":"Gtk4.GLib.set_state","text":"set_state(m::GSimpleAction, v)\n\nSet the state of a stateful action.\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#GObject-type-system","page":"GLib Reference","title":"GObject type system","text":"","category":"section"},{"location":"doc/GLib_reference/","page":"GLib Reference","title":"GLib Reference","text":"Gtk4.GLib.g_type\nGtk4.GLib.find_leaf_type","category":"page"},{"location":"doc/GLib_reference/#Gtk4.GLib.g_type","page":"GLib Reference","title":"Gtk4.GLib.g_type","text":"g_type(x)\n\nGet the GType corresponding to a Julia type or object. See GLib documentation for more information.\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.find_leaf_type","page":"GLib Reference","title":"Gtk4.GLib.find_leaf_type","text":"find_leaf_type(hnd::Ptr{T}) where T <: GObject\n\nFor a pointer to a GObject, look up its type in the GType system and return the Julia leaf type that best matches it. For types supported by Gtk4, for example GtkWindow, this will be the leaf type GtkWindowLeaf. Some types defined in GTK4 and other libraries are not exported. In this case, the nearest parent type supported by the Julia package will be returned. For example, objects in GIO that implement the GFile interface are returned as GObjectLeaf.\n\n\n\n\n\n","category":"function"},{"location":"manual/builder/#Builder","page":"Builder","title":"Builder","text":"","category":"section"},{"location":"manual/builder/","page":"Builder","title":"Builder","text":"Until now we have created and arranged all widgets entirely using Julia code. While this works fine for small examples, it has the issue that we are tightly coupling the appearance of our application with the logic of our program code.","category":"page"},{"location":"manual/builder/","page":"Builder","title":"Builder","text":"There is an alternative way to design user interfaces that strictly separates the layout from the code. This is done by an XML based file format that allows for describing any arrangement of widgets. In order to use the interface in your Julia Gtk4 application you will need GtkBuilder.","category":"page"},{"location":"manual/builder/","page":"Builder","title":"Builder","text":"For GTK version 3 and earlier, Glade is often used as a GUI tool for creating GtkBuilder XML files in a WYSIWYG (what you see is what you get) manner, but Glade wasn't ported to GTK version 4. Instead Cambalache can be used or the XML can be created in an editor.","category":"page"},{"location":"manual/builder/","page":"Builder","title":"Builder","text":"Once we have created the XML interface the result can be stored in an XML file that usually has the extension .ui. Let's assume we have created a file myapp.ui that looks like","category":"page"},{"location":"manual/builder/","page":"Builder","title":"Builder","text":"\n\n \n \n \n \n button\n 1\n 1\n \n \n \n","category":"page"},{"location":"manual/builder/","page":"Builder","title":"Builder","text":"In order to access the widgets from Julia we first create a GtkBuilder object that will serve as a connector between the XML definition and our Julia code.","category":"page"},{"location":"manual/builder/","page":"Builder","title":"Builder","text":"b = GtkBuilder(\"path/to/myapp.ui\")","category":"page"},{"location":"manual/builder/","page":"Builder","title":"Builder","text":"note: Note\nIf you are developing the code in a package you can get the package directory using the @__DIR__ macro. For instance, if your UI file is located at MyPackage/src/builder/myuifile.ui, you can get the full path using uifile = joinpath(@__DIR__, \"builder\", \"myuifile.ui\").","category":"page"},{"location":"manual/builder/","page":"Builder","title":"Builder","text":"Alternatively, if we store the above XML definition in a Julia string myapp we can initialize the builder by","category":"page"},{"location":"manual/builder/","page":"Builder","title":"Builder","text":"b = GtkBuilder(myapp, -1)","category":"page"},{"location":"manual/builder/","page":"Builder","title":"Builder","text":"Now we want to access a widget from the XML file in order to actually display it on the screen. To do so we can call","category":"page"},{"location":"manual/builder/","page":"Builder","title":"Builder","text":"win = b[\"window1\"]","category":"page"},{"location":"manual/builder/","page":"Builder","title":"Builder","text":"for each widget we want to access in our Julia code. Widgets that we don't need to access from Julia, for example layout widgets like GtkBox that are being used only to arrange more interesting widgets for input or display, do not need to be loaded. You can thus see your builder as a kind of a widget store that you use when you need access to your widgets.","category":"page"},{"location":"manual/builder/","page":"Builder","title":"Builder","text":"note: Note\nFetching an object from GtkBuilder is type unstable since the Julia compiler has no way of knowing the type of the object. A type assertion can be used to set a concrete type (ending in \"Leaf\") and potentially improve performance. In the example above, the correct assertion would be win = b[\"window1\"]::GtkWindowLeaf.","category":"page"},{"location":"manual/builder/","page":"Builder","title":"Builder","text":"In Gtk4.jl a macro @load_builder is defined that iterates over the GtkWidgets in a GtkBuilder object and automatically assigns them to Julia variables with the same id. For example, if a GtkEntry with an id entry1 and two GtkButtons with id's button1 and button2 are present in myapp.ui, calling","category":"page"},{"location":"manual/builder/","page":"Builder","title":"Builder","text":"@load_builder(GtkBuilder(filename=\"myapp.ui\"))","category":"page"},{"location":"manual/builder/","page":"Builder","title":"Builder","text":"is equivalent to","category":"page"},{"location":"manual/builder/","page":"Builder","title":"Builder","text":"entry1 = b[\"entry1\"]\nbutton1 = b[\"button1\"]\nbutton2 = b[\"button2\"]","category":"page"},{"location":"manual/builder/","page":"Builder","title":"Builder","text":"Note that this only works for GtkWidgets that implement the interface GtkBuildable, which excludes some objects often defined in UI files, for example GtkAdjustment. Those objects will have to be fetched using calls to get_object.","category":"page"},{"location":"manual/builder/#Callbacks","page":"Builder","title":"Callbacks","text":"","category":"section"},{"location":"manual/builder/","page":"Builder","title":"Builder","text":"The XML file lets us only describe the visual structure of our widgets and not their behavior when the using is interacting with it. For this reason, we will have to add callbacks to the widgets which we do in Julia code as it was described in Signals and Callbacks. Alternatively you can use Actions, which are described in the next section.","category":"page"},{"location":"manual/properties/#Properties","page":"Properties","title":"Properties","text":"","category":"section"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"If you're following along, you probably noticed that creating win caused quite a lot of output:","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"Gtk4.GtkWindowLeaf(accessible-role=GTK_ACCESSIBLE_ROLE_WINDOW, name=\"\", parent, root, width-request=-1, height-request=-1, visible=true, sensitive=true, can-focus=true, has-focus=false, can-target=true, focus-on-click=true, focusable=false, has-default=false, receives-default=false, cursor, has-tooltip=false, tooltip-markup=nothing, tooltip-text=nothing, opacity=1.000000, overflow=GTK_OVERFLOW_HIDDEN, halign=GTK_ALIGN_FILL, valign=GTK_ALIGN_FILL, margin-start=0, margin-end=0, margin-top=0, margin-bottom=0, hexpand=false, vexpand=false, hexpand-set=false, vexpand-set=false, scale-factor=1, css-name=\"window\", css-classes, layout-manager, title=nothing, resizable=true, modal=false, default-width=200, default-height=200, destroy-with-parent=false, hide-on-close=false, icon-name=nothing, display, decorated=true, deletable=true, transient-for, application, default-widget, focus-widget, child, titlebar, handle-menubar-accel=true, is-active=false, startup-id, mnemonics-visible=false, focus-visible=false, maximized=false, fullscreened=false)","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"This shows you a list of properties of the object and their current values. All GTK widgets, including windows, are subtypes of GObject, which have various properties that control how the widgets are displayed. For example, notice that the title property is set to \"My window\". In this package, GObject properties are mapped onto Julia properties. We can change the title in the following way:","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"julia> win.title = \"New title\"","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"To get the title we can use:","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"julia> title = win.title\n\"New title\"","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"We can also use set_gtk_property! and get_gtk_property! to set or get GObject properties:","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"julia> set_gtk_property!(win, :title, \"New title\")\njulia> get_gtk_property(win, :title)\n\"New title\"","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"To get the property in a type stable way, you can specify the return type:","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"julia> get_gtk_property(win, :title, String)\n\"New title\"","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"To access particular properties using set_gtk_property! or get_gtk_property, you can either use symbols, like :title, or strings, like \"title\". When using symbols, you'll need to convert any Gtk property names that use - into names with _:","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"julia> get_gtk_property(win, :default_width)\ntrue","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"Properties that are string-valued or GObject-valued can be set to nothing, which is equivalent to setting them to NULL in C (or None in Python). A list of all possible property names for a GObject instance is returned by gtk_propertynames.","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"Properties can be set using keyword arguments in most constructors:","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"julia> win = GtkWindow(; title=\"My title\", visible=true)","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"Information about a property, including a description, its GLib type and default value, can be found using propertyinfo:","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"julia> propertyinfo(win, :title)\nName: title\nGType name: gchararray\nFlags: Readable Writable\nDescription: The title of the window\nDefault value: nothing\nCurrent value: nothing","category":"page"},{"location":"manual/properties/#Getter-and-setter-methods","page":"Properties","title":"Getter and setter methods","text":"","category":"section"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"Some properties have corresponding getter and setter C methods. It's recommended that you use these when they exist, as they are a little faster and type stable. For example the function visible gets or sets the property \"visible\" of a GtkWidget:","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"julia> visible(win)\ntrue\n\njulia> visible(win, false)\n\njulia> visible(win)\nfalse\n\njulia> visible(win, true)","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"This sequence makes the window disappear and then reappear.","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"The most important accessors are exported from Gtk4 but the more obscure will have to be called including the module name. For example, the property resizable for a GtkWindow, which controls whether a user is allowed to resize the window, can be set using","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"julia> Gtk4.resizable(win, false)","category":"page"},{"location":"manual/properties/#Binding-properties","page":"Properties","title":"Binding properties","text":"","category":"section"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"Properties can be bound to one another through the GObject signal system using the method bind_property. For example, if one wanted the title of a window win2 to automatically track that of another window win1, one could use","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"julia> b = bind_property(win1, \"title\", win2, \"title\")","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"Now if one calls","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"julia> win1.title = \"New title\"","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"the title of win2 is automatically updated to the same value. The binding can be released using unbind_property(b).","category":"page"},{"location":"manual/textwidgets/#Text-Widgets","page":"Text Widgets","title":"Text Widgets","text":"","category":"section"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"There are two basic widgets available for rendering simple text: GtkLabel is for displaying non-editable text and GtkEntry is for editable text.","category":"page"},{"location":"manual/textwidgets/#[GtkLabel](https://docs.gtk.org/gtk4/class.Label.html)","page":"Text Widgets","title":"GtkLabel","text":"","category":"section"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"A GtkLabel is the most basic text widget and has already been used behind the scenes in any previous example involving a GtkButton. A GtkLabel is constructed by calling","category":"page"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"label = GtkLabel(\"My text\")","category":"page"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"The text of a label can be changed using the label property or Gtk4.text","category":"page"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"Gtk4.text(label,\"My other text\")\nlabel.label = \"My final text\"","category":"page"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"Furthermore, a label has limited support for adding formatted text. This is done using the Gtk4.markup function:","category":"page"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"Gtk4.markup(label,\"\"\"My bold text\\n\n GTK+ website\"\"\")","category":"page"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"The syntax for this markup text is borrowed from HTML and explained here.","category":"page"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"A label can be made selectable (so that it can be copied and pasted elsewhere) using","category":"page"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"Gtk4.selectable(label,true)","category":"page"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"The justification of a label can be changed in the following way:","category":"page"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"Gtk4.justify(label,Gtk4.Justification_RIGHT)","category":"page"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"Possible values of the enum Justification are LEFT,RIGHT,CENTER, and FILL.","category":"page"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"Automatic line wrapping can be enabled using","category":"page"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"Gtk4.text(label,repeat(\"Very long text! \",20))\nGtk4.wrap(label,true)","category":"page"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"Note that wrapping will only occur if the size of the widget is limited by layout constraints.","category":"page"},{"location":"manual/textwidgets/#[GtkEntry](https://docs.gtk.org/gtk4/class.Entry.html)","page":"Text Widgets","title":"GtkEntry","text":"","category":"section"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"The entry widget allows the user to enter text. The entered text can be read and written using","category":"page"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"ent = GtkEntry()\nent.text = \"My String\"\nstr = ent.text","category":"page"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"A maximum number of characters can be set using ent.max_length = 10.","category":"page"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"Sometimes you might want to make the widget non-editable. This can be done using the call","category":"page"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"# using the accessor method\nGtk4.editable(GtkEditable(ent),false)\n# using the property system\nent.editable = false","category":"page"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"If you want to use the entry to retrieve passwords you can hide the visibility of the entered text. This can be achieved by calling","category":"page"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"ent.visibility = false","category":"page"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"To get notified by changes to the entry one can listen to the \"changed\" event.","category":"page"},{"location":"manual/textwidgets/#[GtkSearchEntry](https://docs.gtk.org/gtk4/class.SearchEntry.html)","page":"Text Widgets","title":"GtkSearchEntry","text":"","category":"section"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"A special variant of the entry that can be used as a search box is GtkSearchEntry. It is equipped with a button to clear the entry.","category":"page"},{"location":"#Gtk4.jl","page":"Home","title":"Gtk4.jl","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Julia Bindings for Gtk version 4.x.","category":"page"},{"location":"#Introduction","page":"Home","title":"Introduction","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Gtk4.jl is a Julia package providing bindings for the Gtk library: https://www.gtk.org/","category":"page"},{"location":"","page":"Home","title":"Home","text":"Complete Gtk documentation is available at https://www.gtk.org/docs/","category":"page"},{"location":"#Usage","page":"Home","title":"Usage","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Manual/tutorial: see Getting Started and following pages for an introduction to using the package, adapted from the Gtk.jl manual.\nHow-to guides: see Using Gtk4 outside the REPL and following pages for practical discussions of various sticky issues when using Gtk4.jl.\nReference: see Gtk4 Reference for an API reference automatically generated from docstrings.\nSee Differences between Gtk.jl and Gtk4.jl for a summary of the differences between this package and Gtk.jl.","category":"page"},{"location":"#History","page":"Home","title":"History","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"This package and its documentation were adapted from Gtk.jl, which was written by Jameson Nash and others and supported GTK versions 2 and 3. With version 4 there were so many changes to the GTK API that it would have been messy to try to support it and previous versions in the same package. Note that much of the GLib/GObject functionality that underlies GTK is largely the same code as in Gtk.jl. Some changes were made to try to take better advantage of GObject introspection or to remove old code that was no longer necessary in recent versions of Julia.","category":"page"}] +[{"location":"diff3to4/#Differences-between-Gtk.jl-and-Gtk4.jl","page":"Gtk.jl to Gtk4.jl","title":"Differences between Gtk.jl and Gtk4.jl","text":"","category":"section"},{"location":"diff3to4/","page":"Gtk.jl to Gtk4.jl","title":"Gtk.jl to Gtk4.jl","text":"Gtk4.jl builds on and is very similar to Gtk.jl. Here is a summary of what's different.","category":"page"},{"location":"diff3to4/#Properties","page":"Gtk.jl to Gtk4.jl","title":"Properties","text":"","category":"section"},{"location":"diff3to4/","page":"Gtk.jl to Gtk4.jl","title":"Gtk.jl to Gtk4.jl","text":"GObject properties can still be set and accessed using get_gtk_property and set_gtk_property!. However, properties are now mapped onto Julia properties, so one can set a window title using win.title = \"My title\". Also, the submodule GAccessor no longer exists. In Gtk4.jl, getter and setter methods are in the main Gtk4 module, but most are not exported. Whereas in Gtk.jl one uses GAccessor.title(win, \"My title\") to set the title, in Gtk4.jl the equivalent is Gtk4.title(win, \"My title\").","category":"page"},{"location":"diff3to4/#Constants,-enums,-and-flags","page":"Gtk.jl to Gtk4.jl","title":"Constants, enums, and flags","text":"","category":"section"},{"location":"diff3to4/","page":"Gtk.jl to Gtk4.jl","title":"Gtk.jl to Gtk4.jl","text":"GTK constants in Gtk4.jl are in the main module instead of a Constants submodule.","category":"page"},{"location":"diff3to4/","page":"Gtk.jl to Gtk4.jl","title":"Gtk.jl to Gtk4.jl","text":"In Gtk.jl, GTK's enum and flags constants are turned into integers. In Gtk4.jl, these are now mapped onto Julia enums, specifically the implementations CEnum.jl for enums and BitFlags.jl for flags. This improves understandability when a function returns an enum or flag, but the downside is the sometimes extreme length of the enum's name. To mitigate this, convert methods are defined for commonly used enums so that shorter symbols can be used instead of the full enum name. For example, :h can be used instead of Gtk4.Orientation_HORIZONTAL in GtkBox(orientation, spacing).","category":"page"},{"location":"diff3to4/#G_-contains-automatically-generated-methods","page":"Gtk.jl to Gtk4.jl","title":"G_ contains automatically generated methods","text":"","category":"section"},{"location":"diff3to4/","page":"Gtk.jl to Gtk4.jl","title":"Gtk.jl to Gtk4.jl","text":"In Gtk.jl, the submodule Gtk.GAccessor contains getter and setter methods, which often correspond to object properties. In Gtk4.jl, the submodule Gtk4.G_ contains automatically generated methods, which include all methods in GAccessor and many more. These methods directly call the C functions in libgtk and thus use 0-based indexing. Where possible, they translate between Julia types and C types, for example converting nothing to C_NULL and vice versa.","category":"page"},{"location":"diff3to4/","page":"Gtk.jl to Gtk4.jl","title":"Gtk.jl to Gtk4.jl","text":"For consistency, the getter and setter methods in G_ keep their full names, including \"set\" and \"get\". For example, to set the title of a window in Gtk4.jl use G_.set_title(w, \"text\") rather than GAccessor.title(w, \"text\") as in Gtk.jl.","category":"page"},{"location":"diff3to4/#GObject-and-struct-names","page":"Gtk.jl to Gtk4.jl","title":"GObject and struct names","text":"","category":"section"},{"location":"diff3to4/","page":"Gtk.jl to Gtk4.jl","title":"Gtk.jl to Gtk4.jl","text":"The equivalent of Gtk.ShortNames doesn't exist. All GObject types are mapped onto Julia types with the same name. Leaving out the namespace, as is done in the Python pygobject bindings, would have led to name collisions between Gtk types and Julia types or between Gtk and other GObject libraries.","category":"page"},{"location":"diff3to4/#No-showall","page":"Gtk.jl to Gtk4.jl","title":"No showall","text":"","category":"section"},{"location":"diff3to4/","page":"Gtk.jl to Gtk4.jl","title":"Gtk.jl to Gtk4.jl","text":"In GTK 4, widgets are shown by default, so showall does not exist. Controlling a widget's initial visibility can be done using the visible property.","category":"page"},{"location":"diff3to4/#No-GtkContainer","page":"Gtk.jl to Gtk4.jl","title":"No GtkContainer","text":"","category":"section"},{"location":"diff3to4/","page":"Gtk.jl to Gtk4.jl","title":"Gtk.jl to Gtk4.jl","text":"In GTK 4, GtkContainer has been removed and most widgets derive directly from GtkWidget. Each class that can contain child widgets has its own functions for adding and/or removing them. In Gtk4.jl, collection interface methods like push! have been defined for containers that hold many widgets, such as GtkBox. For widgets that have one child, such as GtkWindow, getindex and setindex! have been defined, so that one can set a child widget using window[] = child.","category":"page"},{"location":"diff3to4/#Events","page":"Gtk.jl to Gtk4.jl","title":"Events","text":"","category":"section"},{"location":"diff3to4/","page":"Gtk.jl to Gtk4.jl","title":"Gtk.jl to Gtk4.jl","text":"Events such as button presses are handled through \"event controllers\" in GTK 4.","category":"page"},{"location":"diff3to4/#Dialogs","page":"Gtk.jl to Gtk4.jl","title":"Dialogs","text":"","category":"section"},{"location":"diff3to4/","page":"Gtk.jl to Gtk4.jl","title":"Gtk.jl to Gtk4.jl","text":"Dialogs no longer have a run method that takes over the GLib main loop while waiting for the user's response.","category":"page"},{"location":"diff3to4/#GLib-event-loop","page":"Gtk.jl to Gtk4.jl","title":"GLib event loop","text":"","category":"section"},{"location":"diff3to4/","page":"Gtk.jl to Gtk4.jl","title":"Gtk.jl to Gtk4.jl","text":"The GLib main loop starts automatically if Julia is in an interactive session. If not, you will have to start it by calling start_main_loop or by creating a GtkApplication and calling run (see the example application.jl).","category":"page"},{"location":"diff3to4/#MutableTypes-and-GValue","page":"Gtk.jl to Gtk4.jl","title":"MutableTypes and GValue","text":"","category":"section"},{"location":"diff3to4/","page":"Gtk.jl to Gtk4.jl","title":"Gtk.jl to Gtk4.jl","text":"All uses of mutable from Gtk.jl's GLib.MutableTypes should be replaced by Julia's Ref. The type of a GValue can be set using settype! rather than setindex!.","category":"page"},{"location":"diff3to4/#More-information","page":"Gtk.jl to Gtk4.jl","title":"More information","text":"","category":"section"},{"location":"diff3to4/","page":"Gtk.jl to Gtk4.jl","title":"Gtk.jl to Gtk4.jl","text":"The GTK docs have a migration guide with detailed recommendations for migrating C code from GTK version 3 to version 4. Much of that advice applies to Julia code.","category":"page"},{"location":"doc/constants_reference/#Constants","page":"Constants","title":"Constants","text":"","category":"section"},{"location":"doc/constants_reference/#Gtk4","page":"Constants","title":"Gtk4","text":"","category":"section"},{"location":"doc/constants_reference/","page":"Constants","title":"Constants","text":"Modules = [Gtk4]\nOrder = [:constant]","category":"page"},{"location":"doc/constants_reference/#Gtk4.ACCESSIBLE_VALUE_UNDEFINED","page":"Constants","title":"Gtk4.ACCESSIBLE_VALUE_UNDEFINED","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.ACTION_ALL","page":"Constants","title":"Gtk4.ACTION_ALL","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.BINARY_AGE","page":"Constants","title":"Gtk4.BINARY_AGE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.BUTTON_MIDDLE","page":"Constants","title":"Gtk4.BUTTON_MIDDLE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.BUTTON_PRIMARY","page":"Constants","title":"Gtk4.BUTTON_PRIMARY","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.BUTTON_SECONDARY","page":"Constants","title":"Gtk4.BUTTON_SECONDARY","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.CURRENT_TIME","page":"Constants","title":"Gtk4.CURRENT_TIME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.EVENT_PROPAGATE","page":"Constants","title":"Gtk4.EVENT_PROPAGATE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.EVENT_STOP","page":"Constants","title":"Gtk4.EVENT_STOP","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.INPUT_ERROR","page":"Constants","title":"Gtk4.INPUT_ERROR","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.INTERFACE_AGE","page":"Constants","title":"Gtk4.INTERFACE_AGE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.INVALID_LIST_POSITION","page":"Constants","title":"Gtk4.INVALID_LIST_POSITION","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.LEVEL_BAR_OFFSET_FULL","page":"Constants","title":"Gtk4.LEVEL_BAR_OFFSET_FULL","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.LEVEL_BAR_OFFSET_HIGH","page":"Constants","title":"Gtk4.LEVEL_BAR_OFFSET_HIGH","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.LEVEL_BAR_OFFSET_LOW","page":"Constants","title":"Gtk4.LEVEL_BAR_OFFSET_LOW","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.MAJOR_VERSION","page":"Constants","title":"Gtk4.MAJOR_VERSION","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.MICRO_VERSION","page":"Constants","title":"Gtk4.MICRO_VERSION","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.MINOR_VERSION","page":"Constants","title":"Gtk4.MINOR_VERSION","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.MODIFIER_MASK","page":"Constants","title":"Gtk4.MODIFIER_MASK","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.PAPER_NAME_A3","page":"Constants","title":"Gtk4.PAPER_NAME_A3","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.PAPER_NAME_A4","page":"Constants","title":"Gtk4.PAPER_NAME_A4","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.PAPER_NAME_A5","page":"Constants","title":"Gtk4.PAPER_NAME_A5","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.PAPER_NAME_B5","page":"Constants","title":"Gtk4.PAPER_NAME_B5","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.PAPER_NAME_EXECUTIVE","page":"Constants","title":"Gtk4.PAPER_NAME_EXECUTIVE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.PAPER_NAME_LEGAL","page":"Constants","title":"Gtk4.PAPER_NAME_LEGAL","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.PAPER_NAME_LETTER","page":"Constants","title":"Gtk4.PAPER_NAME_LETTER","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.PRINT_SETTINGS_OUTPUT_BASENAME","page":"Constants","title":"Gtk4.PRINT_SETTINGS_OUTPUT_BASENAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.PRINT_SETTINGS_OUTPUT_DIR","page":"Constants","title":"Gtk4.PRINT_SETTINGS_OUTPUT_DIR","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.PRINT_SETTINGS_OUTPUT_FILE_FORMAT","page":"Constants","title":"Gtk4.PRINT_SETTINGS_OUTPUT_FILE_FORMAT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.PRINT_SETTINGS_OUTPUT_URI","page":"Constants","title":"Gtk4.PRINT_SETTINGS_OUTPUT_URI","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.PRIORITY_REDRAW","page":"Constants","title":"Gtk4.PRIORITY_REDRAW","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.PRIORITY_RESIZE","page":"Constants","title":"Gtk4.PRIORITY_RESIZE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.STYLE_PROVIDER_PRIORITY_APPLICATION","page":"Constants","title":"Gtk4.STYLE_PROVIDER_PRIORITY_APPLICATION","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.STYLE_PROVIDER_PRIORITY_FALLBACK","page":"Constants","title":"Gtk4.STYLE_PROVIDER_PRIORITY_FALLBACK","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.STYLE_PROVIDER_PRIORITY_SETTINGS","page":"Constants","title":"Gtk4.STYLE_PROVIDER_PRIORITY_SETTINGS","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.STYLE_PROVIDER_PRIORITY_THEME","page":"Constants","title":"Gtk4.STYLE_PROVIDER_PRIORITY_THEME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.STYLE_PROVIDER_PRIORITY_USER","page":"Constants","title":"Gtk4.STYLE_PROVIDER_PRIORITY_USER","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.TEXT_VIEW_PRIORITY_VALIDATE","page":"Constants","title":"Gtk4.TEXT_VIEW_PRIORITY_VALIDATE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID","page":"Constants","title":"Gtk4.TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID","page":"Constants","title":"Gtk4.TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GdkPixbufLib","page":"Constants","title":"Gtk4.GdkPixbufLib","text":"","category":"section"},{"location":"doc/constants_reference/","page":"Constants","title":"Constants","text":"Modules = [Gtk4.GdkPixbufLib]\nOrder = [:constant]","category":"page"},{"location":"doc/constants_reference/#Gtk4.GdkPixbufLib.PIXBUF_MAJOR","page":"Constants","title":"Gtk4.GdkPixbufLib.PIXBUF_MAJOR","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GdkPixbufLib.PIXBUF_MICRO","page":"Constants","title":"Gtk4.GdkPixbufLib.PIXBUF_MICRO","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GdkPixbufLib.PIXBUF_MINOR","page":"Constants","title":"Gtk4.GdkPixbufLib.PIXBUF_MINOR","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GdkPixbufLib.PIXBUF_VERSION","page":"Constants","title":"Gtk4.GdkPixbufLib.PIXBUF_VERSION","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib","page":"Constants","title":"Gtk4.GLib","text":"","category":"section"},{"location":"doc/constants_reference/","page":"Constants","title":"Constants","text":"Modules = [Gtk4.GLib]\nOrder = [:constant]","category":"page"},{"location":"doc/constants_reference/#Gtk4.GLib.ASCII_DTOSTR_BUF_SIZE","page":"Constants","title":"Gtk4.GLib.ASCII_DTOSTR_BUF_SIZE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.ATOMIC_REF_COUNT_INIT","page":"Constants","title":"Gtk4.GLib.ATOMIC_REF_COUNT_INIT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.BIG_ENDIAN","page":"Constants","title":"Gtk4.GLib.BIG_ENDIAN","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.CSET_A_2_Z","page":"Constants","title":"Gtk4.GLib.CSET_A_2_Z","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.CSET_DIGITS","page":"Constants","title":"Gtk4.GLib.CSET_DIGITS","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.CSET_a_2_z","page":"Constants","title":"Gtk4.GLib.CSET_a_2_z","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.C_STD_VERSION","page":"Constants","title":"Gtk4.GLib.C_STD_VERSION","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.DATALIST_FLAGS_MASK","page":"Constants","title":"Gtk4.GLib.DATALIST_FLAGS_MASK","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.DATE_BAD_DAY","page":"Constants","title":"Gtk4.GLib.DATE_BAD_DAY","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.DATE_BAD_JULIAN","page":"Constants","title":"Gtk4.GLib.DATE_BAD_JULIAN","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.DATE_BAD_YEAR","page":"Constants","title":"Gtk4.GLib.DATE_BAD_YEAR","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.DBUS_METHOD_INVOCATION_HANDLED","page":"Constants","title":"Gtk4.GLib.DBUS_METHOD_INVOCATION_HANDLED","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.DBUS_METHOD_INVOCATION_UNHANDLED","page":"Constants","title":"Gtk4.GLib.DBUS_METHOD_INVOCATION_UNHANDLED","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.DEBUG_CONTROLLER_EXTENSION_POINT_NAME","page":"Constants","title":"Gtk4.GLib.DEBUG_CONTROLLER_EXTENSION_POINT_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.DIR_SEPARATOR","page":"Constants","title":"Gtk4.GLib.DIR_SEPARATOR","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.DIR_SEPARATOR_S","page":"Constants","title":"Gtk4.GLib.DIR_SEPARATOR_S","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.DRIVE_IDENTIFIER_KIND_UNIX_DEVICE","page":"Constants","title":"Gtk4.GLib.DRIVE_IDENTIFIER_KIND_UNIX_DEVICE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_ACCESS_CAN_DELETE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_ACCESS_CAN_DELETE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_ACCESS_CAN_EXECUTE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_ACCESS_CAN_EXECUTE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_ACCESS_CAN_READ","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_ACCESS_CAN_READ","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_ACCESS_CAN_RENAME","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_ACCESS_CAN_RENAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_ACCESS_CAN_TRASH","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_ACCESS_CAN_TRASH","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_ACCESS_CAN_WRITE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_ACCESS_CAN_WRITE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_DOS_IS_ARCHIVE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_DOS_IS_ARCHIVE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_DOS_IS_MOUNTPOINT","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_DOS_IS_MOUNTPOINT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_DOS_IS_SYSTEM","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_DOS_IS_SYSTEM","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_DOS_REPARSE_POINT_TAG","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_DOS_REPARSE_POINT_TAG","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_ETAG_VALUE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_ETAG_VALUE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_FILESYSTEM_FREE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_FILESYSTEM_FREE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_FILESYSTEM_READONLY","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_FILESYSTEM_READONLY","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_FILESYSTEM_REMOTE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_FILESYSTEM_REMOTE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_FILESYSTEM_SIZE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_FILESYSTEM_SIZE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_FILESYSTEM_TYPE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_FILESYSTEM_TYPE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_FILESYSTEM_USED","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_FILESYSTEM_USED","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_FILESYSTEM_USE_PREVIEW","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_FILESYSTEM_USE_PREVIEW","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_GVFS_BACKEND","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_GVFS_BACKEND","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_ID_FILE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_ID_FILE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_ID_FILESYSTEM","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_ID_FILESYSTEM","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_CAN_EJECT","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_CAN_EJECT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_CAN_MOUNT","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_CAN_MOUNT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_CAN_POLL","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_CAN_POLL","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_CAN_START","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_CAN_START","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_CAN_START_DEGRADED","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_CAN_START_DEGRADED","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_CAN_STOP","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_CAN_STOP","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_CAN_UNMOUNT","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_CAN_UNMOUNT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_HAL_UDI","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_HAL_UDI","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_IS_MEDIA_CHECK_AUTOMATIC","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_IS_MEDIA_CHECK_AUTOMATIC","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_START_STOP_TYPE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_START_STOP_TYPE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE_FILE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE_FILE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_OWNER_GROUP","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_OWNER_GROUP","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_OWNER_USER","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_OWNER_USER","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_OWNER_USER_REAL","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_OWNER_USER_REAL","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_PREVIEW_ICON","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_PREVIEW_ICON","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_RECENT_MODIFIED","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_RECENT_MODIFIED","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_SELINUX_CONTEXT","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_SELINUX_CONTEXT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_ALLOCATED_SIZE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_ALLOCATED_SIZE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_COPY_NAME","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_COPY_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_DESCRIPTION","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_DESCRIPTION","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_EDIT_NAME","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_EDIT_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_ICON","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_ICON","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_IS_BACKUP","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_IS_BACKUP","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_IS_HIDDEN","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_IS_HIDDEN","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_IS_SYMLINK","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_IS_SYMLINK","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_IS_VIRTUAL","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_IS_VIRTUAL","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_IS_VOLATILE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_IS_VOLATILE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_NAME","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_SIZE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_SIZE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_SORT_ORDER","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_SORT_ORDER","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_SYMBOLIC_ICON","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_SYMBOLIC_ICON","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_TARGET_URI","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_TARGET_URI","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_TYPE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_TYPE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAILING_FAILED","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAILING_FAILED","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAILING_FAILED_LARGE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAILING_FAILED_LARGE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAILING_FAILED_NORMAL","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAILING_FAILED_NORMAL","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAILING_FAILED_XLARGE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAILING_FAILED_XLARGE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAILING_FAILED_XXLARGE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAILING_FAILED_XXLARGE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_IS_VALID","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_IS_VALID","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_LARGE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_LARGE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_NORMAL","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_NORMAL","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_XLARGE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_XLARGE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_XXLARGE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_XXLARGE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_PATH","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_PATH","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_PATH_LARGE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_PATH_LARGE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_PATH_NORMAL","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_PATH_NORMAL","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_PATH_XLARGE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_PATH_XLARGE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_PATH_XXLARGE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_PATH_XXLARGE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_TIME_ACCESS","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_TIME_ACCESS","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_TIME_ACCESS_NSEC","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_TIME_ACCESS_NSEC","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_TIME_ACCESS_USEC","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_TIME_ACCESS_USEC","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_TIME_CHANGED","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_TIME_CHANGED","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_TIME_CHANGED_NSEC","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_TIME_CHANGED_NSEC","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_TIME_CHANGED_USEC","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_TIME_CHANGED_USEC","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_TIME_CREATED","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_TIME_CREATED","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_TIME_CREATED_NSEC","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_TIME_CREATED_NSEC","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_TIME_CREATED_USEC","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_TIME_CREATED_USEC","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_TIME_MODIFIED","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_TIME_MODIFIED","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_TIME_MODIFIED_NSEC","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_TIME_MODIFIED_NSEC","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_TIME_MODIFIED_USEC","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_TIME_MODIFIED_USEC","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_TRASH_DELETION_DATE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_TRASH_DELETION_DATE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_TRASH_ITEM_COUNT","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_TRASH_ITEM_COUNT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_TRASH_ORIG_PATH","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_TRASH_ORIG_PATH","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_UNIX_BLOCKS","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_UNIX_BLOCKS","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_UNIX_BLOCK_SIZE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_UNIX_BLOCK_SIZE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_UNIX_DEVICE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_UNIX_DEVICE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_UNIX_GID","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_UNIX_GID","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_UNIX_INODE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_UNIX_INODE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_UNIX_IS_MOUNTPOINT","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_UNIX_IS_MOUNTPOINT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_UNIX_MODE","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_UNIX_MODE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_UNIX_NLINK","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_UNIX_NLINK","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_UNIX_RDEV","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_UNIX_RDEV","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.FILE_ATTRIBUTE_UNIX_UID","page":"Constants","title":"Gtk4.GLib.FILE_ATTRIBUTE_UNIX_UID","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.GINT16_FORMAT","page":"Constants","title":"Gtk4.GLib.GINT16_FORMAT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.GINT16_MODIFIER","page":"Constants","title":"Gtk4.GLib.GINT16_MODIFIER","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.GINT32_FORMAT","page":"Constants","title":"Gtk4.GLib.GINT32_FORMAT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.GINT32_MODIFIER","page":"Constants","title":"Gtk4.GLib.GINT32_MODIFIER","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.GINT64_FORMAT","page":"Constants","title":"Gtk4.GLib.GINT64_FORMAT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.GINT64_MODIFIER","page":"Constants","title":"Gtk4.GLib.GINT64_MODIFIER","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.GINTPTR_FORMAT","page":"Constants","title":"Gtk4.GLib.GINTPTR_FORMAT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.GINTPTR_MODIFIER","page":"Constants","title":"Gtk4.GLib.GINTPTR_MODIFIER","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.GSIZE_FORMAT","page":"Constants","title":"Gtk4.GLib.GSIZE_FORMAT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.GSIZE_MODIFIER","page":"Constants","title":"Gtk4.GLib.GSIZE_MODIFIER","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.GSSIZE_FORMAT","page":"Constants","title":"Gtk4.GLib.GSSIZE_FORMAT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.GSSIZE_MODIFIER","page":"Constants","title":"Gtk4.GLib.GSSIZE_MODIFIER","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.GUINT16_FORMAT","page":"Constants","title":"Gtk4.GLib.GUINT16_FORMAT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.GUINT32_FORMAT","page":"Constants","title":"Gtk4.GLib.GUINT32_FORMAT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.GUINT64_FORMAT","page":"Constants","title":"Gtk4.GLib.GUINT64_FORMAT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.GUINTPTR_FORMAT","page":"Constants","title":"Gtk4.GLib.GUINTPTR_FORMAT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.HAVE_GNUC_VISIBILITY","page":"Constants","title":"Gtk4.GLib.HAVE_GNUC_VISIBILITY","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.HOOK_FLAG_USER_SHIFT","page":"Constants","title":"Gtk4.GLib.HOOK_FLAG_USER_SHIFT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.IEEE754_DOUBLE_BIAS","page":"Constants","title":"Gtk4.GLib.IEEE754_DOUBLE_BIAS","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.IEEE754_FLOAT_BIAS","page":"Constants","title":"Gtk4.GLib.IEEE754_FLOAT_BIAS","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_GROUP","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_GROUP","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_ACTIONS","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_ACTIONS","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_CATEGORIES","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_CATEGORIES","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_COMMENT","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_COMMENT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_DBUS_ACTIVATABLE","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_DBUS_ACTIVATABLE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_EXEC","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_EXEC","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_GENERIC_NAME","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_GENERIC_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_HIDDEN","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_HIDDEN","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_ICON","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_ICON","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_MIME_TYPE","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_MIME_TYPE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_NAME","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_NOT_SHOW_IN","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_NOT_SHOW_IN","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_NO_DISPLAY","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_NO_DISPLAY","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_ONLY_SHOW_IN","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_ONLY_SHOW_IN","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_PATH","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_PATH","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_STARTUP_NOTIFY","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_STARTUP_NOTIFY","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_STARTUP_WM_CLASS","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_STARTUP_WM_CLASS","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_TERMINAL","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_TERMINAL","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_TRY_EXEC","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_TRY_EXEC","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_TYPE","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_TYPE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_URL","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_URL","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_VERSION","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_VERSION","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_TYPE_APPLICATION","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_TYPE_APPLICATION","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_TYPE_DIRECTORY","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_TYPE_DIRECTORY","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_TYPE_LINK","page":"Constants","title":"Gtk4.GLib.KEY_FILE_DESKTOP_TYPE_LINK","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.LITTLE_ENDIAN","page":"Constants","title":"Gtk4.GLib.LITTLE_ENDIAN","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.LOG_DOMAIN","page":"Constants","title":"Gtk4.GLib.LOG_DOMAIN","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.LOG_FATAL_MASK","page":"Constants","title":"Gtk4.GLib.LOG_FATAL_MASK","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.LOG_LEVEL_USER_SHIFT","page":"Constants","title":"Gtk4.GLib.LOG_LEVEL_USER_SHIFT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MAJOR_VERSION","page":"Constants","title":"Gtk4.GLib.MAJOR_VERSION","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MAXINT16","page":"Constants","title":"Gtk4.GLib.MAXINT16","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MAXINT32","page":"Constants","title":"Gtk4.GLib.MAXINT32","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MAXINT64","page":"Constants","title":"Gtk4.GLib.MAXINT64","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MAXINT8","page":"Constants","title":"Gtk4.GLib.MAXINT8","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MAXUINT16","page":"Constants","title":"Gtk4.GLib.MAXUINT16","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MAXUINT32","page":"Constants","title":"Gtk4.GLib.MAXUINT32","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MAXUINT64","page":"Constants","title":"Gtk4.GLib.MAXUINT64","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MAXUINT8","page":"Constants","title":"Gtk4.GLib.MAXUINT8","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MEMORY_MONITOR_EXTENSION_POINT_NAME","page":"Constants","title":"Gtk4.GLib.MEMORY_MONITOR_EXTENSION_POINT_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MENU_ATTRIBUTE_ACTION","page":"Constants","title":"Gtk4.GLib.MENU_ATTRIBUTE_ACTION","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MENU_ATTRIBUTE_ACTION_NAMESPACE","page":"Constants","title":"Gtk4.GLib.MENU_ATTRIBUTE_ACTION_NAMESPACE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MENU_ATTRIBUTE_ICON","page":"Constants","title":"Gtk4.GLib.MENU_ATTRIBUTE_ICON","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MENU_ATTRIBUTE_LABEL","page":"Constants","title":"Gtk4.GLib.MENU_ATTRIBUTE_LABEL","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MENU_ATTRIBUTE_TARGET","page":"Constants","title":"Gtk4.GLib.MENU_ATTRIBUTE_TARGET","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MENU_EXPORTER_MAX_SECTION_SIZE","page":"Constants","title":"Gtk4.GLib.MENU_EXPORTER_MAX_SECTION_SIZE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MENU_LINK_SECTION","page":"Constants","title":"Gtk4.GLib.MENU_LINK_SECTION","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MENU_LINK_SUBMENU","page":"Constants","title":"Gtk4.GLib.MENU_LINK_SUBMENU","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MICRO_VERSION","page":"Constants","title":"Gtk4.GLib.MICRO_VERSION","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MININT16","page":"Constants","title":"Gtk4.GLib.MININT16","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MININT32","page":"Constants","title":"Gtk4.GLib.MININT32","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MININT64","page":"Constants","title":"Gtk4.GLib.MININT64","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MININT8","page":"Constants","title":"Gtk4.GLib.MININT8","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.MINOR_VERSION","page":"Constants","title":"Gtk4.GLib.MINOR_VERSION","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.NETWORK_MONITOR_EXTENSION_POINT_NAME","page":"Constants","title":"Gtk4.GLib.NETWORK_MONITOR_EXTENSION_POINT_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.OPTION_REMAINING","page":"Constants","title":"Gtk4.GLib.OPTION_REMAINING","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.PARAM_MASK","page":"Constants","title":"Gtk4.GLib.PARAM_MASK","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.PARAM_STATIC_STRINGS","page":"Constants","title":"Gtk4.GLib.PARAM_STATIC_STRINGS","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.PARAM_USER_SHIFT","page":"Constants","title":"Gtk4.GLib.PARAM_USER_SHIFT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.PDP_ENDIAN","page":"Constants","title":"Gtk4.GLib.PDP_ENDIAN","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.PID_FORMAT","page":"Constants","title":"Gtk4.GLib.PID_FORMAT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.POLLFD_FORMAT","page":"Constants","title":"Gtk4.GLib.POLLFD_FORMAT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.POWER_PROFILE_MONITOR_EXTENSION_POINT_NAME","page":"Constants","title":"Gtk4.GLib.POWER_PROFILE_MONITOR_EXTENSION_POINT_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.PRIORITY_DEFAULT","page":"Constants","title":"Gtk4.GLib.PRIORITY_DEFAULT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.PRIORITY_DEFAULT_IDLE","page":"Constants","title":"Gtk4.GLib.PRIORITY_DEFAULT_IDLE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.PRIORITY_HIGH","page":"Constants","title":"Gtk4.GLib.PRIORITY_HIGH","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.PRIORITY_HIGH_IDLE","page":"Constants","title":"Gtk4.GLib.PRIORITY_HIGH_IDLE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.PRIORITY_LOW","page":"Constants","title":"Gtk4.GLib.PRIORITY_LOW","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.PROXY_EXTENSION_POINT_NAME","page":"Constants","title":"Gtk4.GLib.PROXY_EXTENSION_POINT_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.PROXY_RESOLVER_EXTENSION_POINT_NAME","page":"Constants","title":"Gtk4.GLib.PROXY_RESOLVER_EXTENSION_POINT_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.REF_COUNT_INIT","page":"Constants","title":"Gtk4.GLib.REF_COUNT_INIT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.SEARCHPATH_SEPARATOR","page":"Constants","title":"Gtk4.GLib.SEARCHPATH_SEPARATOR","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.SEARCHPATH_SEPARATOR_S","page":"Constants","title":"Gtk4.GLib.SEARCHPATH_SEPARATOR_S","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.SETTINGS_BACKEND_EXTENSION_POINT_NAME","page":"Constants","title":"Gtk4.GLib.SETTINGS_BACKEND_EXTENSION_POINT_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.SIGNAL_FLAGS_MASK","page":"Constants","title":"Gtk4.GLib.SIGNAL_FLAGS_MASK","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.SIGNAL_MATCH_MASK","page":"Constants","title":"Gtk4.GLib.SIGNAL_MATCH_MASK","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.SOURCE_CONTINUE","page":"Constants","title":"Gtk4.GLib.SOURCE_CONTINUE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.SOURCE_REMOVE","page":"Constants","title":"Gtk4.GLib.SOURCE_REMOVE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.STR_DELIMITERS","page":"Constants","title":"Gtk4.GLib.STR_DELIMITERS","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.TEST_OPTION_ISOLATE_DIRS","page":"Constants","title":"Gtk4.GLib.TEST_OPTION_ISOLATE_DIRS","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.TIME_SPAN_DAY","page":"Constants","title":"Gtk4.GLib.TIME_SPAN_DAY","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.TIME_SPAN_HOUR","page":"Constants","title":"Gtk4.GLib.TIME_SPAN_HOUR","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.TIME_SPAN_MILLISECOND","page":"Constants","title":"Gtk4.GLib.TIME_SPAN_MILLISECOND","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.TIME_SPAN_MINUTE","page":"Constants","title":"Gtk4.GLib.TIME_SPAN_MINUTE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.TIME_SPAN_SECOND","page":"Constants","title":"Gtk4.GLib.TIME_SPAN_SECOND","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.TLS_BACKEND_EXTENSION_POINT_NAME","page":"Constants","title":"Gtk4.GLib.TLS_BACKEND_EXTENSION_POINT_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.TLS_DATABASE_PURPOSE_AUTHENTICATE_CLIENT","page":"Constants","title":"Gtk4.GLib.TLS_DATABASE_PURPOSE_AUTHENTICATE_CLIENT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.TLS_DATABASE_PURPOSE_AUTHENTICATE_SERVER","page":"Constants","title":"Gtk4.GLib.TLS_DATABASE_PURPOSE_AUTHENTICATE_SERVER","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.TYPE_FLAG_RESERVED_ID_BIT","page":"Constants","title":"Gtk4.GLib.TYPE_FLAG_RESERVED_ID_BIT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.TYPE_FUNDAMENTAL_MAX","page":"Constants","title":"Gtk4.GLib.TYPE_FUNDAMENTAL_MAX","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.TYPE_FUNDAMENTAL_SHIFT","page":"Constants","title":"Gtk4.GLib.TYPE_FUNDAMENTAL_SHIFT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.TYPE_RESERVED_BSE_FIRST","page":"Constants","title":"Gtk4.GLib.TYPE_RESERVED_BSE_FIRST","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.TYPE_RESERVED_BSE_LAST","page":"Constants","title":"Gtk4.GLib.TYPE_RESERVED_BSE_LAST","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.TYPE_RESERVED_GLIB_FIRST","page":"Constants","title":"Gtk4.GLib.TYPE_RESERVED_GLIB_FIRST","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.TYPE_RESERVED_GLIB_LAST","page":"Constants","title":"Gtk4.GLib.TYPE_RESERVED_GLIB_LAST","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.TYPE_RESERVED_USER_FIRST","page":"Constants","title":"Gtk4.GLib.TYPE_RESERVED_USER_FIRST","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.UNICHAR_MAX_DECOMPOSITION_LENGTH","page":"Constants","title":"Gtk4.GLib.UNICHAR_MAX_DECOMPOSITION_LENGTH","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.URI_RESERVED_CHARS_GENERIC_DELIMITERS","page":"Constants","title":"Gtk4.GLib.URI_RESERVED_CHARS_GENERIC_DELIMITERS","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.URI_RESERVED_CHARS_SUBCOMPONENT_DELIMITERS","page":"Constants","title":"Gtk4.GLib.URI_RESERVED_CHARS_SUBCOMPONENT_DELIMITERS","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.USEC_PER_SEC","page":"Constants","title":"Gtk4.GLib.USEC_PER_SEC","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.VALUE_INTERNED_STRING","page":"Constants","title":"Gtk4.GLib.VALUE_INTERNED_STRING","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.VALUE_NOCOPY_CONTENTS","page":"Constants","title":"Gtk4.GLib.VALUE_NOCOPY_CONTENTS","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.VERSION_MIN_REQUIRED","page":"Constants","title":"Gtk4.GLib.VERSION_MIN_REQUIRED","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.VFS_EXTENSION_POINT_NAME","page":"Constants","title":"Gtk4.GLib.VFS_EXTENSION_POINT_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.VOLUME_IDENTIFIER_KIND_CLASS","page":"Constants","title":"Gtk4.GLib.VOLUME_IDENTIFIER_KIND_CLASS","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.VOLUME_IDENTIFIER_KIND_LABEL","page":"Constants","title":"Gtk4.GLib.VOLUME_IDENTIFIER_KIND_LABEL","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.VOLUME_IDENTIFIER_KIND_NFS_MOUNT","page":"Constants","title":"Gtk4.GLib.VOLUME_IDENTIFIER_KIND_NFS_MOUNT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.VOLUME_IDENTIFIER_KIND_UNIX_DEVICE","page":"Constants","title":"Gtk4.GLib.VOLUME_IDENTIFIER_KIND_UNIX_DEVICE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.VOLUME_IDENTIFIER_KIND_UUID","page":"Constants","title":"Gtk4.GLib.VOLUME_IDENTIFIER_KIND_UUID","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/constants_reference/#Gtk4.GLib.VOLUME_MONITOR_EXTENSION_POINT_NAME","page":"Constants","title":"Gtk4.GLib.VOLUME_MONITOR_EXTENSION_POINT_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"howto/sysimage/#Gtk4-in-a-sysimage","page":"Gtk4 in a sysimage","title":"Gtk4 in a sysimage","text":"","category":"section"},{"location":"howto/sysimage/","page":"Gtk4 in a sysimage","title":"Gtk4 in a sysimage","text":"Note that if Gtk4 is included in a sysimage using PackageCompiler.jl, the main loop will not be started automatically when calling using Gtk4 even in an interactive Julia session. You will have to call GLib.start_main_loop() before windows will appear.","category":"page"},{"location":"manual/buttons/#Buttons","page":"Buttons","title":"Buttons","text":"","category":"section"},{"location":"manual/buttons/","page":"Buttons","title":"Buttons","text":"GTK defines many button and button-like widgets.","category":"page"},{"location":"manual/buttons/#[GtkButton](https://docs.gtk.org/gtk4/class.Button.html)","page":"Buttons","title":"GtkButton","text":"","category":"section"},{"location":"manual/buttons/","page":"Buttons","title":"Buttons","text":"We have already encountered the widget GtkButton, which defines a \"clicked\" signal that can be used to let the user trigger callback functions.","category":"page"},{"location":"manual/buttons/","page":"Buttons","title":"Buttons","text":"The button holds a child widget that can be a GtkLabel in the case of text, an image-displaying widget in the case of an icon, or potentially anything else you want. The child widget can be set and accessed using getindex(b::GtkButton) and setindex!(b::GtkButton, child_widget::GtkWidget):","category":"page"},{"location":"manual/buttons/","page":"Buttons","title":"Buttons","text":"b = GtkButton()\nb[] = my_widget\nchild_widget = b[]","category":"page"},{"location":"manual/buttons/","page":"Buttons","title":"Buttons","text":"You can also associate an action (see Actions) with a button by setting its property \"action-name\".","category":"page"},{"location":"manual/buttons/","page":"Buttons","title":"Buttons","text":"Selected signals:","category":"page"},{"location":"manual/buttons/","page":"Buttons","title":"Buttons","text":"signal arguments returns \n\"clicked\" self::GtkButton Nothing Emitted when the button is clicked","category":"page"},{"location":"manual/buttons/#[GtkToggleButton](https://docs.gtk.org/gtk4/class.ToggleButton.html)","page":"Buttons","title":"GtkToggleButton","text":"","category":"section"},{"location":"manual/buttons/","page":"Buttons","title":"Buttons","text":"This widget looks like a button but it stays pressed when the user clicks it. The state of the button can be accessed or set using its property \"active\", which is true when the button is pressed.","category":"page"},{"location":"manual/buttons/","page":"Buttons","title":"Buttons","text":"A toggle button can be added to a group using the method group, in which case it can be used to select from mutually exclusive options:","category":"page"},{"location":"manual/buttons/","page":"Buttons","title":"Buttons","text":"using Gtk4\n\nred_button = GtkToggleButton(\"red\")\ngreen_button = GtkToggleButton(\"green\")\nblue_button = GtkToggleButton(\"blue\")\nwin = GtkWindow(\"choose one color\")\nwin[] = box = GtkBox(:v)\npush!(box, red_button)\npush!(box, green_button)\npush!(box, blue_button)\n\ngroup(green_button, red_button)\ngroup(blue_button, red_button)\n# now only one button can be active at a time","category":"page"},{"location":"manual/buttons/","page":"Buttons","title":"Buttons","text":"Selected signals:","category":"page"},{"location":"manual/buttons/","page":"Buttons","title":"Buttons","text":"signal arguments returns \n\"toggled\" self::GtkToggleButton Nothing Emitted when the button state is changed","category":"page"},{"location":"manual/buttons/#[GtkCheckButton](https://docs.gtk.org/gtk4/class.CheckButton.html)","page":"Buttons","title":"GtkCheckButton","text":"","category":"section"},{"location":"manual/buttons/","page":"Buttons","title":"Buttons","text":"This widget is a checkbox that can be used to control whether something is active (true) or inactive (false). Functionally it is identical to a GtkToggleButton but it is rendered differently. There is typically a label that is rendered next to the checkbox.","category":"page"},{"location":"manual/buttons/","page":"Buttons","title":"Buttons","text":"Like a toggle button, a check button can also be added to a group, in which case it is rendered as a \"radio button\" that can be used to choose from a few mutually exclusive options.","category":"page"},{"location":"manual/buttons/","page":"Buttons","title":"Buttons","text":"Selected signals:","category":"page"},{"location":"manual/buttons/","page":"Buttons","title":"Buttons","text":"signal arguments returns \n\"toggled\" self::GtkCheckButton Nothing Emitted when the button state is changed","category":"page"},{"location":"manual/buttons/#[GtkSwitch](https://docs.gtk.org/gtk4/class.Switch.html)","page":"Buttons","title":"GtkSwitch","text":"","category":"section"},{"location":"manual/buttons/","page":"Buttons","title":"Buttons","text":"This widget is very much like a check button but looks like a switch.","category":"page"},{"location":"manual/buttons/","page":"Buttons","title":"Buttons","text":"Like GtkCheckButton, its \"active\" property can be used to get and set the switch's state.","category":"page"},{"location":"manual/buttons/#[GtkLinkButton](https://docs.gtk.org/gtk4/class.LinkButton.html)","page":"Buttons","title":"GtkLinkButton","text":"","category":"section"},{"location":"manual/buttons/","page":"Buttons","title":"Buttons","text":"This widget can be used to open a URL:","category":"page"},{"location":"manual/buttons/","page":"Buttons","title":"Buttons","text":"lb = GtkLinkButton(\"https://julialang.org\",\"Julia website\")","category":"page"},{"location":"howto/async/#Asynchronous-UI","page":"Asynchronous UI","title":"Asynchronous UI","text":"","category":"section"},{"location":"howto/async/","page":"Asynchronous UI","title":"Asynchronous UI","text":"It is possible to perform background computation without interfering with user interface responsiveness either using multithreading or using separate processes. Use of a separate process includes slightly more overhead but also ensures user interface responsiveness more robustly.","category":"page"},{"location":"howto/async/#Multithreading","page":"Asynchronous UI","title":"Multithreading","text":"","category":"section"},{"location":"howto/async/","page":"Asynchronous UI","title":"Asynchronous UI","text":"note: Example\nThe code below can be found in \"thread.jl\" in the \"examples\" subdirectory.","category":"page"},{"location":"howto/async/","page":"Asynchronous UI","title":"Asynchronous UI","text":"Here is an example using threads. Notice that this example will freeze the UI during computation unless Julia is run with two or more threads, for example by calling julia -t2 or julia -t1,1 to use the interactive threadpool in recent versions of Julia.","category":"page"},{"location":"howto/async/","page":"Asynchronous UI","title":"Asynchronous UI","text":"using Gtk4\n\nbtn = GtkButton(\"Start\")\nsp = GtkSpinner()\nent = GtkEntry(;hexpand=true)\n\ngrid = GtkGrid()\ngrid[1,1] = btn\ngrid[2,1] = sp\ngrid[1:2,2] = ent\n\nsignal_connect(btn, \"clicked\") do widget\n start(sp)\n Threads.@spawn begin\n\n # Do work\n stop_time = time() + 3\n counter = 0\n while time() < stop_time\n counter += 1\n end\n\n # Interacting with GTK from a thread other than the main thread is\n # generally not allowed, so we register an idle callback instead.\n Gtk4.GLib.g_idle_add() do\n stop(sp)\n ent.text = \"I counted to $counter in a thread!\"\n false\n end\n end\nend\n\nwin = GtkWindow(grid, \"Threads\", 300, 200)","category":"page"},{"location":"howto/async/","page":"Asynchronous UI","title":"Asynchronous UI","text":"A modified version of this code that includes an updating counter can be found in \"thread_timeout.jl\" in the \"examples\" subdirectory.","category":"page"},{"location":"howto/async/#Separate-processes","page":"Asynchronous UI","title":"Separate processes","text":"","category":"section"},{"location":"howto/async/","page":"Asynchronous UI","title":"Asynchronous UI","text":"Here is an example using a separate process to offload the work. This toy example is fairly straightforward, but things can get more complex if the offloaded task is more complex. See the manual for details.","category":"page"},{"location":"howto/async/","page":"Asynchronous UI","title":"Asynchronous UI","text":"using Gtk4, Distributed\n\nbtn = GtkButton(\"Start\")\nsp = GtkSpinner()\nent = GtkEntry()\n\ngrid = GtkGrid()\ngrid[1,1] = btn\ngrid[2,1] = sp\ngrid[1:2,2] = ent\n\nid = addprocs(1)[1]\n\nsignal_connect(btn, \"clicked\") do widget\n start(sp)\n @async begin\n\n # Offload work to a separate process and block until it is done.\n counter = @fetchfrom id begin\n stop_time = time() + 3\n counter = 0\n while time() < stop_time\n counter += 1\n end\n counter\n end\n\n # We are still in the main thread so it is okay to directly access widgets\n stop(sp)\n ent.text = \"I counted to $counter in a separate process!\"\n end\nend\n\nwin = GtkWindow(grid, \"Distributed\", 200, 200)","category":"page"},{"location":"manual/display/#Display-widgets","page":"Display widgets","title":"Display widgets","text":"","category":"section"},{"location":"manual/display/","page":"Display widgets","title":"Display widgets","text":"We have already encountered GtkLabel, which is used to display text. GTK has a few other widgets that are useful for displaying information.","category":"page"},{"location":"manual/display/#[GtkSpinner](https://docs.gtk.org/gtk4/class.Spinner.html)","page":"Display widgets","title":"GtkSpinner","text":"","category":"section"},{"location":"manual/display/","page":"Display widgets","title":"Display widgets","text":"This is a simple widget that optionally shows an animated spinning icon. It's used to indicate to the user that something is happening.","category":"page"},{"location":"manual/display/","page":"Display widgets","title":"Display widgets","text":"The widget is constructed using GtkSpinner(). There are just two methods, start to display the spinning icon and stop to not display it.","category":"page"},{"location":"manual/display/","page":"Display widgets","title":"Display widgets","text":"To check if the spinner is spinning, use the \"spinning\" property or the spinning getter method.","category":"page"},{"location":"manual/display/#[GtkProgressBar](https://docs.gtk.org/gtk4/class.ProgressBar.html)","page":"Display widgets","title":"GtkProgressBar","text":"","category":"section"},{"location":"manual/display/","page":"Display widgets","title":"Display widgets","text":"This widget shows a progress bar and optionally text.","category":"page"},{"location":"manual/display/","page":"Display widgets","title":"Display widgets","text":"win = GtkWindow(\"Progress bar\")\nprogbar = GtkProgressBar()\npush!(win, progbar)","category":"page"},{"location":"manual/display/","page":"Display widgets","title":"Display widgets","text":"The fractional progress (between 0.0 and 1.0) can be set using the fraction setter or the \"fraction\" property:","category":"page"},{"location":"manual/display/","page":"Display widgets","title":"Display widgets","text":"fraction(progbar, 0.5)\nprogbar.fraction","category":"page"},{"location":"manual/display/","page":"Display widgets","title":"Display widgets","text":"You can show text which might, for example, say something about what is happening or an estimated time left:","category":"page"},{"location":"manual/display/","page":"Display widgets","title":"Display widgets","text":"Gtk4.text(progbar, \"11 seconds remaining\")","category":"page"},{"location":"manual/display/","page":"Display widgets","title":"Display widgets","text":"For processes with no well defined concept of progress, you can periodically use the pulse method to cause the progress bar to show a back and forth motion (think \"Knight Rider\"), reassuring the user that something is continuing to happen:","category":"page"},{"location":"manual/display/","page":"Display widgets","title":"Display widgets","text":"Gtk4.pulse(progbar) # moves the progress bar a little","category":"page"},{"location":"manual/display/","page":"Display widgets","title":"Display widgets","text":"The step size (in fractional units) for pulse can be set using Gtk4.pulse_step.","category":"page"},{"location":"manual/display/#[GtkPicture](https://docs.gtk.org/gtk4/class.Picture.html)-and-[GtkImage](https://docs.gtk.org/gtk4/class.Image.html)","page":"Display widgets","title":"GtkPicture and GtkImage","text":"","category":"section"},{"location":"manual/display/","page":"Display widgets","title":"Display widgets","text":"These two widgets can be used to display an image. GtkPicture shows the image at its natural size, while GtkImage shows it at a fixed, potentially smaller size (for example, an icon). The image can be set in a constructor or be set by a method.","category":"page"},{"location":"manual/display/","page":"Display widgets","title":"Display widgets","text":"For GtkPicture, there are constructors that read from a file (in PNG, JPEG, or TIFF format), either using a GFile object or a filename. Alternatively you can construct a GtkPicture from a GdkPixbuf or GdkPaintable.","category":"page"},{"location":"manual/combobox/#Dropdown-widgets","page":"Dropdown widgets","title":"Dropdown widgets","text":"","category":"section"},{"location":"manual/combobox/","page":"Dropdown widgets","title":"Dropdown widgets","text":"One often needs a widget to allow a user to select something from a few options. There are two easy ways to do this in Gtk4.jl.","category":"page"},{"location":"manual/combobox/#[GtkDropDown](https://docs.gtk.org/gtk4/class.DropDown.html)","page":"Dropdown widgets","title":"GtkDropDown","text":"","category":"section"},{"location":"manual/combobox/","page":"Dropdown widgets","title":"Dropdown widgets","text":"A simple option that was introduced in GTK version 4 is GtkDropDown. An example is shown below.","category":"page"},{"location":"manual/combobox/","page":"Dropdown widgets","title":"Dropdown widgets","text":"using Gtk4\n\nchoices = [\"one\", \"two\", \"three\", \"four\"]\ndd = GtkDropDown(choices)\n# Let's set the active element to be \"two\", keeping in mind that the \"selected\" property uses 0 based indexing\ndd.selected = 1\n\nsignal_connect(dd, \"notify::selected\") do widget, others...\n # get the active index\n idx = dd.selected\n # get the active string\n str = Gtk4.selected_string(dd)\n println(\"Active element is \\\"$str\\\" at index $idx\")\nend\n\nwin = GtkWindow(\"DropDown Example\",400,200)\npush!(win, dd)","category":"page"},{"location":"manual/combobox/","page":"Dropdown widgets","title":"Dropdown widgets","text":"A search entry can be added using Gtk4.enable_search(dd, true). You can set which item is selected using selected_string!.","category":"page"},{"location":"manual/combobox/","page":"Dropdown widgets","title":"Dropdown widgets","text":"To change the list of options after the dropdown widget is created, you have to change its list of strings. The model holding this list can fetched using the model method and then the string list can be modified using the Julia array interface (push!, pushfirst!, empty!, etc.):","category":"page"},{"location":"manual/combobox/","page":"Dropdown widgets","title":"Dropdown widgets","text":"m = Gtk4.model(dd)\npush!(m, \"five\")","category":"page"},{"location":"manual/combobox/","page":"Dropdown widgets","title":"Dropdown widgets","text":"More complex uses of GtkDropDown are possible by using models other than GtkStringList. This may be supported in future versions of Gtk4.jl.","category":"page"},{"location":"manual/combobox/#[GtkComboBox](https://docs.gtk.org/gtk4/class.ComboBox.html)","page":"Dropdown widgets","title":"GtkComboBox","text":"","category":"section"},{"location":"manual/combobox/","page":"Dropdown widgets","title":"Dropdown widgets","text":"The older API for dropdown menu functionality is GtkComboBox. The full, generic GtkComboBox widget is powerful but harder to use and won't be covered here. The simpler GtkComboBoxText subtype allows the user to select from text options.","category":"page"},{"location":"manual/combobox/#[GtkComboBoxText](https://docs.gtk.org/gtk4/class.ComboBoxText.html)","page":"Dropdown widgets","title":"GtkComboBoxText","text":"","category":"section"},{"location":"manual/combobox/","page":"Dropdown widgets","title":"Dropdown widgets","text":"The following example shows how to fill a GtkComboBoxText with elements and listen on the changed event (this example is functionally equivalent to the example above for GtkDropDown):","category":"page"},{"location":"manual/combobox/","page":"Dropdown widgets","title":"Dropdown widgets","text":"using Gtk4\n\ncb = GtkComboBoxText()\nchoices = [\"one\", \"two\", \"three\", \"four\"]\nfor choice in choices\n push!(cb,choice)\nend\n# Let's set the active element to be \"two\"\ncb.active = 1\n\nsignal_connect(cb, \"changed\") do widget, others...\n # get the active index\n idx = cb.active\n # get the active string\n str = Gtk4.active_text(cb)\n println(\"Active element is \\\"$str\\\" at index $idx\")\nend\n\nwin = GtkWindow(\"ComboBoxText Example\",400,200)\npush!(win, cb)","category":"page"},{"location":"doc/Gtk4_types_reference/#Gtk4-Types","page":"Gtk4 Types","title":"Gtk4 Types","text":"","category":"section"},{"location":"doc/Gtk4_types_reference/#Types","page":"Gtk4 Types","title":"Types","text":"","category":"section"},{"location":"doc/Gtk4_types_reference/","page":"Gtk4 Types","title":"Gtk4 Types","text":"Modules = [Gtk4, Gtk4.GdkPixbufLib]\nOrder = [:type]\nPublic = true\nPrivate = false\nFilter = t->(t!=GtkCanvas && t!=GtkWindow)","category":"page"},{"location":"doc/Gtk4_types_reference/#Gtk4.AccessibleAutocomplete","page":"Gtk4 Types","title":"Gtk4.AccessibleAutocomplete","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.AccessibleInvalidState","page":"Gtk4 Types","title":"Gtk4.AccessibleInvalidState","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.AccessiblePlatformState","page":"Gtk4 Types","title":"Gtk4.AccessiblePlatformState","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.AccessibleProperty","page":"Gtk4 Types","title":"Gtk4.AccessibleProperty","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.AccessibleRelation","page":"Gtk4 Types","title":"Gtk4.AccessibleRelation","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.AccessibleRole","page":"Gtk4 Types","title":"Gtk4.AccessibleRole","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.AccessibleSort","page":"Gtk4 Types","title":"Gtk4.AccessibleSort","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.AccessibleState","page":"Gtk4 Types","title":"Gtk4.AccessibleState","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.AccessibleTristate","page":"Gtk4 Types","title":"Gtk4.AccessibleTristate","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.Align","page":"Gtk4 Types","title":"Gtk4.Align","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.AnchorHints","page":"Gtk4 Types","title":"Gtk4.AnchorHints","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.ApplicationInhibitFlags","page":"Gtk4 Types","title":"Gtk4.ApplicationInhibitFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.ArrowType","page":"Gtk4 Types","title":"Gtk4.ArrowType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.AssistantPageType","page":"Gtk4 Types","title":"Gtk4.AssistantPageType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.AxisFlags","page":"Gtk4 Types","title":"Gtk4.AxisFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.AxisUse","page":"Gtk4 Types","title":"Gtk4.AxisUse","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.BaselinePosition","page":"Gtk4 Types","title":"Gtk4.BaselinePosition","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.BorderStyle","page":"Gtk4 Types","title":"Gtk4.BorderStyle","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.BuilderClosureFlags","page":"Gtk4 Types","title":"Gtk4.BuilderClosureFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.BuilderError","page":"Gtk4 Types","title":"Gtk4.BuilderError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.ButtonsType","page":"Gtk4 Types","title":"Gtk4.ButtonsType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.CellRendererAccelMode","page":"Gtk4 Types","title":"Gtk4.CellRendererAccelMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.CellRendererMode","page":"Gtk4 Types","title":"Gtk4.CellRendererMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.CellRendererState","page":"Gtk4 Types","title":"Gtk4.CellRendererState","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.Collation","page":"Gtk4 Types","title":"Gtk4.Collation","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.ConstraintAttribute","page":"Gtk4 Types","title":"Gtk4.ConstraintAttribute","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.ConstraintRelation","page":"Gtk4 Types","title":"Gtk4.ConstraintRelation","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.ConstraintStrength","page":"Gtk4 Types","title":"Gtk4.ConstraintStrength","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.ConstraintVflParserError","page":"Gtk4 Types","title":"Gtk4.ConstraintVflParserError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.ContentFit","page":"Gtk4 Types","title":"Gtk4.ContentFit","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.CornerType","page":"Gtk4 Types","title":"Gtk4.CornerType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.CrossingMode","page":"Gtk4 Types","title":"Gtk4.CrossingMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.CssParserError","page":"Gtk4 Types","title":"Gtk4.CssParserError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.CssParserWarning","page":"Gtk4 Types","title":"Gtk4.CssParserWarning","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.DebugFlags","page":"Gtk4 Types","title":"Gtk4.DebugFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.DeleteType","page":"Gtk4 Types","title":"Gtk4.DeleteType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.DevicePadFeature","page":"Gtk4 Types","title":"Gtk4.DevicePadFeature","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.DeviceToolType","page":"Gtk4 Types","title":"Gtk4.DeviceToolType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.DialogError","page":"Gtk4 Types","title":"Gtk4.DialogError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.DialogFlags","page":"Gtk4 Types","title":"Gtk4.DialogFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.DirectionType","page":"Gtk4 Types","title":"Gtk4.DirectionType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.DragAction","page":"Gtk4 Types","title":"Gtk4.DragAction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.DragCancelReason","page":"Gtk4 Types","title":"Gtk4.DragCancelReason","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.EditableProperties","page":"Gtk4 Types","title":"Gtk4.EditableProperties","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.EntryIconPosition","page":"Gtk4 Types","title":"Gtk4.EntryIconPosition","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.EventControllerScrollFlags","page":"Gtk4 Types","title":"Gtk4.EventControllerScrollFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.EventSequenceState","page":"Gtk4 Types","title":"Gtk4.EventSequenceState","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.EventType","page":"Gtk4 Types","title":"Gtk4.EventType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.FileChooserAction","page":"Gtk4 Types","title":"Gtk4.FileChooserAction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.FileChooserError","page":"Gtk4 Types","title":"Gtk4.FileChooserError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.FilterChange","page":"Gtk4 Types","title":"Gtk4.FilterChange","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.FilterMatch","page":"Gtk4 Types","title":"Gtk4.FilterMatch","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.FontChooserLevel","page":"Gtk4 Types","title":"Gtk4.FontChooserLevel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.FontLevel","page":"Gtk4 Types","title":"Gtk4.FontLevel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.FrameClockPhase","page":"Gtk4 Types","title":"Gtk4.FrameClockPhase","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.FullscreenMode","page":"Gtk4 Types","title":"Gtk4.FullscreenMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GLAPI","page":"Gtk4 Types","title":"Gtk4.GLAPI","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GLError","page":"Gtk4 Types","title":"Gtk4.GLError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkAppLaunchContext","page":"Gtk4 Types","title":"Gtk4.GdkAppLaunchContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkButtonEvent","page":"Gtk4 Types","title":"Gtk4.GdkButtonEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkCairoContext","page":"Gtk4 Types","title":"Gtk4.GdkCairoContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkClipboard","page":"Gtk4 Types","title":"Gtk4.GdkClipboard","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkContentDeserializer","page":"Gtk4 Types","title":"Gtk4.GdkContentDeserializer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkContentFormats","page":"Gtk4 Types","title":"Gtk4.GdkContentFormats","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkContentFormatsBuilder","page":"Gtk4 Types","title":"Gtk4.GdkContentFormatsBuilder","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkContentProvider","page":"Gtk4 Types","title":"Gtk4.GdkContentProvider","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkContentSerializer","page":"Gtk4 Types","title":"Gtk4.GdkContentSerializer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkCrossingEvent","page":"Gtk4 Types","title":"Gtk4.GdkCrossingEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkCursor","page":"Gtk4 Types","title":"Gtk4.GdkCursor","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkDNDEvent","page":"Gtk4 Types","title":"Gtk4.GdkDNDEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkDeleteEvent","page":"Gtk4 Types","title":"Gtk4.GdkDeleteEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkDevice","page":"Gtk4 Types","title":"Gtk4.GdkDevice","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkDeviceTool","page":"Gtk4 Types","title":"Gtk4.GdkDeviceTool","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkDisplay","page":"Gtk4 Types","title":"Gtk4.GdkDisplay","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkDisplay-Tuple{}","page":"Gtk4 Types","title":"Gtk4.GdkDisplay","text":"GdkDisplay()\n\nGet the default GdkDisplay.\n\nRelated GDK function: gdk_display_get_default()\n\n\n\n\n\n","category":"method"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkDisplayManager","page":"Gtk4 Types","title":"Gtk4.GdkDisplayManager","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkDrag","page":"Gtk4 Types","title":"Gtk4.GdkDrag","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkDragSurfaceSize","page":"Gtk4 Types","title":"Gtk4.GdkDragSurfaceSize","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkDrawContext","page":"Gtk4 Types","title":"Gtk4.GdkDrawContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkDrop","page":"Gtk4 Types","title":"Gtk4.GdkDrop","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkEvent","page":"Gtk4 Types","title":"Gtk4.GdkEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkEventSequence","page":"Gtk4 Types","title":"Gtk4.GdkEventSequence","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkFileList","page":"Gtk4 Types","title":"Gtk4.GdkFileList","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkFocusEvent","page":"Gtk4 Types","title":"Gtk4.GdkFocusEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkFrameClock","page":"Gtk4 Types","title":"Gtk4.GdkFrameClock","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkFrameTimings","page":"Gtk4 Types","title":"Gtk4.GdkFrameTimings","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkGLContext","page":"Gtk4 Types","title":"Gtk4.GdkGLContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkGLTexture","page":"Gtk4 Types","title":"Gtk4.GdkGLTexture","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkGLTextureBuilder","page":"Gtk4 Types","title":"Gtk4.GdkGLTextureBuilder","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkGrabBrokenEvent","page":"Gtk4 Types","title":"Gtk4.GdkGrabBrokenEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkKeyEvent","page":"Gtk4 Types","title":"Gtk4.GdkKeyEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkKeymapKey","page":"Gtk4 Types","title":"Gtk4.GdkKeymapKey","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkMemoryTexture","page":"Gtk4 Types","title":"Gtk4.GdkMemoryTexture","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkMemoryTexture-2","page":"Gtk4 Types","title":"Gtk4.GdkMemoryTexture","text":"GdkMemoryTexture(img::Array, tp = true)\n\nCreates a GdkMemoryTexture, copying an image array. If tp is set to true, the image will be transposed before copying so that the texture's orientation when displayed by GTK widgets like GtkPicture will match how the image is displayed in Julia apps like ImageShow.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkMonitor","page":"Gtk4 Types","title":"Gtk4.GdkMonitor","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkMotionEvent","page":"Gtk4 Types","title":"Gtk4.GdkMotionEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkPadEvent","page":"Gtk4 Types","title":"Gtk4.GdkPadEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkPopupLayout","page":"Gtk4 Types","title":"Gtk4.GdkPopupLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkProximityEvent","page":"Gtk4 Types","title":"Gtk4.GdkProximityEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkRGBA","page":"Gtk4 Types","title":"Gtk4.GdkRGBA","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkRectangle","page":"Gtk4 Types","title":"Gtk4.GdkRectangle","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkScrollEvent","page":"Gtk4 Types","title":"Gtk4.GdkScrollEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkSeat","page":"Gtk4 Types","title":"Gtk4.GdkSeat","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkSnapshot","page":"Gtk4 Types","title":"Gtk4.GdkSnapshot","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkSurface","page":"Gtk4 Types","title":"Gtk4.GdkSurface","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkTexture","page":"Gtk4 Types","title":"Gtk4.GdkTexture","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkTimeCoord","page":"Gtk4 Types","title":"Gtk4.GdkTimeCoord","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkToplevelLayout","page":"Gtk4 Types","title":"Gtk4.GdkToplevelLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkTouchEvent","page":"Gtk4 Types","title":"Gtk4.GdkTouchEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkTouchpadEvent","page":"Gtk4 Types","title":"Gtk4.GdkTouchpadEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkVulkanContext","page":"Gtk4 Types","title":"Gtk4.GdkVulkanContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.Gravity","page":"Gtk4 Types","title":"Gtk4.Gravity","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskBlendNode","page":"Gtk4 Types","title":"Gtk4.GskBlendNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskBlurNode","page":"Gtk4 Types","title":"Gtk4.GskBlurNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskBorderNode","page":"Gtk4 Types","title":"Gtk4.GskBorderNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskCairoNode","page":"Gtk4 Types","title":"Gtk4.GskCairoNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskCairoRenderer","page":"Gtk4 Types","title":"Gtk4.GskCairoRenderer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskClipNode","page":"Gtk4 Types","title":"Gtk4.GskClipNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskColorMatrixNode","page":"Gtk4 Types","title":"Gtk4.GskColorMatrixNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskColorNode","page":"Gtk4 Types","title":"Gtk4.GskColorNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskColorStop","page":"Gtk4 Types","title":"Gtk4.GskColorStop","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskConicGradientNode","page":"Gtk4 Types","title":"Gtk4.GskConicGradientNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskContainerNode","page":"Gtk4 Types","title":"Gtk4.GskContainerNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskCrossFadeNode","page":"Gtk4 Types","title":"Gtk4.GskCrossFadeNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskDebugNode","page":"Gtk4 Types","title":"Gtk4.GskDebugNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskGLShader","page":"Gtk4 Types","title":"Gtk4.GskGLShader","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskGLShaderNode","page":"Gtk4 Types","title":"Gtk4.GskGLShaderNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskInsetShadowNode","page":"Gtk4 Types","title":"Gtk4.GskInsetShadowNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskLinearGradientNode","page":"Gtk4 Types","title":"Gtk4.GskLinearGradientNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskMaskNode","page":"Gtk4 Types","title":"Gtk4.GskMaskNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskOpacityNode","page":"Gtk4 Types","title":"Gtk4.GskOpacityNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskOutsetShadowNode","page":"Gtk4 Types","title":"Gtk4.GskOutsetShadowNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskParseLocation","page":"Gtk4 Types","title":"Gtk4.GskParseLocation","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskRadialGradientNode","page":"Gtk4 Types","title":"Gtk4.GskRadialGradientNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskRenderNode","page":"Gtk4 Types","title":"Gtk4.GskRenderNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskRenderer","page":"Gtk4 Types","title":"Gtk4.GskRenderer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskRepeatNode","page":"Gtk4 Types","title":"Gtk4.GskRepeatNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskRepeatingLinearGradientNode","page":"Gtk4 Types","title":"Gtk4.GskRepeatingLinearGradientNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskRepeatingRadialGradientNode","page":"Gtk4 Types","title":"Gtk4.GskRepeatingRadialGradientNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskRoundedClipNode","page":"Gtk4 Types","title":"Gtk4.GskRoundedClipNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskRoundedRect","page":"Gtk4 Types","title":"Gtk4.GskRoundedRect","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskShadow","page":"Gtk4 Types","title":"Gtk4.GskShadow","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskShadowNode","page":"Gtk4 Types","title":"Gtk4.GskShadowNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskTextNode","page":"Gtk4 Types","title":"Gtk4.GskTextNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskTextureNode","page":"Gtk4 Types","title":"Gtk4.GskTextureNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskTextureScaleNode","page":"Gtk4 Types","title":"Gtk4.GskTextureScaleNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskTransform","page":"Gtk4 Types","title":"Gtk4.GskTransform","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GskTransformNode","page":"Gtk4 Types","title":"Gtk4.GskTransformNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkATContext","page":"Gtk4 Types","title":"Gtk4.GtkATContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkAboutDialog","page":"Gtk4 Types","title":"Gtk4.GtkAboutDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkActionBar","page":"Gtk4 Types","title":"Gtk4.GtkActionBar","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkActivateAction","page":"Gtk4 Types","title":"Gtk4.GtkActivateAction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkAdjustment","page":"Gtk4 Types","title":"Gtk4.GtkAdjustment","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkAlertDialog","page":"Gtk4 Types","title":"Gtk4.GtkAlertDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkAlternativeTrigger","page":"Gtk4 Types","title":"Gtk4.GtkAlternativeTrigger","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkAnyFilter","page":"Gtk4 Types","title":"Gtk4.GtkAnyFilter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkAppChooserButton","page":"Gtk4 Types","title":"Gtk4.GtkAppChooserButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkAppChooserDialog","page":"Gtk4 Types","title":"Gtk4.GtkAppChooserDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkAppChooserWidget","page":"Gtk4 Types","title":"Gtk4.GtkAppChooserWidget","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkApplication","page":"Gtk4 Types","title":"Gtk4.GtkApplication","text":"GtkApplication(id = nothing, flags = GLib.ApplicationFlags_FLAGS_NONE)\n\nCreate a GtkApplication with DBus id id and flags.\n\nRelated GTK function: gtk_application_new()\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkApplication-2","page":"Gtk4 Types","title":"Gtk4.GtkApplication","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkApplicationWindow","page":"Gtk4 Types","title":"Gtk4.GtkApplicationWindow","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkApplicationWindow-Tuple{GtkApplication, AbstractString}","page":"Gtk4 Types","title":"Gtk4.GtkApplicationWindow","text":"GtkApplicationWindow(app::GtkApplication, title::AbstractString; kwargs...)\n\nCreate an empty GtkApplicationWindow for a GtkApplication app and a title. Keyword arguments can be used to set GObject properties.\n\n\n\n\n\n","category":"method"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkAspectFrame","page":"Gtk4 Types","title":"Gtk4.GtkAspectFrame","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkAssistant","page":"Gtk4 Types","title":"Gtk4.GtkAssistant","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkAssistantPage","page":"Gtk4 Types","title":"Gtk4.GtkAssistantPage","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkBinLayout","page":"Gtk4 Types","title":"Gtk4.GtkBinLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkBitset","page":"Gtk4 Types","title":"Gtk4.GtkBitset","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkBitsetIter","page":"Gtk4 Types","title":"Gtk4.GtkBitsetIter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkBookmarkList","page":"Gtk4 Types","title":"Gtk4.GtkBookmarkList","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkBoolFilter","page":"Gtk4 Types","title":"Gtk4.GtkBoolFilter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkBorder","page":"Gtk4 Types","title":"Gtk4.GtkBorder","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkBox","page":"Gtk4 Types","title":"Gtk4.GtkBox","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkBox-2","page":"Gtk4 Types","title":"Gtk4.GtkBox","text":"GtkBox(orientation::Symbol, spacing::Integer=0; kwargs...)\n\nCreate and return a GtkBox widget. The orientation argument can be :h for horizontal, or :v for vertical. The spacing argument controls the spacing between child widgets in pixels. Keyword arguments allow you to set GObject properties.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkBoxLayout","page":"Gtk4 Types","title":"Gtk4.GtkBoxLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkBuildableParseContext","page":"Gtk4 Types","title":"Gtk4.GtkBuildableParseContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkBuildableParser","page":"Gtk4 Types","title":"Gtk4.GtkBuildableParser","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkBuilder","page":"Gtk4 Types","title":"Gtk4.GtkBuilder","text":"GtkBuilder(; kwargs...)\nGtkBuilder(filename::AbstractString; kwargs...)\nGtkBuilder(string::AbstractString, _length::Integer; kwargs...)\n\nCreate a GtkBuilder object. If filename is given (the constructor with a single string argument), XML describing the user interface will be read from a file. If string and length are given (the constructor with a string and an integer), XML will be read from a string of a certain length. If length is -1 the full string will be used.\n\nSee the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkBuilderCScope","page":"Gtk4 Types","title":"Gtk4.GtkBuilderCScope","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkBuilderListItemFactory","page":"Gtk4 Types","title":"Gtk4.GtkBuilderListItemFactory","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkButton","page":"Gtk4 Types","title":"Gtk4.GtkButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkButton-Tuple{GtkWidget}","page":"Gtk4 Types","title":"Gtk4.GtkButton","text":"GtkButton(w::GtkWidget)\n\nCreate a GtkButton and add a widget w as its child.\n\n\n\n\n\n","category":"method"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkButton-Tuple{Symbol, AbstractString}","page":"Gtk4 Types","title":"Gtk4.GtkButton","text":"GtkButton(s::Symbol, str::AbstractString)\n\nCreate and return a GtkButton widget.\n\nIf s is :label, create a button with a string label.\n\nIf s is :mnemonic, create a button with a string label, where the first letter preceded by an underscore character defines a mnemonic. Pressing Alt and that letter activates the button.\n\nIf s is :icon_name, create a button with an icon from the current icon theme.\n\nRelated GTK functions: gtk_button_new_with_label(), gtk_button_new_with_mnemonic(), gtk_button_new_from_icon_name()\n\n\n\n\n\n","category":"method"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCalendar","page":"Gtk4 Types","title":"Gtk4.GtkCalendar","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCallbackAction","page":"Gtk4 Types","title":"Gtk4.GtkCallbackAction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCellArea","page":"Gtk4 Types","title":"Gtk4.GtkCellArea","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCellAreaBox","page":"Gtk4 Types","title":"Gtk4.GtkCellAreaBox","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCellAreaContext","page":"Gtk4 Types","title":"Gtk4.GtkCellAreaContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCellRenderer","page":"Gtk4 Types","title":"Gtk4.GtkCellRenderer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCellRendererAccel","page":"Gtk4 Types","title":"Gtk4.GtkCellRendererAccel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCellRendererCombo","page":"Gtk4 Types","title":"Gtk4.GtkCellRendererCombo","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCellRendererPixbuf","page":"Gtk4 Types","title":"Gtk4.GtkCellRendererPixbuf","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCellRendererProgress","page":"Gtk4 Types","title":"Gtk4.GtkCellRendererProgress","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCellRendererSpin","page":"Gtk4 Types","title":"Gtk4.GtkCellRendererSpin","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCellRendererSpinner","page":"Gtk4 Types","title":"Gtk4.GtkCellRendererSpinner","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCellRendererText","page":"Gtk4 Types","title":"Gtk4.GtkCellRendererText","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCellRendererToggle","page":"Gtk4 Types","title":"Gtk4.GtkCellRendererToggle","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCellView","page":"Gtk4 Types","title":"Gtk4.GtkCellView","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCenterBox","page":"Gtk4 Types","title":"Gtk4.GtkCenterBox","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCenterBox-Tuple{Symbol}","page":"Gtk4 Types","title":"Gtk4.GtkCenterBox","text":"GtkCenterBox(orientation::Symbol; kwargs...)\n\nCreate and return a GtkCenterBox widget. The orientation argument can be :h for horizontal, or :v for vertical. Keyword arguments allow you to set GObject properties.\n\n\n\n\n\n","category":"method"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCenterLayout","page":"Gtk4 Types","title":"Gtk4.GtkCenterLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCheckButton","page":"Gtk4 Types","title":"Gtk4.GtkCheckButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkColorButton","page":"Gtk4 Types","title":"Gtk4.GtkColorButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkColorChooserDialog","page":"Gtk4 Types","title":"Gtk4.GtkColorChooserDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkColorChooserWidget","page":"Gtk4 Types","title":"Gtk4.GtkColorChooserWidget","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkColorDialog","page":"Gtk4 Types","title":"Gtk4.GtkColorDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkColorDialogButton","page":"Gtk4 Types","title":"Gtk4.GtkColorDialogButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkColumnView","page":"Gtk4 Types","title":"Gtk4.GtkColumnView","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkColumnViewCell","page":"Gtk4 Types","title":"Gtk4.GtkColumnViewCell","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkColumnViewColumn","page":"Gtk4 Types","title":"Gtk4.GtkColumnViewColumn","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkColumnViewRow","page":"Gtk4 Types","title":"Gtk4.GtkColumnViewRow","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkColumnViewSorter","page":"Gtk4 Types","title":"Gtk4.GtkColumnViewSorter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkComboBox","page":"Gtk4 Types","title":"Gtk4.GtkComboBox","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkComboBoxText","page":"Gtk4 Types","title":"Gtk4.GtkComboBoxText","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkConstantExpression","page":"Gtk4 Types","title":"Gtk4.GtkConstantExpression","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkConstraint","page":"Gtk4 Types","title":"Gtk4.GtkConstraint","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkConstraintGuide","page":"Gtk4 Types","title":"Gtk4.GtkConstraintGuide","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkConstraintLayout","page":"Gtk4 Types","title":"Gtk4.GtkConstraintLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkConstraintLayoutChild","page":"Gtk4 Types","title":"Gtk4.GtkConstraintLayoutChild","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCssProvider","page":"Gtk4 Types","title":"Gtk4.GtkCssProvider","text":"GtkCssProvider(data, filename = nothing)\n\nCreate a GtkCssProvider object using CSS from a string data. If data is set to nothing, CSS is instead loaded from a file filename. If both arguments are nothing, an empty GtkCssProvider is returned.\n\nRelated GTK functions: gtk_css_provider_load_from_path(), gtk_css_provider_load_from_data()\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCssProvider-2","page":"Gtk4 Types","title":"Gtk4.GtkCssProvider","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCssSection","page":"Gtk4 Types","title":"Gtk4.GtkCssSection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCustomFilter","page":"Gtk4 Types","title":"Gtk4.GtkCustomFilter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCustomLayout","page":"Gtk4 Types","title":"Gtk4.GtkCustomLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkCustomSorter","page":"Gtk4 Types","title":"Gtk4.GtkCustomSorter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkDialog","page":"Gtk4 Types","title":"Gtk4.GtkDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkDirectoryList","page":"Gtk4 Types","title":"Gtk4.GtkDirectoryList","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkDragIcon","page":"Gtk4 Types","title":"Gtk4.GtkDragIcon","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkDragSource","page":"Gtk4 Types","title":"Gtk4.GtkDragSource","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkDrawingArea","page":"Gtk4 Types","title":"Gtk4.GtkDrawingArea","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkDropControllerMotion","page":"Gtk4 Types","title":"Gtk4.GtkDropControllerMotion","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkDropDown","page":"Gtk4 Types","title":"Gtk4.GtkDropDown","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkDropDown-Tuple{AbstractArray}","page":"Gtk4 Types","title":"Gtk4.GtkDropDown","text":"GtkDropDown(a::AbstractArray; kwargs...)\n\nCreate a dropdown widget with a GtkStringList as its model. The model will be populated with the elements of a converted to strings. Keyword arguments set GObject properties.\n\n\n\n\n\n","category":"method"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkDropDown-Tuple{}","page":"Gtk4 Types","title":"Gtk4.GtkDropDown","text":"GtkDropDown(; kwargs...)\n\nCreate a dropdown widget with no model (and thus no options to selected). A model can be added using model. Keyword arguments set GObject properties.\n\n\n\n\n\n","category":"method"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkDropTarget","page":"Gtk4 Types","title":"Gtk4.GtkDropTarget","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkDropTargetAsync","page":"Gtk4 Types","title":"Gtk4.GtkDropTargetAsync","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkEditableLabel","page":"Gtk4 Types","title":"Gtk4.GtkEditableLabel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkEmojiChooser","page":"Gtk4 Types","title":"Gtk4.GtkEmojiChooser","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkEntry","page":"Gtk4 Types","title":"Gtk4.GtkEntry","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkEntryBuffer","page":"Gtk4 Types","title":"Gtk4.GtkEntryBuffer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkEntryCompletion","page":"Gtk4 Types","title":"Gtk4.GtkEntryCompletion","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkEventController","page":"Gtk4 Types","title":"Gtk4.GtkEventController","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkEventControllerFocus","page":"Gtk4 Types","title":"Gtk4.GtkEventControllerFocus","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkEventControllerKey","page":"Gtk4 Types","title":"Gtk4.GtkEventControllerKey","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkEventControllerLegacy","page":"Gtk4 Types","title":"Gtk4.GtkEventControllerLegacy","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkEventControllerMotion","page":"Gtk4 Types","title":"Gtk4.GtkEventControllerMotion","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkEventControllerScroll","page":"Gtk4 Types","title":"Gtk4.GtkEventControllerScroll","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkEveryFilter","page":"Gtk4 Types","title":"Gtk4.GtkEveryFilter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkExpander","page":"Gtk4 Types","title":"Gtk4.GtkExpander","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkExpression","page":"Gtk4 Types","title":"Gtk4.GtkExpression","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkExpressionWatch","page":"Gtk4 Types","title":"Gtk4.GtkExpressionWatch","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkFileChooserDialog","page":"Gtk4 Types","title":"Gtk4.GtkFileChooserDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkFileChooserNative","page":"Gtk4 Types","title":"Gtk4.GtkFileChooserNative","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkFileChooserWidget","page":"Gtk4 Types","title":"Gtk4.GtkFileChooserWidget","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkFileDialog","page":"Gtk4 Types","title":"Gtk4.GtkFileDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkFileDialog-Tuple{}","page":"Gtk4 Types","title":"Gtk4.GtkFileDialog","text":"GtkFileDialog(; kwargs...)\n\nSelected keyword arguments\n\naccept_label: the text to show on the dialog's accept button\ndefault_filter: the GtkFileFilter initially active in the file dialog\nfilters: a GListModel of file filters\ninitial_name: the filename or directory that is initially selected in the file chooser dialog\ntitle: the title of the dialog\nmodal: whether the dialog is modal\n\n\n\n\n\n","category":"method"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkFileFilter","page":"Gtk4 Types","title":"Gtk4.GtkFileFilter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkFileLauncher","page":"Gtk4 Types","title":"Gtk4.GtkFileLauncher","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkFilter","page":"Gtk4 Types","title":"Gtk4.GtkFilter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkFilterListModel","page":"Gtk4 Types","title":"Gtk4.GtkFilterListModel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkFixed","page":"Gtk4 Types","title":"Gtk4.GtkFixed","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkFixedLayout","page":"Gtk4 Types","title":"Gtk4.GtkFixedLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkFixedLayoutChild","page":"Gtk4 Types","title":"Gtk4.GtkFixedLayoutChild","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkFlattenListModel","page":"Gtk4 Types","title":"Gtk4.GtkFlattenListModel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkFlowBox","page":"Gtk4 Types","title":"Gtk4.GtkFlowBox","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkFlowBoxChild","page":"Gtk4 Types","title":"Gtk4.GtkFlowBoxChild","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkFontButton","page":"Gtk4 Types","title":"Gtk4.GtkFontButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkFontChooserDialog","page":"Gtk4 Types","title":"Gtk4.GtkFontChooserDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkFontChooserWidget","page":"Gtk4 Types","title":"Gtk4.GtkFontChooserWidget","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkFontDialog","page":"Gtk4 Types","title":"Gtk4.GtkFontDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkFontDialogButton","page":"Gtk4 Types","title":"Gtk4.GtkFontDialogButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkFrame","page":"Gtk4 Types","title":"Gtk4.GtkFrame","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkFrame-2","page":"Gtk4 Types","title":"Gtk4.GtkFrame","text":"GtkFrame(w::GtkWidget, label=nothing; kwargs...)\n\nCreate a GtkFrame with an optional string label and add w as its child. Keyword arguments allow you to set GObject properties.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkFrame-Tuple{}","page":"Gtk4 Types","title":"Gtk4.GtkFrame","text":"GtkFrame(label=nothing; kwargs...)\n\nCreate a GtkFrame, a layout widget that can hold a single child widget, with an optional string label. Keyword arguments allow you to set GObject properties.\n\n\n\n\n\n","category":"method"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkGLArea","page":"Gtk4 Types","title":"Gtk4.GtkGLArea","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkGesture","page":"Gtk4 Types","title":"Gtk4.GtkGesture","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkGestureClick","page":"Gtk4 Types","title":"Gtk4.GtkGestureClick","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkGestureDrag","page":"Gtk4 Types","title":"Gtk4.GtkGestureDrag","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkGestureLongPress","page":"Gtk4 Types","title":"Gtk4.GtkGestureLongPress","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkGesturePan","page":"Gtk4 Types","title":"Gtk4.GtkGesturePan","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkGestureRotate","page":"Gtk4 Types","title":"Gtk4.GtkGestureRotate","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkGestureSingle","page":"Gtk4 Types","title":"Gtk4.GtkGestureSingle","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkGestureStylus","page":"Gtk4 Types","title":"Gtk4.GtkGestureStylus","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkGestureSwipe","page":"Gtk4 Types","title":"Gtk4.GtkGestureSwipe","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkGestureZoom","page":"Gtk4 Types","title":"Gtk4.GtkGestureZoom","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkGrid","page":"Gtk4 Types","title":"Gtk4.GtkGrid","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkGridLayout","page":"Gtk4 Types","title":"Gtk4.GtkGridLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkGridLayoutChild","page":"Gtk4 Types","title":"Gtk4.GtkGridLayoutChild","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkGridView","page":"Gtk4 Types","title":"Gtk4.GtkGridView","text":"GtkGridView(model=nothing; kwargs...)\n\nCreate a GtkGridView widget, optionally with a model. Keyword arguments set GObject properties.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkGridView-2","page":"Gtk4 Types","title":"Gtk4.GtkGridView","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkHeaderBar","page":"Gtk4 Types","title":"Gtk4.GtkHeaderBar","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkIMContext","page":"Gtk4 Types","title":"Gtk4.GtkIMContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkIMContextSimple","page":"Gtk4 Types","title":"Gtk4.GtkIMContextSimple","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkIMMulticontext","page":"Gtk4 Types","title":"Gtk4.GtkIMMulticontext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkIconPaintable","page":"Gtk4 Types","title":"Gtk4.GtkIconPaintable","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkIconTheme","page":"Gtk4 Types","title":"Gtk4.GtkIconTheme","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkIconTheme-Tuple{GdkDisplay}","page":"Gtk4 Types","title":"Gtk4.GtkIconTheme","text":"GtkIconTheme(d::GdkDisplay)\n\nGet the icon theme for a GdkDisplay.\n\nRelated GTK function: gtk_icon_theme_get_for_display()\n\n\n\n\n\n","category":"method"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkIconView","page":"Gtk4 Types","title":"Gtk4.GtkIconView","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkImage","page":"Gtk4 Types","title":"Gtk4.GtkImage","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkInfoBar","page":"Gtk4 Types","title":"Gtk4.GtkInfoBar","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkInscription","page":"Gtk4 Types","title":"Gtk4.GtkInscription","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkKeyvalTrigger","page":"Gtk4 Types","title":"Gtk4.GtkKeyvalTrigger","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkLabel","page":"Gtk4 Types","title":"Gtk4.GtkLabel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkLayoutChild","page":"Gtk4 Types","title":"Gtk4.GtkLayoutChild","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkLayoutManager","page":"Gtk4 Types","title":"Gtk4.GtkLayoutManager","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkLevelBar","page":"Gtk4 Types","title":"Gtk4.GtkLevelBar","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkLinkButton","page":"Gtk4 Types","title":"Gtk4.GtkLinkButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkListBase","page":"Gtk4 Types","title":"Gtk4.GtkListBase","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkListBox","page":"Gtk4 Types","title":"Gtk4.GtkListBox","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkListBoxRow","page":"Gtk4 Types","title":"Gtk4.GtkListBoxRow","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkListHeader","page":"Gtk4 Types","title":"Gtk4.GtkListHeader","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkListItem","page":"Gtk4 Types","title":"Gtk4.GtkListItem","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkListItemFactory","page":"Gtk4 Types","title":"Gtk4.GtkListItemFactory","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkListStore","page":"Gtk4 Types","title":"Gtk4.GtkListStore","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkListView","page":"Gtk4 Types","title":"Gtk4.GtkListView","text":"GtkListView(model=nothing; kwargs...)\n\nCreate a GtkListView widget, optionally with a model. Keyword arguments set GObject properties.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkListView-2","page":"Gtk4 Types","title":"Gtk4.GtkListView","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkLockButton","page":"Gtk4 Types","title":"Gtk4.GtkLockButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkMapListModel","page":"Gtk4 Types","title":"Gtk4.GtkMapListModel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkMediaControls","page":"Gtk4 Types","title":"Gtk4.GtkMediaControls","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkMediaFile","page":"Gtk4 Types","title":"Gtk4.GtkMediaFile","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkMediaStream","page":"Gtk4 Types","title":"Gtk4.GtkMediaStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkMenuButton","page":"Gtk4 Types","title":"Gtk4.GtkMenuButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkMessageDialog","page":"Gtk4 Types","title":"Gtk4.GtkMessageDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkMnemonicAction","page":"Gtk4 Types","title":"Gtk4.GtkMnemonicAction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkMnemonicTrigger","page":"Gtk4 Types","title":"Gtk4.GtkMnemonicTrigger","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkMountOperation","page":"Gtk4 Types","title":"Gtk4.GtkMountOperation","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkMultiFilter","page":"Gtk4 Types","title":"Gtk4.GtkMultiFilter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkMultiSelection","page":"Gtk4 Types","title":"Gtk4.GtkMultiSelection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkMultiSorter","page":"Gtk4 Types","title":"Gtk4.GtkMultiSorter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkNamedAction","page":"Gtk4 Types","title":"Gtk4.GtkNamedAction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkNativeDialog","page":"Gtk4 Types","title":"Gtk4.GtkNativeDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkNeverTrigger","page":"Gtk4 Types","title":"Gtk4.GtkNeverTrigger","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkNoSelection","page":"Gtk4 Types","title":"Gtk4.GtkNoSelection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkNotebook","page":"Gtk4 Types","title":"Gtk4.GtkNotebook","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkNotebookPage","page":"Gtk4 Types","title":"Gtk4.GtkNotebookPage","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkNothingAction","page":"Gtk4 Types","title":"Gtk4.GtkNothingAction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkNumericSorter","page":"Gtk4 Types","title":"Gtk4.GtkNumericSorter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkObjectExpression","page":"Gtk4 Types","title":"Gtk4.GtkObjectExpression","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkOverlay","page":"Gtk4 Types","title":"Gtk4.GtkOverlay","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkOverlay-Tuple{GtkWidget}","page":"Gtk4 Types","title":"Gtk4.GtkOverlay","text":"GtkOverlay(w=nothing; kwargs...)\n\nCreate a GtkOverlay, a layout widget that holds one main child and other child \"overlay\" widgets that are drawn on top of the main child. The main child can be set using the argument w.\n\n\n\n\n\n","category":"method"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkOverlayLayout","page":"Gtk4 Types","title":"Gtk4.GtkOverlayLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkOverlayLayoutChild","page":"Gtk4 Types","title":"Gtk4.GtkOverlayLayoutChild","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkPadActionEntry","page":"Gtk4 Types","title":"Gtk4.GtkPadActionEntry","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkPadController","page":"Gtk4 Types","title":"Gtk4.GtkPadController","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkPageSetup","page":"Gtk4 Types","title":"Gtk4.GtkPageSetup","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkPaned","page":"Gtk4 Types","title":"Gtk4.GtkPaned","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkPaned-Tuple{Symbol}","page":"Gtk4 Types","title":"Gtk4.GtkPaned","text":"GtkPaned(orientation::Symbol; kwargs...)\n\nCreate and return a GtkPaned widget. The orientation argument can be :h for horizontal, or :v for vertical. Keyword arguments allow you to set GObject properties.\n\n\n\n\n\n","category":"method"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkPaperSize","page":"Gtk4 Types","title":"Gtk4.GtkPaperSize","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkPasswordEntry","page":"Gtk4 Types","title":"Gtk4.GtkPasswordEntry","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkPasswordEntryBuffer","page":"Gtk4 Types","title":"Gtk4.GtkPasswordEntryBuffer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkPicture","page":"Gtk4 Types","title":"Gtk4.GtkPicture","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkPopover","page":"Gtk4 Types","title":"Gtk4.GtkPopover","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkPopoverMenu","page":"Gtk4 Types","title":"Gtk4.GtkPopoverMenu","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkPopoverMenuBar","page":"Gtk4 Types","title":"Gtk4.GtkPopoverMenuBar","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkPrintContext","page":"Gtk4 Types","title":"Gtk4.GtkPrintContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkPrintJob","page":"Gtk4 Types","title":"Gtk4.GtkPrintJob","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkPrintOperation","page":"Gtk4 Types","title":"Gtk4.GtkPrintOperation","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkPrintSettings","page":"Gtk4 Types","title":"Gtk4.GtkPrintSettings","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkPrinter","page":"Gtk4 Types","title":"Gtk4.GtkPrinter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkProgressBar","page":"Gtk4 Types","title":"Gtk4.GtkProgressBar","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkPropertyExpression","page":"Gtk4 Types","title":"Gtk4.GtkPropertyExpression","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkRange","page":"Gtk4 Types","title":"Gtk4.GtkRange","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkRecentData","page":"Gtk4 Types","title":"Gtk4.GtkRecentData","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkRecentInfo","page":"Gtk4 Types","title":"Gtk4.GtkRecentInfo","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkRecentManager","page":"Gtk4 Types","title":"Gtk4.GtkRecentManager","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkRequestedSize","page":"Gtk4 Types","title":"Gtk4.GtkRequestedSize","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkRequisition","page":"Gtk4 Types","title":"Gtk4.GtkRequisition","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkRevealer","page":"Gtk4 Types","title":"Gtk4.GtkRevealer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkScale","page":"Gtk4 Types","title":"Gtk4.GtkScale","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkScale-Tuple{Symbol}","page":"Gtk4 Types","title":"Gtk4.GtkScale","text":"GtkScale(orientation, [scale::AbstractRange]; kwargs...)\n\nCreate a scale widget with horizontal (:h) or vertical (:v) orientation and an optional range. Keyword arguments can be used to set properties.\n\n\n\n\n\n","category":"method"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkScaleButton","page":"Gtk4 Types","title":"Gtk4.GtkScaleButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkScrollInfo","page":"Gtk4 Types","title":"Gtk4.GtkScrollInfo","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkScrollbar","page":"Gtk4 Types","title":"Gtk4.GtkScrollbar","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkScrolledWindow","page":"Gtk4 Types","title":"Gtk4.GtkScrolledWindow","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkSearchBar","page":"Gtk4 Types","title":"Gtk4.GtkSearchBar","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkSearchEntry","page":"Gtk4 Types","title":"Gtk4.GtkSearchEntry","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkSelectionFilterModel","page":"Gtk4 Types","title":"Gtk4.GtkSelectionFilterModel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkSeparator","page":"Gtk4 Types","title":"Gtk4.GtkSeparator","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkSettings","page":"Gtk4 Types","title":"Gtk4.GtkSettings","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkShortcut","page":"Gtk4 Types","title":"Gtk4.GtkShortcut","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkShortcutAction","page":"Gtk4 Types","title":"Gtk4.GtkShortcutAction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkShortcutController","page":"Gtk4 Types","title":"Gtk4.GtkShortcutController","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkShortcutLabel","page":"Gtk4 Types","title":"Gtk4.GtkShortcutLabel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkShortcutTrigger","page":"Gtk4 Types","title":"Gtk4.GtkShortcutTrigger","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkShortcutsGroup","page":"Gtk4 Types","title":"Gtk4.GtkShortcutsGroup","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkShortcutsSection","page":"Gtk4 Types","title":"Gtk4.GtkShortcutsSection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkShortcutsShortcut","page":"Gtk4 Types","title":"Gtk4.GtkShortcutsShortcut","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkShortcutsWindow","page":"Gtk4 Types","title":"Gtk4.GtkShortcutsWindow","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkSignalAction","page":"Gtk4 Types","title":"Gtk4.GtkSignalAction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkSignalListItemFactory","page":"Gtk4 Types","title":"Gtk4.GtkSignalListItemFactory","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkSignalListItemFactory-Tuple{Function, Function}","page":"Gtk4 Types","title":"Gtk4.GtkSignalListItemFactory","text":"GtkSignalListItemFactory(setup_cb, bind_cb)\n\nCreate a GtkSignalListItemFactory and immediately connect \"setup\" and \"bind\" callback functions setup_cb and bind_cb, respectively.\n\n\n\n\n\n","category":"method"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkSingleSelection","page":"Gtk4 Types","title":"Gtk4.GtkSingleSelection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkSizeGroup","page":"Gtk4 Types","title":"Gtk4.GtkSizeGroup","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkSliceListModel","page":"Gtk4 Types","title":"Gtk4.GtkSliceListModel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkSnapshot","page":"Gtk4 Types","title":"Gtk4.GtkSnapshot","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkSortListModel","page":"Gtk4 Types","title":"Gtk4.GtkSortListModel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkSorter","page":"Gtk4 Types","title":"Gtk4.GtkSorter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkSpinButton","page":"Gtk4 Types","title":"Gtk4.GtkSpinButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkSpinner","page":"Gtk4 Types","title":"Gtk4.GtkSpinner","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkStack","page":"Gtk4 Types","title":"Gtk4.GtkStack","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkStackPage","page":"Gtk4 Types","title":"Gtk4.GtkStackPage","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkStackSidebar","page":"Gtk4 Types","title":"Gtk4.GtkStackSidebar","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkStackSwitcher","page":"Gtk4 Types","title":"Gtk4.GtkStackSwitcher","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkStatusbar","page":"Gtk4 Types","title":"Gtk4.GtkStatusbar","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkStringFilter","page":"Gtk4 Types","title":"Gtk4.GtkStringFilter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkStringList","page":"Gtk4 Types","title":"Gtk4.GtkStringList","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkStringList-Tuple{}","page":"Gtk4 Types","title":"Gtk4.GtkStringList","text":"GtkStringList()\n\nCreate an empty GtkStringList, which implements the GListModel interface and holds an array of strings.\n\n\n\n\n\n","category":"method"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkStringObject","page":"Gtk4 Types","title":"Gtk4.GtkStringObject","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkStringSorter","page":"Gtk4 Types","title":"Gtk4.GtkStringSorter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkStyleContext","page":"Gtk4 Types","title":"Gtk4.GtkStyleContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkSwitch","page":"Gtk4 Types","title":"Gtk4.GtkSwitch","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkText","page":"Gtk4 Types","title":"Gtk4.GtkText","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkTextBuffer","page":"Gtk4 Types","title":"Gtk4.GtkTextBuffer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkTextChildAnchor","page":"Gtk4 Types","title":"Gtk4.GtkTextChildAnchor","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkTextIter","page":"Gtk4 Types","title":"Gtk4.GtkTextIter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkTextMark","page":"Gtk4 Types","title":"Gtk4.GtkTextMark","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkTextTag","page":"Gtk4 Types","title":"Gtk4.GtkTextTag","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkTextTagTable","page":"Gtk4 Types","title":"Gtk4.GtkTextTagTable","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkTextView","page":"Gtk4 Types","title":"Gtk4.GtkTextView","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkToggleButton","page":"Gtk4 Types","title":"Gtk4.GtkToggleButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkTooltip","page":"Gtk4 Types","title":"Gtk4.GtkTooltip","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkTreeExpander","page":"Gtk4 Types","title":"Gtk4.GtkTreeExpander","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkTreeIter","page":"Gtk4 Types","title":"Gtk4.GtkTreeIter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkTreeListModel","page":"Gtk4 Types","title":"Gtk4.GtkTreeListModel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkTreeListRow","page":"Gtk4 Types","title":"Gtk4.GtkTreeListRow","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkTreeListRowSorter","page":"Gtk4 Types","title":"Gtk4.GtkTreeListRowSorter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkTreeModelFilter","page":"Gtk4 Types","title":"Gtk4.GtkTreeModelFilter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkTreeModelSort","page":"Gtk4 Types","title":"Gtk4.GtkTreeModelSort","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkTreePath","page":"Gtk4 Types","title":"Gtk4.GtkTreePath","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkTreeSelection","page":"Gtk4 Types","title":"Gtk4.GtkTreeSelection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkTreeStore","page":"Gtk4 Types","title":"Gtk4.GtkTreeStore","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkTreeView","page":"Gtk4 Types","title":"Gtk4.GtkTreeView","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkTreeViewColumn","page":"Gtk4 Types","title":"Gtk4.GtkTreeViewColumn","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkUriLauncher","page":"Gtk4 Types","title":"Gtk4.GtkUriLauncher","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkVideo","page":"Gtk4 Types","title":"Gtk4.GtkVideo","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkViewport","page":"Gtk4 Types","title":"Gtk4.GtkViewport","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkVolumeButton","page":"Gtk4 Types","title":"Gtk4.GtkVolumeButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkWidget","page":"Gtk4 Types","title":"Gtk4.GtkWidget","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkWidgetPaintable","page":"Gtk4 Types","title":"Gtk4.GtkWidgetPaintable","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkWindowControls","page":"Gtk4 Types","title":"Gtk4.GtkWindowControls","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkWindowGroup","page":"Gtk4 Types","title":"Gtk4.GtkWindowGroup","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GtkWindowHandle","page":"Gtk4 Types","title":"Gtk4.GtkWindowHandle","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.IconLookupFlags","page":"Gtk4 Types","title":"Gtk4.IconLookupFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.IconSize","page":"Gtk4 Types","title":"Gtk4.IconSize","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.IconThemeError","page":"Gtk4 Types","title":"Gtk4.IconThemeError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.IconViewDropPosition","page":"Gtk4 Types","title":"Gtk4.IconViewDropPosition","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.ImageType","page":"Gtk4 Types","title":"Gtk4.ImageType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.InputHints","page":"Gtk4 Types","title":"Gtk4.InputHints","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.InputPurpose","page":"Gtk4 Types","title":"Gtk4.InputPurpose","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.InputSource","page":"Gtk4 Types","title":"Gtk4.InputSource","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.InscriptionOverflow","page":"Gtk4 Types","title":"Gtk4.InscriptionOverflow","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.Justification","page":"Gtk4 Types","title":"Gtk4.Justification","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.KeyMatch","page":"Gtk4 Types","title":"Gtk4.KeyMatch","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.LevelBarMode","page":"Gtk4 Types","title":"Gtk4.LevelBarMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.License","page":"Gtk4 Types","title":"Gtk4.License","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.ListScrollFlags","page":"Gtk4 Types","title":"Gtk4.ListScrollFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.ListTabBehavior","page":"Gtk4 Types","title":"Gtk4.ListTabBehavior","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.MemoryFormat","page":"Gtk4 Types","title":"Gtk4.MemoryFormat","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.MessageType","page":"Gtk4 Types","title":"Gtk4.MessageType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.ModifierType","page":"Gtk4 Types","title":"Gtk4.ModifierType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.MovementStep","page":"Gtk4 Types","title":"Gtk4.MovementStep","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.NaturalWrapMode","page":"Gtk4 Types","title":"Gtk4.NaturalWrapMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.NotebookTab","page":"Gtk4 Types","title":"Gtk4.NotebookTab","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.NotifyType","page":"Gtk4 Types","title":"Gtk4.NotifyType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.NumberUpLayout","page":"Gtk4 Types","title":"Gtk4.NumberUpLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.Ordering","page":"Gtk4 Types","title":"Gtk4.Ordering","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.Orientation","page":"Gtk4 Types","title":"Gtk4.Orientation","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.Overflow","page":"Gtk4 Types","title":"Gtk4.Overflow","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.PackType","page":"Gtk4 Types","title":"Gtk4.PackType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.PadActionType","page":"Gtk4 Types","title":"Gtk4.PadActionType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.PageOrientation","page":"Gtk4 Types","title":"Gtk4.PageOrientation","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.PageSet","page":"Gtk4 Types","title":"Gtk4.PageSet","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.PaintableFlags","page":"Gtk4 Types","title":"Gtk4.PaintableFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.PanDirection","page":"Gtk4 Types","title":"Gtk4.PanDirection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.PickFlags","page":"Gtk4 Types","title":"Gtk4.PickFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.PolicyType","page":"Gtk4 Types","title":"Gtk4.PolicyType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.PopoverMenuFlags","page":"Gtk4 Types","title":"Gtk4.PopoverMenuFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.PositionType","page":"Gtk4 Types","title":"Gtk4.PositionType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.PrintCapabilities","page":"Gtk4 Types","title":"Gtk4.PrintCapabilities","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.PrintDuplex","page":"Gtk4 Types","title":"Gtk4.PrintDuplex","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.PrintError","page":"Gtk4 Types","title":"Gtk4.PrintError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.PrintOperationAction","page":"Gtk4 Types","title":"Gtk4.PrintOperationAction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.PrintOperationResult","page":"Gtk4 Types","title":"Gtk4.PrintOperationResult","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.PrintPages","page":"Gtk4 Types","title":"Gtk4.PrintPages","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.PrintQuality","page":"Gtk4 Types","title":"Gtk4.PrintQuality","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.PrintStatus","page":"Gtk4 Types","title":"Gtk4.PrintStatus","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.PropagationLimit","page":"Gtk4 Types","title":"Gtk4.PropagationLimit","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.PropagationPhase","page":"Gtk4 Types","title":"Gtk4.PropagationPhase","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.RecentManagerError","page":"Gtk4 Types","title":"Gtk4.RecentManagerError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.ResponseType","page":"Gtk4 Types","title":"Gtk4.ResponseType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.RevealerTransitionType","page":"Gtk4 Types","title":"Gtk4.RevealerTransitionType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.ScrollDirection","page":"Gtk4 Types","title":"Gtk4.ScrollDirection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.ScrollStep","page":"Gtk4 Types","title":"Gtk4.ScrollStep","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.ScrollType","page":"Gtk4 Types","title":"Gtk4.ScrollType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.ScrollUnit","page":"Gtk4 Types","title":"Gtk4.ScrollUnit","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.ScrollablePolicy","page":"Gtk4 Types","title":"Gtk4.ScrollablePolicy","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.SeatCapabilities","page":"Gtk4 Types","title":"Gtk4.SeatCapabilities","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.SelectionMode","page":"Gtk4 Types","title":"Gtk4.SelectionMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.SensitivityType","page":"Gtk4 Types","title":"Gtk4.SensitivityType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.ShortcutActionFlags","page":"Gtk4 Types","title":"Gtk4.ShortcutActionFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.ShortcutScope","page":"Gtk4 Types","title":"Gtk4.ShortcutScope","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.ShortcutType","page":"Gtk4 Types","title":"Gtk4.ShortcutType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.SizeGroupMode","page":"Gtk4 Types","title":"Gtk4.SizeGroupMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.SizeRequestMode","page":"Gtk4 Types","title":"Gtk4.SizeRequestMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.SortType","page":"Gtk4 Types","title":"Gtk4.SortType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.SorterChange","page":"Gtk4 Types","title":"Gtk4.SorterChange","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.SorterOrder","page":"Gtk4 Types","title":"Gtk4.SorterOrder","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.SpinButtonUpdatePolicy","page":"Gtk4 Types","title":"Gtk4.SpinButtonUpdatePolicy","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.SpinType","page":"Gtk4 Types","title":"Gtk4.SpinType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.StackTransitionType","page":"Gtk4 Types","title":"Gtk4.StackTransitionType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.StateFlags","page":"Gtk4 Types","title":"Gtk4.StateFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.StringFilterMatchMode","page":"Gtk4 Types","title":"Gtk4.StringFilterMatchMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.StyleContextPrintFlags","page":"Gtk4 Types","title":"Gtk4.StyleContextPrintFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.SubpixelLayout","page":"Gtk4 Types","title":"Gtk4.SubpixelLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.SurfaceEdge","page":"Gtk4 Types","title":"Gtk4.SurfaceEdge","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.SymbolicColor","page":"Gtk4 Types","title":"Gtk4.SymbolicColor","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.SystemSetting","page":"Gtk4 Types","title":"Gtk4.SystemSetting","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.TextDirection","page":"Gtk4 Types","title":"Gtk4.TextDirection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.TextExtendSelection","page":"Gtk4 Types","title":"Gtk4.TextExtendSelection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.TextSearchFlags","page":"Gtk4 Types","title":"Gtk4.TextSearchFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.TextViewLayer","page":"Gtk4 Types","title":"Gtk4.TextViewLayer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.TextWindowType","page":"Gtk4 Types","title":"Gtk4.TextWindowType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.TextureError","page":"Gtk4 Types","title":"Gtk4.TextureError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.ToplevelState","page":"Gtk4 Types","title":"Gtk4.ToplevelState","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.TouchpadGesturePhase","page":"Gtk4 Types","title":"Gtk4.TouchpadGesturePhase","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.TreeModelFlags","page":"Gtk4 Types","title":"Gtk4.TreeModelFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.TreeViewColumnSizing","page":"Gtk4 Types","title":"Gtk4.TreeViewColumnSizing","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.TreeViewDropPosition","page":"Gtk4 Types","title":"Gtk4.TreeViewDropPosition","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.TreeViewGridLines","page":"Gtk4 Types","title":"Gtk4.TreeViewGridLines","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.Unit","page":"Gtk4 Types","title":"Gtk4.Unit","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.VulkanError","page":"Gtk4 Types","title":"Gtk4.VulkanError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.WrapMode","page":"Gtk4 Types","title":"Gtk4.WrapMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4._GtkTextIter-Tuple{GtkTextBuffer, Integer}","page":"Gtk4 Types","title":"Gtk4._GtkTextIter","text":"_GtkTextIter(text::GtkTextBuffer, char_offset::Integer)\n\nCreates a _GtkTextIter with offset char_offset (one-based index).\n\n\n\n\n\n","category":"method"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkPixbufLib.GdkPixbuf","page":"Gtk4 Types","title":"Gtk4.GdkPixbufLib.GdkPixbuf","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkPixbufLib.GdkPixbufAnimation","page":"Gtk4 Types","title":"Gtk4.GdkPixbufLib.GdkPixbufAnimation","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkPixbufLib.GdkPixbufAnimationIter","page":"Gtk4 Types","title":"Gtk4.GdkPixbufLib.GdkPixbufAnimationIter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkPixbufLib.GdkPixbufFormat","page":"Gtk4 Types","title":"Gtk4.GdkPixbufLib.GdkPixbufFormat","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkPixbufLib.GdkPixbufLoader","page":"Gtk4 Types","title":"Gtk4.GdkPixbufLib.GdkPixbufLoader","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/Gtk4_types_reference/#Gtk4.GdkPixbufLib.GdkPixbufSimpleAnim","page":"Gtk4 Types","title":"Gtk4.GdkPixbufLib.GdkPixbufSimpleAnim","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/preferences/#Preference-Settings","page":"Preference Settings","title":"Preference Settings","text":"","category":"section"},{"location":"doc/preferences/","page":"Preference Settings","title":"Preference Settings","text":"Here is a list of preferences for Gtk4 that can be set using Preferences.jl.","category":"page"},{"location":"doc/preferences/#EGL-directories-(Linux-and-Wayland)","page":"Preference Settings","title":"EGL directories (Linux & Wayland)","text":"","category":"section"},{"location":"doc/preferences/","page":"Preference Settings","title":"Preference Settings","text":"GTK4 has a few different rendering backends, and by default on Linux it uses one based on OpenGL. Gtk4.jl uses JLL based libraries rather than the ones that come with your Linux distribution, and on Wayland, unfortunately, unless you tell libglvnd_jll where to find libEGL, it will be unable to find an OpenGL provider. As a result, on Wayland a Cairo-based fallback backend will be used. This may work fine for you, but it means that GtkGLArea will not work. We can tell libglvnd_jll where to find libEGL by setting the environment variable __EGL_VENDOR_LIBRARY_DIRS. See here for details.","category":"page"},{"location":"doc/preferences/","page":"Preference Settings","title":"Preference Settings","text":"You can point libglvnd_jll to a libEGL location using the preference \"EGL_vendorlib_dirs\":","category":"page"},{"location":"doc/preferences/","page":"Preference Settings","title":"Preference Settings","text":"using Gtk4\nGtk4.set_EGL_vendorlib_dirs(\"/usr/share/glvnd/egl_vendor.d\")\n[ Info: Setting will take effect after restarting Julia.","category":"page"},{"location":"doc/preferences/","page":"Preference Settings","title":"Preference Settings","text":"where \"/usr/share/glvnd/egl_vendor.d\" is a typical location for Mesa's libEGL (this should be modified if it's somewhere else on your distribution). Other vendor-provided libraries may be in other locations, and a colon-separated list of directories can be used for that situation. Note that this has only been tested for the Mesa-provided libEGL on Fedora and Ubuntu.","category":"page"},{"location":"doc/preferences/#UV-loop-integration","page":"Preference Settings","title":"UV loop integration","text":"","category":"section"},{"location":"doc/preferences/","page":"Preference Settings","title":"Preference Settings","text":"GTK relies on an event loop (provided by GLib) to process and handle mouse and keyboard events, while Julia relies on its own event loop (provided by libuv) for IO, timers, etc. Interactions between these event loops can cause REPL lag and can interfere with multithreading performance. Explicit integration of the two loops by creating a libuv event source in the GLib main loop is currently disabled because it caused slowdowns in multithreaded code. On some Macs, unfortunately, REPL lag occurs without this explicit integration (explicit in the sense that libuv can insert events in the GLib main loop through its own GSource).","category":"page"},{"location":"doc/preferences/","page":"Preference Settings","title":"Preference Settings","text":"By default, explicit GLib loop integration is only turned on on Macs in an interactive session. You can override this using the preference \"uv_loop_integration\". If it's set to \"enabled\", the libuv GSource will be created. If it's set to \"disabled\", the libuv GSource will not be created, even on Macs in an interactive session. The setting \"auto\" uses the default behavior. The functions GLib.set_uv_loop_integration and GLib.get_uv_loop_integration can be used to set and get the preference.","category":"page"},{"location":"howto/nonreplusage/#Using-Gtk4-outside-the-REPL","page":"Using Gtk4 outside the REPL","title":"Using Gtk4 outside the REPL","text":"","category":"section"},{"location":"howto/nonreplusage/","page":"Using Gtk4 outside the REPL","title":"Using Gtk4 outside the REPL","text":"If you're using Gtk4 from command-line scripts, the following design prevents Julia from quitting before you have a chance to see or interact with your windows:","category":"page"},{"location":"howto/nonreplusage/","page":"Using Gtk4 outside the REPL","title":"Using Gtk4 outside the REPL","text":"using Gtk4\nwin = GtkWindow(\"gtkwait\")\n\n# Put your GUI code here\n\nif !isinteractive()\n c = Condition()\n signal_connect(win, :close_request) do widget\n notify(c)\n end\n @async Gtk4.GLib.glib_main()\n wait(c)\nend","category":"page"},{"location":"howto/nonreplusage/","page":"Using Gtk4 outside the REPL","title":"Using Gtk4 outside the REPL","text":"By waiting on a Condition, Julia will keep running until a signal handler calls notify(c). This pattern allows for multiple events to trigger the condition, such as a button press, or one of many windows to be closed. Program flow will resume at the wait line, after which it would terminate in this example.","category":"page"},{"location":"howto/nonreplusage/","page":"Using Gtk4 outside the REPL","title":"Using Gtk4 outside the REPL","text":"In the common case that we simply wish to wait for a single window to be closed, this can be shortened by using waitforsignal:","category":"page"},{"location":"howto/nonreplusage/","page":"Using Gtk4 outside the REPL","title":"Using Gtk4 outside the REPL","text":"using Gtk4\nwin = GtkWindow(\"gtkwait\")\n\n# Put your GUI code here\n\nif !isinteractive()\n @async Gtk4.GLib.glib_main()\n Gtk4.GLib.waitforsignal(win,:close_request)\nend","category":"page"},{"location":"howto/nonreplusage/#GtkApplication","page":"Using Gtk4 outside the REPL","title":"GtkApplication","text":"","category":"section"},{"location":"howto/nonreplusage/","page":"Using Gtk4 outside the REPL","title":"Using Gtk4 outside the REPL","text":"For larger projects, you may want to use GtkApplication, which enables useful functionality based around GtkApplicationWindow, GAction, GActionMap, etc. For that you can use the following pattern in a non-interactive script:","category":"page"},{"location":"howto/nonreplusage/","page":"Using Gtk4 outside the REPL","title":"Using Gtk4 outside the REPL","text":"using Gtk4\n\nfunction activate(app)\n win = GtkApplicationWindow(app, \"my title\")\n show(win)\nend\n\napp = GtkApplication()\n\nGtk4.signal_connect(activate, app, :activate)\n\nrun(app)","category":"page"},{"location":"howto/nonreplusage/","page":"Using Gtk4 outside the REPL","title":"Using Gtk4 outside the REPL","text":"In the activate function, you can create your windows, widgets, etc. and connect them to signals. When all GtkApplicationWindows have been closed, the script will exit.","category":"page"},{"location":"howto/nonreplusage/#Creating-an-app-with-PackageCompiler","page":"Using Gtk4 outside the REPL","title":"Creating an app with PackageCompiler","text":"","category":"section"},{"location":"howto/nonreplusage/","page":"Using Gtk4 outside the REPL","title":"Using Gtk4 outside the REPL","text":"PackageCompiler.jl can be used to create an executable file that can be transferred to other computers without installing Julia. An example can be found in the examples/ExampleApplication directory in the Gtk4.jl repo.","category":"page"},{"location":"manual/actions/#Actions","page":"Actions","title":"Actions","text":"","category":"section"},{"location":"manual/actions/","page":"Actions","title":"Actions","text":"Actions are another way of associating callbacks with widgets. While they are a bit more complicated to set up, they have a few advantages over connecting to widget signals such as \"clicked\".","category":"page"},{"location":"manual/actions/","page":"Actions","title":"Actions","text":"Actions are based on an interface GAction, the most straightforward implementation of which is GSimpleAction. Actions have a property \"name\" which must be a non-empty string consisting of alphanumeric characters, dashes ('-'), and dots ('.'). Actions also have a method activate that takes an optional parameter argument (more on those later).","category":"page"},{"location":"manual/actions/","page":"Actions","title":"Actions","text":"Some widgets, including GtkButton, GtkToggleButton, and GtkCheckButton, (to be precise, widgets that implement the GtkActionable interface) have a property \"action-name\" that sets an associated action.","category":"page"},{"location":"manual/actions/","page":"Actions","title":"Actions","text":"Let's say we want to define an action that closes a window. We could use","category":"page"},{"location":"manual/actions/","page":"Actions","title":"Actions","text":"using Gtk4, Gtk4.GLib\n\nwin = GtkWindow(\"Action demo\", 400, 200)\n\nb = GtkButton(\"Click to close this window\")\nb.action_name = \"win.close\"\npush!(win,b)\n\nfunction close_action_cb(a, par)::Nothing # important to return nothing!\n close(win)\nend\n\naction_group = GSimpleActionGroup()\nadd_action(GActionMap(action_group), \"close\", close_action_cb)\npush!(win, Gtk4.GLib.GActionGroup(action_group), \"win\")","category":"page"},{"location":"manual/actions/","page":"Actions","title":"Actions","text":"Let's go through this. First we created the window and button and set the button's action name to \"win.close\". Next we created an action group. Then we used the helper method add_action to create an action with the name \"close\", connect a callback for the action's \"activate\" signal, and add the action to the action group. Finally we added the action group to the window and associated it with a prefix \"win\".","category":"page"},{"location":"manual/actions/","page":"Actions","title":"Actions","text":"For what it accomplishes, this code looks a bit convoluted. Why did we set the button's action name to \"win.close\" rather than \"close\", which is the action's name? Each action is put in a group, which has its own prefix, in this case \"win\". The action's global name is \"win.close\" because it was added to the \"win\" group. Often applications define an \"app\" group for application-wide actions, and each window has its own \"win\" group for window-specific actions. You can even define action groups for individual widgets. When we set an action name for the button, GTK looks for a group named \"win\", starting with the button itself and then working its way up the widget hierarchy. In our case it found that group associated with the window.","category":"page"},{"location":"manual/actions/","page":"Actions","title":"Actions","text":"You are probably asking yourself, why do it this way when we could have just connected close_cb to the button's \"clicked\" signal? Here are a few reasons to use actions:","category":"page"},{"location":"manual/actions/","page":"Actions","title":"Actions","text":"Multiple widgets can point to the same action. For example, we could have a menu item for closing the window. Actions can reduce code duplication.\nActions can be disabled. Let's say we want to temporarily turn off the \"close\" action. We can do this by setting the action's property \"enabled\" to false. Any widgets that are connected to this action will be greyed out automatically, indicating to users that they don't do anything.\nIf you use GtkApplication and GtkApplicationWindow, you get action groups associated with the application and windows for free since these two widget classes define the interface GActionGroup. So that saves you from having to create a GSimpleActionGroup and add it to the window.\nIf you use Builder, you can set the action names and targets for widgets in XML.","category":"page"},{"location":"manual/actions/#Stateful-actions","page":"Actions","title":"Stateful actions","text":"","category":"section"},{"location":"manual/actions/","page":"Actions","title":"Actions","text":"The action \"close\" in the example above was a stateless action. All one can do is \"activate\" it, which calls a function. It's possible to associate a state with an action too.","category":"page"},{"location":"manual/actions/","page":"Actions","title":"Actions","text":"Here is a simple example of a stateful action:","category":"page"},{"location":"manual/actions/","page":"Actions","title":"Actions","text":"using Gtk4, Gtk4.GLib\n\nwin = GtkWindow(\"Fullscreen action demo\", 400, 200)\n\nb = GtkButton(\"Click to change fullscreen state\"; action_name=\"win.fullscreen\")\npush!(win,b)\n\nfunction fullscreen_action_cb(a, v)::Nothing\n if v[Bool]\n Gtk4.fullscreen(win)\n else\n Gtk4.unfullscreen(win)\n end\n Gtk4.GLib.set_state(a, v)\nend\n\naction_group = GSimpleActionGroup()\nadd_stateful_action(GActionMap(action_group), \"fullscreen\", false, fullscreen_action_cb)\npush!(win, Gtk4.GLib.GActionGroup(action_group), \"win\")","category":"page"},{"location":"manual/actions/","page":"Actions","title":"Actions","text":"Here we used add_stateful_action to create an action named \"fullscreen\" that has a boolean state associated with it. The type of the state is taken from the initial state argument, which in this case was false. The callback is connected to the action's \"change-state\" signal.","category":"page"},{"location":"manual/actions/","page":"Actions","title":"Actions","text":"In the callback, the argument v is a GVariant, which is sort of a container type in GLib that is used in the action system. To read the state value from the container we used v[Bool].","category":"page"},{"location":"manual/actions/","page":"Actions","title":"Actions","text":"Note that you have to call set_state in the callback or else the state will not be updated!","category":"page"},{"location":"manual/actions/#A-more-complicated-example","page":"Actions","title":"A more complicated example","text":"","category":"section"},{"location":"manual/actions/","page":"Actions","title":"Actions","text":"using Gtk4, Gtk4.GLib\n\nwin = GtkWindow(\"Radio button demo\", 400, 200)\nwin[] = box = GtkBox(:v)\n\nb1 = GtkToggleButton(\"Option 1\"; action_name = \"win.option\", action_target=GVariant(\"1\"))\npush!(box, b1)\npush!(box, GtkToggleButton(\"Option 2\"; action_name = \"win.option\", action_target=GVariant(\"2\"), group = b1))\npush!(box, GtkToggleButton(\"Option 3\"; action_name = \"win.option\", action_target=GVariant(\"3\"), group = b1))\n\nlbl = GtkLabel(\"1\")\npush!(box, lbl)\n\nfunction opt_action_cb(a,v)::Nothing\n lbl.label = v[String]\n Gtk4.GLib.set_state(a,v)\nend\n\naction_group = GSimpleActionGroup()\nadd_stateful_action(GActionMap(action_group), \"option\", String, \"1\", opt_action_cb)\npush!(win, Gtk4.GLib.GActionGroup(action_group), \"win\")","category":"page"},{"location":"manual/actions/#Actions-in-an-application","page":"Actions","title":"Actions in an application","text":"","category":"section"},{"location":"manual/actions/","page":"Actions","title":"Actions","text":"As mentioned above, the objects GtkApplication and GtkApplicationWindow implement the GActionMap interface, so there is no need to create a GSimpleActionGroup and add it to the window. For GtkApplicationWindows, you can add window-associated actions using add_action(GActionMap(win), \"fullscreen\", fullscreen_cb). Assuming you have created a GtkApplication called app, you can add actions to the application using add_action(GActionMap(app), \"fullscreen\", fullscreen_cb).","category":"page"},{"location":"manual/dialogs/#Dialogs","page":"Dialogs","title":"Dialogs","text":"","category":"section"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"Dialogs are transient windows that show information or ask the user for information.","category":"page"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"note: Example\nSome of the code on this page can be found in \"dialogs.jl\" in the \"example\" subdirectory.","category":"page"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"tip: Creating dialogs in callbacks\nWhen creating dialogs in signal or action callbacks, you have to use the methods that take a function as the first argument (equivalently the do syntax).","category":"page"},{"location":"manual/dialogs/#Message-dialogs","page":"Dialogs","title":"Message dialogs","text":"","category":"section"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"Gtk4.jl supports GtkMessageDialog and provides several convenience functions: info_dialog, ask_dialog, warn_dialog, and error_dialog. Each takes a string for a message to show and an optional parent container, and returns nothing, except for ask_dialog which returns true if the user clicks the button corresponding to yes.","category":"page"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"For all dialog convenience functions, there are two ways of using them. For use in the REPL or an interactive script, the following forms can be used:","category":"page"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"info_dialog(\"Julia rocks!\")\nask_dialog(\"Do you like chocolate ice cream?\", \"Not at all\", \"I like it\") && println(\"That's my favorite too.\")\nwarn_dialog(\"Oops!... I did it again\")","category":"page"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"These take an optional argument timeout (in seconds) that can be used to make the dialog disappear after a certain time.","category":"page"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"In callbacks (for example when a user clicks a button in a GUI), you must use a different form, which takes a callback as the first argument that will be called when the user closes the dialog. A full example:","category":"page"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"b = GtkButton(\"Click me\")\nwin = GtkWindow(b,\"Info dialog example\")\nf() = println(\"message received\")\nfunction on_click(b)\n info_dialog(f, \"Julia rocks!\",win)\nend\nsignal_connect(on_click, b, \"clicked\")","category":"page"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"If you are using these functions in the context of a GUI, you should set the third argument of info_dialog, parent, to be the top-level window. Otherwise, for standalone usage in scripts, do not set it.","category":"page"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"The callback can alternatively be constructed using Julia's do syntax:","category":"page"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"info_dialog(\"Julia rocks!\", win) do\n println(\"message received\")\nend","category":"page"},{"location":"manual/dialogs/#File-Dialogs","page":"Dialogs","title":"File Dialogs","text":"","category":"section"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"A common reason to use a dialog is to allow the user to pick a file to be opened or saved to. For this Gtk4.jl provides the functions open_dialog for choosing an existing file or directory to be opened and save_dialog for choosing a filename to be saved to. These use GtkFileChooserNative, which uses the operating system's native dialogs where possible. The syntax of these functions is similar to the message dialogs. For a callback in a GUI (for an \"Open File\" button, for example), you can use","category":"page"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"function f(filename)\n # do something with the file\nend\n\nopen_dialog(f, \"Pick a file to open\", parent)","category":"page"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"The function f is called with the file's path as its argument when the user selects the file and clicks \"OK\". If the user clicks \"Cancel\", f is called with \"\" as its argument. Julia's do syntax can be used to construct the function f in a convenient way:","category":"page"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"open_dialog(\"Pick a file to open\", parent) do filename\n # call a function here to do something with the file\nend","category":"page"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"Multiple files can be opened by setting the multiple keyword argument:","category":"page"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"open_dialog(\"Pick files to open\", parent; multiple = true) do filenames\n # call a function here to do something with files\nend","category":"page"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"In this case filenames is a list of paths.","category":"page"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"The dialog can be preset to a particular directory using the optional argument start_folder:","category":"page"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"open_dialog(f, \"Pick a file to open\", parent; start_folder = \"/data\")","category":"page"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"The same syntax works for save_dialog.","category":"page"},{"location":"manual/dialogs/#Filters","page":"Dialogs","title":"Filters","text":"","category":"section"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"Filters can be used to limit the type of files that the user can pick. Filters can be specified as a Tuple or Vector. A filter can be specified as a string, in which case it specifies a globbing pattern, for example \"*.png\". You can specify multiple match types for a single filter by separating the patterns with a comma, for example \"*.png,*.jpg\". You can alternatively specify MIME types, or if no specification is provided it defaults to types supported by GdkPixbuf. The generic specification of a filter is","category":"page"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"GtkFileFilter(pattern = \"\", mimetype = \"\")","category":"page"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"A human-readable name can optionally be provided using a keyword argument.","category":"page"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"If on the other hand you want to choose a folder instead of a file, use select_folder = true in open_dialog:","category":"page"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"dir=Ref{String}()\nopen_dialog(\"Select Dataset Folder\"; select_folder = true) do name\n dir[] = name\nend\n\nif isdir(dir[])\n # do something with dir\nend","category":"page"},{"location":"manual/dialogs/#Custom-dialogs","page":"Dialogs","title":"Custom dialogs","text":"","category":"section"},{"location":"manual/dialogs/","page":"Dialogs","title":"Dialogs","text":"TODO","category":"page"},{"location":"manual/listtreeview/#List-and-Tree-Widgets","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"","category":"section"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"In version 4, GTK introduced new widgets for efficiently displaying table-like data as one-dimensional lists, trees, or two-dimensional arrays.","category":"page"},{"location":"manual/listtreeview/#[GtkListView](https://docs.gtk.org/gtk4/class.ListView.html)","page":"List and Tree Widgets","title":"GtkListView","text":"","category":"section"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"note: Example\nThe code below can be found in \"listview.jl\" in the \"examples\" subdirectory.","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"We start with the widget for displaying one-dimensional lists. Here is a simple example:","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"using Gtk4\n\nmodel = GtkStringList(string.(names(Gtk4)))\nselmodel = GtkSelectionModel(GtkSingleSelection(GListModel(model)))\n\nfunction setup_cb(f, li)\n set_child(li,GtkLabel(\"\"))\nend\n\nfunction bind_cb(f, li)\n text = li[].string\n label = get_child(li)\n label.label = text\nend\n\nfactory = GtkSignalListItemFactory(setup_cb, bind_cb)\nlist = GtkListView(selmodel, factory)\n\nwin = GtkWindow(\"Listview demo\", 250, 800)\nsw = GtkScrolledWindow()\nwin[] = sw\nsw[] = list","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"Let's go through each step. First, we create a model that holds the data we want to display. In this example we display a list of strings (all of the names exported by the Gtk4 module, which was 1053 strings when this was written), and we store them in a GtkStringList. This object implements the interface GListModel, which is what all of the list widgets require.","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"Next, we create a \"selection model\", which wraps the model we just created and controls how the user can select items in the list. Possible wrappers include GtkNoSelection (no selection allowed), GtkSingleSelection (a single item can be selected), and GtkMultiSelection (multiple items can be selected).","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"Next, a \"factory\" is created. The list widget can efficiently display a huge number of items by only populating display widgets for an item when the item becomes visible. The \"factory\" is what does this. The constructor takes two callback functions: \"setup\", which creates a suitable widget for displaying an item, and \"bind\", which sets the widget to display a particular item. The arguments of the callbacks are the factory f and a list item li, which is an object that represents elements of the GListModel. In the \"setup\" callback, you can call the function set_child on the list item to set a widget that will be used to display the item. In our example we create a GtkLabel to display the string. In the \"bind\" callback, we first fetch the element of the list model using the getindex method on the list item (by calling li[]) and we get the text from its \"string\" property. We then get the GtkLabel using the get_child function on the list item, and then we set the text of this GtkLabel.","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"Finally, we construct the GtkListView using the selection model and the factory and add it to a GtkScrolledWindow and a GtkWindow.","category":"page"},{"location":"manual/listtreeview/#Filtering","page":"List and Tree Widgets","title":"Filtering","text":"","category":"section"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"note: Example\nThe code below can be found in \"filteredlistview.jl\" in the \"examples\" subdirectory.","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"The list above is very long, and it's useful to allow the user to filter it down. An easy way to implement this is to use GtkFilterListModel, which wraps the model and allows it to be filtered before being displayed.","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"Here is an example:","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"model = GtkStringList(string.(names(Gtk4)))\n\nentry = GtkSearchEntry()\n\nfunction match(item)\n return startswith(item.string, entry.text)\nend\n\nfilter = GtkCustomFilter(match)\nfilteredModel = GtkFilterListModel(GLib.GListModel(model), filter)\nselmodel = GtkSelectionModel(GtkSingleSelection(GListModel(filteredModel)))","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"We create a GtkCustomFilter using a match callback that returns true for items that we want to display, in our case those that start with the text entered by the user in entry. We construct a GtkFilterListModel using this filter and use it instead of the GListModel in the constructor for GtkSingleSelection.","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"Finally, we update the filter when the user changes the text by connecting to the \"search-changed\" signal:","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"signal_connect(entry, :search_changed) do w\n @idle_add Gtk4.changed(filter, Gtk4.FilterChange_DIFFERENT) \nend","category":"page"},{"location":"manual/listtreeview/#Sorting","page":"List and Tree Widgets","title":"Sorting","text":"","category":"section"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"note: Example\nThe code below can be found in \"sortedlistview.jl\" in the \"examples\" subdirectory.","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"It's also useful to be able to sort the list. This can be done using another model wrapper, GtkSortListModel.","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"Here is an example that sorts the list in reverse alphabetical order:","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"model = GtkStringList(string.(names(Gtk4)))\n\nralpha_compare(item1, item2) = isless(item1.string, item2.string) ? 1 : 0\n\nsorter = GtkCustomSorter(match)\nsortedModel = GtkSortListModel(GListModel(model), sorter)","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"We create a GtkCustomSorter using a compare callback that takes two arguments item1 and item2 and returns -1 if item1 is before item2, 0 if they are equal, and 1 if item1 is after item2. We construct a GtkSortListModel using this filter and use it instead of the GListModel in the constructor for GtkSingleSelection.","category":"page"},{"location":"manual/listtreeview/#[GtkColumnView](https://docs.gtk.org/gtk4/class.ColumnView.html)","page":"List and Tree Widgets","title":"GtkColumnView","text":"","category":"section"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"What if we want to display information in columns? Let's say we want to have one column show the name of the function and another show the number of methods. For this we can use GtkColumnView. It works very similarly to GtkListView, but instead of having one factory for the entire widget, each column has a factory whose setup and bind callbacks populate the widgets used to display the information for that column.","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"Here is an example:","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"using Gtk4\n\nwin = GtkWindow(\"ColumnView demo\", 450, 800)\nsw = GtkScrolledWindow()\npush!(win, sw)\n\nmodel = GtkStringList(string.(names(Gtk4)))\n\nfunction setup_cb(f, li)\n set_child(li,GtkLabel(\"\"))\nend\n\nfunction bind_cb(f, li)\n text = li[].string\n label = get_child(li)\n label.label = text\nend\n\nfunction bind2_cb(f, li)\n text = li[].string\n label = get_child(li)\n label.label = string(length(methods(eval(Symbol(text)))))\nend\n\nlist = GtkColumnView(GtkSelectionModel(GtkSingleSelection(GListModel(model))))\n\nfactory1 = GtkSignalListItemFactory(setup_cb, bind_cb)\ncol1 = GtkColumnViewColumn(\"name\", factory1)\npush!(list, col1)\n\nfactory2 = GtkSignalListItemFactory(setup_cb, bind2_cb)\ncol2 = GtkColumnViewColumn(\"methods\", factory2)\npush!(list, col2)\n\nsw[] = list","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"Note that filtering and sorting work just the same as with GtkListView since they operate on the model.","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"note: Example\nAn example of using GtkColumnView with filtering and sorting can be found in \"columnview.jl\" in the \"examples\" subdirectory.","category":"page"},{"location":"manual/listtreeview/#[GtkTreeView](https://docs.gtk.org/gtk4/class.TreeView.html)","page":"List and Tree Widgets","title":"GtkTreeView","text":"","category":"section"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"The GtkTreeView was the widget used to display table-like or hierarchical data and trees in version 3 of GTK. It's also present in version 4 but is being deprecated in the C library in favor of the widgets discussed above. It will continue to be supported in Gtk4.jl.","category":"page"},{"location":"manual/listtreeview/#List-Store","page":"List and Tree Widgets","title":"List Store","text":"","category":"section"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"This widget uses dedicated GtkListStore and GtkTreeStore containers to hold the data.","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"Lets start with a very simple example: A table with two columns representing the name and age of a person. Each column must have a specific type. We initialize the list store using","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"ls = GtkListStore(String, Int)","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"Now we will the store with data","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"push!(ls,(\"Peter\",20))\npush!(ls,(\"Paul\",30))\npush!(ls,(\"Mary\",25))","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"If we want so insert the data at a specific position we can use the insert function","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"insert!(ls, 2, (\"Susanne\", 35))","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"You can use ls like a matrix like container. Calling length and size will give you","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"julia> length(ls)\n4\n\njulia> size(ls)\n(4,2)","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"Specific element can be be accessed using","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"julia> ls[1,1]\n\"Peter\"\njulia> ls[1,1] = \"Pete\"\n\"Pete\"","category":"page"},{"location":"manual/listtreeview/#Displaying-a-list","page":"List and Tree Widgets","title":"Displaying a list","text":"","category":"section"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"Now we actually want to display our data. To this end we create a tree view object","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"tv = GtkTreeView(GtkTreeModel(ls))","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"Then we need specific renderers for each of the columns. Usually you will only need a text renderer, but in our example we want to display the boolean value using a checkbox.","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"rTxt = GtkCellRendererText()\nrTog = GtkCellRendererToggle()","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"Finally we create for each column a TreeViewColumn object","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"c1 = GtkTreeViewColumn(\"Name\", rTxt, Dict([(\"text\",0)]))\nc2 = GtkTreeViewColumn(\"Age\", rTxt, Dict([(\"text\",1)]))","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"We need to push these column description objects to the tree view","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"push!(tv, c1, c2)","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"Then we can display the tree view widget in a window","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"win = GtkWindow(tv, \"List View\")","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"If you prefer that the columns are resizable by the user call","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"for c in [c1, c2]\n Gtk4.resizable(c, true)\nend","category":"page"},{"location":"manual/listtreeview/#Sorting-2","page":"List and Tree Widgets","title":"Sorting","text":"","category":"section"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"We next want to make the tree view sortable","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"for (i,c) in enumerate([c1,c2])\n Gtk4.sort_column_id(c,i-1)\nend","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"If you now click on one of the column headers, the data will be sorted with respect to the selected column. You can even make the columns reorderable","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"for (i,c) in enumerate([c1, c2])\n Gtk4.reorderable(c, true)\nend","category":"page"},{"location":"manual/listtreeview/#Selection","page":"List and Tree Widgets","title":"Selection","text":"","category":"section"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"Usually the interesting bit of a list will be the entry being selected. This is done using an additional GtkTreeSelection object that can be retrieved by","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"selection = Gtk4.selection(tv)","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"One either have single selection or multiple selections. We toggle this by calling","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"Gtk4.mode(selection,Gtk4.SelectionMode_MULTIPLE)","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"For single selection, if we want to know the index of the selected item we can use","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"julia> ls[selected(selection),1]\n\"Pete\"","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"For multiple selection, we can get a list of selected rows using selected_rows, which can be used to index the GtkListStore","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"julia> [ls[x,1] for x in selected_rows(selection)]\n3-element Vector{String}:\n \"Susanne\"\n \"Pete\"\n \"Paul\"","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"Since it can happen that no item has been selected at all, it is a good idea to put this into an if statement","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"if hasselection(selection)\n # do something with selected(selection)\nend","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"Sometimes you want to invoke an action of an item is selected. This can be done by","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"signal_connect(selection, \"changed\") do widget\n if hasselection(selection)\n currentIt = selected(selection)\n\n # now you can to something with the selected item\n println(\"Name: \", ls[currentIt,1], \" Age: \", ls[currentIt,1])\n end\nend","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"Another useful signal is \"row-activated\" that will be triggered by a double click of the user.","category":"page"},{"location":"manual/listtreeview/#Filtering-2","page":"List and Tree Widgets","title":"Filtering","text":"","category":"section"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"A very useful thing is to apply a filter to a list view such that only a subset of data is shown. We can do this using the GtkTreeModelFilter type. It is as the GtkListStore a GtkTreeModel and therefore we can assign it to a tree view. So the idea is to wrap a GtkListStore in a GtkTreeModelFilter and assign that to the tree view.","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"Next question is how to decide which row of the list store should be shown and which shouldn't. We will do this by adding an additional column to the list store that is hidden. The column will be of type Bool and a value true indicates that the entry is to be shown while false indicates the opposite. We make the filtering based on this column by a call to Gtk4.visible_column. The full example now looks like this:","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"using Gtk4\n\nls = GtkListStore(String, Int, Bool, Bool)\npush!(ls,(\"Peter\",20,false,true))\npush!(ls,(\"Paul\",30,false,true))\npush!(ls,(\"Mary\",25,true,true))\ninsert!(ls, 2, (\"Susanne\",35,true,true))\n\nrTxt = GtkCellRendererText()\nrTog = GtkCellRendererToggle()\n\nc1 = GtkTreeViewColumn(\"Name\", rTxt, Dict([(\"text\",0)]), sort_column_id=0)\nc2 = GtkTreeViewColumn(\"Age\", rTxt, Dict([(\"text\",1)]), sort_column_id=1)\n\ntmFiltered = GtkTreeModelFilter(ls)\nGtk4.visible_column(tmFiltered,3)\ntv = GtkTreeView(GtkTreeModel(tmFiltered))\npush!(tv, c1, c2)\n\nselection = Gtk4.selection(tv)\n\nsignal_connect(selection, \"changed\") do widget\n if hasselection(selection)\n currentIt = selected(selection)\n\n println(\"Name: \", GtkTreeModel(tmFiltered)[currentIt,0],\n \" Age: \", GtkTreeModel(tmFiltered)[currentIt,1])\n end\nend\n\nent = GtkEntry()\n\nsignal_connect(ent, \"changed\") do widget\n searchText = get_gtk_property(ent, :text, String)\n\n for l=1:length(ls)\n showMe = true\n\n if length(searchText) > 0\n showMe = showMe && occursin(lowercase(searchText), lowercase(ls[l,1]))\n end\n\n ls[l,4] = showMe\n end\nend\n\nvbox = GtkBox(:v)\npush!(vbox,ent,tv)\n\nwin = GtkWindow(vbox, \"List View with Filter\")","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"You can see that we have added a little search bar such that you can see the filtering in action. It is furthermore important to note that we had to replace ls with GtkTreeModel(tmFiltered) in the selection changed callback since the selection will give an iterator that is only valid in the filtered tree model.","category":"page"},{"location":"manual/listtreeview/#Tree-Widget","page":"List and Tree Widgets","title":"Tree Widget","text":"","category":"section"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"Here is an example of the tree model in action:","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"using Gtk4\n\nts = GtkTreeStore(String)\niter1 = push!(ts,(\"one\",))\niter2 = push!(ts,(\"two\",),iter1)\niter3 = push!(ts,(\"three\",),iter2)\ntv = GtkTreeView(GtkTreeModel(ts))\nr1 = GtkCellRendererText()\nc1 = GtkTreeViewColumn(\"A\", r1, Dict([(\"text\",0)]))\npush!(tv,c1)\nwin = GtkWindow(tv, \"Tree View\")\n\niter = Gtk4.iter_from_index(ts, [1])\nts[iter,1] = \"ONE\"","category":"page"},{"location":"doc/GLib_types_reference/#GLib-Types","page":"GLib Types","title":"GLib Types","text":"","category":"section"},{"location":"doc/GLib_types_reference/","page":"GLib Types","title":"GLib Types","text":"Modules = [Gtk4.GLib]\nOrder = [:type]\nPublic = true\nPrivate = false","category":"page"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.AppInfoCreateFlags","page":"GLib Types","title":"Gtk4.GLib.AppInfoCreateFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.ApplicationFlags","page":"GLib Types","title":"Gtk4.GLib.ApplicationFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.AskPasswordFlags","page":"GLib Types","title":"Gtk4.GLib.AskPasswordFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.BindingFlags","page":"GLib Types","title":"Gtk4.GLib.BindingFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.BookmarkFileError","page":"GLib Types","title":"Gtk4.GLib.BookmarkFileError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.BusNameOwnerFlags","page":"GLib Types","title":"Gtk4.GLib.BusNameOwnerFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.BusNameWatcherFlags","page":"GLib Types","title":"Gtk4.GLib.BusNameWatcherFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.BusType","page":"GLib Types","title":"Gtk4.GLib.BusType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.ChecksumType","page":"GLib Types","title":"Gtk4.GLib.ChecksumType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.ConnectFlags","page":"GLib Types","title":"Gtk4.GLib.ConnectFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.ConvertError","page":"GLib Types","title":"Gtk4.GLib.ConvertError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.ConverterFlags","page":"GLib Types","title":"Gtk4.GLib.ConverterFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.ConverterResult","page":"GLib Types","title":"Gtk4.GLib.ConverterResult","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.CredentialsType","page":"GLib Types","title":"Gtk4.GLib.CredentialsType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.DBusCallFlags","page":"GLib Types","title":"Gtk4.GLib.DBusCallFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.DBusCapabilityFlags","page":"GLib Types","title":"Gtk4.GLib.DBusCapabilityFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.DBusConnectionFlags","page":"GLib Types","title":"Gtk4.GLib.DBusConnectionFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.DBusError","page":"GLib Types","title":"Gtk4.GLib.DBusError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.DBusInterfaceSkeletonFlags","page":"GLib Types","title":"Gtk4.GLib.DBusInterfaceSkeletonFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.DBusMessageByteOrder","page":"GLib Types","title":"Gtk4.GLib.DBusMessageByteOrder","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.DBusMessageFlags","page":"GLib Types","title":"Gtk4.GLib.DBusMessageFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.DBusMessageHeaderField","page":"GLib Types","title":"Gtk4.GLib.DBusMessageHeaderField","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.DBusMessageType","page":"GLib Types","title":"Gtk4.GLib.DBusMessageType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.DBusObjectManagerClientFlags","page":"GLib Types","title":"Gtk4.GLib.DBusObjectManagerClientFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.DBusPropertyInfoFlags","page":"GLib Types","title":"Gtk4.GLib.DBusPropertyInfoFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.DBusProxyFlags","page":"GLib Types","title":"Gtk4.GLib.DBusProxyFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.DBusSendMessageFlags","page":"GLib Types","title":"Gtk4.GLib.DBusSendMessageFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.DBusServerFlags","page":"GLib Types","title":"Gtk4.GLib.DBusServerFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.DBusSignalFlags","page":"GLib Types","title":"Gtk4.GLib.DBusSignalFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.DBusSubtreeFlags","page":"GLib Types","title":"Gtk4.GLib.DBusSubtreeFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.DataStreamByteOrder","page":"GLib Types","title":"Gtk4.GLib.DataStreamByteOrder","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.DataStreamNewlineType","page":"GLib Types","title":"Gtk4.GLib.DataStreamNewlineType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.DateDMY","page":"GLib Types","title":"Gtk4.GLib.DateDMY","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.DateMonth","page":"GLib Types","title":"Gtk4.GLib.DateMonth","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.DateWeekday","page":"GLib Types","title":"Gtk4.GLib.DateWeekday","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.DriveStartFlags","page":"GLib Types","title":"Gtk4.GLib.DriveStartFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.DriveStartStopType","page":"GLib Types","title":"Gtk4.GLib.DriveStartStopType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.EmblemOrigin","page":"GLib Types","title":"Gtk4.GLib.EmblemOrigin","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.ErrorType","page":"GLib Types","title":"Gtk4.GLib.ErrorType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.FileAttributeInfoFlags","page":"GLib Types","title":"Gtk4.GLib.FileAttributeInfoFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.FileAttributeStatus","page":"GLib Types","title":"Gtk4.GLib.FileAttributeStatus","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.FileAttributeType","page":"GLib Types","title":"Gtk4.GLib.FileAttributeType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.FileCopyFlags","page":"GLib Types","title":"Gtk4.GLib.FileCopyFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.FileCreateFlags","page":"GLib Types","title":"Gtk4.GLib.FileCreateFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.FileError","page":"GLib Types","title":"Gtk4.GLib.FileError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.FileMeasureFlags","page":"GLib Types","title":"Gtk4.GLib.FileMeasureFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.FileMonitorEvent","page":"GLib Types","title":"Gtk4.GLib.FileMonitorEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.FileMonitorFlags","page":"GLib Types","title":"Gtk4.GLib.FileMonitorFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.FileQueryInfoFlags","page":"GLib Types","title":"Gtk4.GLib.FileQueryInfoFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.FileSetContentsFlags","page":"GLib Types","title":"Gtk4.GLib.FileSetContentsFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.FileTest","page":"GLib Types","title":"Gtk4.GLib.FileTest","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.FileType","page":"GLib Types","title":"Gtk4.GLib.FileType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.FilesystemPreviewType","page":"GLib Types","title":"Gtk4.GLib.FilesystemPreviewType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.FormatSizeFlags","page":"GLib Types","title":"Gtk4.GLib.FormatSizeFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GAppInfoMonitor","page":"GLib Types","title":"Gtk4.GLib.GAppInfoMonitor","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GAppLaunchContext","page":"GLib Types","title":"Gtk4.GLib.GAppLaunchContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GApplication","page":"GLib Types","title":"Gtk4.GLib.GApplication","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GApplicationCommandLine","page":"GLib Types","title":"Gtk4.GLib.GApplicationCommandLine","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GBinding","page":"GLib Types","title":"Gtk4.GLib.GBinding","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GBookmarkFile","page":"GLib Types","title":"Gtk4.GLib.GBookmarkFile","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GBufferedInputStream","page":"GLib Types","title":"Gtk4.GLib.GBufferedInputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GBufferedOutputStream","page":"GLib Types","title":"Gtk4.GLib.GBufferedOutputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GBytes","page":"GLib Types","title":"Gtk4.GLib.GBytes","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GBytesIcon","page":"GLib Types","title":"Gtk4.GLib.GBytesIcon","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GCancellable","page":"GLib Types","title":"Gtk4.GLib.GCancellable","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GCharsetConverter","page":"GLib Types","title":"Gtk4.GLib.GCharsetConverter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GChecksum","page":"GLib Types","title":"Gtk4.GLib.GChecksum","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GConverterInputStream","page":"GLib Types","title":"Gtk4.GLib.GConverterInputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GConverterOutputStream","page":"GLib Types","title":"Gtk4.GLib.GConverterOutputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GCredentials","page":"GLib Types","title":"Gtk4.GLib.GCredentials","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GDBusActionGroup","page":"GLib Types","title":"Gtk4.GLib.GDBusActionGroup","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GDBusAuthObserver","page":"GLib Types","title":"Gtk4.GLib.GDBusAuthObserver","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GDBusConnection","page":"GLib Types","title":"Gtk4.GLib.GDBusConnection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GDBusErrorEntry","page":"GLib Types","title":"Gtk4.GLib.GDBusErrorEntry","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GDBusInterfaceSkeleton","page":"GLib Types","title":"Gtk4.GLib.GDBusInterfaceSkeleton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GDBusMenuModel","page":"GLib Types","title":"Gtk4.GLib.GDBusMenuModel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GDBusMessage","page":"GLib Types","title":"Gtk4.GLib.GDBusMessage","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GDBusMethodInvocation","page":"GLib Types","title":"Gtk4.GLib.GDBusMethodInvocation","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GDBusObjectManagerClient","page":"GLib Types","title":"Gtk4.GLib.GDBusObjectManagerClient","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GDBusObjectManagerServer","page":"GLib Types","title":"Gtk4.GLib.GDBusObjectManagerServer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GDBusObjectProxy","page":"GLib Types","title":"Gtk4.GLib.GDBusObjectProxy","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GDBusObjectSkeleton","page":"GLib Types","title":"Gtk4.GLib.GDBusObjectSkeleton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GDBusProxy","page":"GLib Types","title":"Gtk4.GLib.GDBusProxy","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GDBusServer","page":"GLib Types","title":"Gtk4.GLib.GDBusServer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GDataInputStream","page":"GLib Types","title":"Gtk4.GLib.GDataInputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GDataOutputStream","page":"GLib Types","title":"Gtk4.GLib.GDataOutputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GDate","page":"GLib Types","title":"Gtk4.GLib.GDate","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GDateTime","page":"GLib Types","title":"Gtk4.GLib.GDateTime","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GDebugKey","page":"GLib Types","title":"Gtk4.GLib.GDebugKey","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GDesktopAppInfo","page":"GLib Types","title":"Gtk4.GLib.GDesktopAppInfo","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GEmblem","page":"GLib Types","title":"Gtk4.GLib.GEmblem","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GEmblemedIcon","page":"GLib Types","title":"Gtk4.GLib.GEmblemedIcon","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GEnumClass","page":"GLib Types","title":"Gtk4.GLib.GEnumClass","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GFileAttributeInfo","page":"GLib Types","title":"Gtk4.GLib.GFileAttributeInfo","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GFileAttributeInfoList","page":"GLib Types","title":"Gtk4.GLib.GFileAttributeInfoList","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GFileAttributeMatcher","page":"GLib Types","title":"Gtk4.GLib.GFileAttributeMatcher","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GFileEnumerator","page":"GLib Types","title":"Gtk4.GLib.GFileEnumerator","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GFileIOStream","page":"GLib Types","title":"Gtk4.GLib.GFileIOStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GFileIcon","page":"GLib Types","title":"Gtk4.GLib.GFileIcon","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GFileInfo","page":"GLib Types","title":"Gtk4.GLib.GFileInfo","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GFileInputStream","page":"GLib Types","title":"Gtk4.GLib.GFileInputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GFileMonitor","page":"GLib Types","title":"Gtk4.GLib.GFileMonitor","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GFileOutputStream","page":"GLib Types","title":"Gtk4.GLib.GFileOutputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GFilenameCompleter","page":"GLib Types","title":"Gtk4.GLib.GFilenameCompleter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GFilterInputStream","page":"GLib Types","title":"Gtk4.GLib.GFilterInputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GFilterOutputStream","page":"GLib Types","title":"Gtk4.GLib.GFilterOutputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GFlagsClass","page":"GLib Types","title":"Gtk4.GLib.GFlagsClass","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GIOModule","page":"GLib Types","title":"Gtk4.GLib.GIOModule","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GIOStream","page":"GLib Types","title":"Gtk4.GLib.GIOStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GInetAddress","page":"GLib Types","title":"Gtk4.GLib.GInetAddress","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GInetAddressMask","page":"GLib Types","title":"Gtk4.GLib.GInetAddressMask","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GInetSocketAddress","page":"GLib Types","title":"Gtk4.GLib.GInetSocketAddress","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GInitiallyUnowned","page":"GLib Types","title":"Gtk4.GLib.GInitiallyUnowned","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GInputStream","page":"GLib Types","title":"Gtk4.GLib.GInputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GInputVector","page":"GLib Types","title":"Gtk4.GLib.GInputVector","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GInterfaceInfo","page":"GLib Types","title":"Gtk4.GLib.GInterfaceInfo","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GKeyFile","page":"GLib Types","title":"Gtk4.GLib.GKeyFile","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GListStore","page":"GLib Types","title":"Gtk4.GLib.GListStore","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GLogField","page":"GLib Types","title":"Gtk4.GLib.GLogField","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GMainContext","page":"GLib Types","title":"Gtk4.GLib.GMainContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GMainLoop","page":"GLib Types","title":"Gtk4.GLib.GMainLoop","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GMappedFile","page":"GLib Types","title":"Gtk4.GLib.GMappedFile","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GMarkupParseContext","page":"GLib Types","title":"Gtk4.GLib.GMarkupParseContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GMatchInfo","page":"GLib Types","title":"Gtk4.GLib.GMatchInfo","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GMemoryInputStream","page":"GLib Types","title":"Gtk4.GLib.GMemoryInputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GMemoryOutputStream","page":"GLib Types","title":"Gtk4.GLib.GMemoryOutputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GMenu","page":"GLib Types","title":"Gtk4.GLib.GMenu","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GMenuAttributeIter","page":"GLib Types","title":"Gtk4.GLib.GMenuAttributeIter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GMenuItem","page":"GLib Types","title":"Gtk4.GLib.GMenuItem","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GMenuLinkIter","page":"GLib Types","title":"Gtk4.GLib.GMenuLinkIter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GMenuModel","page":"GLib Types","title":"Gtk4.GLib.GMenuModel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GMountOperation","page":"GLib Types","title":"Gtk4.GLib.GMountOperation","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GNativeSocketAddress","page":"GLib Types","title":"Gtk4.GLib.GNativeSocketAddress","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GNetworkAddress","page":"GLib Types","title":"Gtk4.GLib.GNetworkAddress","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GNetworkService","page":"GLib Types","title":"Gtk4.GLib.GNetworkService","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GNotification","page":"GLib Types","title":"Gtk4.GLib.GNotification","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GOptionEntry","page":"GLib Types","title":"Gtk4.GLib.GOptionEntry","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GOutputStream","page":"GLib Types","title":"Gtk4.GLib.GOutputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GOutputVector","page":"GLib Types","title":"Gtk4.GLib.GOutputVector","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GParamSpecTypeInfo","page":"GLib Types","title":"Gtk4.GLib.GParamSpecTypeInfo","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GPatternSpec","page":"GLib Types","title":"Gtk4.GLib.GPatternSpec","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GPermission","page":"GLib Types","title":"Gtk4.GLib.GPermission","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GPropertyAction","page":"GLib Types","title":"Gtk4.GLib.GPropertyAction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GProxyAddress","page":"GLib Types","title":"Gtk4.GLib.GProxyAddress","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GProxyAddressEnumerator","page":"GLib Types","title":"Gtk4.GLib.GProxyAddressEnumerator","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GRegex","page":"GLib Types","title":"Gtk4.GLib.GRegex","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GResolver","page":"GLib Types","title":"Gtk4.GLib.GResolver","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GResource","page":"GLib Types","title":"Gtk4.GLib.GResource","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GScannerConfig","page":"GLib Types","title":"Gtk4.GLib.GScannerConfig","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSettings","page":"GLib Types","title":"Gtk4.GLib.GSettings","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSettingsBackend","page":"GLib Types","title":"Gtk4.GLib.GSettingsBackend","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSettingsSchema","page":"GLib Types","title":"Gtk4.GLib.GSettingsSchema","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSettingsSchemaKey","page":"GLib Types","title":"Gtk4.GLib.GSettingsSchemaKey","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSettingsSchemaSource","page":"GLib Types","title":"Gtk4.GLib.GSettingsSchemaSource","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSignalInvocationHint","page":"GLib Types","title":"Gtk4.GLib.GSignalInvocationHint","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSignalQuery","page":"GLib Types","title":"Gtk4.GLib.GSignalQuery","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSimpleAction-Union{Tuple{T}, Tuple{AbstractString, Type{T}, Any}} where T","page":"GLib Types","title":"Gtk4.GLib.GSimpleAction","text":"GSimpleAction(name::AbstractString, \n [parameter_type::Type{T}, [initial_state]]; kwargs...) where T\n\nCreate an action with a name and optionally a parameter_type from a Julia type (only a few simple types are supported) and an initial_state. If initial_state is not provided, the action will be stateless.\n\nKeyword arguments set the action's GObject properties.\n\n\n\n\n\n","category":"method"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSimpleActionGroup","page":"GLib Types","title":"Gtk4.GLib.GSimpleActionGroup","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSimpleAsyncResult","page":"GLib Types","title":"Gtk4.GLib.GSimpleAsyncResult","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSimpleIOStream","page":"GLib Types","title":"Gtk4.GLib.GSimpleIOStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSimplePermission","page":"GLib Types","title":"Gtk4.GLib.GSimplePermission","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSimpleProxyResolver","page":"GLib Types","title":"Gtk4.GLib.GSimpleProxyResolver","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSocket","page":"GLib Types","title":"Gtk4.GLib.GSocket","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSocketAddress","page":"GLib Types","title":"Gtk4.GLib.GSocketAddress","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSocketAddressEnumerator","page":"GLib Types","title":"Gtk4.GLib.GSocketAddressEnumerator","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSocketClient","page":"GLib Types","title":"Gtk4.GLib.GSocketClient","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSocketConnection","page":"GLib Types","title":"Gtk4.GLib.GSocketConnection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSocketControlMessage","page":"GLib Types","title":"Gtk4.GLib.GSocketControlMessage","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSocketListener","page":"GLib Types","title":"Gtk4.GLib.GSocketListener","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSocketService","page":"GLib Types","title":"Gtk4.GLib.GSocketService","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSource","page":"GLib Types","title":"Gtk4.GLib.GSource","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSourceCallbackFuncs","page":"GLib Types","title":"Gtk4.GLib.GSourceCallbackFuncs","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSrvTarget","page":"GLib Types","title":"Gtk4.GLib.GSrvTarget","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GString","page":"GLib Types","title":"Gtk4.GLib.GString","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSubprocess","page":"GLib Types","title":"Gtk4.GLib.GSubprocess","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GSubprocessLauncher","page":"GLib Types","title":"Gtk4.GLib.GSubprocessLauncher","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GTask","page":"GLib Types","title":"Gtk4.GLib.GTask","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GTcpConnection","page":"GLib Types","title":"Gtk4.GLib.GTcpConnection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GTcpWrapperConnection","page":"GLib Types","title":"Gtk4.GLib.GTcpWrapperConnection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GTestDBus","page":"GLib Types","title":"Gtk4.GLib.GTestDBus","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GThemedIcon","page":"GLib Types","title":"Gtk4.GLib.GThemedIcon","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GThreadedResolver","page":"GLib Types","title":"Gtk4.GLib.GThreadedResolver","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GThreadedSocketService","page":"GLib Types","title":"Gtk4.GLib.GThreadedSocketService","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GTimeZone","page":"GLib Types","title":"Gtk4.GLib.GTimeZone","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GTlsCertificate","page":"GLib Types","title":"Gtk4.GLib.GTlsCertificate","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GTlsConnection","page":"GLib Types","title":"Gtk4.GLib.GTlsConnection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GTlsDatabase","page":"GLib Types","title":"Gtk4.GLib.GTlsDatabase","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GTlsInteraction","page":"GLib Types","title":"Gtk4.GLib.GTlsInteraction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GTlsPassword","page":"GLib Types","title":"Gtk4.GLib.GTlsPassword","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GTypeFundamentalInfo","page":"GLib Types","title":"Gtk4.GLib.GTypeFundamentalInfo","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GTypeInfo","page":"GLib Types","title":"Gtk4.GLib.GTypeInfo","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GTypeModule","page":"GLib Types","title":"Gtk4.GLib.GTypeModule","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GTypePluginClass","page":"GLib Types","title":"Gtk4.GLib.GTypePluginClass","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GTypeQuery","page":"GLib Types","title":"Gtk4.GLib.GTypeQuery","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GUnixConnection","page":"GLib Types","title":"Gtk4.GLib.GUnixConnection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GUnixCredentialsMessage","page":"GLib Types","title":"Gtk4.GLib.GUnixCredentialsMessage","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GUri","page":"GLib Types","title":"Gtk4.GLib.GUri","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GValueArray","page":"GLib Types","title":"Gtk4.GLib.GValueArray","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GVariantBuilder","page":"GLib Types","title":"Gtk4.GLib.GVariantBuilder","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GVariantDict","page":"GLib Types","title":"Gtk4.GLib.GVariantDict","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GVariantType","page":"GLib Types","title":"Gtk4.GLib.GVariantType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GVfs","page":"GLib Types","title":"Gtk4.GLib.GVfs","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GVolumeMonitor","page":"GLib Types","title":"Gtk4.GLib.GVolumeMonitor","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GXdpDocumentsIface","page":"GLib Types","title":"Gtk4.GLib.GXdpDocumentsIface","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GXdpOpenURIIface","page":"GLib Types","title":"Gtk4.GLib.GXdpOpenURIIface","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GXdpProxyResolverIface","page":"GLib Types","title":"Gtk4.GLib.GXdpProxyResolverIface","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GXdpTrashIface","page":"GLib Types","title":"Gtk4.GLib.GXdpTrashIface","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GZlibCompressor","page":"GLib Types","title":"Gtk4.GLib.GZlibCompressor","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.GZlibDecompressor","page":"GLib Types","title":"Gtk4.GLib.GZlibDecompressor","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.G_FreedesktopDBusIface","page":"GLib Types","title":"Gtk4.GLib.G_FreedesktopDBusIface","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.G_FreedesktopDBusProxy","page":"GLib Types","title":"Gtk4.GLib.G_FreedesktopDBusProxy","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.G_FreedesktopDBusSkeleton","page":"GLib Types","title":"Gtk4.GLib.G_FreedesktopDBusSkeleton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.HookFlagMask","page":"GLib Types","title":"Gtk4.GLib.HookFlagMask","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.IOChannelError","page":"GLib Types","title":"Gtk4.GLib.IOChannelError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.IOCondition","page":"GLib Types","title":"Gtk4.GLib.IOCondition","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.IOError","page":"GLib Types","title":"Gtk4.GLib.IOError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.IOErrorEnum","page":"GLib Types","title":"Gtk4.GLib.IOErrorEnum","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.IOFlags","page":"GLib Types","title":"Gtk4.GLib.IOFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.IOModuleScopeFlags","page":"GLib Types","title":"Gtk4.GLib.IOModuleScopeFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.IOStatus","page":"GLib Types","title":"Gtk4.GLib.IOStatus","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.IOStreamSpliceFlags","page":"GLib Types","title":"Gtk4.GLib.IOStreamSpliceFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.KeyFileError","page":"GLib Types","title":"Gtk4.GLib.KeyFileError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.KeyFileFlags","page":"GLib Types","title":"Gtk4.GLib.KeyFileFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.LogLevelFlags","page":"GLib Types","title":"Gtk4.GLib.LogLevelFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.LogWriterOutput","page":"GLib Types","title":"Gtk4.GLib.LogWriterOutput","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.MainContextFlags","page":"GLib Types","title":"Gtk4.GLib.MainContextFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.MarkupCollectType","page":"GLib Types","title":"Gtk4.GLib.MarkupCollectType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.MarkupError","page":"GLib Types","title":"Gtk4.GLib.MarkupError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.MarkupParseFlags","page":"GLib Types","title":"Gtk4.GLib.MarkupParseFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.MemoryMonitorWarningLevel","page":"GLib Types","title":"Gtk4.GLib.MemoryMonitorWarningLevel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.MountMountFlags","page":"GLib Types","title":"Gtk4.GLib.MountMountFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.MountOperationResult","page":"GLib Types","title":"Gtk4.GLib.MountOperationResult","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.MountUnmountFlags","page":"GLib Types","title":"Gtk4.GLib.MountUnmountFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.NetworkConnectivity","page":"GLib Types","title":"Gtk4.GLib.NetworkConnectivity","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.NormalizeMode","page":"GLib Types","title":"Gtk4.GLib.NormalizeMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.NotificationPriority","page":"GLib Types","title":"Gtk4.GLib.NotificationPriority","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.NumberParserError","page":"GLib Types","title":"Gtk4.GLib.NumberParserError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.OnceStatus","page":"GLib Types","title":"Gtk4.GLib.OnceStatus","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.OptionArg","page":"GLib Types","title":"Gtk4.GLib.OptionArg","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.OptionError","page":"GLib Types","title":"Gtk4.GLib.OptionError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.OptionFlags","page":"GLib Types","title":"Gtk4.GLib.OptionFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.OutputStreamSpliceFlags","page":"GLib Types","title":"Gtk4.GLib.OutputStreamSpliceFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.ParamFlags","page":"GLib Types","title":"Gtk4.GLib.ParamFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.PasswordSave","page":"GLib Types","title":"Gtk4.GLib.PasswordSave","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.PollableReturn","page":"GLib Types","title":"Gtk4.GLib.PollableReturn","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.RegexCompileFlags","page":"GLib Types","title":"Gtk4.GLib.RegexCompileFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.RegexError","page":"GLib Types","title":"Gtk4.GLib.RegexError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.RegexMatchFlags","page":"GLib Types","title":"Gtk4.GLib.RegexMatchFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.ResolverError","page":"GLib Types","title":"Gtk4.GLib.ResolverError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.ResolverNameLookupFlags","page":"GLib Types","title":"Gtk4.GLib.ResolverNameLookupFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.ResolverRecordType","page":"GLib Types","title":"Gtk4.GLib.ResolverRecordType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.ResourceError","page":"GLib Types","title":"Gtk4.GLib.ResourceError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.ResourceFlags","page":"GLib Types","title":"Gtk4.GLib.ResourceFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.ResourceLookupFlags","page":"GLib Types","title":"Gtk4.GLib.ResourceLookupFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.SeekType","page":"GLib Types","title":"Gtk4.GLib.SeekType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.SettingsBindFlags","page":"GLib Types","title":"Gtk4.GLib.SettingsBindFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.ShellError","page":"GLib Types","title":"Gtk4.GLib.ShellError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.SignalFlags","page":"GLib Types","title":"Gtk4.GLib.SignalFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.SignalMatchType","page":"GLib Types","title":"Gtk4.GLib.SignalMatchType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.SocketClientEvent","page":"GLib Types","title":"Gtk4.GLib.SocketClientEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.SocketFamily","page":"GLib Types","title":"Gtk4.GLib.SocketFamily","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.SocketListenerEvent","page":"GLib Types","title":"Gtk4.GLib.SocketListenerEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.SocketMsgFlags","page":"GLib Types","title":"Gtk4.GLib.SocketMsgFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.SocketProtocol","page":"GLib Types","title":"Gtk4.GLib.SocketProtocol","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.SocketType","page":"GLib Types","title":"Gtk4.GLib.SocketType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.SpawnError","page":"GLib Types","title":"Gtk4.GLib.SpawnError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.SpawnFlags","page":"GLib Types","title":"Gtk4.GLib.SpawnFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.SubprocessFlags","page":"GLib Types","title":"Gtk4.GLib.SubprocessFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.TestDBusFlags","page":"GLib Types","title":"Gtk4.GLib.TestDBusFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.TestFileType","page":"GLib Types","title":"Gtk4.GLib.TestFileType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.TestSubprocessFlags","page":"GLib Types","title":"Gtk4.GLib.TestSubprocessFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.ThreadError","page":"GLib Types","title":"Gtk4.GLib.ThreadError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.TimeType","page":"GLib Types","title":"Gtk4.GLib.TimeType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.TlsAuthenticationMode","page":"GLib Types","title":"Gtk4.GLib.TlsAuthenticationMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.TlsCertificateFlags","page":"GLib Types","title":"Gtk4.GLib.TlsCertificateFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.TlsCertificateRequestFlags","page":"GLib Types","title":"Gtk4.GLib.TlsCertificateRequestFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.TlsChannelBindingError","page":"GLib Types","title":"Gtk4.GLib.TlsChannelBindingError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.TlsChannelBindingType","page":"GLib Types","title":"Gtk4.GLib.TlsChannelBindingType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.TlsDatabaseLookupFlags","page":"GLib Types","title":"Gtk4.GLib.TlsDatabaseLookupFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.TlsDatabaseVerifyFlags","page":"GLib Types","title":"Gtk4.GLib.TlsDatabaseVerifyFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.TlsError","page":"GLib Types","title":"Gtk4.GLib.TlsError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.TlsInteractionResult","page":"GLib Types","title":"Gtk4.GLib.TlsInteractionResult","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.TlsPasswordFlags","page":"GLib Types","title":"Gtk4.GLib.TlsPasswordFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.TlsProtocolVersion","page":"GLib Types","title":"Gtk4.GLib.TlsProtocolVersion","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.TokenType","page":"GLib Types","title":"Gtk4.GLib.TokenType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.TraverseFlags","page":"GLib Types","title":"Gtk4.GLib.TraverseFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.TraverseType","page":"GLib Types","title":"Gtk4.GLib.TraverseType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.TypeFlags","page":"GLib Types","title":"Gtk4.GLib.TypeFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.TypeFundamentalFlags","page":"GLib Types","title":"Gtk4.GLib.TypeFundamentalFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.UnicodeBreakType","page":"GLib Types","title":"Gtk4.GLib.UnicodeBreakType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.UnicodeScript","page":"GLib Types","title":"Gtk4.GLib.UnicodeScript","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.UnicodeType","page":"GLib Types","title":"Gtk4.GLib.UnicodeType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.UnixSocketAddressType","page":"GLib Types","title":"Gtk4.GLib.UnixSocketAddressType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.UriError","page":"GLib Types","title":"Gtk4.GLib.UriError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.UriFlags","page":"GLib Types","title":"Gtk4.GLib.UriFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.UriHideFlags","page":"GLib Types","title":"Gtk4.GLib.UriHideFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.UriParamsFlags","page":"GLib Types","title":"Gtk4.GLib.UriParamsFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.UserDirectory","page":"GLib Types","title":"Gtk4.GLib.UserDirectory","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.VariantClass","page":"GLib Types","title":"Gtk4.GLib.VariantClass","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.VariantParseError","page":"GLib Types","title":"Gtk4.GLib.VariantParseError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_types_reference/#Gtk4.GLib.ZlibCompressorFormat","page":"GLib Types","title":"Gtk4.GLib.ZlibCompressorFormat","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"manual/keyevents/#Key-Events","page":"Key Events","title":"Key Events","text":"","category":"section"},{"location":"manual/keyevents/#Key-press-events","page":"Key Events","title":"Key press events","text":"","category":"section"},{"location":"manual/keyevents/","page":"Key Events","title":"Key Events","text":"To capture a keyboard event, one can add a GtkEventControllerKey to a widget (for example, a window) and add a callback, as shown in the following example.","category":"page"},{"location":"manual/keyevents/","page":"Key Events","title":"Key Events","text":"using Gtk4\n\nwin = GtkWindow(\"Key Press Example\")\neck = GtkEventControllerKey(win)\n\nsignal_connect(eck, \"key-pressed\") do controller, keyval, keycode, state\n println(\"You pressed key \", keyval, \" which is '\", Char(keyval), \"'.\")\nend","category":"page"},{"location":"manual/keyevents/","page":"Key Events","title":"Key Events","text":"You can then check if event.keyval has a certain value and invoke an action in that case.","category":"page"},{"location":"manual/keyevents/#Modifiers","page":"Key Events","title":"Modifiers","text":"","category":"section"},{"location":"manual/keyevents/","page":"Key Events","title":"Key Events","text":"To detect combination keypresses like \"Control-w\", you can use the argument state, which is a GdkModifierType.","category":"page"},{"location":"manual/keyevents/","page":"Key Events","title":"Key Events","text":"using Gtk4\n\nwin = GtkWindow(\"Control-W to close\")\neck = GtkEventControllerKey(win)\n\nsignal_connect(eck, \"key-pressed\") do controller, keyval, keycode, state\n mask = Gtk4.ModifierType_CONTROL_MASK\n if ((ModifierType(state & Gtk4.MODIFIER_MASK) & mask == mask) && keyval == UInt('w'))\n close(widget(eck))\n end\nend","category":"page"},{"location":"manual/keyevents/#Key-release-events","page":"Key Events","title":"Key release events","text":"","category":"section"},{"location":"manual/keyevents/","page":"Key Events","title":"Key Events","text":"The following example captures the events for both a key press and a key release and reports the time duration between the two. There is some state handling here because of the likely event that your keyboard is set to \"repeat\" a pressed key after some initial delay and because it is possible to press multiple keys at once. This version reports the time elapsed between the initial key press and the key release.","category":"page"},{"location":"manual/keyevents/","page":"Key Events","title":"Key Events","text":"using Gtk4\n\nconst start_times = Dict{UInt32, UInt32}()\n\nw = GtkWindow(\"Key Press/Release Example\")\neck = GtkEventControllerKey(w)\n\nid1 = signal_connect(eck, \"key-pressed\") do controller, keyval, keycode, state\n if keyval ∉ keys(start_times)\n start_times[keyval] = Gtk4.current_event_time(controller) # save the initial key press time\n println(\"You pressed key \", keyval, \" which is '\", Char(keyval), \"'.\")\n else\n println(\"repeating key \", keyval)\n end\nend\n\nid2 = signal_connect(eck, \"key-released\") do controller, keyval, keycode, state\n start_time = pop!(start_times, keyval) # remove the key from the dictionary\n event = Gtk4.current_event(controller)\n duration = Gtk4.time(event) - start_time # key press duration in milliseconds\n println(\"You released key \", keyval, \" after time \", duration, \" msec.\")\nend","category":"page"},{"location":"manual/canvas/#Drawing-with-Cairo","page":"Drawing with Cairo","title":"Drawing with Cairo","text":"","category":"section"},{"location":"manual/canvas/","page":"Drawing with Cairo","title":"Drawing with Cairo","text":"note: Example\nThe code below can be found in \"canvas.jl\" in the \"examples\" subdirectory.","category":"page"},{"location":"manual/canvas/","page":"Drawing with Cairo","title":"Drawing with Cairo","text":"Cairo based drawing can be done on Gtk4.jl's GtkCanvas widget, which is based on GTK's GtkDrawingArea. The canvas widget comes with a backing store (a Cairo image surface). You control what is drawn on this backing store by defining a draw function:","category":"page"},{"location":"manual/canvas/","page":"Drawing with Cairo","title":"Drawing with Cairo","text":"using Gtk4, Graphics\nc = GtkCanvas()\nwin = GtkWindow(c, \"Canvas\")\n@guarded draw(c) do widget\n ctx = getgc(c)\n h = height(c)\n w = width(c)\n # Paint red rectangle\n rectangle(ctx, 0, 0, w, h/2)\n set_source_rgb(ctx, 1, 0, 0)\n fill(ctx)\n # Paint blue rectangle\n rectangle(ctx, 0, 3h/4, w, h/4)\n set_source_rgb(ctx, 0, 0, 1)\n fill(ctx)\nend","category":"page"},{"location":"manual/canvas/","page":"Drawing with Cairo","title":"Drawing with Cairo","text":"This draw function will be called each time the window is resized or otherwise needs to refresh its display. If you need to force a redraw of the canvas, you can call reveal on the canvas widget.","category":"page"},{"location":"manual/canvas/","page":"Drawing with Cairo","title":"Drawing with Cairo","text":"(Image: canvas)","category":"page"},{"location":"manual/canvas/","page":"Drawing with Cairo","title":"Drawing with Cairo","text":"Errors in the draw function can corrupt Gtk4's internal state; if this happens, you have to quit julia and start a fresh session. To avoid this problem, the @guarded macro wraps your code in a try/catch block and prevents the corruption. It is especially useful when initially writing and debugging code.","category":"page"},{"location":"manual/canvas/#Mouse-events","page":"Drawing with Cairo","title":"Mouse events","text":"","category":"section"},{"location":"manual/canvas/","page":"Drawing with Cairo","title":"Drawing with Cairo","text":"Mouse events can be handled using event controllers. The event controller for mouse clicks is GtkGestureClick. We first create this event controller, then add it to the widget using push!.","category":"page"},{"location":"manual/canvas/","page":"Drawing with Cairo","title":"Drawing with Cairo","text":"g=GtkGestureClick()\npush!(c,g)\n\nfunction on_pressed(controller, n_press, x, y)\n w=widget(controller)\n ctx = getgc(w)\n set_source_rgb(ctx, 0, 1, 0)\n arc(ctx, x, y, 5, 0, 2pi)\n stroke(ctx)\n reveal(w)\nend\n\nsignal_connect(on_pressed, g, \"pressed\")","category":"page"},{"location":"manual/canvas/","page":"Drawing with Cairo","title":"Drawing with Cairo","text":"This will draw a green circle on the canvas at every mouse click. Resizing the window will make them go away; they were drawn on top of the canvas one by one, but they weren't added to the draw function, which is what is called when the widget is refreshed.","category":"page"},{"location":"manual/canvas/#Controlling-the-widget's-size","page":"Drawing with Cairo","title":"Controlling the widget's size","text":"","category":"section"},{"location":"manual/canvas/","page":"Drawing with Cairo","title":"Drawing with Cairo","text":"In the example above, the canvas was the direct child of the window, and its size is determined by the window size. If you instead make the canvas a child of one of GTK's layout widgets, like GtkBox or GtkGrid, it doesn't appear because by default, the drawing area widget does not expand to fill the space available. You can override this by setting the canvas's properties vexpand and hexpand to true. Alternatively, if you want to set the canvas to have a minimum width and height in pixels, you can set its properties content_width and content_height.","category":"page"},{"location":"manual/canvas/","page":"Drawing with Cairo","title":"Drawing with Cairo","text":"You can perform computations only when the widget is resized by connecting to the \"resize\" signal.","category":"page"},{"location":"manual/canvas/#Using-GtkCanvas-with-higher-level-Julia-packages","page":"Drawing with Cairo","title":"Using GtkCanvas with higher-level Julia packages","text":"","category":"section"},{"location":"manual/canvas/","page":"Drawing with Cairo","title":"Drawing with Cairo","text":"It's pretty straightforward to use GtkCanvas to display Cairo-based plots and diagrams produced by packages like CairoMakie.jl or Luxor.jl.","category":"page"},{"location":"manual/canvas/","page":"Drawing with Cairo","title":"Drawing with Cairo","text":"A minimal example of displaying a CairoMakie plot is shown below:","category":"page"},{"location":"manual/canvas/","page":"Drawing with Cairo","title":"Drawing with Cairo","text":"using Gtk4, CairoMakie\n\nconfig = CairoMakie.ScreenConfig(1.0, 1.0, :good, true, false)\nCairoMakie.activate!()\n\ncanvas = GtkCanvas()\nw = GtkWindow(canvas,\"CairoMakie example\")\n\n@guarded draw(canvas) do widget\n global f, ax, p = lines(1:10)\n CairoMakie.autolimits!(ax) \t\n screen = CairoMakie.Screen(f.scene, config, Gtk4.cairo_surface(canvas))\n CairoMakie.resize!(f.scene, Gtk4.width(widget), Gtk4.height(widget))\n CairoMakie.cairo_draw(screen, f.scene)\nend","category":"page"},{"location":"manual/canvas/","page":"Drawing with Cairo","title":"Drawing with Cairo","text":"note: Example\nA more complicated example can be found in \"canvas_cairomakie.jl\" in the \"examples\" subdirectory.","category":"page"},{"location":"doc/reference/#Gtk4-Reference","page":"Gtk4 Reference","title":"Gtk4 Reference","text":"","category":"section"},{"location":"doc/reference/#Widgets","page":"Gtk4 Reference","title":"Widgets","text":"","category":"section"},{"location":"doc/reference/","page":"Gtk4 Reference","title":"Gtk4 Reference","text":"Base.parent\nBase.show\nGraphics.height\nGraphics.width\nGtk4.activate\nGtk4.cursor\nGtk4.grab_focus\nGtk4.hasparent\nGtk4.hide\nGtk4.isvisible\nGtk4.reveal\nGtk4.toplevel\nGtk4.visible\nGtk4.display\nGtk4.monitor\nGtk4.size_request\nGtk4.isrealized\nGtk4.add_css_class\nGtk4.remove_css_class\nGtk4.css_classes","category":"page"},{"location":"doc/reference/#Base.parent","page":"Gtk4 Reference","title":"Base.parent","text":"parent(w::GtkWidget)\n\nReturns the parent widget of w, or nothing if the widget has not been set as the child of another widget (or is a toplevel widget, like a GtkWindow).\n\nSee also toplevel.\n\nRelated GTK function: gtk_widget_get_parent()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Base.show","page":"Gtk4 Reference","title":"Base.show","text":"show(w::GtkWidget)\n\nFlag w to be displayed and return w.\n\nRelated GTK function: gtk_widget_show()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Graphics.height","page":"Gtk4 Reference","title":"Graphics.height","text":"height(w::GtkWidget)\n\nReturns the allocated height of w in pixels.\n\nRelated GTK function: gtk_widget_get_allocated_height()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Graphics.width","page":"Gtk4 Reference","title":"Graphics.width","text":"width(w::GtkWidget)\n\nReturns the allocated width of w in pixels.\n\nRelated GTK function: gtk_widget_get_allocated_width()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.GLib.activate","page":"Gtk4 Reference","title":"Gtk4.GLib.activate","text":"activate(a::GAction, par = nothing)\n\nActivates an action, optionally with a parameter par, which if given should be a GVariant.\n\n\n\n\n\nactivate(w::GtkWidget)\n\nActivates widgets like buttons, menu items, etc. that support being activated. Returns false if the widget is not activatable.\n\nRelated GTK function: gtk_widget_activate()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.cursor","page":"Gtk4 Reference","title":"Gtk4.cursor","text":"cursor(w::GtkWidget)\n\nGets the cursor c for a widget w.\n\nRelated GTK function: gtk_widget_get_cursor()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.grab_focus","page":"Gtk4 Reference","title":"Gtk4.grab_focus","text":"grab_focus(w::GtkWidget)\n\nGives w the keyboard focus for the window it is in. Returns false if this fails.\n\nRelated GTK function: gtk_widget_grab_focus()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.hasparent","page":"Gtk4 Reference","title":"Gtk4.hasparent","text":"hasparent(w::GtkWidget) -> Bool\n\nReturns true if w has a parent widget.\n\nSee also parent.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.hide","page":"Gtk4 Reference","title":"Gtk4.hide","text":"hide(w::GtkWidget)\n\nFlag w to be hidden and return w. This is the opposite of show.\n\nRelated GTK function: gtk_widget_hide()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.isvisible","page":"Gtk4 Reference","title":"Gtk4.isvisible","text":"isvisible(w::GtkWidget) -> Bool\n\nReturns whether w and all of its parents are marked as visible.\n\nRelated GTK function: gtk_widget_is_visible()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.reveal","page":"Gtk4 Reference","title":"Gtk4.reveal","text":"reveal(w::GtkWidget)\n\nTriggers a redraw of a widget by calling GTK's gtk_widget_queue_draw.\n\nRelated GTK function: gtk_widget_queue_draw())\n\n\n\n\n\nreveal(w::GtkGLArea)\n\nTriggers a redraw of a widget by calling GTK's gtk_glarea_queue_render.\n\nRelated GTK function: gtk_gl_area_queue_render()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.toplevel","page":"Gtk4 Reference","title":"Gtk4.toplevel","text":"toplevel(w::GtkWidget)\n\nReturns the topmost ancestor of w, which in most cases will be a GtkWindow.\n\nSee also parent.\n\nRelated GTK function: gtk_widget_get_root()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.visible","page":"Gtk4 Reference","title":"Gtk4.visible","text":"visible(w::GtkWidget, state::Bool)\n\nControl visibility of w. Note that w will not be visible unless its parent is also visible.\n\nRelated GTK function: gtk_widget_set_visible()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.display","page":"Gtk4 Reference","title":"Gtk4.display","text":"display(w::GtkWidget)\n\nGets the GdkDisplay for w. Should only be called if w has been added to a widget hierarchy.\n\nRelated GTK function: gtk_widget_get_display()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.monitor","page":"Gtk4 Reference","title":"Gtk4.monitor","text":"monitor(w::GtkWidget)\n\nGets the GdkMonitor where w is displayed, or nothing if the widget is not part of a widget hierarchy.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.size_request","page":"Gtk4 Reference","title":"Gtk4.size_request","text":"size_request(w::GtkWidget, s)\n\nSet the minimum size w to s, which should be a tuple (width, height).\n\nRelated GTK function: gtk_widget_set_size_request()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.isrealized","page":"Gtk4 Reference","title":"Gtk4.isrealized","text":"isrealized(w::GtkWidget)\n\nReturns whether w is realized (that is, whether it has been associated with a drawing surface).\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.add_css_class","page":"Gtk4 Reference","title":"Gtk4.add_css_class","text":"add_css_class(w::GtkWidget, c::AbstractString)\n\nAdd a CSS class to a widget.\n\nSee also remove_css_class.\n\nRelated GTK function: gtk_widget_add_css_class()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.remove_css_class","page":"Gtk4 Reference","title":"Gtk4.remove_css_class","text":"remove_css_class(w::GtkWidget, c::AbstractString)\n\nRemove a CSS class from a widget.\n\nSee also add_css_class.\n\nRelated GTK function: gtk_widget_add_css_class()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.css_classes","page":"Gtk4 Reference","title":"Gtk4.css_classes","text":"css_classes(w::GtkWidget, c::Vector{AbstractString})\n\nSets the CSS style classes for a widget, replacing the previously set classes.\n\nRelated GTK function: gtk_widget_set_css_classes()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Windows","page":"Gtk4 Reference","title":"Windows","text":"","category":"section"},{"location":"doc/reference/","page":"Gtk4 Reference","title":"Gtk4 Reference","text":"Gtk4.GtkWindow\nBase.close\nCairo.destroy\nGtk4.default_size\nGtk4.fullscreen\nGtk4.unfullscreen\nGtk4.isfullscreen\nGtk4.isactive\nGtk4.maximize\nGtk4.unmaximize\nGtk4.present\nGtk4.toplevels","category":"page"},{"location":"doc/reference/#Gtk4.GtkWindow","page":"Gtk4 Reference","title":"Gtk4.GtkWindow","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Base.close","page":"Gtk4 Reference","title":"Base.close","text":"close(win::GtkWindow)\n\nRequest that win is closed.\n\nRelated GTK function: gtk_window_close()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Cairo.destroy","page":"Gtk4 Reference","title":"Cairo.destroy","text":"destroy(win::GtkWindow)\n\nDrop GTK's reference to win.\n\nRelated GTK function: gtk_window_destroy()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.default_size","page":"Gtk4 Reference","title":"Gtk4.default_size","text":"default_size(win::GtkWindow, w, h)\n\nSet the default size of a GtkWindow.\n\nRelated GTK function: gtk_window_default_size()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.fullscreen","page":"Gtk4 Reference","title":"Gtk4.fullscreen","text":"fullscreen(win::GtkWindow)\n\nSet win to fullscreen mode.\n\nSee also unfullscreen.\n\nRelated GTK function: gtk_window_fullscreen()\n\n\n\n\n\nfullscreen(win::GtkWindow, mon::GdkMonitor)\n\nSet win to fullscreen mode on a particular monitor mon. The windowing system (outside GTK's control) may not allow this, so it may not work on some platforms.\n\nSee also unfullscreen.\n\nRelated GTK function: gtk_window_fullscreen_on_monitor()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.unfullscreen","page":"Gtk4 Reference","title":"Gtk4.unfullscreen","text":"unfullscreen(win::GtkWindow)\n\nIf win is in fullscreen mode, return it to normal mode.\n\nSee also fullscreen.\n\nRelated GTK function: gtk_window_unfullscreen()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.isfullscreen","page":"Gtk4 Reference","title":"Gtk4.isfullscreen","text":"isfullscreen(win::GtkWindow)\n\nGet whether win is in fullscreen mode.\n\nSee also fullscreen.\n\nRelated GTK function: gtk_window_is_fullscreen()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.isactive","page":"Gtk4 Reference","title":"Gtk4.isactive","text":"isactive(win::GtkWindow)\n\nReturns whether win is the currently active toplevel. This is the window that receives keystrokes.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.maximize","page":"Gtk4 Reference","title":"Gtk4.maximize","text":"maximize(win::GtkWindow)\n\nRequest that the window win be maximized.\n\nSee also unmaximize.\n\nRelated GTK function: gtk_window_maximize()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.unmaximize","page":"Gtk4 Reference","title":"Gtk4.unmaximize","text":"unmaximize(win::GtkWindow)\n\nIf win is maximized, return it to its former size.\n\nSee also maximize.\n\nRelated GTK function: gtk_window_unmaximize()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.present","page":"Gtk4 Reference","title":"Gtk4.present","text":"present(win::GtkWindow)\npresent(win::GtkWindow, timestamp)\n\nPresents a window to the user. Usually means move it to the front. According to the GTK docs, this function \"should not be used\" without including a timestamp for the user's request.\n\nRelated GTK function: gtk_window_present() Related GTK function: gtk_window_present_with_time()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.toplevels","page":"Gtk4 Reference","title":"Gtk4.toplevels","text":"toplevels()\n\nReturns a GListModel of all toplevel widgets (i.e. windows) known to GTK4.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Input-widgets","page":"Gtk4 Reference","title":"Input widgets","text":"","category":"section"},{"location":"doc/reference/","page":"Gtk4 Reference","title":"Gtk4 Reference","text":"Gtk4.configure!\nGtk4.selected_string!\nGtk4.selected_string","category":"page"},{"location":"doc/reference/#Gtk4.configure!","page":"Gtk4 Reference","title":"Gtk4.configure!","text":"configure!(adj::GtkAdjustment; value = nothing, lower = nothing, upper = nothing, step_increment = nothing, page_increment = nothing, page_size = nothing)\n\nSets all properties of an adjustment, while only resulting in one emission of the changed signal. If an argument is nothing, it is not changed.\n\nRelated GTK function: gtk_adjustment_configure()\n\n\n\n\n\nconfigure!(sb::GtkSpinButton; adj = nothing, climb_rate = nothing, digits = nothing)\n\nSets the adjustment adj, the climb_rate, and the number of digits of a GtkSpinButton. If an argument is nothing, it is not changed.\n\nRelated GTK function: gtk_spin_button_configure()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.selected_string!","page":"Gtk4 Reference","title":"Gtk4.selected_string!","text":"selected_string!(d::GtkDropDown, s::AbstractString)\n\nSet the selected item in a dropdown widget. This method assumes that the widget's model is a GtkStringList.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.selected_string","page":"Gtk4 Reference","title":"Gtk4.selected_string","text":"selected_string(d::GtkDropDown)\n\nGet the currently selected item in a dropdown widget. This method assumes that the widget's model is a GtkStringList or that items in the model have a \"string\" property.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Dialogs","page":"Gtk4 Reference","title":"Dialogs","text":"","category":"section"},{"location":"doc/reference/","page":"Gtk4 Reference","title":"Gtk4 Reference","text":"Gtk4.ask_dialog\nGtk4.info_dialog\nGtk4.input_dialog\nGtk4.open_dialog\nGtk4.save_dialog","category":"page"},{"location":"doc/reference/#Gtk4.ask_dialog","page":"Gtk4 Reference","title":"Gtk4.ask_dialog","text":"ask_dialog(question::AbstractString, parent = nothing; timeout = -1)\n\nCreate a dialog with a message question and two buttons \"No\" and \"Yes\". Returns true if \"Yes\" is selected and false if \"No\" is selected or the dialog (or its parent window parent) is closed. The optional input timeout (disabled by default) can be used to set a time in seconds after which the dialog will close and false will be returned.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.info_dialog","page":"Gtk4 Reference","title":"Gtk4.info_dialog","text":"info_dialog(message::AbstractString, parent = nothing; timeout = -1)\n\nCreate a dialog with an informational message message. Returns when the dialog (or its parent window parent) is closed. The optional input timeout (disabled by default) can be used to set a time in seconds after which the dialog will close and false will be returned.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.input_dialog","page":"Gtk4 Reference","title":"Gtk4.input_dialog","text":"input_dialog(message::AbstractString, entry_default::AbstractString, buttons = ((\"Cancel\", 0), (\"Accept\", 1)), parent = nothing; timeout = -1)\n\nCreate a dialog with a message message and a text entry. Returns the string in the entry when the \"Accept\" button is pressed, or entry_default if \"Cancel\" is pressed or the dialog or its parent window parent is closed. The optional input timeout (disabled by default) can be used to set a time in seconds after which the dialog will close and entry_default will be returned.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.open_dialog","page":"Gtk4 Reference","title":"Gtk4.open_dialog","text":"open_dialog(title::AbstractString, parent = nothing, filters::Union{AbstractVector, Tuple} = String[]; timeout = -1, multiple = false, start_folder = \"\")\n\nCreate a dialog for choosing a file or folder to be opened. Returns the path chosen by the user, or \"\" if \"Cancel\" is pressed or the dialog or its parent window parent is closed. The dialog title is set using title. The argument filters can be used to show only directory contents that match certain file extensions.\n\nKeyword arguments: timeout: The optional input timeout (disabled by default) can be used to set a time in seconds after which the dialog will close and \"\" will be returned. multiple: if true, multiple files can be selected, and a list of file paths is returned rather than a single path. start_folder: if set, the dialog will start out browsing a particular folder. Otherwise GTK will decide.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.save_dialog","page":"Gtk4 Reference","title":"Gtk4.save_dialog","text":"save_dialog(title::AbstractString, parent = nothing, filters::Union{AbstractVector, Tuple} = String[]; timeout = -1, start_folder = \"\")\n\nCreate a dialog for choosing a file to be saved to. Returns the path chosen by the user, or \"\" if \"Cancel\" is pressed or the dialog or its parent window parent is closed. The window title is set using title. The argument filters can be used to show only directory contents that match certain file extensions.\n\nKeyword arguments: timeout: The optional input timeout (disabled by default) can be used to set a time in seconds after which the dialog will close and \"\" will be returned. start_folder: if set, the dialog will start out browsing a particular folder. Otherwise GTK will decide.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#GtkCanvas-(for-Cairo-drawing)","page":"Gtk4 Reference","title":"GtkCanvas (for Cairo drawing)","text":"","category":"section"},{"location":"doc/reference/","page":"Gtk4 Reference","title":"Gtk4 Reference","text":"Gtk4.GtkCanvas\nGtk4.draw\nGraphics.getgc\nGtk4.cairo_surface","category":"page"},{"location":"doc/reference/#Gtk4.GtkCanvas","page":"Gtk4 Reference","title":"Gtk4.GtkCanvas","text":"GtkCanvas(w = -1, h = -1, init_back = false; kwargs...)\n\nCreate a GtkCanvas widget for drawing using Cairo (based on GtkDrawingArea). Optional arguments w and h can be used to set the minimum width and height of the drawing area in pixels. If init_back is set to true, the canvas's image CairoSurface will be initialized immediately, which is useful for precompilation.\n\nKeyword arguments can be used to set properties of the GtkDrawingArea widget.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.draw","page":"Gtk4 Reference","title":"Gtk4.draw","text":"draw(redraw::Function, widget::GtkCanvas)\n\nSet a function redraw to be called whenever the GtkCanvas's CairoSurface needs to be redrawn. The function should have a single argument, the GtkCanvas, from which the CairoSurface can be retrieved using getgc.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Graphics.getgc","page":"Gtk4 Reference","title":"Graphics.getgc","text":"getgc(c::GtkCanvas)\n\nReturn the CairoContext of the CairoSurface backing store of a GtkCanvas.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.cairo_surface","page":"Gtk4 Reference","title":"Gtk4.cairo_surface","text":"cairo_surface(c::GtkCanvas)\n\nReturn the image CairoSurface backing store for a GtkCanvas.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#GtkGLArea","page":"Gtk4 Reference","title":"GtkGLArea","text":"","category":"section"},{"location":"doc/reference/","page":"Gtk4 Reference","title":"Gtk4 Reference","text":"Gtk4.get_error\nGtk4.make_current\nGtk4.queue_render","category":"page"},{"location":"doc/reference/#Gtk4.get_error","page":"Gtk4 Reference","title":"Gtk4.get_error","text":"get_error(w::GtkGLArea)\n\nGets the current error set on w.\n\nRelated GTK function: gtk_gl_area_get_error()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.make_current","page":"Gtk4 Reference","title":"Gtk4.make_current","text":"make_current(w::GtkGLArea)\n\nEnsures that the GdkGLContext used by area is associated with the GtkGLArea.\n\nRelated GTK function: gtk_gl_area_make_current()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.queue_render","page":"Gtk4 Reference","title":"Gtk4.queue_render","text":"queue_render(w::GtkGLArea)\n\nQueues a redraw of the widget.\n\nRelated GTK function: gtk_gl_area_queue_render()\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Event-controllers","page":"Gtk4 Reference","title":"Event controllers","text":"","category":"section"},{"location":"doc/reference/","page":"Gtk4 Reference","title":"Gtk4 Reference","text":"Gtk4.find_controller\nGtk4.widget\nGtk4.add_action_shortcut","category":"page"},{"location":"doc/reference/#Gtk4.find_controller","page":"Gtk4 Reference","title":"Gtk4.find_controller","text":"find_controller(w::GtkWidget, ::Type{T}) where T <: GtkEventController\n\nReturns an event controller of type T connected to a widget, or nothing if one doesn't exist. This function is intended for testing purposes (to simulate events) and is not recommended otherwise, as there is a performance penalty for creating a list of a widget's event controllers.\n\nRelated GTK function: gtk_widget_observe_controllers)\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.widget","page":"Gtk4 Reference","title":"Gtk4.widget","text":"widget(c::GtkEventController)\n\nReturns the widget associated with an event controller.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.add_action_shortcut","page":"Gtk4 Reference","title":"Gtk4.add_action_shortcut","text":"add_action_shortcut(scc::GtkShortcutController,trigger::AbstractString,action::AbstractString)\n\nAdds a shortcut specified by a string like \"S\" for an action (such as \"app.save\") to a GtkShortcutController.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#GtkTextView","page":"Gtk4 Reference","title":"GtkTextView","text":"","category":"section"},{"location":"doc/reference/","page":"Gtk4 Reference","title":"Gtk4 Reference","text":"Gtk4.buffer\nGtk4.undo!\nGtk4.redo!\nGtk4.create_mark\nGtk4.place_cursor\nGtk4.scroll_to\nGtk4.search\nGtk4.select_range\nGtk4.selection_bounds\nBase.skip\nGtk4.backward_search\nGtk4.buffer_to_window_coords\nGtk4.char_offset\nGtk4.forward_search\nGtk4.text_iter_at_position\nGtk4.window_to_buffer_coords\nGtk4._GtkTextIter","category":"page"},{"location":"doc/reference/#Gtk4.buffer","page":"Gtk4 Reference","title":"Gtk4.buffer","text":"buffer(iter::Union{Ref{_GtkTextIter}, _GtkTextIter})\n\nReturns the buffer associated with iter.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.undo!","page":"Gtk4 Reference","title":"Gtk4.undo!","text":"undo!(buffer::GtkTextBuffer)\n\nImplements gtk_text_buffer_undo.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.redo!","page":"Gtk4 Reference","title":"Gtk4.redo!","text":"redo!(buffer::GtkTextBuffer)\n\nImplements gtk_text_buffer_redo.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.create_mark","page":"Gtk4 Reference","title":"Gtk4.create_mark","text":"create_mark(buffer::GtkTextBuffer, mark_name, it::TI, left_gravity::Bool)\ncreate_mark(buffer::GtkTextBuffer, it::TI)\n\nImplements gtk_text_buffer_create_mark.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.place_cursor","page":"Gtk4 Reference","title":"Gtk4.place_cursor","text":"place_cursor(buffer::GtkTextBuffer, it::_GtkTextIter)\nplace_cursor(buffer::GtkTextBuffer, pos::Int)\n\nPlace the cursor at indicated position.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.scroll_to","page":"Gtk4 Reference","title":"Gtk4.scroll_to","text":"scroll_to(view::GtkTextView, mark::GtkTextMark, within_margin::Real,\n use_align::Bool, xalign::Real, yalign::Real)\n\nscroll_to(view::GtkTextView, iter::TI, within_margin::Real,\n use_align::Bool, xalign::Real, yalign::Real)\n\nImplements gtk_text_view_scroll_to_mark and gtk_text_view_scroll_to_iter.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.search","page":"Gtk4 Reference","title":"Gtk4.search","text":"search(buffer::GtkTextBuffer, str::AbstractString, direction = :forward,\n flag = GtkTextSearchFlags.GTK_TEXT_SEARCH_TEXT_ONLY)\n\nSearch text str in buffer in direction :forward or :backward starting from the cursor position in the buffer.\n\nReturns a tuple (found, start, stop) where found indicates whether the search was successful and start and stop are _GtkTextIters containing the location of the match.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.select_range","page":"Gtk4 Reference","title":"Gtk4.select_range","text":"select_range(buffer::GtkTextBuffer, ins::TI, bound::TI)\nselect_range(buffer::GtkTextBuffer, range::GtkTextRange)\n\nSelect the text in buffer accorind to _GtkTextIter ins and bound.\n\nImplements gtk_text_buffer_select_range.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.selection_bounds","page":"Gtk4 Reference","title":"Gtk4.selection_bounds","text":"selection_bounds(buffer::GtkTextBuffer)\n\nReturns a tuple (selected, start, stop) indicating if text is selected in the buffer, and if so sets the _GtkTextIter start and stop to point to the selected text.\n\nImplements gtk_text_buffer_get_selection_bounds.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Base.skip","page":"Gtk4 Reference","title":"Base.skip","text":"skip(iter::Ref{_GtkTextIter}, count::Integer)\n\nMoves iter count characters. Returns a Bool indicating if the move was successful.\n\n\n\n\n\nskip(iter::Ref{_GtkTextIter}, what::Symbol)\n\nMoves iter according to the operation specified by what. Operations are :\n\n:forward_line (gtk_text_iter_forward_line)\n:backward_line (gtk_text_iter_backward_line)\n:forward_to_line_end (gtk_text_iter_forward_to_line_end)\n:backward_word_start (gtk_text_iter_forward_word_end)\n:forward_word_end (gtk_text_iter_backward_word_start)\n:backward_sentence_start (gtk_text_iter_backward_sentence_start)\n:forward_sentence_end (gtk_text_iter_forward_sentence_end)\n\n\n\n\n\nskip(iter::Ref{_GtkTextIter}, count::Integer, what::Symbol)\n\nMoves iter according to the operation specified by what and count. Operations are :\n\n:chars (gtk_text_iter_forward_chars)\n:lines (gtk_text_iter_forward_lines)\n:words (gtk_text_iter_forward_word_ends)\n:word_cursor_positions (gtk_text_iter_forward_cursor_positions)\n:sentences (gtk_text_iter_forward_sentence_ends)\n:visible_words (gtk_text_iter_forward_visible_word_ends)\n:visible_cursor_positions (gtk_text_iter_forward_visible_cursor_positions)\n:visible_lines (gtk_text_iter_forward_visible_lines)\n:line_ends (gtk_text_iter_forward_visible_lines)\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.backward_search","page":"Gtk4 Reference","title":"Gtk4.backward_search","text":"backward_search(iter::Ref{_GtkTextIter},\n str::AbstractString, start::Ref{_GtkTextIter},\n stop::Ref{_GtkTextIter}, limit::Ref{_GtkTextIter}, flag::Int32)\n\nImplements gtk_text_iter_backward_search.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.buffer_to_window_coords","page":"Gtk4 Reference","title":"Gtk4.buffer_to_window_coords","text":"buffer_to_window_coords(view::GtkTextView, buffer_x::Integer, buffer_y::Integer, wintype::Integer = 0)\n\nImplements gtk_text_view_buffer_to_window_coords.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.char_offset","page":"Gtk4 Reference","title":"Gtk4.char_offset","text":"char_offset(iter::Union{Ref{_GtkTextIter}, _GtkTextIter})\n\nReturns the offset of iter (one-based index).\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.forward_search","page":"Gtk4 Reference","title":"Gtk4.forward_search","text":"forward_search(iter::Ref{_GtkTextIter},\n str::AbstractString, start::Ref{_GtkTextIter},\n stop::Ref{_GtkTextIter}, limit::Ref{_GtkTextIter}, flag::Int32)\n\nImplements gtk_text_iter_forward_search.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.text_iter_at_position","page":"Gtk4 Reference","title":"Gtk4.text_iter_at_position","text":"text_iter_at_position(view::GtkTextView, x::Integer, y::Integer)\n\nImplements gtk_text_view_get_iter_at_position.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.window_to_buffer_coords","page":"Gtk4 Reference","title":"Gtk4.window_to_buffer_coords","text":"window_to_buffer_coords(view::GtkTextView, window_x::Integer, window_y::Integer, wintype::Integer = 2)\n\nImplements gtk_text_view_window_to_buffer_coords.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4._GtkTextIter","page":"Gtk4 Reference","title":"Gtk4._GtkTextIter","text":"_GtkTextIter(text::GtkTextBuffer, char_offset::Integer)\n\nCreates a _GtkTextIter with offset char_offset (one-based index).\n\n\n\n\n\n","category":"type"},{"location":"manual/gettingStarted/#Getting-Started","page":"Getting Started","title":"Getting Started","text":"","category":"section"},{"location":"manual/gettingStarted/","page":"Getting Started","title":"Getting Started","text":"We start this tutorial with a very simple example that creates an empty window of size 400x200 pixels and adds a button to it","category":"page"},{"location":"manual/gettingStarted/","page":"Getting Started","title":"Getting Started","text":"using Gtk4\n\nwin = GtkWindow(\"My First Gtk4.jl Program\", 400, 200)\n\nb = GtkButton(\"Click Me\")\npush!(win,b)\n\nshow(win)","category":"page"},{"location":"manual/gettingStarted/","page":"Getting Started","title":"Getting Started","text":"We will now go through this example step by step. First the package is loaded using Gtk4 statement. Then a window is created using the GtkWindow constructor. It gets as input the window title, the window width, and the window height. Then a button is created using the GtkButton constructor. In order to insert the button into the window we call","category":"page"},{"location":"manual/gettingStarted/","page":"Getting Started","title":"Getting Started","text":"push!(win,b)","category":"page"},{"location":"manual/gettingStarted/","page":"Getting Started","title":"Getting Started","text":"Finally, show(win) makes the window visible. This could also have been accomplished using the visible property (properties of \"GObjects\" like GtkWindow are discussed on the Properties section of this manual).","category":"page"},{"location":"manual/gettingStarted/#Extended-Example","page":"Getting Started","title":"Extended Example","text":"","category":"section"},{"location":"manual/gettingStarted/","page":"Getting Started","title":"Getting Started","text":"We will now extend the example to let the button actually do something. To this end we first define a callback function that will be executed when the user clicks the button. Our callback function just prints a message.","category":"page"},{"location":"manual/gettingStarted/","page":"Getting Started","title":"Getting Started","text":"function on_button_clicked(w)\n println(\"The button has been clicked\")\nend","category":"page"},{"location":"manual/gettingStarted/","page":"Getting Started","title":"Getting Started","text":"What happens when the user clicks the button is that a \"clicked\" signal is emitted. In order to connect this signal to our function on_button_clicked we have to call","category":"page"},{"location":"manual/gettingStarted/","page":"Getting Started","title":"Getting Started","text":"signal_connect(on_button_clicked, b, \"clicked\")","category":"page"},{"location":"manual/gettingStarted/","page":"Getting Started","title":"Getting Started","text":"Our full extended example thus looks like:","category":"page"},{"location":"manual/gettingStarted/","page":"Getting Started","title":"Getting Started","text":"using Gtk4\n\nwin = GtkWindow(\"My First Gtk4.jl Program\", 400, 200)\n\nb = GtkButton(\"Click Me\")\npush!(win,b)\n\nfunction on_button_clicked(w)\n println(\"The button has been clicked\")\nend\nsignal_connect(on_button_clicked, b, \"clicked\")","category":"page"},{"location":"manual/gettingStarted/#The-hierarchy-of-widgets","page":"Getting Started","title":"The hierarchy of widgets","text":"","category":"section"},{"location":"manual/gettingStarted/","page":"Getting Started","title":"Getting Started","text":"In the example above, GtkWindow and GtkButton are GTK \"widgets\", which represent GUI elements. Widgets are arranged in a hierarchy, with a GtkWindow at the top level (typically), inside which are widgets that contain other widgets. A widget in this hierarchy can have child widgets and a parent widget. The parent widget can be found using the method parent:","category":"page"},{"location":"manual/gettingStarted/","page":"Getting Started","title":"Getting Started","text":"julia> parent(b) == win\ntrue","category":"page"},{"location":"manual/gettingStarted/","page":"Getting Started","title":"Getting Started","text":"The toplevel widget in a particular widget's hierarchy can be found using the method toplevel:","category":"page"},{"location":"manual/gettingStarted/","page":"Getting Started","title":"Getting Started","text":"julia> toplevel(b) == win\ntrue","category":"page"},{"location":"manual/gettingStarted/","page":"Getting Started","title":"Getting Started","text":"Iterating over a widget gives you its child widgets:","category":"page"},{"location":"manual/gettingStarted/","page":"Getting Started","title":"Getting Started","text":"for child in widget\n myfunc(child)\nend","category":"page"},{"location":"manual/gettingStarted/","page":"Getting Started","title":"Getting Started","text":"Widgets can be added and removed using interface methods defined by Gtk4.jl. For many widgets that can contain children, push! is defined to append a widget to another's children. Some widget types can only have one child. For this situation, Gtk4.jl defines setindex!(w,x) and getindex(w) methods with no arguments, which can be written as w[] = x and output = w[], respectively. For example, a GtkWindow can have only one child widget, so we could have added the button to the window in our example using","category":"page"},{"location":"manual/gettingStarted/","page":"Getting Started","title":"Getting Started","text":"win[] = b","category":"page"},{"location":"manual/methods/#Automatically-generated-methods","page":"Automatically generated methods","title":"Automatically generated methods","text":"","category":"section"},{"location":"manual/methods/","page":"Automatically generated methods","title":"Automatically generated methods","text":"Like Gtk.jl, the purpose of this package is to provide functions that wrap ccall's of GTK functions in a Julian and hopefully user friendly way. While in Gtk.jl these ccall's are handwritten, in Gtk4.jl most of the wrappers call automatically generated methods that contain the ccall's. If you don't see a particular functionality wrapped, you can call these autogenerated functions yourself by using a submodule G_ defined in each of the main modules (Gtk4, Pango, GLib, and GdkPixbufLib). The names of these functions and methods are intended to be easy to predict from the corresponding C library function names, and most are the same as in the pygobject bindings for GTK.","category":"page"},{"location":"manual/methods/","page":"Automatically generated methods","title":"Automatically generated methods","text":"The autogenerated methods in G_, like the corresponding C functions, use 0-based indexing, while the more user-friendly wrappers outside G_ use 1-based indexing. Some types of methods are not yet supported. For example, methods involving callbacks must be wrapped by using ccall currently.","category":"page"},{"location":"manual/methods/","page":"Automatically generated methods","title":"Automatically generated methods","text":"The following table lists a few examples that should give you an idea of how these work.","category":"page"},{"location":"manual/methods/","page":"Automatically generated methods","title":"Automatically generated methods","text":"C function Gtk4.G_ Julia method Comments\nvoid gtk_window_add_child (GtkWindow* window, GtkWidget* child) add_child (window::GtkWindow, child::GtkWidget) C arguments mapped directly onto Julia arguments\nGtkStackPage* gtk_stack_add_child (GtkStack* stack, GtkWidget* child) add_child (stack::GtkStack, child::GtkWidget) many widgets have add_child methods, but we dispatch using the type of the first argument\nvoid gtk_builder_add_from_file (GtkBuilder* builder, const gchar* filename, GError** error) add_from_file (builder::GtkBuilder, filename::AbstractString) if ccall fills GError argument, a Julia exception is thrown\nguint gtk_get_major_version () get_major_version () Julia method returns a UInt32\nvoid gtk_rgb_to_hsv (float r, float g, float b, float* h, float* s, float* v) rgb_to_hsv (r::Real, g::Real, b::Real) The arguments h, s, and v are outputs. Julia method returns (h, s, v)\ngboolean gtk_tree_view_get_path_at_pos (GtkTreeView* tree_view, int x, int y, GtkTreePath** path, GtkTreeViewColumn** column, int* cell_x, int* cell_y) get_path_at_pos (instance::GtkTreeView, _x::Integer, _y::Integer) C function has a return value ret in addition to output arguments _path, _column, _cell_x, and _cell_y. The Julia method returns (ret, _path, _column, _cell_x, _cell_y)","category":"page"},{"location":"manual/methods/","page":"Automatically generated methods","title":"Automatically generated methods","text":"If you are confused about what one of these automatically generated methods does, you can examine the code, which is defined in the src/gen directory. They are separated into \"methods\" (in an object-oriented sense, these are functions associated with a particular class) and \"functions\" (general C functions that aren't associated with a particular class). Constants and struct definitions are also generated using GObject introspection.","category":"page"},{"location":"manual/methods/#Constructors","page":"Automatically generated methods","title":"Constructors","text":"","category":"section"},{"location":"manual/methods/","page":"Automatically generated methods","title":"Automatically generated methods","text":"Constructor methods in G_ are treated a little differently. They are named according to GObject_$constructor_name, as in the following table:","category":"page"},{"location":"manual/methods/","page":"Automatically generated methods","title":"Automatically generated methods","text":"C function Gtk4.G_ Julia method Comments\nGtkWidget* gtk_window_new() Window_new() Returns a newly constructed GtkWindow\nGtkWidget* gtk_scale_new_with_range(GtkOrientation orientation, double min, double max, double step) Scale_new_with_range(orientation, min, max, step) Example with arguments","category":"page"},{"location":"manual/signals/#Signals-and-Callbacks","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"","category":"section"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"A button is not much use if it doesn't do anything. GTK uses signals as a method for communicating that something of interest has happened. Most signals will be emitted as a consequence of user interaction: clicking on a button, closing a window, or just moving the mouse. You connect your signals to particular functions to make something happen.","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"Let's try a simple example:","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"b = GtkButton(\"Press me\")\nwin = GtkWindow(b, \"Callbacks\")\n\nfunction button_clicked_callback(widget)\n println(widget, \" was clicked!\")\nend\n\nid = signal_connect(button_clicked_callback, b, \"clicked\")","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"Here, button_clicked_callback is a callback function, something designed to be called by GTK to implement the response to user action. You use the signal_connect function to specify when it should be called: in this case, when widget b (your button) emits the \"clicked\" signal.","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"Using Julia's do syntax, the exact same code could alternatively be written as","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"b = GtkButton(\"Press me\")\nwin = GtkWindow(b, \"Callbacks\")\nid = signal_connect(b, \"clicked\") do widget\n println(widget, \" was clicked!\")\nend","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"If you try this, and click on the button, you should see something like the following:","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"julia> GtkButton(action-name=NULL, action-target, related-action, use-action-appearance=TRUE, name=\"\", parent, width-request=-1, height-request=-1, visible=TRUE, sensitive=TRUE, app-paintable=FALSE, can-focus=TRUE, has-focus=TRUE, is-focus=TRUE, can-default=FALSE, has-default=FALSE, receives-default=TRUE, composite-child=FALSE, style, events=0, no-show-all=FALSE, has-tooltip=FALSE, tooltip-markup=NULL, tooltip-text=NULL, window, double-buffered=TRUE, halign=GTK_ALIGN_FILL, valign=GTK_ALIGN_FILL, margin-left=0, margin-right=0, margin-top=0, margin-bottom=0, margin=0, hexpand=FALSE, vexpand=FALSE, hexpand-set=FALSE, vexpand-set=FALSE, expand=FALSE, border-width=0, resize-mode=GTK_RESIZE_PARENT, child, label=\"Press me\", image, relief=GTK_RELIEF_NORMAL, use-underline=TRUE, use-stock=FALSE, focus-on-click=TRUE, xalign=0.500000, yalign=0.500000, image-position=GTK_POS_LEFT, ) was clicked!","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"That's quite a lot of output; let's just print the label of the button:","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"id2 = signal_connect(b, \"clicked\") do widget\n println(\"\\\"\", get_gtk_property(widget,:label,String), \"\\\" was clicked!\")\nend","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"Now you get something like this:","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"julia> GtkButton(action-name=NULL, action-target, related-action, use-action-appearance=TRUE, name=\"\", parent, width-request=-1, height-request=-1, visible=TRUE, sensitive=TRUE, app-paintable=FALSE, can-focus=TRUE, has-focus=TRUE, is-focus=TRUE, can-default=FALSE, has-default=FALSE, receives-default=TRUE, composite-child=FALSE, style, events=0, no-show-all=FALSE, has-tooltip=FALSE, tooltip-markup=NULL, tooltip-text=NULL, window, double-buffered=TRUE, halign=GTK_ALIGN_FILL, valign=GTK_ALIGN_FILL, margin-left=0, margin-right=0, margin-top=0, margin-bottom=0, margin=0, hexpand=FALSE, vexpand=FALSE, hexpand-set=FALSE, vexpand-set=FALSE, expand=FALSE, border-width=0, resize-mode=GTK_RESIZE_PARENT, child, label=\"Press me\", image, relief=GTK_RELIEF_NORMAL, use-underline=TRUE, use-stock=FALSE, focus-on-click=TRUE, xalign=0.500000, yalign=0.500000, image-position=GTK_POS_LEFT, ) was clicked!\n\"Press me\" was clicked!","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"Notice that both of the callback functions executed! GTK allows you to define multiple signal handlers for a given object; even the execution order can be specified. Callbacks for some signals require that you return an Int32, with value 0 if you want the next handler to run or 1 if you want to prevent any other handlers from running on this event.","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"The \"clicked\" signal callback should return nothing (void in C parlance), so you can't prevent other callbacks from running. However, we can disconnect the first signal handler:","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"signal_handler_disconnect(b, id)","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"Now clicking on the button just yields","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"julia> \"Press me\" was clicked!","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"Alternatively, you can temporarily enable or disable individual handlers with signal_handler_block and signal_handler_unblock.","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"The arguments of the callback depend on the signal type. Arguments and their meaning are described along with their corresponding signals. You should omit the final user_data argument described in the GTK documentation; keep in mind that you can always address other variables from inside your function block, or define the callback in terms of an anonymous function:","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"id = signal_connect((widget, event) -> cb_buttonpressed(widget, event, guistate, drawfunction, ...), b, \"button-press-event\")","category":"page"},{"location":"manual/signals/#Property-notifications","page":"Signals and Callbacks","title":"Property notifications","text":"","category":"section"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"Any time a GObject property is changed, a \"notify\" signal is emitted.","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"To set a callback to be called when a window's title is changed, use:","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"signal_connect(win, \"notify::title\") do obj, pspec # here `obj` is the GObject\n println(obj.title)\nend","category":"page"},{"location":"manual/signals/#Alternative-approach-to-signals-and-signal-handlers","page":"Signals and Callbacks","title":"Alternative approach to signals and signal handlers","text":"","category":"section"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"In addition to the \"simple\" interface described above, Gtk4 includes an approach that allows your callback function to be directly compiled to machine code. Gtk4 makes this easier by using GObject introspection data to look up the return type and parameter types, saving the user the hassle of doing this themselves.","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"For the \"clicked\" signal of a GtkButton, the equivalent to the example at the beginning of this page is as follows:","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"b = GtkButton(\"Press me\")\nwin = GtkWindow(b, \"Callbacks\")\nfunction button_cb(::Ptr, b)\n println(b, \" was clicked!\")\nend\n\non_clicked(cb, b)","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"Note that the main difference here, other than the name of the function being called to connect the signal, is the argument list of the callback. The first argument here is always a pointer to the GObject that sends the signal, which in this case is the GtkButton.","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"The full definition of the function on_clicked is","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"on_clicked(cb::Function, widget::GtkButton, user_data = widget, after = false)","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"where:","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"cb is your callback function. This will be compiled with @cfunction, and you need to follow its rules. In particular, you should use a generic function (i.e., one defined as function foo(x,y,z) ... end), and the arguments and return type should match the GTK+ documentation for the widget and signal (see examples). In contrast with the simpler interface, when writing these callbacks you must include the user_data argument. See examples below.\nwidget is the widget that will send the signal\nuser_data contains any additional information your callback needs to operate. For example, you can pass other widgets, tuples of values, etc. If omitted (as it was in the example above), it defaults to widget.\nafter is a boolean, true if you want your callback to run after the default handler for your signal. When in doubt, specify false.","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"Functions like this are defined for every signal of every widget supported by Gtk4.jl. They are named on_signalname, where signals with - in their names have them replaced by underscores _. So to connect to GtkWindow's \"close-request\" signal, you would use on_close_request.","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"When you define the callback, you still have to use the correct argument list or else the call to @cfunction will throw an error. It should be Ptr{GObject}, param_types..., user_data. The callback should also return the right type. Functions signal_return_type(WidgetType, signame) and signal_argument_types(WidgetType, signame) are defined that return the needed types for the signal \"signame\" of the type \"WidgetType\".","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"For example, consider a GUI in which pressing a button updates a counter:","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"box = GtkBox(:h)\nbutton = GtkButton(\"click me\")\nlabel = GtkLabel(\"0\")\npush!(box, button)\npush!(box, label)\nwin = GtkWindow(box, \"Callbacks\")\n\nconst counter = [0] # Pack counter value inside array to make it a reference\n\n# \"clicked\" callback declaration is\n# void user_function(GtkButton *button, gpointer user_data)\n# But user_data gets converted into a Julia object automatically\nfunction button_cb(widgetptr::Ptr, user_data)\n widget = convert(Gtk4.GtkButtonLeaf, widgetptr) # pointer -> object\n lbl, cntr = user_data # unpack the user_data tuple\n cntr[] = cntr[]+1 # increment counter[1]\n lbl.label = string(cntr[])\n nothing # return type is void\nend\n\non_clicked(button_cb, button, (label, counter))","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"Here, the tuple (label, counter) was passed in as user_data. Note that the value of counter[] matches the display in the GUI.","category":"page"},{"location":"manual/signals/#@guarded","page":"Signals and Callbacks","title":"@guarded","text":"","category":"section"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"The \"simple\" callback interface includes protections against corrupting Gtk state from errors, but this @cfunction-based approach does not. Consequently, you may wish to use @guarded when writing these functions. (Canvas draw functions and mouse event-handling are called through this interface, which is why you should use @guarded there.) For functions that should return a value, you can specify the value to be returned on error as the first argument. For example:","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":" const unhandled = convert(Int32, false)\n @guarded unhandled function my_callback(widgetptr, ...)\n ...\n end","category":"page"},{"location":"manual/signals/#Old-approach-to-@cfunction-based-signals","page":"Signals and Callbacks","title":"Old approach to @cfunction based signals","text":"","category":"section"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"The approach taken by Gtk.jl and earlier versions of Gtk4.jl is still supported, where you supply the return type and parameter types:","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"signal_connect(cb, widget, signalname, return_type, parameter_type_tuple, after, user_data=widget)","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"where:","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"cb is your callback function. This will be compiled with @cfunction, and you need to follow its rules. In particular, you should use a generic function (i.e., one defined as function foo(x,y,z) ... end), and the arguments and return type should match the GTK+ documentation for the widget and signal (see examples). In contrast with the simpler interface, when writing these callbacks you must include the user_data argument. See examples below.\nwidget is the widget that will send the signal\nsignalname is a string or symbol identifying the signal, e.g., \"clicked\" or \"button-press-event\"\nreturn_type is the type of the value returned by your callback. Usually Nothing (for void) or Cint (for gboolean)\nparameter_type_tuple specifies the types of the middle arguments to the callback function, omitting the first (the widget) and last (user_data). For example, for \"clicked\" we have parameter_type_tuple = () (because there are no middle arguments) and for \"button-press-event\" we have parameter_type_tuple = (Cint, Cdouble, Cdouble).\nafter is a boolean, true if you want your callback to run after the default handler for your signal. When in doubt, specify false.\nuser_data contains any additional information your callback needs to operate. For example, you can pass other widgets, tuples of values, etc. If omitted, it defaults to widget.","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"The callback's arguments need to match the GTK documentation, with the exception of the user_data argument. (Rather than being a pointer, user_data will automatically be converted back to an object.)","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"For example, consider a GUI in which pressing a button updates a counter:","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"box = GtkBox(:h)\nbutton = GtkButton(\"click me\")\nlabel = GtkLabel(\"0\")\npush!(box, button)\npush!(box, label)\nwin = GtkWindow(box, \"Callbacks\")\n\nconst counter = [0] # Pack counter value inside array to make it a reference\n\n# \"clicked\" callback declaration is\n# void user_function(GtkButton *button, gpointer user_data)\n# But user_data gets converted into a Julia object automatically\nfunction button_cb(widgetptr::Ptr, user_data)\n widget = convert(Gtk4.GtkButtonLeaf, widgetptr) # pointer -> object\n lbl, cntr = user_data # unpack the user_data tuple\n cntr[] = cntr[]+1 # increment counter[1]\n lbl.label = string(cntr[])\n nothing # return type is void\nend\n\nsignal_connect(button_cb, button, \"clicked\", Nothing, (), false, (label, counter))","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"You should note that the value of counter[] matches the display in the GUI.","category":"page"},{"location":"manual/signals/#Specifying-the-event-type","page":"Signals and Callbacks","title":"Specifying the event type","text":"","category":"section"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"If your callback function takes an event argument, it is important to declare its type correctly. An easy way to do that is to first write a callback using the \"simple\" interface, e.g.,","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":" signal_connect(win, \"delete-event\") do widget, event\n @show typeof(event)\n @show event\n end","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"and then use the reported type in parameter_type_tuple.","category":"page"},{"location":"manual/layout/#Layout","page":"Layout","title":"Layout","text":"","category":"section"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"Gtk4 provides many layout widgets for arranging widgets in a window.","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"note: Note\nFor larger projects it might be a good idea to create the layout using Cambalache in combination with GtkBuilder. See Builder.","category":"page"},{"location":"manual/layout/#[GtkBox](https://docs.gtk.org/gtk4/class.Box.html)","page":"Layout","title":"GtkBox","text":"","category":"section"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"The layout widget used most often is GtkBox. It is one-dimensional and can be either be horizontally or vertical aligned.","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"win = GtkWindow(\"New title\")\nhbox = GtkBox(:h) # :h makes a horizontal layout, :v a vertical layout\npush!(win, hbox)\ncancel = GtkButton(\"Cancel\")\nok = GtkButton(\"OK\")\npush!(hbox, cancel)\npush!(hbox, ok)","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"This layout may not be exactly what you'd like. Perhaps you'd like the OK button to fill the available space, and to insert some blank space between them:","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"ok.hexpand = true\nhbox.spacing = 10","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"The first line sets the hexpand property of the ok button within the hbox container. In GTK4, a separate vexpand property controls whether the widget expands in the vertical direction. The second line sets the spacing property of hbox to 10 pixels.","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"Note that these aren't evenly sized, and that doesn't change if we set the cancel button's hexpand property to true. The homogeneous property of hbox can be used to achieve this.","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"hbox.homogeneous = true","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"To add a line between widgets in a GtkBox, you can use GtkSeparator.","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"sep = GtkSeparator(:h)\npush!(hbox, sep)\n# add more widgets here","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"Julia interface methods defined for GtkBox:","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"method what it does\npush!(b::GtkBox, w::GtkWidget) Adds a widget to the end of the box\npushfirst!(b::GtkBox, w::GtkWidget) Adds a widget to the beginning of the box\ndelete!(b::GtkBox, w::GtkWidget) Removes a widget from the box\nempty!(b::GtkBox) Removes all widgets from the box","category":"page"},{"location":"manual/layout/#[GtkGrid](https://docs.gtk.org/gtk4/class.Grid.html)","page":"Layout","title":"GtkGrid","text":"","category":"section"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"To create two-dimensional (tabular) layouts of widgets, you can use GtkGrid:","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"win = GtkWindow(\"A new window\")\ng = GtkGrid()\na = GtkEntry() # a widget for entering text\na.text = \"This is Gtk!\"\nb = GtkCheckButton(\"Check me!\")\nc = GtkScale(:h, 0:10) # a slider\n\n# Now let's place these graphical elements into the Grid:\ng[1,1] = a # Cartesian coordinates, g[x,y]\ng[2,1] = b\ng[1:2,2] = c # spans both columns\ng.column_homogeneous = true # grid forces columns to have the same width\ng.column_spacing = 15 # introduce a 15-pixel gap between columns\npush!(win, g)","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"The g[x,y] = obj assigns the location to the indicated x,y positions in the grid (note that indexing is Cartesian rather than row/column; most graphics packages address the screen using Cartesian coordinates where 1,1 is in the upper left). A range is used to indicate a span of grid cells. By default, each row/column will use only as much space as required to contain the objects, but you can force them to be of the same size by setting properties like column_homogeneous.","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"A useful method for GtkGrid is query_child, which can be used to get the coordinates and span of a widget currently in the grid:","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"julia> Gtk4.query_child(g,c)\n(1, 2, 2, 1)","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"Here, 1 is the column, 2 is the row, and the widget spans 2 columns and 1 row.","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"Julia interface methods defined for GtkGrid:","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"method what it does\ngetindex(g::GtkGrid, c::Integer, r::Integer) or g[c,r] Gets a widget, where c and r are the column and row indices\nsetindex!(g::GtkGrid, w::GtkWidget, c::Integer, r::Integer) or g[i,j] = w Sets a widget\ninsert!(g::GtkGrid, i::Integer, side) Inserts a row or column next to the existing row or column with index i; side can be :left, :right, top, or bottom.\ninsert!(g::GtkGrid, sibling::GtkWidget, side) Inserts a row or column next to the existing widget sibling that is already in the grid; side can be :left, :right, top, or bottom.\ndelete!(g::GtkGrid, w::GtkWidget) Removes a widget from the grid\nempty!(g::GtkGrid) Removes all widgets from the grid","category":"page"},{"location":"manual/layout/#[GtkCenterBox](https://docs.gtk.org/gtk4/class.CenterBox.html)","page":"Layout","title":"GtkCenterBox","text":"","category":"section"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"The GtkCenterBox widget can hold 3 widgets in a line, either horizontally or vertically oriented. It keeps the middle widget centered. Child widgets can be set and accessed like this:","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"cb = GtkCenterBox(:h) # :h makes a horizontal layout, :v a vertical layout\ncb[:start] = GtkButton(\"Left\")\ncb[:center] = GtkButton(\"Center\")\ncb[:end] = GtkButton(\"Right\")","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"For vertical orientation, :start refers to the top widget and :end to the bottom widget.","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"Julia interface methods defined for GtkCenterBox:","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"method what it does\ngetindex(b::GtkCenterBox, pos::Symbol) or b[pos] Gets a widget, where pos is :start, :center, or :end\nsetindex!(b::GtkCenterBox, w::GtkWidget, pos::Symbol) or b[pos] = w Sets a widget","category":"page"},{"location":"manual/layout/#[GtkPaned](https://docs.gtk.org/gtk4/class.Paned.html)","page":"Layout","title":"GtkPaned","text":"","category":"section"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"The GtkPaned widget creates two slots separated by a movable divider. Like GtkBox and GtkCenterBox, it can be oriented either vertically or horizontally. To add child widgets, you can use","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"paned = GtkPaned()\npaned[1] = top_or_left_widget\npaned[2] = bottom_or_right_widget","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"Julia interface methods defined for GtkPaned:","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"method what it does\ngetindex(b::GtkPaned, i::Integer) or b[i] Gets a widget, where i is 1 or 2\nsetindex!(b::GtkPaned, w::GtkWidget, i::Integer) or b[i] = w Sets a widget","category":"page"},{"location":"manual/layout/#[GtkNotebook](https://docs.gtk.org/gtk4/class.Notebook.html)","page":"Layout","title":"GtkNotebook","text":"","category":"section"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"The GtkNotebook widget places child widgets in tabs like a browser window. Child widgets can be inserted with a label like this:","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"nb = GtkNotebook()\nvbox = GtkBox(:v)\nhbox = GtkBox(:h)\npush!(nb, vbox, \"Vertical\") # here \"Vertical\" is the label for the tab\npush!(nb, hbox, \"Horizontal\")","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"Julia interface methods defined for GtkNotebook:","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"method what it does\npush!(n::GtkNotebook, x::GtkWidget, label::AbstractString) Appends a widget with a label\npush!(n::GtkNotebook, x::GtkWidget, label::GtkWidget) Appends a widget with a widget to be shown in the tab\npushfirst!(n::GtkNotebook, x::GtkWidget, label::AbstractString) Prepends a widget with a label\npushfirst!(n::GtkNotebook, x::GtkWidget, label::GtkWidget) Prepends a widget with a widget to be shown in the tab\ndeleteat!(n::GtkNotebook, x::GtkWidget) Removes a widget from the notebook\nempty!(n::GtkNotebook) Removes all widgets from the notebook","category":"page"},{"location":"manual/layout/#[GtkStack](https://docs.gtk.org/gtk4/class.Stack.html)","page":"Layout","title":"GtkStack","text":"","category":"section"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"The GtkStack widget is a lot like GtkNotebook, but a separate widget GtkStackSwitcher controls what page is shown. An interface very similar to GtkNotebook is defined:","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"win = GtkWindow(\"GtkStack\")\ns = GtkStack()\nsw = GtkStackSwitcher()\nstack(sw,s)\nvbox = GtkBox(:v)\npush!(vbox, sw)\npush!(vbox, s)\npush!(s, GtkLabel(\"First label\"), \"id1\", \"Label 1\") # first string is an id, second is a label\npush!(s, GtkLabel(\"Second label\"), \"id2\", \"Label 2\") # widget can be retrieved using s[id]\nwin[]=vbox","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"Julia interface methods defined for GtkStack:","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"method what it does\ngetindex(s::GtkStack, name::AbstractString) or s[name] Gets a widget by name\nsetindex!(s::GtkStack, x::GtkWidget, name::AbstractString) or s[name] = x Sets a widget by name\npush!(s::GtkStack, x::GtkWidget) Appends a widget\npush!(s::GtkStack, x::GtkWidget, name::AbstractString) Appends a widget with a name\npush!(s::GtkStack, x::GtkWidget, name::AbstractString, title::AbstractString) Appends a widget with a name and a title\ndelete!(s::GtkStack, x::GtkWidget) Removes a widget from the stack\nempty!(s::GtkStack) Removes all widgets from the stack","category":"page"},{"location":"manual/layout/#[GtkFrame](https://docs.gtk.org/gtk4/class.Frame.html),-[GtkAspectFrame](https://docs.gtk.org/gtk4/class.AspectFrame.html),-and-[GtkExpander](https://docs.gtk.org/gtk4/class.Expander.html)","page":"Layout","title":"GtkFrame, GtkAspectFrame, and GtkExpander","text":"","category":"section"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"These widgets hold one child widget. GtkFrame and GtkAspectFrame display them in a decorative frame with an optional label. GtkExpander allows the user to hide the child.","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"Julia interface methods defined for GtkFrame, GtkAspectFrame, and GtkExpander:","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"method what it does\ngetindex(f) or f[] Gets the child widget\nsetindex!(f, w::Union{GtkWidget,Nothing}) or f[] = w Sets or clears the child widget","category":"page"},{"location":"manual/layout/#Iterating-over-child-widgets","page":"Layout","title":"Iterating over child widgets","text":"","category":"section"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"For any of the widgets described above (or any GtkWidget that has children), you can iterate over all child widgets using","category":"page"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"for child in widget\n myfunc(child)\nend","category":"page"},{"location":"doc/GLib_reference/#GLib-Reference","page":"GLib Reference","title":"GLib Reference","text":"","category":"section"},{"location":"doc/GLib_reference/#Event-loop","page":"GLib Reference","title":"Event loop","text":"","category":"section"},{"location":"doc/GLib_reference/","page":"GLib Reference","title":"GLib Reference","text":"Gtk4.GLib.is_loop_running\nGtk4.GLib.pause_main_loop\nGtk4.GLib.start_main_loop\nGtk4.GLib.stop_main_loop\nGtk4.GLib.@idle_add\nGtk4.GLib.g_idle_add\nGtk4.GLib.g_timeout_add\nGtk4.GLib.g_source_remove\nGtk4.GLib.get_uv_loop_integration\nGtk4.GLib.set_uv_loop_integration\nGtk4.GLib.is_uv_loop_integration_enabled\nGtk4.GLib.run","category":"page"},{"location":"doc/GLib_reference/#Gtk4.GLib.is_loop_running","page":"GLib Reference","title":"Gtk4.GLib.is_loop_running","text":"is_loop_running()\n\nReturn true if the default GLib main event loop is running.\n\nRelated GTK function: g_main_depth()\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.pause_main_loop","page":"GLib Reference","title":"Gtk4.GLib.pause_main_loop","text":"pause_main_loop(f)\n\nPauses the GLib event loop around a function. Restores the original state of the event loop after calling the function. This function does not pause the event loop if it is being run by a GApplication.\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.start_main_loop","page":"GLib Reference","title":"Gtk4.GLib.start_main_loop","text":"start_main_loop(wait=false)\n\nIf the default GLib main event loop is not already running, start a Julia task that runs it. Returns the task. If wait is true, it will block until the main loop starts running.\n\nSee also stop_main_loop.\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.stop_main_loop","page":"GLib Reference","title":"Gtk4.GLib.stop_main_loop","text":"stop_main_loop(wait=false)\n\nStops the default GLib main loop after the next iteration. If wait is true, it will block until the main loop stops running.\n\nDoes not affect loop operation if GApplication's run() method is being used instead of GLib.start_main_loop().\n\nSee also start_main_loop.\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.@idle_add","page":"GLib Reference","title":"Gtk4.GLib.@idle_add","text":"@idle_add(ex)\n\nCreate a function from an expression ex that will be called when there are no higher priority GTK events to be processed. This function can be used from any thread.\n\nSee also g_idle_add.\n\nRelated GTK function: g_idle_add()\n\n\n\n\n\n","category":"macro"},{"location":"doc/GLib_reference/#Gtk4.GLib.g_idle_add","page":"GLib Reference","title":"Gtk4.GLib.g_idle_add","text":"g_idle_add(f, priority=PRIORITY_DEFAULT_IDLE)\n\nAdd a Julia function f that will be called when there are no higher priority GTK events to be processed. This function can be used from any thread. The optional priority argument, which is an integer, sets the priority of the event source (smaller is higher priority). The GLib main loop uses this priority value to decide what sources to handle next.\n\nSee also @idle_add.\n\nRelated GTK function: g_idle_add_full()\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.g_timeout_add","page":"GLib Reference","title":"Gtk4.GLib.g_timeout_add","text":"g_timeout_add(f, interval, priority=PRIORITY_DEFAULT)\n\nAdd a function f that will be called every interval milliseconds by the GTK main loop. If the function returns true, it will be called again after another interval milliseconds. If it returns false it will not be called again. The optional priority argument, which is an integer, sets the priority of the event source (smaller is higher priority). The GLib main loop uses this priority value to decide what sources to handle next.\n\nThis function returns an event source ID that can be used with g_source_remove to stop the timeout externally.\n\nRelated GTK function: g_timeout_add()\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.g_source_remove","page":"GLib Reference","title":"Gtk4.GLib.g_source_remove","text":"g_source_remove(id::Integer)\n\nRemove the event source identified by id from the GLib main loop. The id is returned by g_idle_add and g_timeout_add. The main loop reuses id's so care should be taken that the source intended to be removed is still active.\n\nRelated GTK function: g_source_remove()\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.get_uv_loop_integration","page":"GLib Reference","title":"Gtk4.GLib.get_uv_loop_integration","text":"get_uv_loop_integration()\n\nGet Gtk4.jl's libuv loop integration setting: \"auto\", \"enabled\", or \"disabled\".\n\nSee also set_uv_loop_integration.\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.set_uv_loop_integration","page":"GLib Reference","title":"Gtk4.GLib.set_uv_loop_integration","text":"set_uv_loop_integration(s = \"auto\")\n\nChange Gtk4.jl's libuv loop integration setting. The argument s should be \"auto\" to use Gtk4.jl's default setting or \"enabled\" or \"disabled\" to override this. This setting will take effect after restarting Julia.\n\nEnabling libuv loop integration may improve REPL response on some platforms (Mac) but negatively impacts multithreaded performance. This function has no effect when running on Windows.\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.is_uv_loop_integration_enabled","page":"GLib Reference","title":"Gtk4.GLib.is_uv_loop_integration_enabled","text":"is_uv_loop_integration_enabled()\n\nGet whether Gtk4.jl's libuv loop integration is enabled.\n\nSee also set_uv_loop_integration.\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Base.run","page":"GLib Reference","title":"Base.run","text":"run(app::GApplication)\n\nCalls g_application_run, starting the main loop. If the loop is already running, it will stop it before starting the application loop.\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#REPL-helper-functions","page":"GLib Reference","title":"REPL helper functions","text":"","category":"section"},{"location":"doc/GLib_reference/","page":"GLib Reference","title":"GLib Reference","text":"These are functions that are intended to be used in the REPL to look up information about GObjects and their properties and signals.","category":"page"},{"location":"doc/GLib_reference/","page":"GLib Reference","title":"GLib Reference","text":"Gtk4.GLib.propertyinfo\nGtk4.GLib.gtk_propertynames\nGtk4.GLib.signalnames\nGtk4.GLib.signal_return_type\nGtk4.GLib.signal_argument_types","category":"page"},{"location":"doc/GLib_reference/#Gtk4.GLib.propertyinfo","page":"GLib Reference","title":"Gtk4.GLib.propertyinfo","text":"propertyinfo(w::GObject, name)\n\nPrints information about a property of the GObject w, including a brief description, its type, its default value, and its current value.\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.gtk_propertynames","page":"GLib Reference","title":"Gtk4.GLib.gtk_propertynames","text":"gtk_propertynames(w::GObject)\n\nPrints a list of property names for the GObject w.\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.signalnames","page":"GLib Reference","title":"Gtk4.GLib.signalnames","text":"signalnames(::Type{T}) where T <: GObject\n\nReturns a list of the names of supported signals for T.\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.signal_return_type","page":"GLib Reference","title":"Gtk4.GLib.signal_return_type","text":"signal_return_type(::Type{T}, name::Symbol) where T <: GObject\n\nGets the return type for the callback for the signal name of a GObject type (for example GtkWidget).\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.signal_argument_types","page":"GLib Reference","title":"Gtk4.GLib.signal_argument_types","text":"signal_argument_types(::Type{T}, name::Symbol) where T <: GObject\n\nGets the argument types for the callback for the signal name of a GObject type (for example GtkWidget).\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Properties","page":"GLib Reference","title":"Properties","text":"","category":"section"},{"location":"doc/GLib_reference/","page":"GLib Reference","title":"GLib Reference","text":"Gtk4.GLib.on_notify\nGtk4.GLib.bind_property\nGtk4.GLib.unbind_property\nGtk4.GLib.setproperties!\nGtk4.GLib.set_gtk_property!\nGtk4.GLib.get_gtk_property","category":"page"},{"location":"doc/GLib_reference/#Gtk4.GLib.on_notify","page":"GLib Reference","title":"Gtk4.GLib.on_notify","text":"on_notify(f, object::GObject, property, user_data = object, after = false)\n\nConnect a callback f to the object's \"notify::property\" signal that will be called whenever the property changes. The callback signature should be f(::Ptr, param::Ptr{GParamSpec}, user_data) and the function should return nothing.\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.bind_property","page":"GLib Reference","title":"Gtk4.GLib.bind_property","text":"bind_property(source::GObject, source_property, target::GObject, target_property, flags = BindingFlags_DEFAULT)\n\nCreates a binding between source_property on source and target_property on target. When source_property is changed, target_property will be updated to the same value. Returns a GBinding object that can be used to release the binding using unbind_property.\n\nSee also unbind_property.\n\nRelated GTK function: g_object_bind_property\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.unbind_property","page":"GLib Reference","title":"Gtk4.GLib.unbind_property","text":"unbind_property(b::GBinding)\n\nReleases a binding created by bind_property.\n\nSee also bind_property.\n\nRelated GTK function: g_binding_unbind\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.setproperties!","page":"GLib Reference","title":"Gtk4.GLib.setproperties!","text":"setproperties!(obj::GObject; kwargs...)\n\nSet many GObject properties at once using keyword arguments. For example for a GtkWindow, setproperties!(win; title=\"New title\", visible=true).\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.set_gtk_property!","page":"GLib Reference","title":"Gtk4.GLib.set_gtk_property!","text":"set_gtk_property!(w::GObject, name, ::Type{T}, value)\n\nSet a GObject property name (which can be a string or symbol) to value converted to type T.\n\n\n\n\n\nset_gtk_property!(w::GObject, name, value)\n\nSet a GObject property name (which can be a string or symbol) to value. The type of value will be converted to match the property type, if possible.\n\nGObject properties are mapped onto Julia instance properties, so note that this function is equivalent to the more convenient syntax w.name = value.\n\nSee also get_gtk_property.\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.get_gtk_property","page":"GLib Reference","title":"Gtk4.GLib.get_gtk_property","text":"get_gtk_property(w::GObject, name::AbstractString, ::Type{T})\n\nGet a GObject property's value as type T.\n\n\n\n\n\nget_gtk_property(w::GObject, name::AbstractString)\n\nGet a GObject property's value. The type of the returned value depends on the property, so this function's output is type unstable.\n\nGObject properties are mapped onto Julia instance properties, so this function is equivalent to the syntax w.name.\n\nSee also set_gtk_property!.\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Signals","page":"GLib Reference","title":"Signals","text":"","category":"section"},{"location":"doc/GLib_reference/","page":"GLib Reference","title":"GLib Reference","text":"Gtk4.GLib.signal_handler_is_connected\nGtk4.GLib.signal_handler_disconnect\nGtk4.GLib.signal_handler_block\nGtk4.GLib.signal_handler_unblock\nGtk4.GLib.signal_emit\nGtk4.GLib.waitforsignal","category":"page"},{"location":"doc/GLib_reference/#Gtk4.GLib.signal_handler_is_connected","page":"GLib Reference","title":"Gtk4.GLib.signal_handler_is_connected","text":"signal_handler_is_connected(widget, id) -> Bool\n\nReturn true/false depending on whether widget has a connected signal handler with the given id.\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.signal_handler_disconnect","page":"GLib Reference","title":"Gtk4.GLib.signal_handler_disconnect","text":"signal_handler_disconnect(w::GObject, id)\n\nDisconnect a signal handler from a widget w by its id.\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.signal_handler_block","page":"GLib Reference","title":"Gtk4.GLib.signal_handler_block","text":"signal_handler_block(w::GObject, id)\n\nTemporarily block a signal handler from running on a GObject instance.\n\nSee also signal_handler_unblock.\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.signal_handler_unblock","page":"GLib Reference","title":"Gtk4.GLib.signal_handler_unblock","text":"signal_handler_block(w::GObject, id)\n\nUnblock a signal handler that had been previously blocked.\n\nSee also signal_handler_block.\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.signal_emit","page":"GLib Reference","title":"Gtk4.GLib.signal_emit","text":"signal_emit(w::GObject, sig::AbstractStringLike, ::Type{RT}, args...) where RT\n\nCause an object signal to be emitted. The return type RT and the correct number of arguments (of the correct type) must be provided. The argument list should exclude the user_data argument.\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.waitforsignal","page":"GLib Reference","title":"Gtk4.GLib.waitforsignal","text":"waitforsignal(obj::GObject, signal)\n\nReturns when a GObject's signal is emitted. Can be used to wait for a window to be closed. This function should only be used for signals that return nothing, with one exception: the \"close-request\" signal of GtkWindow.\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Actions-and-action-groups","page":"GLib Reference","title":"Actions and action groups","text":"","category":"section"},{"location":"doc/GLib_reference/","page":"GLib Reference","title":"GLib Reference","text":"Gtk4.GLib.GSimpleAction\nGtk4.GLib.add_action\nGtk4.GLib.add_stateful_action\nGtk4.GLib.set_state","category":"page"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSimpleAction","page":"GLib Reference","title":"Gtk4.GLib.GSimpleAction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.add_action","page":"GLib Reference","title":"Gtk4.GLib.add_action","text":"add_action(m::GActionMap, name::AbstractString, parameter::Type{T}, handler::Function)\n\nAdd an action with name and a parameter of type T to a GActionMap. Also connect a handler for the action's \"activate\" signal.\n\n\n\n\n\nadd_action(m::GActionMap, name::AbstractString, handler::Function)\n\nAdd an action with name to a GActionMap. Also connect a handler for the action's \"activate\" signal.\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.add_stateful_action","page":"GLib Reference","title":"Gtk4.GLib.add_stateful_action","text":"add_stateful_action(m::GActionMap, name::AbstractString, parameter::Type{T}, initial_state, handler::Function)\n\nAdd a stateful action with name, a parameter of type T, and an initial state to a GActionMap. Also connect a handler for the action's \"change-state\" signal.\n\n\n\n\n\nadd_stateful_action(m::GActionMap, name::AbstractString, initial_state, handler::Function)\n\nAdd a stateful action with name and an initial state to a GActionMap. Also connect a handler for the action's \"change-state\" signal.\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.set_state","page":"GLib Reference","title":"Gtk4.GLib.set_state","text":"set_state(m::GSimpleAction, v)\n\nSet the state of a stateful action.\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#GObject-type-system","page":"GLib Reference","title":"GObject type system","text":"","category":"section"},{"location":"doc/GLib_reference/","page":"GLib Reference","title":"GLib Reference","text":"Gtk4.GLib.g_type\nGtk4.GLib.find_leaf_type","category":"page"},{"location":"doc/GLib_reference/#Gtk4.GLib.g_type","page":"GLib Reference","title":"Gtk4.GLib.g_type","text":"g_type(x)\n\nGet the GType corresponding to a Julia type or object. See GLib documentation for more information.\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.find_leaf_type","page":"GLib Reference","title":"Gtk4.GLib.find_leaf_type","text":"find_leaf_type(hnd::Ptr{T}) where T <: GObject\n\nFor a pointer to a GObject, look up its type in the GType system and return the Julia leaf type that best matches it. For types supported by Gtk4, for example GtkWindow, this will be the leaf type GtkWindowLeaf. Some types defined in GTK4 and other libraries are not exported. In this case, the nearest parent type supported by the Julia package will be returned. For example, objects in GIO that implement the GFile interface are returned as GObjectLeaf.\n\n\n\n\n\n","category":"function"},{"location":"manual/builder/#Builder","page":"Builder","title":"Builder","text":"","category":"section"},{"location":"manual/builder/","page":"Builder","title":"Builder","text":"Until now we have created and arranged all widgets entirely using Julia code. While this works fine for small examples, it has the issue that we are tightly coupling the appearance of our application with the logic of our program code.","category":"page"},{"location":"manual/builder/","page":"Builder","title":"Builder","text":"There is an alternative way to design user interfaces that strictly separates the layout from the code. This is done by an XML based file format that allows for describing any arrangement of widgets. In order to use the interface in your Julia Gtk4 application you will need GtkBuilder.","category":"page"},{"location":"manual/builder/","page":"Builder","title":"Builder","text":"For GTK version 3 and earlier, Glade is often used as a GUI tool for creating GtkBuilder XML files in a WYSIWYG (what you see is what you get) manner, but Glade wasn't ported to GTK version 4. Instead Cambalache can be used or the XML can be created in an editor.","category":"page"},{"location":"manual/builder/","page":"Builder","title":"Builder","text":"Once we have created the XML interface the result can be stored in an XML file that usually has the extension .ui. Let's assume we have created a file myapp.ui that looks like","category":"page"},{"location":"manual/builder/","page":"Builder","title":"Builder","text":"\n\n \n \n \n \n button\n 1\n 1\n \n \n \n","category":"page"},{"location":"manual/builder/","page":"Builder","title":"Builder","text":"In order to access the widgets from Julia we first create a GtkBuilder object that will serve as a connector between the XML definition and our Julia code.","category":"page"},{"location":"manual/builder/","page":"Builder","title":"Builder","text":"b = GtkBuilder(\"path/to/myapp.ui\")","category":"page"},{"location":"manual/builder/","page":"Builder","title":"Builder","text":"note: Note\nIf you are developing the code in a package you can get the package directory using the @__DIR__ macro. For instance, if your UI file is located at MyPackage/src/builder/myuifile.ui, you can get the full path using uifile = joinpath(@__DIR__, \"builder\", \"myuifile.ui\").","category":"page"},{"location":"manual/builder/","page":"Builder","title":"Builder","text":"Alternatively, if we store the above XML definition in a Julia string myapp we can initialize the builder by","category":"page"},{"location":"manual/builder/","page":"Builder","title":"Builder","text":"b = GtkBuilder(myapp, -1)","category":"page"},{"location":"manual/builder/","page":"Builder","title":"Builder","text":"Now we want to access a widget from the XML file in order to actually display it on the screen. To do so we can call","category":"page"},{"location":"manual/builder/","page":"Builder","title":"Builder","text":"win = b[\"window1\"]","category":"page"},{"location":"manual/builder/","page":"Builder","title":"Builder","text":"for each widget we want to access in our Julia code. Widgets that we don't need to access from Julia, for example layout widgets like GtkBox that are being used only to arrange more interesting widgets for input or display, do not need to be loaded. You can thus see your builder as a kind of a widget store that you use when you need access to your widgets.","category":"page"},{"location":"manual/builder/","page":"Builder","title":"Builder","text":"note: Note\nFetching an object from GtkBuilder is type unstable since the Julia compiler has no way of knowing the type of the object. A type assertion can be used to set a concrete type (ending in \"Leaf\") and potentially improve performance. In the example above, the correct assertion would be win = b[\"window1\"]::GtkWindowLeaf.","category":"page"},{"location":"manual/builder/","page":"Builder","title":"Builder","text":"In Gtk4.jl a macro @load_builder is defined that iterates over the GtkWidgets in a GtkBuilder object and automatically assigns them to Julia variables with the same id. For example, if a GtkEntry with an id entry1 and two GtkButtons with id's button1 and button2 are present in myapp.ui, calling","category":"page"},{"location":"manual/builder/","page":"Builder","title":"Builder","text":"@load_builder(GtkBuilder(filename=\"myapp.ui\"))","category":"page"},{"location":"manual/builder/","page":"Builder","title":"Builder","text":"is equivalent to","category":"page"},{"location":"manual/builder/","page":"Builder","title":"Builder","text":"entry1 = b[\"entry1\"]\nbutton1 = b[\"button1\"]\nbutton2 = b[\"button2\"]","category":"page"},{"location":"manual/builder/","page":"Builder","title":"Builder","text":"Note that this only works for GtkWidgets that implement the interface GtkBuildable, which excludes some objects often defined in UI files, for example GtkAdjustment. Those objects will have to be fetched using calls to get_object.","category":"page"},{"location":"manual/builder/#Callbacks","page":"Builder","title":"Callbacks","text":"","category":"section"},{"location":"manual/builder/","page":"Builder","title":"Builder","text":"The XML file lets us only describe the visual structure of our widgets and not their behavior when the using is interacting with it. For this reason, we will have to add callbacks to the widgets which we do in Julia code as it was described in Signals and Callbacks. Alternatively you can use Actions, which are described in the next section.","category":"page"},{"location":"manual/properties/#Properties","page":"Properties","title":"Properties","text":"","category":"section"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"If you're following along, you probably noticed that creating win caused quite a lot of output:","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"Gtk4.GtkWindowLeaf(accessible-role=GTK_ACCESSIBLE_ROLE_WINDOW, name=\"\", parent, root, width-request=-1, height-request=-1, visible=true, sensitive=true, can-focus=true, has-focus=false, can-target=true, focus-on-click=true, focusable=false, has-default=false, receives-default=false, cursor, has-tooltip=false, tooltip-markup=nothing, tooltip-text=nothing, opacity=1.000000, overflow=GTK_OVERFLOW_HIDDEN, halign=GTK_ALIGN_FILL, valign=GTK_ALIGN_FILL, margin-start=0, margin-end=0, margin-top=0, margin-bottom=0, hexpand=false, vexpand=false, hexpand-set=false, vexpand-set=false, scale-factor=1, css-name=\"window\", css-classes, layout-manager, title=nothing, resizable=true, modal=false, default-width=200, default-height=200, destroy-with-parent=false, hide-on-close=false, icon-name=nothing, display, decorated=true, deletable=true, transient-for, application, default-widget, focus-widget, child, titlebar, handle-menubar-accel=true, is-active=false, startup-id, mnemonics-visible=false, focus-visible=false, maximized=false, fullscreened=false)","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"This shows you a list of properties of the object and their current values. All GTK widgets, including windows, are subtypes of GObject, which have various properties that control how the widgets are displayed. For example, notice that the title property is set to \"My window\". In this package, GObject properties are mapped onto Julia properties. We can change the title in the following way:","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"julia> win.title = \"New title\"","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"To get the title we can use:","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"julia> title = win.title\n\"New title\"","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"We can also use set_gtk_property! and get_gtk_property! to set or get GObject properties:","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"julia> set_gtk_property!(win, :title, \"New title\")\njulia> get_gtk_property(win, :title)\n\"New title\"","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"To get the property in a type stable way, you can specify the return type:","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"julia> get_gtk_property(win, :title, String)\n\"New title\"","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"To access particular properties using set_gtk_property! or get_gtk_property, you can either use symbols, like :title, or strings, like \"title\". When using symbols, you'll need to convert any Gtk property names that use - into names with _:","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"julia> get_gtk_property(win, :default_width)\ntrue","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"Properties that are string-valued or GObject-valued can be set to nothing, which is equivalent to setting them to NULL in C (or None in Python). A list of all possible property names for a GObject instance is returned by gtk_propertynames.","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"Properties can be set using keyword arguments in most constructors:","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"julia> win = GtkWindow(; title=\"My title\", visible=true)","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"Information about a property, including a description, its GLib type and default value, can be found using propertyinfo:","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"julia> propertyinfo(win, :title)\nName: title\nGType name: gchararray\nFlags: Readable Writable\nDescription: The title of the window\nDefault value: nothing\nCurrent value: nothing","category":"page"},{"location":"manual/properties/#Getter-and-setter-methods","page":"Properties","title":"Getter and setter methods","text":"","category":"section"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"Some properties have corresponding getter and setter C methods. It's recommended that you use these when they exist, as they are a little faster and type stable. For example the function visible gets or sets the property \"visible\" of a GtkWidget:","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"julia> visible(win)\ntrue\n\njulia> visible(win, false)\n\njulia> visible(win)\nfalse\n\njulia> visible(win, true)","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"This sequence makes the window disappear and then reappear.","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"The most important accessors are exported from Gtk4 but the more obscure will have to be called including the module name. For example, the property resizable for a GtkWindow, which controls whether a user is allowed to resize the window, can be set using","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"julia> Gtk4.resizable(win, false)","category":"page"},{"location":"manual/properties/#Binding-properties","page":"Properties","title":"Binding properties","text":"","category":"section"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"Properties can be bound to one another through the GObject signal system using the method bind_property. For example, if one wanted the title of a window win2 to automatically track that of another window win1, one could use","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"julia> b = bind_property(win1, \"title\", win2, \"title\")","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"Now if one calls","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"julia> win1.title = \"New title\"","category":"page"},{"location":"manual/properties/","page":"Properties","title":"Properties","text":"the title of win2 is automatically updated to the same value. The binding can be released using unbind_property(b).","category":"page"},{"location":"manual/textwidgets/#Text-Widgets","page":"Text Widgets","title":"Text Widgets","text":"","category":"section"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"There are two basic widgets available for rendering simple text: GtkLabel is for displaying non-editable text and GtkEntry is for editable text.","category":"page"},{"location":"manual/textwidgets/#[GtkLabel](https://docs.gtk.org/gtk4/class.Label.html)","page":"Text Widgets","title":"GtkLabel","text":"","category":"section"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"A GtkLabel is the most basic text widget and has already been used behind the scenes in any previous example involving a GtkButton. A GtkLabel is constructed by calling","category":"page"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"label = GtkLabel(\"My text\")","category":"page"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"The text of a label can be changed using the label property or Gtk4.text","category":"page"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"Gtk4.text(label,\"My other text\")\nlabel.label = \"My final text\"","category":"page"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"Furthermore, a label has limited support for adding formatted text. This is done using the Gtk4.markup function:","category":"page"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"Gtk4.markup(label,\"\"\"My bold text\\n\n GTK+ website\"\"\")","category":"page"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"The syntax for this markup text is borrowed from HTML and explained here.","category":"page"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"A label can be made selectable (so that it can be copied and pasted elsewhere) using","category":"page"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"Gtk4.selectable(label,true)","category":"page"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"The justification of a label can be changed in the following way:","category":"page"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"Gtk4.justify(label,Gtk4.Justification_RIGHT)","category":"page"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"Possible values of the enum Justification are LEFT,RIGHT,CENTER, and FILL.","category":"page"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"Automatic line wrapping can be enabled using","category":"page"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"Gtk4.text(label,repeat(\"Very long text! \",20))\nGtk4.wrap(label,true)","category":"page"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"Note that wrapping will only occur if the size of the widget is limited by layout constraints.","category":"page"},{"location":"manual/textwidgets/#[GtkEntry](https://docs.gtk.org/gtk4/class.Entry.html)","page":"Text Widgets","title":"GtkEntry","text":"","category":"section"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"The entry widget allows the user to enter text. The entered text can be read and written using","category":"page"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"ent = GtkEntry()\nent.text = \"My String\"\nstr = ent.text","category":"page"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"A maximum number of characters can be set using ent.max_length = 10.","category":"page"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"Sometimes you might want to make the widget non-editable. This can be done using the call","category":"page"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"# using the accessor method\nGtk4.editable(GtkEditable(ent),false)\n# using the property system\nent.editable = false","category":"page"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"If you want to use the entry to retrieve passwords you can hide the visibility of the entered text. This can be achieved by calling","category":"page"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"ent.visibility = false","category":"page"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"To get notified by changes to the entry one can listen to the \"changed\" event.","category":"page"},{"location":"manual/textwidgets/#[GtkSearchEntry](https://docs.gtk.org/gtk4/class.SearchEntry.html)","page":"Text Widgets","title":"GtkSearchEntry","text":"","category":"section"},{"location":"manual/textwidgets/","page":"Text Widgets","title":"Text Widgets","text":"A special variant of the entry that can be used as a search box is GtkSearchEntry. It is equipped with a button to clear the entry.","category":"page"},{"location":"#Gtk4.jl","page":"Home","title":"Gtk4.jl","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Julia Bindings for Gtk version 4.x.","category":"page"},{"location":"#Introduction","page":"Home","title":"Introduction","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Gtk4.jl is a Julia package providing bindings for the Gtk library: https://www.gtk.org/","category":"page"},{"location":"","page":"Home","title":"Home","text":"Complete Gtk documentation is available at https://www.gtk.org/docs/","category":"page"},{"location":"#Usage","page":"Home","title":"Usage","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Manual/tutorial: see Getting Started and following pages for an introduction to using the package, adapted from the Gtk.jl manual.\nHow-to guides: see Using Gtk4 outside the REPL and following pages for practical discussions of various sticky issues when using Gtk4.jl.\nReference: see Gtk4 Reference for an API reference automatically generated from docstrings.\nSee Differences between Gtk.jl and Gtk4.jl for a summary of the differences between this package and Gtk.jl.","category":"page"},{"location":"#History","page":"Home","title":"History","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"This package and its documentation were adapted from Gtk.jl, which was written by Jameson Nash and others and supported GTK versions 2 and 3. With version 4 there were so many changes to the GTK API that it would have been messy to try to support it and previous versions in the same package. Note that much of the GLib/GObject functionality that underlies GTK is largely the same code as in Gtk.jl. Some changes were made to try to take better advantage of GObject introspection or to remove old code that was no longer necessary in recent versions of Julia.","category":"page"}] }