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").
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).
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.
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.
In GTK 4, widgets are shown by default, so showall does not exist, and calling show is no longer necessary in most situations. Exceptions include GtkDialogs and GtkApplicationWindows.
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.
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).
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!.
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.
Settings
This document was generated with Documenter.jl on Saturday 9 September 2023. Using Julia version 1.9.3.
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").
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).
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.
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.
In GTK 4, widgets are shown by default, so showall does not exist, and calling show is no longer necessary in most situations. Exceptions include GtkDialogs and GtkApplicationWindows.
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.
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).
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!.
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.
Settings
This document was generated with Documenter.jl version 0.27.25 on Sunday 17 September 2023. Using Julia version 1.9.3.
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.
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.
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.
Add a function f that will be called every interval milliseconds by the GTK main loop. The function is expected to return a Cint. If it returns a nonzero value, the function will be called again after another interval milliseconds. Otherwise 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.
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.
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.
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.
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.
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.
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.
Add a function f that will be called every interval milliseconds by the GTK main loop. The function is expected to return a Cint. If it returns a nonzero value, the function will be called again after another interval milliseconds. Otherwise 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.
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.
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.
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.
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":
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.
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.
Settings
This document was generated with Documenter.jl on Saturday 9 September 2023. Using Julia version 1.9.3.
+[ 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.
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.
Settings
This document was generated with Documenter.jl version 0.27.25 on Sunday 17 September 2023. Using Julia version 1.9.3.
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.
Sets a cursor c when the mouse pointer is over a widget w, where c can be a GdkCursor or a string to specify a name. If c is nothing, use the default cursor for w.
Set 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.
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.
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.
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.
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.
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.
Returns a tuple (width,height) that gives the primary monitor size for the display where widget is being displayed, or the default display if widget is unrealized or not given.
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.
Sets a cursor c when the mouse pointer is over a widget w, where c can be a GdkCursor or a string to specify a name. If c is nothing, use the default cursor for w.
Set 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.
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.
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.
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.
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.
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.
Returns a tuple (width,height) that gives the primary monitor size for the display where widget is being displayed, or the default display if widget is unrealized or not given.
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.
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.
Loads all GtkBuildable objects from a GtkBuilder object and assigns them to Julia variables in the current scope. GtkBuilder ID's are mapped onto Julia variable names.
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.
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.
Loads all GtkBuildable objects from a GtkBuilder object and assigns them to Julia variables in the current scope. GtkBuilder ID's are mapped onto Julia variable names.
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.
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.
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.
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.
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.
Create 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.
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.
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 (julia -t2 on the command line).
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.
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 (julia -t2 on the command line).
using Gtk4
btn = GtkButton("Start")
sp = GtkSpinner()
@@ -31,7 +31,7 @@
end
end
-win = GtkWindow(grid, "Threads", 200, 200)
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.
using Gtk4, Distributed
+win = GtkWindow(grid, "Threads", 200, 200)
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.
using Gtk4, Distributed
btn = GtkButton("Start")
sp = GtkSpinner()
@@ -64,4 +64,4 @@
end
end
-win = GtkWindow(grid, "Distributed", 200, 200)
Settings
This document was generated with Documenter.jl on Saturday 9 September 2023. Using Julia version 1.9.3.
+win = GtkWindow(grid, "Distributed", 200, 200)
Settings
This document was generated with Documenter.jl version 0.27.25 on Sunday 17 September 2023. Using Julia version 1.9.3.
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:
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:
using Gtk4
win = GtkWindow("gtkwait")
# Put your GUI code here
@@ -11,7 +11,7 @@
end
@async Gtk4.GLib.glib_main()
wait(c)
-end
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.
In the common case that we simply wish to wait for a single window to be closed, this can be shortened by using waitforsignal:
using Gtk4
+end
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.
In the common case that we simply wish to wait for a single window to be closed, this can be shortened by using waitforsignal:
using Gtk4
win = GtkWindow("gtkwait")
# Put your GUI code here
@@ -19,7 +19,7 @@
if !isinteractive()
@async Gtk4.GLib.glib_main()
Gtk4.GLib.waitforsignal(win,:close_request)
-end
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:
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:
using Gtk4
function activate(app)
win = GtkApplicationWindow(app, "my title")
@@ -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.
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.
Settings
This document was generated with Documenter.jl on Saturday 9 September 2023. Using Julia version 1.9.3.
+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.
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.
Settings
This document was generated with Documenter.jl version 0.27.25 on Sunday 17 September 2023. Using Julia version 1.9.3.
diff --git a/dev/howto/sysimage/index.html b/dev/howto/sysimage/index.html
index a2c761de..aa84f23a 100644
--- a/dev/howto/sysimage/index.html
+++ b/dev/howto/sysimage/index.html
@@ -1,2 +1,2 @@
-Gtk4 in a sysimage · Gtk4.jl
Note that if Gtk4 is included in a sysimage using PackageCompiler.jl, the main loop will not be started automatically when calling using Gtk4even in an interactive Julia session. You will have to call GLib.start_main_loop() before windows will appear.
Settings
This document was generated with Documenter.jl on Saturday 9 September 2023. Using Julia version 1.9.3.
Note that if Gtk4 is included in a sysimage using PackageCompiler.jl, the main loop will not be started automatically when calling using Gtk4even in an interactive Julia session. You will have to call GLib.start_main_loop() before windows will appear.
Settings
This document was generated with Documenter.jl version 0.27.25 on Sunday 17 September 2023. Using Julia version 1.9.3.
This package was 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.
Settings
This document was generated with Documenter.jl on Saturday 9 September 2023. Using Julia version 1.9.3.
This package was 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.
Settings
This document was generated with Documenter.jl version 0.27.25 on Sunday 17 September 2023. Using Julia version 1.9.3.
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.
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.
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 by hand).
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
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.
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.
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 by hand).
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
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")
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
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").
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"]
+</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")
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
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").
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
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.
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.
Settings
This document was generated with Documenter.jl on Saturday 9 September 2023. Using Julia version 1.9.3.
+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.
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.
Settings
This document was generated with Documenter.jl version 0.27.25 on Sunday 17 September 2023. Using Julia version 1.9.3.
diff --git a/dev/manual/canvas/index.html b/dev/manual/canvas/index.html
index 15cf57d6..f1ad0912 100644
--- a/dev/manual/canvas/index.html
+++ b/dev/manual/canvas/index.html
@@ -1,5 +1,5 @@
-Drawing with Cairo · Gtk4.jl
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:
using Gtk4, Graphics
+Drawing with Cairo · Gtk4.jl
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:
using Gtk4, Graphics
c = GtkCanvas()
win = GtkWindow(c, "Canvas")
@guarded draw(c) do widget
@@ -14,7 +14,7 @@
rectangle(ctx, 0, 3h/4, w, h/4)
set_source_rgb(ctx, 0, 0, 1)
fill(ctx)
-end
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.
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.
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!.
g=GtkGestureClick()
+end
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.
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.
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!.
g=GtkGestureClick()
push!(c,g)
function on_pressed(controller, n_press, x, y)
@@ -27,7 +27,7 @@
end
signal_connect(on_pressed, g, "pressed")
-
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.
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.
You can perform computations only when the widget is resized by connecting to the "resize" signal.
It's pretty straightforward to use GtkCanvas to display Cairo-based plots and diagrams produced by packages like CairoMakie.jl or Luxor.jl.
A minimal example of displaying a CairoMakie plot is shown below:
using Gtk4, CairoMakie
+
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.
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.
You can perform computations only when the widget is resized by connecting to the "resize" signal.
A more complicated example can be found in the "examples" subdirectory. For interactive plots, you can try Gtk4Makie.jl, which draws GLMakie plots onto GTK's GtkGLArea widget.
Settings
This document was generated with Documenter.jl on Saturday 9 September 2023. Using Julia version 1.9.3.
+end
A more complicated example can be found in the "examples" subdirectory. For interactive plots, you can try Gtk4Makie.jl, which draws GLMakie plots onto GTK's GtkGLArea widget.
Settings
This document was generated with Documenter.jl version 0.27.25 on Sunday 17 September 2023. Using Julia version 1.9.3.
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.
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):
using Gtk4
+push!(win, dd)
A search entry can be added using Gtk4.enable_search(dd, true).
To change the list of options after the dropdown widget is created, you can use
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.
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):
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.
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:
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.
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:
info_dialog("Julia rocks!")
ask_dialog("Do you like chocolate ice cream?", "Not at all", "I like it") && println("That's my favorite too.")
-warn_dialog("Oops!... I did it again")
These take an optional argument timeout (in seconds) that can be used to make the dialog disappear after a certain time.
In callbacks (for example when a user clicks a button in a GUI), you can 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:
b = GtkButton("Click me")
+warn_dialog("Oops!... I did it again")
These take an optional argument timeout (in seconds) that can be used to make the dialog disappear after a certain time.
In callbacks (for example when a user clicks a button in a GUI), you can 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:
b = GtkButton("Click me")
win = GtkWindow(b,"Info dialog example")
f() = println("message received")
function on_click(b)
info_dialog(f, "Julia rocks!",win)
end
-signal_connect(on_click, b, "clicked")
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.
The callback can alternatively be constructed using Julia's do syntax:
info_dialog("Julia rocks!", win) do
+signal_connect(on_click, b, "clicked")
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.
The callback can alternatively be constructed using Julia's do syntax:
info_dialog("Julia rocks!", win) do
println("message received")
-end
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
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
function f(filename)
# do something with the file
end
-open_dialog(f, "Pick a file to open", parent)
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:
open_dialog("Pick a file to open", parent) do filename
+open_dialog(f, "Pick a file to open", parent)
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:
open_dialog("Pick a file to open", parent) do filename
# call a function here to do something with the file
-end
Multiple files can be opened by setting the multiple keyword argument:
open_dialog("Pick files to open", parent; multiple = true) do filenames
+end
Multiple files can be opened by setting the multiple keyword argument:
open_dialog("Pick files to open", parent; multiple = true) do filenames
# call a function here to do something with files
-end
In this case filenames is a list of paths.
The dialog can be preset to a particular directory using the optional argument start_folder:
open_dialog(f, "Pick a file to open", parent; start_folder = "/data")
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
GtkFileFilter(pattern = "", mimetype = "")
A human-readable name can optionally be provided using a keyword argument.
If on the other hand you want to choose a folder instead of a file, use select_folder = true in open_dialog:
dir=Ref{String}()
+end
In this case filenames is a list of paths.
The dialog can be preset to a particular directory using the optional argument start_folder:
open_dialog(f, "Pick a file to open", parent; start_folder = "/data")
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
GtkFileFilter(pattern = "", mimetype = "")
A human-readable name can optionally be provided using a keyword argument.
If on the other hand you want to choose a folder instead of a file, use select_folder = true in open_dialog:
dir=Ref{String}()
open_dialog("Select Dataset Folder"; select_folder = true) do name
dir[] = name
end
if isdir(dir[])
# do something with dir
-end
We start this tutorial with a very simple example that creates an empty window of size 400x200 pixels and adds a button to it
using Gtk4
win = GtkWindow("My First Gtk4.jl Program", 400, 200)
b = GtkButton("Click Me")
push!(win,b)
-show(win)
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
push!(win,b)
Since a GtkWindow can have only one child widget, we could have added the button to the window using
win[] = b
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).
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.
function on_button_clicked(w)
+show(win)
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
push!(win,b)
Since a GtkWindow can have only one child widget, we could have added the button to the window using
win[] = b
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).
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.
function on_button_clicked(w)
println("The button has been clicked")
-end
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
signal_connect(on_button_clicked, b, "clicked")
Our full extended example thus looks like:
using Gtk4
+end
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
signal_connect(on_button_clicked, b, "clicked")
Our full extended example thus looks like:
using Gtk4
win = GtkWindow("My First Gtk4.jl Program", 400, 200)
@@ -18,4 +18,4 @@
function on_button_clicked(w)
println("The button has been clicked")
end
-signal_connect(on_button_clicked, b, "clicked")
Settings
This document was generated with Documenter.jl on Saturday 9 September 2023. Using Julia version 1.9.3.
+signal_connect(on_button_clicked, b, "clicked")
Settings
This document was generated with Documenter.jl version 0.27.25 on Sunday 17 September 2023. Using Julia version 1.9.3.
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.
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.
using Gtk4
win = GtkWindow("Key Press Example")
eck = GtkEventControllerKey(win)
signal_connect(eck, "key-pressed") do controller, keyval, keycode, state
println("You pressed key ", keyval, " which is '", Char(keyval), "'.")
-end
You can then check if event.keyval has a certain value and invoke an action in that case.
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.
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.
using Gtk4
const start_times = Dict{UInt32, UInt32}()
@@ -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
Settings
This document was generated with Documenter.jl on Saturday 9 September 2023. Using Julia version 1.9.3.
+end
Settings
This document was generated with Documenter.jl version 0.27.25 on Sunday 17 September 2023. Using Julia version 1.9.3.
The simplest layout widget is the GtkBox. It is one-dimensional and can be either be horizontally or vertical aligned.
win = GtkWindow("New title")
hbox = GtkBox(:h) # :h makes a horizontal layout, :v a vertical layout
push!(win, hbox)
cancel = GtkButton("Cancel")
ok = GtkButton("OK")
push!(hbox, cancel)
-push!(hbox, ok)
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:
ok.hexpand = true
-hbox.spacing = 10
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.
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.
hbox.homogeneous = true
To add a line between widgets in a GtkBox, you can use GtkSeparator.
sep = GtkSeparator(:h)
+push!(hbox, ok)
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:
ok.hexpand = true
+hbox.spacing = 10
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.
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.
hbox.homogeneous = true
To add a line between widgets in a GtkBox, you can use GtkSeparator.
sep = GtkSeparator(:h)
push!(hbox, sep)
-# add more widgets here
To create two-dimensional (tabular) layouts of widgets, you can use GtkGrid:
win = GtkWindow("A new window")
g = GtkGrid()
a = GtkEntry() # a widget for entering text
a.text = "This is Gtk!"
@@ -21,21 +21,22 @@
g[1:2,2] = c # spans both columns
g.column_homogeneous = true # grid forces columns to have the same width
g.column_spacing = 15 # introduce a 15-pixel gap between columns
-push!(win, g)
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.
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:
cb = GtkCenterBox(:h) # :h makes a horizontal layout, :v a vertical layout
+push!(win, g)
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.
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:
julia> Gtk4.query_child(g,c)
+(1, 2, 2, 1)
Here, 1 is the column, 2 is the row, and the widget spans 2 columns and 1 row.
Julia interface methods defined for GtkGrid:
method
what it does
getindex(g::GtkGrid, c::Integer, r::Integer) or g[c,r]
Gets a widget, where c and r are the column and row indices
setindex!(g::GtkGrid, w::GtkWidget, c::Integer, r::Integer) or g[i,j] = w
Sets a widget
insert!(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.
insert!(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.
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:
cb = GtkCenterBox(:h) # :h makes a horizontal layout, :v a vertical layout
cb[:start] = GtkButton("Left")
cb[:center] = GtkButton("Center")
-cb[:end] = GtkButton("Right")
For vertical orientation, :start refers to the top widget and :end to the bottom widget.
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
paned = GtkPaned()
+cb[:end] = GtkButton("Right")
For vertical orientation, :start refers to the top widget and :end to the bottom widget.
Julia interface methods defined for GtkCenterBox:
method
what it does
getindex(b::GtkCenterBox, pos::Symbol) or b[pos]
Gets a widget, where pos is :start, :center, or :end
setindex!(b::GtkCenterBox, w::GtkWidget, pos::Symbol) or b[pos] = w
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
The GtkNotebook widget places child widgets in tabs like a browser window. Child widgets can be inserted with a label like this:
nb = GtkNotebook()
vbox = GtkBox(:v)
hbox = GtkBox(:h)
push!(nb, vbox, "Vertical") # here "Vertical" is the label for the tab
-push!(nb, hbox, "Horizontal")
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:
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:
s = GtkStack()
sw = GtkStackSwitcher()
vbox = GtkBox(:v)
push!(vbox, sw)
push!(vbox, s)
push!(s, GtkLabel("First label"), "id1", "Label 1") # first string is an id, second is a label
-push!(s, GtkLabel("Second label"), "id2", "Label 2") # widget can be retrieved using s[id]
The GtkTreeView is a very powerful widget for displaying table-like or hierarchical data. It is used for both lists and trees.
The power of this widget comes with a slightly more complex design that one has to understand when using the widget. The most important thing is that the widget itself does not store the displayed data. Instead there are dedicated GtkListStore and GtkTreeStore containers that will hold the data. The benefit of this approach is that it is possible to decouple the view from the data:
The widget automatically updates when adding, removing or editing data from the store
The widget can sort its data without modifications in the store
Columns can be reordered and resized
Filtering can be used to show only subsets of data
We will in the following introduce both widgets based on small and a more complex example.
Lets start with a very simple example: A table with three columns representing the name, the age and the gender of a person. Each column must have a specific type. Here, we chose to represent the gender using a boolean value where true represents female and false represents male. We thus initialize the list store using
ls = GtkListStore(String, Int, Bool)
Now we will the store with data
push!(ls,("Peter",20,false))
+List and Tree Widgets · Gtk4.jl
The GtkTreeView is a very powerful widget for displaying table-like or hierarchical data. It is used for both lists and trees.
The power of this widget comes with a slightly more complex design that one has to understand when using the widget. The most important thing is that the widget itself does not store the displayed data. Instead there are dedicated GtkListStore and GtkTreeStore containers that will hold the data. The benefit of this approach is that it is possible to decouple the view from the data:
The widget automatically updates when adding, removing or editing data from the store
The widget can sort its data without modifications in the store
Columns can be reordered and resized
Filtering can be used to show only subsets of data
We will in the following introduce both widgets based on small and a more complex example.
Lets start with a very simple example: A table with three columns representing the name, the age and the gender of a person. Each column must have a specific type. Here, we chose to represent the gender using a boolean value where true represents female and false represents male. We thus initialize the list store using
Now we actually want to display our data. To this end we create a tree view object
tv = GtkTreeView(GtkTreeModel(ls))
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.
Now we actually want to display our data. To this end we create a tree view object
tv = GtkTreeView(GtkTreeModel(ls))
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.
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
selection = Gtk4.selection(tv)
One either have single selection or multiple selections. We toggle this by calling
Gtk4.mode(selection,Gtk4.SelectionMode_MULTIPLE)
For single selection, if we want to know the index of the selected item we can use
julia> ls[selected(selection),1]
-"Pete"
For multiple selection, we can get a list of selected rows using selected_rows, which can be used to index the GtkListStore
julia> [ls[x,1] for x in selected_rows(selection)]
+end
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
selection = Gtk4.selection(tv)
One either have single selection or multiple selections. We toggle this by calling
Gtk4.mode(selection,Gtk4.SelectionMode_MULTIPLE)
For single selection, if we want to know the index of the selected item we can use
julia> ls[selected(selection),1]
+"Pete"
For multiple selection, we can get a list of selected rows using selected_rows, which can be used to index the GtkListStore
julia> [ls[x,1] for x in selected_rows(selection)]
3-element Vector{String}:
"Susanne"
"Pete"
- "Paul"
Since it can happen that no item has been selected at all, it is a good idea to put this into an if statement
if hasselection(selection)
+ "Paul"
Since it can happen that no item has been selected at all, it is a good idea to put this into an if statement
if hasselection(selection)
# do something with selected(selection)
-end
Sometimes you want to invoke an action of an item is selected. This can be done by
signal_connect(selection, "changed") do widget
+end
Sometimes you want to invoke an action of an item is selected. This can be done by
signal_connect(selection, "changed") do widget
if hasselection(selection)
currentIt = selected(selection)
# now you can to something with the selected item
println("Name: ", ls[currentIt,1], " Age: ", ls[currentIt,1])
end
-end
Another useful signal is "row-activated" that will be triggered by a double click of the user.
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.
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:
using Gtk4
+end
Another useful signal is "row-activated" that will be triggered by a double click of the user.
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.
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:
using Gtk4
ls = GtkListStore(String, Int, Bool, Bool)
push!(ls,("Peter",20,false,true))
@@ -81,7 +81,7 @@
vbox = GtkBox(:v)
push!(vbox,ent,tv)
-win = GtkWindow(vbox, "List View with Filter")
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.
using Gtk4
+win = GtkWindow(vbox, "List View with Filter")
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.
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 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/gendirectory. 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.
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 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/gendirectory. 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.
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:
julia> win.title = "New title"
To get the title we can use:
julia> title = win.title
-"New title"
We can also use set_gtk_property! and get_gtk_property! to set or get GObject properties:
julia> set_gtk_property!(win, :title, "New title")
+Properties · Gtk4.jl
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:
julia> win.title = "New title"
To get the title we can use:
julia> title = win.title
+"New title"
We can also use set_gtk_property! and get_gtk_property! to set or get GObject properties:
julia> set_gtk_property!(win, :title, "New title")
julia> get_gtk_property(win, :title)
-"New title"
To get the property in a type stable way, you can specify the return type:
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 _:
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.
Properties can be set using keyword arguments in most constructors:
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 _:
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.
Properties can be set using keyword arguments in most constructors:
Information about a property, including a description, its GLib type and default value, can be found using propertyinfo:
julia> propertyinfo(win, :title)
Name: title
GType name: gchararray
Flags: Readable Writable
Description: The title of the window
Default value: nothing
-Current value: nothing
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:
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:
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
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).
Settings
This document was generated with Documenter.jl on Saturday 9 September 2023. Using Julia version 1.9.3.
+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
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).
Settings
This document was generated with Documenter.jl version 0.27.25 on Sunday 17 September 2023. Using Julia version 1.9.3.
diff --git a/dev/manual/signals/index.html b/dev/manual/signals/index.html
index d156e82f..f027e124 100644
--- a/dev/manual/signals/index.html
+++ b/dev/manual/signals/index.html
@@ -1,21 +1,21 @@
-Signals and Callbacks · Gtk4.jl
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.
Let's try a simple example:
b = GtkButton("Press me")
+Signals and Callbacks · Gtk4.jl
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.
Let's try a simple example:
b = GtkButton("Press me")
win = GtkWindow(b, "Callbacks")
function button_clicked_callback(widget)
println(widget, " was clicked!")
end
-id = signal_connect(button_clicked_callback, b, "clicked")
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.
Using Julia's do syntax, the exact same code could alternatively be written as
b = GtkButton("Press me")
+id = signal_connect(button_clicked_callback, b, "clicked")
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.
Using Julia's do syntax, the exact same code could alternatively be written as
b = GtkButton("Press me")
win = GtkWindow(b, "Callbacks")
id = signal_connect(b, "clicked") do widget
println(widget, " was clicked!")
-end
If you try this, and click on the button, you should see something like the following:
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.
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:
signal_handler_disconnect(b, id)
Now clicking on the button just yields
julia> "Press me" was clicked!
Alternatively, you can temporarily enable or disable individual handlers with signal_handler_block and signal_handler_unblock.
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:
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.
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:
signal_handler_disconnect(b, id)
Now clicking on the button just yields
julia> "Press me" was clicked!
Alternatively, you can temporarily enable or disable individual handlers with signal_handler_block and signal_handler_unblock.
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:
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.
widget is the widget that will send the signal
signalname is a string or symbol identifying the signal, e.g., "clicked" or "button-press-event"
return_type is the type of the value returned by your callback. Usually Nothing (for void) or Cint (for gboolean)
parameter_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).
after is a boolean, true if you want your callback to run after the default handler for your signal. When in doubt, specify false.
user_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.
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.)
For example, consider a GUI in which pressing a button updates a counter:
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.
widget is the widget that will send the signal
signalname is a string or symbol identifying the signal, e.g., "clicked" or "button-press-event"
return_type is the type of the value returned by your callback. Usually Nothing (for void) or Cint (for gboolean)
parameter_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).
after is a boolean, true if you want your callback to run after the default handler for your signal. When in doubt, specify false.
user_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.
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.)
For example, consider a GUI in which pressing a button updates a counter:
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.,
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.
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:
const unhandled = convert(Int32, false)
+ end
and then use the reported type in parameter_type_tuple.
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:
const unhandled = convert(Int32, false)
@guarded unhandled function my_callback(widgetptr, ...)
...
- end
Settings
This document was generated with Documenter.jl on Saturday 9 September 2023. Using Julia version 1.9.3.
+ end
Settings
This document was generated with Documenter.jl version 0.27.25 on Sunday 17 September 2023. Using Julia version 1.9.3.
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
label = GtkLabel("My text")
The text of a label can be changed using the label property or Gtk4.text
Gtk4.text(label,"My other text")
-label.label = "My final text"
Furthermore, a label has limited support for adding formatted text. This is done using the Gtk4.markup function:
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
label = GtkLabel("My text")
The text of a label can be changed using the label property or Gtk4.text
Gtk4.text(label,"My other text")
+label.label = "My final text"
Furthermore, a label has limited support for adding formatted text. This is done using the Gtk4.markup function:
This document was generated with Documenter.jl on Saturday 9 September 2023. Using Julia version 1.9.3.
+Search · Gtk4.jl
Loading search...
Settings
This document was generated with Documenter.jl version 0.27.25 on Sunday 17 September 2023. Using Julia version 1.9.3.
diff --git a/dev/search_index.js b/dev/search_index.js
index 8030d7cd..70b48219 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-1","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-1","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-1","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-1","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-1","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-1","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, and calling show is no longer necessary in most situations. Exceptions include GtkDialogs and GtkApplicationWindows.","category":"page"},{"location":"diff3to4/#No-GtkContainer-1","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-1","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-1","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-1","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-1","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-1","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":"howto/sysimage/#Gtk4-in-a-sysimage-1","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":"howto/async/#Asynchronous-UI-1","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/#","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 (julia -t2 on the command line).","category":"page"},{"location":"howto/async/#","page":"Asynchronous UI","title":"Asynchronous UI","text":"using Gtk4\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\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 Cint(false)\n end\n end\nend\n\nwin = GtkWindow(grid, \"Threads\", 200, 200)","category":"page"},{"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/combobox/#Dropdown-widgets-1","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-1","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).","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 can use","category":"page"},{"location":"manual/combobox/#","page":"Dropdown widgets","title":"Dropdown widgets","text":"new_options_list = Gtk4.GtkStringList([\"one\",\"two\",\"three\",\"four\",\"five\"])\nGtk4.model(dd,GListModel(new_options_list))","category":"page"},{"location":"manual/combobox/#","page":"Dropdown widgets","title":"Dropdown widgets","text":"More complex uses of GtkDropDown are possible and may be supported in future versions of Gtk4.jl.","category":"page"},{"location":"manual/combobox/#GtkComboBox-1","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-1","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/preferences/#Preference-Settings-1","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)-1","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-1","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-1","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-1","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-1","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/dialogs/#Dialogs-1","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/#Message-dialogs-1","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 can 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-1","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-1","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-1","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-1","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":"The GtkTreeView is a very powerful widget for displaying table-like or hierarchical data. It is used for both lists and trees.","category":"page"},{"location":"manual/listtreeview/#","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"The power of this widget comes with a slightly more complex design that one has to understand when using the widget. The most important thing is that the widget itself does not store the displayed data. Instead there are dedicated GtkListStore and GtkTreeStore containers that will hold the data. The benefit of this approach is that it is possible to decouple the view from the data:","category":"page"},{"location":"manual/listtreeview/#","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"The widget automatically updates when adding, removing or editing data from the store\nThe widget can sort its data without modifications in the store\nColumns can be reordered and resized\nFiltering can be used to show only subsets of data","category":"page"},{"location":"manual/listtreeview/#","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"We will in the following introduce both widgets based on small and a more complex example.","category":"page"},{"location":"manual/listtreeview/#List-Store-1","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":"Lets start with a very simple example: A table with three columns representing the name, the age and the gender of a person. Each column must have a specific type. Here, we chose to represent the gender using a boolean value where true represents female and false represents male. We thus 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, Bool)","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,false))\npush!(ls,(\"Paul\",30,false))\npush!(ls,(\"Mary\",25,true))","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, true))","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,3)","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/#List-View-1","page":"List and Tree Widgets","title":"List View","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)]))\nc3 = GtkTreeViewColumn(\"Female\", rTog, Dict([(\"active\",2)]))","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, c3)","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, c3]\n Gtk4.resizable(c, true)\nend","category":"page"},{"location":"manual/listtreeview/#Sorting-1","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,c3])\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, c3])\n Gtk4.reorderable(c, true)\nend","category":"page"},{"location":"manual/listtreeview/#Selection-1","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-1","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)\nc3 = GtkTreeViewColumn(\"Female\", rTog, Dict([(\"active\",2)]), sort_column_id=2)\n\ntmFiltered = GtkTreeModelFilter(ls)\nGtk4.visible_column(tmFiltered,3)\ntv = GtkTreeView(GtkTreeModel(tmFiltered))\npush!(tv, c1, c2, c3)\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,1],\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-1","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":"manual/keyevents/#Key-Events-1","page":"Key Events","title":"Key Events","text":"","category":"section"},{"location":"manual/keyevents/#Key-press-events-1","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-1","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-1","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-1","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 on this page 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-1","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\")\n","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-1","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-1","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":"A more complicated example can be found in the \"examples\" subdirectory. For interactive plots, you can try Gtk4Makie.jl, which draws GLMakie plots onto GTK's GtkGLArea widget.","category":"page"},{"location":"doc/reference/#Gtk4-Reference-1","page":"Gtk4 Reference","title":"Gtk4 Reference","text":"","category":"section"},{"location":"doc/reference/#Public-interface-1","page":"Gtk4 Reference","title":"Public interface","text":"","category":"section"},{"location":"doc/reference/#","page":"Gtk4 Reference","title":"Gtk4 Reference","text":"Modules = [Gtk4]\nOrder = [:module, :function, :macro]\nPublic = true\nPrivate = false","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-Tuple{GtkWidget}","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":"method"},{"location":"doc/reference/#Cairo.destroy-Tuple{GtkWindow}","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":"method"},{"location":"doc/reference/#Graphics.getgc-Tuple{GtkCanvas}","page":"Gtk4 Reference","title":"Graphics.getgc","text":"getgc(c::GtkCanvas)\n\nReturn the CairoContext of the CairoSurface for a GtkCanvas.\n\n\n\n\n\n","category":"method"},{"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.activate-Tuple{GtkWidget}","page":"Gtk4 Reference","title":"Gtk4.activate","text":"activate(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":"method"},{"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.buffer-Tuple{Union{_GtkTextIter, Ref{_GtkTextIter}}}","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":"method"},{"location":"doc/reference/#Gtk4.configure!-Tuple{GtkAdjustment}","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\n","category":"method"},{"location":"doc/reference/#Gtk4.configure!-Tuple{GtkSpinButton}","page":"Gtk4 Reference","title":"Gtk4.configure!","text":"configure!(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":"method"},{"location":"doc/reference/#Gtk4.create_mark-Tuple{GtkTextBuffer, Any, Union{_GtkTextIter, Ref{_GtkTextIter}}, Bool}","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\nImpements gtk_text_buffer_create_mark.\n\n\n\n\n\n","category":"method"},{"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.cursor-Tuple{GtkWidget, Union{Nothing, GdkCursor}}","page":"Gtk4 Reference","title":"Gtk4.cursor","text":"cursor(w::GtkWidget, c)\n\nSets a cursor c when the mouse pointer is over a widget w, where c can be a GdkCursor or a string to specify a name. If c is nothing, use the default cursor for w.\n\nRelated GTK functions: gtk_widget_set_cursor(), gtk_widget_set_cursor_from_name()\n\n\n\n\n\n","category":"method"},{"location":"doc/reference/#Gtk4.fullscreen-Tuple{GtkWindow, GdkMonitor}","page":"Gtk4 Reference","title":"Gtk4.fullscreen","text":"fullscreen(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":"method"},{"location":"doc/reference/#Gtk4.fullscreen-Tuple{GtkWindow}","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\n","category":"method"},{"location":"doc/reference/#Gtk4.get_error-Tuple{GtkGLArea}","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":"method"},{"location":"doc/reference/#Gtk4.grab_focus-Tuple{GtkWidget}","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":"method"},{"location":"doc/reference/#Gtk4.hasparent-Tuple{GtkWidget}","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":"method"},{"location":"doc/reference/#Gtk4.hide-Tuple{GtkWidget}","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":"method"},{"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.isvisible-Tuple{GtkWidget}","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":"method"},{"location":"doc/reference/#Gtk4.make_current-Tuple{GtkGLArea}","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":"method"},{"location":"doc/reference/#Gtk4.maximize-Tuple{GtkWindow}","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":"method"},{"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.place_cursor-Tuple{GtkTextBuffer, _GtkTextIter}","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":"method"},{"location":"doc/reference/#Gtk4.present-Tuple{GtkWindow}","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":"method"},{"location":"doc/reference/#Gtk4.queue_render-Tuple{GtkGLArea}","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":"method"},{"location":"doc/reference/#Gtk4.reveal-Tuple{GtkGLArea}","page":"Gtk4 Reference","title":"Gtk4.reveal","text":"reveal(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":"method"},{"location":"doc/reference/#Gtk4.reveal-Tuple{GtkWidget}","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\n","category":"method"},{"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/#Gtk4.screen_size","page":"Gtk4 Reference","title":"Gtk4.screen_size","text":"screen_size(widget=nothing)\n\nReturns a tuple (width,height) that gives the primary monitor size for the display where widget is being displayed, or the default display if widget is unrealized or not given.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.scroll_to-Tuple{GtkTextView, GtkTextMark, Real, Bool, Real, Real}","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":"method"},{"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-Tuple{GtkTextBuffer, Union{_GtkTextIter, Ref{_GtkTextIter}}, Union{_GtkTextIter, Ref{_GtkTextIter}}}","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":"method"},{"location":"doc/reference/#Gtk4.selection_bounds-Tuple{GtkTextBuffer}","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":"method"},{"location":"doc/reference/#Gtk4.toplevel-Tuple{GtkWidget}","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":"method"},{"location":"doc/reference/#Gtk4.unfullscreen-Tuple{GtkWindow}","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":"method"},{"location":"doc/reference/#Gtk4.unmaximize-Tuple{GtkWindow}","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":"method"},{"location":"doc/reference/#Gtk4.visible-Tuple{GtkWidget, Bool}","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":"method"},{"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.@load_builder-Tuple{Any}","page":"Gtk4 Reference","title":"Gtk4.@load_builder","text":"@load_builder(b::GtkBuilder)\n\nLoads all GtkBuildable objects from a GtkBuilder object and assigns them to Julia variables in the current scope. GtkBuilder ID's are mapped onto Julia variable names.\n\n\n\n\n\n","category":"macro"},{"location":"doc/reference/#Private-methods-1","page":"Gtk4 Reference","title":"Private methods","text":"","category":"section"},{"location":"doc/reference/#","page":"Gtk4 Reference","title":"Gtk4 Reference","text":"Modules = [Gtk4]\nOrder = [:module, :type, :function, :macro]\nPublic = false\nPrivate = true","category":"page"},{"location":"doc/reference/#Gtk4.BlendMode","page":"Gtk4 Reference","title":"Gtk4.BlendMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.Corner","page":"Gtk4 Reference","title":"Gtk4.Corner","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GLUniformType","page":"Gtk4 Reference","title":"Gtk4.GLUniformType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.MaskMode","page":"Gtk4 Reference","title":"Gtk4.MaskMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.RenderNodeType","page":"Gtk4 Reference","title":"Gtk4.RenderNodeType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.ScalingFilter","page":"Gtk4 Reference","title":"Gtk4.ScalingFilter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.SerializationError","page":"Gtk4 Reference","title":"Gtk4.SerializationError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.TransformCategory","page":"Gtk4 Reference","title":"Gtk4.TransformCategory","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Base.close-Tuple{GtkWindow}","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":"method"},{"location":"doc/reference/#Base.skip-Tuple{Ref{_GtkTextIter}, Integer, Symbol}","page":"Gtk4 Reference","title":"Base.skip","text":"skip(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":"method"},{"location":"doc/reference/#Base.skip-Tuple{Ref{_GtkTextIter}, Integer}","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\n","category":"method"},{"location":"doc/reference/#Base.skip-Tuple{Ref{_GtkTextIter}, Symbol}","page":"Gtk4 Reference","title":"Base.skip","text":"skip(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\n","category":"method"},{"location":"doc/reference/#Gtk4.backward_search-Tuple{Ref{_GtkTextIter}, AbstractString, Ref{_GtkTextIter}, Ref{_GtkTextIter}, Ref{_GtkTextIter}, Any}","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":"method"},{"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.cairo_surface-Tuple{GtkCanvas}","page":"Gtk4 Reference","title":"Gtk4.cairo_surface","text":"cairo_surface(c::GtkCanvas)\n\nReturn the image CairoSurface for a GtkCanvas.\n\n\n\n\n\n","category":"method"},{"location":"doc/reference/#Gtk4.char_offset-Tuple{Union{_GtkTextIter, Ref{_GtkTextIter}}}","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":"method"},{"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.find_controller-Union{Tuple{T}, Tuple{GtkWidget, Type{T}}} where T<:GtkEventController","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":"method"},{"location":"doc/reference/#Gtk4.forward_search-Tuple{Ref{_GtkTextIter}, AbstractString, Ref{_GtkTextIter}, Ref{_GtkTextIter}, Ref{_GtkTextIter}, Any}","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":"method"},{"location":"doc/reference/#Gtk4.isfullscreen-Tuple{GtkWindow}","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":"method"},{"location":"doc/reference/#Gtk4.monitor-Tuple{GtkWidget}","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":"method"},{"location":"doc/reference/#Gtk4.monitors-Tuple{}","page":"Gtk4 Reference","title":"Gtk4.monitors","text":"monitors()\n\nReturns a list of GdkMonitors for the default GdkDisplay, or nothing if none are found.\n\n\n\n\n\n","category":"method"},{"location":"doc/reference/#Gtk4.size_request-Tuple{GtkWidget, Any}","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":"method"},{"location":"doc/reference/#Gtk4.text_iter_at_position-Tuple{GtkTextView, Integer, Integer}","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":"method"},{"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/#Types-1","page":"Gtk4 Reference","title":"Types","text":"","category":"section"},{"location":"doc/reference/#","page":"Gtk4 Reference","title":"Gtk4 Reference","text":"Modules = [Gtk4]\nOrder = [:type]\nPublic = true\nPrivate = false","category":"page"},{"location":"doc/reference/#Gtk4.AccessibleAutocomplete","page":"Gtk4 Reference","title":"Gtk4.AccessibleAutocomplete","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.AccessibleInvalidState","page":"Gtk4 Reference","title":"Gtk4.AccessibleInvalidState","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.AccessiblePlatformState","page":"Gtk4 Reference","title":"Gtk4.AccessiblePlatformState","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.AccessibleProperty","page":"Gtk4 Reference","title":"Gtk4.AccessibleProperty","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.AccessibleRelation","page":"Gtk4 Reference","title":"Gtk4.AccessibleRelation","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.AccessibleRole","page":"Gtk4 Reference","title":"Gtk4.AccessibleRole","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.AccessibleSort","page":"Gtk4 Reference","title":"Gtk4.AccessibleSort","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.AccessibleState","page":"Gtk4 Reference","title":"Gtk4.AccessibleState","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.AccessibleTristate","page":"Gtk4 Reference","title":"Gtk4.AccessibleTristate","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.Align","page":"Gtk4 Reference","title":"Gtk4.Align","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.AnchorHints","page":"Gtk4 Reference","title":"Gtk4.AnchorHints","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.ApplicationInhibitFlags","page":"Gtk4 Reference","title":"Gtk4.ApplicationInhibitFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.ArrowType","page":"Gtk4 Reference","title":"Gtk4.ArrowType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.AssistantPageType","page":"Gtk4 Reference","title":"Gtk4.AssistantPageType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.AxisFlags","page":"Gtk4 Reference","title":"Gtk4.AxisFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.AxisUse","page":"Gtk4 Reference","title":"Gtk4.AxisUse","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.BaselinePosition","page":"Gtk4 Reference","title":"Gtk4.BaselinePosition","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.BorderStyle","page":"Gtk4 Reference","title":"Gtk4.BorderStyle","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.BuilderClosureFlags","page":"Gtk4 Reference","title":"Gtk4.BuilderClosureFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.BuilderError","page":"Gtk4 Reference","title":"Gtk4.BuilderError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.ButtonsType","page":"Gtk4 Reference","title":"Gtk4.ButtonsType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.CellRendererAccelMode","page":"Gtk4 Reference","title":"Gtk4.CellRendererAccelMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.CellRendererMode","page":"Gtk4 Reference","title":"Gtk4.CellRendererMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.CellRendererState","page":"Gtk4 Reference","title":"Gtk4.CellRendererState","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.Collation","page":"Gtk4 Reference","title":"Gtk4.Collation","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.ConstraintAttribute","page":"Gtk4 Reference","title":"Gtk4.ConstraintAttribute","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.ConstraintRelation","page":"Gtk4 Reference","title":"Gtk4.ConstraintRelation","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.ConstraintStrength","page":"Gtk4 Reference","title":"Gtk4.ConstraintStrength","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.ConstraintVflParserError","page":"Gtk4 Reference","title":"Gtk4.ConstraintVflParserError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.ContentFit","page":"Gtk4 Reference","title":"Gtk4.ContentFit","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.CornerType","page":"Gtk4 Reference","title":"Gtk4.CornerType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.CrossingMode","page":"Gtk4 Reference","title":"Gtk4.CrossingMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.CssParserError","page":"Gtk4 Reference","title":"Gtk4.CssParserError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.CssParserWarning","page":"Gtk4 Reference","title":"Gtk4.CssParserWarning","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.DebugFlags","page":"Gtk4 Reference","title":"Gtk4.DebugFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.DeleteType","page":"Gtk4 Reference","title":"Gtk4.DeleteType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.DevicePadFeature","page":"Gtk4 Reference","title":"Gtk4.DevicePadFeature","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.DeviceToolType","page":"Gtk4 Reference","title":"Gtk4.DeviceToolType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.DialogError","page":"Gtk4 Reference","title":"Gtk4.DialogError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.DialogFlags","page":"Gtk4 Reference","title":"Gtk4.DialogFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.DirectionType","page":"Gtk4 Reference","title":"Gtk4.DirectionType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.DragAction","page":"Gtk4 Reference","title":"Gtk4.DragAction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.DragCancelReason","page":"Gtk4 Reference","title":"Gtk4.DragCancelReason","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.EditableProperties","page":"Gtk4 Reference","title":"Gtk4.EditableProperties","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.EntryIconPosition","page":"Gtk4 Reference","title":"Gtk4.EntryIconPosition","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.EventControllerScrollFlags","page":"Gtk4 Reference","title":"Gtk4.EventControllerScrollFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.EventSequenceState","page":"Gtk4 Reference","title":"Gtk4.EventSequenceState","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.EventType","page":"Gtk4 Reference","title":"Gtk4.EventType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.FileChooserAction","page":"Gtk4 Reference","title":"Gtk4.FileChooserAction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.FileChooserError","page":"Gtk4 Reference","title":"Gtk4.FileChooserError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.FilterChange","page":"Gtk4 Reference","title":"Gtk4.FilterChange","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.FilterMatch","page":"Gtk4 Reference","title":"Gtk4.FilterMatch","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.FontChooserLevel","page":"Gtk4 Reference","title":"Gtk4.FontChooserLevel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.FontLevel","page":"Gtk4 Reference","title":"Gtk4.FontLevel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.FrameClockPhase","page":"Gtk4 Reference","title":"Gtk4.FrameClockPhase","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.FullscreenMode","page":"Gtk4 Reference","title":"Gtk4.FullscreenMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GLAPI","page":"Gtk4 Reference","title":"Gtk4.GLAPI","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GLError","page":"Gtk4 Reference","title":"Gtk4.GLError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkAppLaunchContext","page":"Gtk4 Reference","title":"Gtk4.GdkAppLaunchContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkButtonEvent","page":"Gtk4 Reference","title":"Gtk4.GdkButtonEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkCairoContext","page":"Gtk4 Reference","title":"Gtk4.GdkCairoContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkClipboard","page":"Gtk4 Reference","title":"Gtk4.GdkClipboard","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkContentDeserializer","page":"Gtk4 Reference","title":"Gtk4.GdkContentDeserializer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkContentFormats","page":"Gtk4 Reference","title":"Gtk4.GdkContentFormats","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkContentFormatsBuilder","page":"Gtk4 Reference","title":"Gtk4.GdkContentFormatsBuilder","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkContentProvider","page":"Gtk4 Reference","title":"Gtk4.GdkContentProvider","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkContentSerializer","page":"Gtk4 Reference","title":"Gtk4.GdkContentSerializer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkCrossingEvent","page":"Gtk4 Reference","title":"Gtk4.GdkCrossingEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkCursor","page":"Gtk4 Reference","title":"Gtk4.GdkCursor","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkDNDEvent","page":"Gtk4 Reference","title":"Gtk4.GdkDNDEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkDeleteEvent","page":"Gtk4 Reference","title":"Gtk4.GdkDeleteEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkDevice","page":"Gtk4 Reference","title":"Gtk4.GdkDevice","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkDeviceTool","page":"Gtk4 Reference","title":"Gtk4.GdkDeviceTool","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkDisplay","page":"Gtk4 Reference","title":"Gtk4.GdkDisplay","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkDisplayManager","page":"Gtk4 Reference","title":"Gtk4.GdkDisplayManager","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkDrag","page":"Gtk4 Reference","title":"Gtk4.GdkDrag","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkDrawContext","page":"Gtk4 Reference","title":"Gtk4.GdkDrawContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkDrop","page":"Gtk4 Reference","title":"Gtk4.GdkDrop","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkEvent","page":"Gtk4 Reference","title":"Gtk4.GdkEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkEventSequence","page":"Gtk4 Reference","title":"Gtk4.GdkEventSequence","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkFileList","page":"Gtk4 Reference","title":"Gtk4.GdkFileList","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkFocusEvent","page":"Gtk4 Reference","title":"Gtk4.GdkFocusEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkFrameClock","page":"Gtk4 Reference","title":"Gtk4.GdkFrameClock","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkFrameTimings","page":"Gtk4 Reference","title":"Gtk4.GdkFrameTimings","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkGLContext","page":"Gtk4 Reference","title":"Gtk4.GdkGLContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkGLTexture","page":"Gtk4 Reference","title":"Gtk4.GdkGLTexture","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkGrabBrokenEvent","page":"Gtk4 Reference","title":"Gtk4.GdkGrabBrokenEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkKeyEvent","page":"Gtk4 Reference","title":"Gtk4.GdkKeyEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkKeymapKey","page":"Gtk4 Reference","title":"Gtk4.GdkKeymapKey","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkMemoryTexture","page":"Gtk4 Reference","title":"Gtk4.GdkMemoryTexture","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkMonitor","page":"Gtk4 Reference","title":"Gtk4.GdkMonitor","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkMotionEvent","page":"Gtk4 Reference","title":"Gtk4.GdkMotionEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkPadEvent","page":"Gtk4 Reference","title":"Gtk4.GdkPadEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkPopupLayout","page":"Gtk4 Reference","title":"Gtk4.GdkPopupLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkProximityEvent","page":"Gtk4 Reference","title":"Gtk4.GdkProximityEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkRGBA","page":"Gtk4 Reference","title":"Gtk4.GdkRGBA","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkRectangle","page":"Gtk4 Reference","title":"Gtk4.GdkRectangle","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkScrollEvent","page":"Gtk4 Reference","title":"Gtk4.GdkScrollEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkSeat","page":"Gtk4 Reference","title":"Gtk4.GdkSeat","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkSnapshot","page":"Gtk4 Reference","title":"Gtk4.GdkSnapshot","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkSurface","page":"Gtk4 Reference","title":"Gtk4.GdkSurface","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkTexture","page":"Gtk4 Reference","title":"Gtk4.GdkTexture","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkTimeCoord","page":"Gtk4 Reference","title":"Gtk4.GdkTimeCoord","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkToplevelLayout","page":"Gtk4 Reference","title":"Gtk4.GdkToplevelLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkTouchEvent","page":"Gtk4 Reference","title":"Gtk4.GdkTouchEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkTouchpadEvent","page":"Gtk4 Reference","title":"Gtk4.GdkTouchpadEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkVulkanContext","page":"Gtk4 Reference","title":"Gtk4.GdkVulkanContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.Gravity","page":"Gtk4 Reference","title":"Gtk4.Gravity","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskBlendNode","page":"Gtk4 Reference","title":"Gtk4.GskBlendNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskBlurNode","page":"Gtk4 Reference","title":"Gtk4.GskBlurNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskBorderNode","page":"Gtk4 Reference","title":"Gtk4.GskBorderNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskCairoNode","page":"Gtk4 Reference","title":"Gtk4.GskCairoNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskCairoRenderer","page":"Gtk4 Reference","title":"Gtk4.GskCairoRenderer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskClipNode","page":"Gtk4 Reference","title":"Gtk4.GskClipNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskColorMatrixNode","page":"Gtk4 Reference","title":"Gtk4.GskColorMatrixNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskColorNode","page":"Gtk4 Reference","title":"Gtk4.GskColorNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskColorStop","page":"Gtk4 Reference","title":"Gtk4.GskColorStop","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskConicGradientNode","page":"Gtk4 Reference","title":"Gtk4.GskConicGradientNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskContainerNode","page":"Gtk4 Reference","title":"Gtk4.GskContainerNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskCrossFadeNode","page":"Gtk4 Reference","title":"Gtk4.GskCrossFadeNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskDebugNode","page":"Gtk4 Reference","title":"Gtk4.GskDebugNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskGLShader","page":"Gtk4 Reference","title":"Gtk4.GskGLShader","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskGLShaderNode","page":"Gtk4 Reference","title":"Gtk4.GskGLShaderNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskInsetShadowNode","page":"Gtk4 Reference","title":"Gtk4.GskInsetShadowNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskLinearGradientNode","page":"Gtk4 Reference","title":"Gtk4.GskLinearGradientNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskMaskNode","page":"Gtk4 Reference","title":"Gtk4.GskMaskNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskOpacityNode","page":"Gtk4 Reference","title":"Gtk4.GskOpacityNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskOutsetShadowNode","page":"Gtk4 Reference","title":"Gtk4.GskOutsetShadowNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskParseLocation","page":"Gtk4 Reference","title":"Gtk4.GskParseLocation","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskRadialGradientNode","page":"Gtk4 Reference","title":"Gtk4.GskRadialGradientNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskRenderNode","page":"Gtk4 Reference","title":"Gtk4.GskRenderNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskRenderer","page":"Gtk4 Reference","title":"Gtk4.GskRenderer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskRepeatNode","page":"Gtk4 Reference","title":"Gtk4.GskRepeatNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskRepeatingLinearGradientNode","page":"Gtk4 Reference","title":"Gtk4.GskRepeatingLinearGradientNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskRepeatingRadialGradientNode","page":"Gtk4 Reference","title":"Gtk4.GskRepeatingRadialGradientNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskRoundedClipNode","page":"Gtk4 Reference","title":"Gtk4.GskRoundedClipNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskRoundedRect","page":"Gtk4 Reference","title":"Gtk4.GskRoundedRect","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskShadow","page":"Gtk4 Reference","title":"Gtk4.GskShadow","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskShadowNode","page":"Gtk4 Reference","title":"Gtk4.GskShadowNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskTextNode","page":"Gtk4 Reference","title":"Gtk4.GskTextNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskTextureNode","page":"Gtk4 Reference","title":"Gtk4.GskTextureNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskTextureScaleNode","page":"Gtk4 Reference","title":"Gtk4.GskTextureScaleNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskTransform","page":"Gtk4 Reference","title":"Gtk4.GskTransform","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskTransformNode","page":"Gtk4 Reference","title":"Gtk4.GskTransformNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkATContext","page":"Gtk4 Reference","title":"Gtk4.GtkATContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkAboutDialog","page":"Gtk4 Reference","title":"Gtk4.GtkAboutDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkActionBar","page":"Gtk4 Reference","title":"Gtk4.GtkActionBar","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkActivateAction","page":"Gtk4 Reference","title":"Gtk4.GtkActivateAction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkAdjustment","page":"Gtk4 Reference","title":"Gtk4.GtkAdjustment","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkAlertDialog","page":"Gtk4 Reference","title":"Gtk4.GtkAlertDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkAlternativeTrigger","page":"Gtk4 Reference","title":"Gtk4.GtkAlternativeTrigger","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkAnyFilter","page":"Gtk4 Reference","title":"Gtk4.GtkAnyFilter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkAppChooserButton","page":"Gtk4 Reference","title":"Gtk4.GtkAppChooserButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkAppChooserDialog","page":"Gtk4 Reference","title":"Gtk4.GtkAppChooserDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkAppChooserWidget","page":"Gtk4 Reference","title":"Gtk4.GtkAppChooserWidget","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkApplication","page":"Gtk4 Reference","title":"Gtk4.GtkApplication","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkApplicationWindow","page":"Gtk4 Reference","title":"Gtk4.GtkApplicationWindow","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkAspectFrame","page":"Gtk4 Reference","title":"Gtk4.GtkAspectFrame","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkAssistant","page":"Gtk4 Reference","title":"Gtk4.GtkAssistant","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkAssistantPage","page":"Gtk4 Reference","title":"Gtk4.GtkAssistantPage","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkBinLayout","page":"Gtk4 Reference","title":"Gtk4.GtkBinLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkBitset","page":"Gtk4 Reference","title":"Gtk4.GtkBitset","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkBitsetIter","page":"Gtk4 Reference","title":"Gtk4.GtkBitsetIter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkBookmarkList","page":"Gtk4 Reference","title":"Gtk4.GtkBookmarkList","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkBoolFilter","page":"Gtk4 Reference","title":"Gtk4.GtkBoolFilter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkBorder","page":"Gtk4 Reference","title":"Gtk4.GtkBorder","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkBox","page":"Gtk4 Reference","title":"Gtk4.GtkBox","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkBoxLayout","page":"Gtk4 Reference","title":"Gtk4.GtkBoxLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkBuildableParseContext","page":"Gtk4 Reference","title":"Gtk4.GtkBuildableParseContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkBuildableParser","page":"Gtk4 Reference","title":"Gtk4.GtkBuildableParser","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkBuilder","page":"Gtk4 Reference","title":"Gtk4.GtkBuilder","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkBuilderCScope","page":"Gtk4 Reference","title":"Gtk4.GtkBuilderCScope","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkBuilderListItemFactory","page":"Gtk4 Reference","title":"Gtk4.GtkBuilderListItemFactory","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkButton","page":"Gtk4 Reference","title":"Gtk4.GtkButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkCalendar","page":"Gtk4 Reference","title":"Gtk4.GtkCalendar","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkCallbackAction","page":"Gtk4 Reference","title":"Gtk4.GtkCallbackAction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"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.GtkCellArea","page":"Gtk4 Reference","title":"Gtk4.GtkCellArea","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkCellAreaBox","page":"Gtk4 Reference","title":"Gtk4.GtkCellAreaBox","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkCellAreaContext","page":"Gtk4 Reference","title":"Gtk4.GtkCellAreaContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkCellRenderer","page":"Gtk4 Reference","title":"Gtk4.GtkCellRenderer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkCellRendererAccel","page":"Gtk4 Reference","title":"Gtk4.GtkCellRendererAccel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkCellRendererCombo","page":"Gtk4 Reference","title":"Gtk4.GtkCellRendererCombo","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkCellRendererPixbuf","page":"Gtk4 Reference","title":"Gtk4.GtkCellRendererPixbuf","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkCellRendererProgress","page":"Gtk4 Reference","title":"Gtk4.GtkCellRendererProgress","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkCellRendererSpin","page":"Gtk4 Reference","title":"Gtk4.GtkCellRendererSpin","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkCellRendererSpinner","page":"Gtk4 Reference","title":"Gtk4.GtkCellRendererSpinner","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkCellRendererText","page":"Gtk4 Reference","title":"Gtk4.GtkCellRendererText","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkCellRendererToggle","page":"Gtk4 Reference","title":"Gtk4.GtkCellRendererToggle","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkCellView","page":"Gtk4 Reference","title":"Gtk4.GtkCellView","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkCenterBox","page":"Gtk4 Reference","title":"Gtk4.GtkCenterBox","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkCenterLayout","page":"Gtk4 Reference","title":"Gtk4.GtkCenterLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkCheckButton","page":"Gtk4 Reference","title":"Gtk4.GtkCheckButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkColorButton","page":"Gtk4 Reference","title":"Gtk4.GtkColorButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkColorChooserDialog","page":"Gtk4 Reference","title":"Gtk4.GtkColorChooserDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkColorChooserWidget","page":"Gtk4 Reference","title":"Gtk4.GtkColorChooserWidget","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkColorDialog","page":"Gtk4 Reference","title":"Gtk4.GtkColorDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkColorDialogButton","page":"Gtk4 Reference","title":"Gtk4.GtkColorDialogButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkColumnView","page":"Gtk4 Reference","title":"Gtk4.GtkColumnView","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkColumnViewColumn","page":"Gtk4 Reference","title":"Gtk4.GtkColumnViewColumn","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkColumnViewSorter","page":"Gtk4 Reference","title":"Gtk4.GtkColumnViewSorter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkComboBox","page":"Gtk4 Reference","title":"Gtk4.GtkComboBox","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkComboBoxText","page":"Gtk4 Reference","title":"Gtk4.GtkComboBoxText","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkConstantExpression","page":"Gtk4 Reference","title":"Gtk4.GtkConstantExpression","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkConstraint","page":"Gtk4 Reference","title":"Gtk4.GtkConstraint","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkConstraintGuide","page":"Gtk4 Reference","title":"Gtk4.GtkConstraintGuide","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkConstraintLayout","page":"Gtk4 Reference","title":"Gtk4.GtkConstraintLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkConstraintLayoutChild","page":"Gtk4 Reference","title":"Gtk4.GtkConstraintLayoutChild","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkCssProvider","page":"Gtk4 Reference","title":"Gtk4.GtkCssProvider","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkCssSection","page":"Gtk4 Reference","title":"Gtk4.GtkCssSection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkCustomFilter","page":"Gtk4 Reference","title":"Gtk4.GtkCustomFilter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkCustomLayout","page":"Gtk4 Reference","title":"Gtk4.GtkCustomLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkCustomSorter","page":"Gtk4 Reference","title":"Gtk4.GtkCustomSorter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkDialog","page":"Gtk4 Reference","title":"Gtk4.GtkDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkDirectoryList","page":"Gtk4 Reference","title":"Gtk4.GtkDirectoryList","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkDragIcon","page":"Gtk4 Reference","title":"Gtk4.GtkDragIcon","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkDragSource","page":"Gtk4 Reference","title":"Gtk4.GtkDragSource","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkDrawingArea","page":"Gtk4 Reference","title":"Gtk4.GtkDrawingArea","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkDropControllerMotion","page":"Gtk4 Reference","title":"Gtk4.GtkDropControllerMotion","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkDropDown","page":"Gtk4 Reference","title":"Gtk4.GtkDropDown","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkDropTarget","page":"Gtk4 Reference","title":"Gtk4.GtkDropTarget","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkDropTargetAsync","page":"Gtk4 Reference","title":"Gtk4.GtkDropTargetAsync","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkEditableLabel","page":"Gtk4 Reference","title":"Gtk4.GtkEditableLabel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkEmojiChooser","page":"Gtk4 Reference","title":"Gtk4.GtkEmojiChooser","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkEntry","page":"Gtk4 Reference","title":"Gtk4.GtkEntry","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkEntryBuffer","page":"Gtk4 Reference","title":"Gtk4.GtkEntryBuffer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkEntryCompletion","page":"Gtk4 Reference","title":"Gtk4.GtkEntryCompletion","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkEventController","page":"Gtk4 Reference","title":"Gtk4.GtkEventController","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkEventControllerFocus","page":"Gtk4 Reference","title":"Gtk4.GtkEventControllerFocus","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkEventControllerKey","page":"Gtk4 Reference","title":"Gtk4.GtkEventControllerKey","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkEventControllerLegacy","page":"Gtk4 Reference","title":"Gtk4.GtkEventControllerLegacy","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkEventControllerMotion","page":"Gtk4 Reference","title":"Gtk4.GtkEventControllerMotion","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkEventControllerScroll","page":"Gtk4 Reference","title":"Gtk4.GtkEventControllerScroll","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkEveryFilter","page":"Gtk4 Reference","title":"Gtk4.GtkEveryFilter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkExpander","page":"Gtk4 Reference","title":"Gtk4.GtkExpander","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkExpression","page":"Gtk4 Reference","title":"Gtk4.GtkExpression","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkExpressionWatch","page":"Gtk4 Reference","title":"Gtk4.GtkExpressionWatch","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkFileChooserDialog","page":"Gtk4 Reference","title":"Gtk4.GtkFileChooserDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkFileChooserNative","page":"Gtk4 Reference","title":"Gtk4.GtkFileChooserNative","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkFileChooserWidget","page":"Gtk4 Reference","title":"Gtk4.GtkFileChooserWidget","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkFileDialog","page":"Gtk4 Reference","title":"Gtk4.GtkFileDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkFileFilter","page":"Gtk4 Reference","title":"Gtk4.GtkFileFilter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkFileLauncher","page":"Gtk4 Reference","title":"Gtk4.GtkFileLauncher","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkFilter","page":"Gtk4 Reference","title":"Gtk4.GtkFilter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkFilterListModel","page":"Gtk4 Reference","title":"Gtk4.GtkFilterListModel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkFixed","page":"Gtk4 Reference","title":"Gtk4.GtkFixed","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkFixedLayout","page":"Gtk4 Reference","title":"Gtk4.GtkFixedLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkFixedLayoutChild","page":"Gtk4 Reference","title":"Gtk4.GtkFixedLayoutChild","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkFlattenListModel","page":"Gtk4 Reference","title":"Gtk4.GtkFlattenListModel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkFlowBox","page":"Gtk4 Reference","title":"Gtk4.GtkFlowBox","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkFlowBoxChild","page":"Gtk4 Reference","title":"Gtk4.GtkFlowBoxChild","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkFontButton","page":"Gtk4 Reference","title":"Gtk4.GtkFontButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkFontChooserDialog","page":"Gtk4 Reference","title":"Gtk4.GtkFontChooserDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkFontChooserWidget","page":"Gtk4 Reference","title":"Gtk4.GtkFontChooserWidget","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkFontDialog","page":"Gtk4 Reference","title":"Gtk4.GtkFontDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkFontDialogButton","page":"Gtk4 Reference","title":"Gtk4.GtkFontDialogButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkFrame","page":"Gtk4 Reference","title":"Gtk4.GtkFrame","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkGLArea","page":"Gtk4 Reference","title":"Gtk4.GtkGLArea","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkGesture","page":"Gtk4 Reference","title":"Gtk4.GtkGesture","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkGestureClick","page":"Gtk4 Reference","title":"Gtk4.GtkGestureClick","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkGestureDrag","page":"Gtk4 Reference","title":"Gtk4.GtkGestureDrag","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkGestureLongPress","page":"Gtk4 Reference","title":"Gtk4.GtkGestureLongPress","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkGesturePan","page":"Gtk4 Reference","title":"Gtk4.GtkGesturePan","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkGestureRotate","page":"Gtk4 Reference","title":"Gtk4.GtkGestureRotate","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkGestureSingle","page":"Gtk4 Reference","title":"Gtk4.GtkGestureSingle","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkGestureStylus","page":"Gtk4 Reference","title":"Gtk4.GtkGestureStylus","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkGestureSwipe","page":"Gtk4 Reference","title":"Gtk4.GtkGestureSwipe","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkGestureZoom","page":"Gtk4 Reference","title":"Gtk4.GtkGestureZoom","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkGrid","page":"Gtk4 Reference","title":"Gtk4.GtkGrid","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkGridLayout","page":"Gtk4 Reference","title":"Gtk4.GtkGridLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkGridLayoutChild","page":"Gtk4 Reference","title":"Gtk4.GtkGridLayoutChild","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkGridView","page":"Gtk4 Reference","title":"Gtk4.GtkGridView","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkHeaderBar","page":"Gtk4 Reference","title":"Gtk4.GtkHeaderBar","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkIMContext","page":"Gtk4 Reference","title":"Gtk4.GtkIMContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkIMContextSimple","page":"Gtk4 Reference","title":"Gtk4.GtkIMContextSimple","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkIMMulticontext","page":"Gtk4 Reference","title":"Gtk4.GtkIMMulticontext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkIconPaintable","page":"Gtk4 Reference","title":"Gtk4.GtkIconPaintable","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkIconTheme","page":"Gtk4 Reference","title":"Gtk4.GtkIconTheme","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkIconView","page":"Gtk4 Reference","title":"Gtk4.GtkIconView","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkImage","page":"Gtk4 Reference","title":"Gtk4.GtkImage","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkInfoBar","page":"Gtk4 Reference","title":"Gtk4.GtkInfoBar","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkInscription","page":"Gtk4 Reference","title":"Gtk4.GtkInscription","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkKeyvalTrigger","page":"Gtk4 Reference","title":"Gtk4.GtkKeyvalTrigger","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkLabel","page":"Gtk4 Reference","title":"Gtk4.GtkLabel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkLayoutChild","page":"Gtk4 Reference","title":"Gtk4.GtkLayoutChild","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkLayoutManager","page":"Gtk4 Reference","title":"Gtk4.GtkLayoutManager","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkLevelBar","page":"Gtk4 Reference","title":"Gtk4.GtkLevelBar","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkLinkButton","page":"Gtk4 Reference","title":"Gtk4.GtkLinkButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkListBase","page":"Gtk4 Reference","title":"Gtk4.GtkListBase","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkListBox","page":"Gtk4 Reference","title":"Gtk4.GtkListBox","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkListBoxRow","page":"Gtk4 Reference","title":"Gtk4.GtkListBoxRow","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkListItem","page":"Gtk4 Reference","title":"Gtk4.GtkListItem","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkListItemFactory","page":"Gtk4 Reference","title":"Gtk4.GtkListItemFactory","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkListStore","page":"Gtk4 Reference","title":"Gtk4.GtkListStore","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkListView","page":"Gtk4 Reference","title":"Gtk4.GtkListView","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkLockButton","page":"Gtk4 Reference","title":"Gtk4.GtkLockButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkMapListModel","page":"Gtk4 Reference","title":"Gtk4.GtkMapListModel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkMediaControls","page":"Gtk4 Reference","title":"Gtk4.GtkMediaControls","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkMediaFile","page":"Gtk4 Reference","title":"Gtk4.GtkMediaFile","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkMediaStream","page":"Gtk4 Reference","title":"Gtk4.GtkMediaStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkMenuButton","page":"Gtk4 Reference","title":"Gtk4.GtkMenuButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkMessageDialog","page":"Gtk4 Reference","title":"Gtk4.GtkMessageDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkMnemonicAction","page":"Gtk4 Reference","title":"Gtk4.GtkMnemonicAction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkMnemonicTrigger","page":"Gtk4 Reference","title":"Gtk4.GtkMnemonicTrigger","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkMountOperation","page":"Gtk4 Reference","title":"Gtk4.GtkMountOperation","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkMultiFilter","page":"Gtk4 Reference","title":"Gtk4.GtkMultiFilter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkMultiSelection","page":"Gtk4 Reference","title":"Gtk4.GtkMultiSelection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkMultiSorter","page":"Gtk4 Reference","title":"Gtk4.GtkMultiSorter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkNamedAction","page":"Gtk4 Reference","title":"Gtk4.GtkNamedAction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkNativeDialog","page":"Gtk4 Reference","title":"Gtk4.GtkNativeDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkNeverTrigger","page":"Gtk4 Reference","title":"Gtk4.GtkNeverTrigger","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkNoSelection","page":"Gtk4 Reference","title":"Gtk4.GtkNoSelection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkNotebook","page":"Gtk4 Reference","title":"Gtk4.GtkNotebook","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkNotebookPage","page":"Gtk4 Reference","title":"Gtk4.GtkNotebookPage","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkNothingAction","page":"Gtk4 Reference","title":"Gtk4.GtkNothingAction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkNumericSorter","page":"Gtk4 Reference","title":"Gtk4.GtkNumericSorter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkObjectExpression","page":"Gtk4 Reference","title":"Gtk4.GtkObjectExpression","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkOverlay","page":"Gtk4 Reference","title":"Gtk4.GtkOverlay","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkOverlayLayout","page":"Gtk4 Reference","title":"Gtk4.GtkOverlayLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkOverlayLayoutChild","page":"Gtk4 Reference","title":"Gtk4.GtkOverlayLayoutChild","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkPadActionEntry","page":"Gtk4 Reference","title":"Gtk4.GtkPadActionEntry","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkPadController","page":"Gtk4 Reference","title":"Gtk4.GtkPadController","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkPageSetup","page":"Gtk4 Reference","title":"Gtk4.GtkPageSetup","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkPaned","page":"Gtk4 Reference","title":"Gtk4.GtkPaned","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkPaperSize","page":"Gtk4 Reference","title":"Gtk4.GtkPaperSize","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkPasswordEntry","page":"Gtk4 Reference","title":"Gtk4.GtkPasswordEntry","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkPasswordEntryBuffer","page":"Gtk4 Reference","title":"Gtk4.GtkPasswordEntryBuffer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkPicture","page":"Gtk4 Reference","title":"Gtk4.GtkPicture","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkPopover","page":"Gtk4 Reference","title":"Gtk4.GtkPopover","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkPopoverMenu","page":"Gtk4 Reference","title":"Gtk4.GtkPopoverMenu","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkPopoverMenuBar","page":"Gtk4 Reference","title":"Gtk4.GtkPopoverMenuBar","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkPrintContext","page":"Gtk4 Reference","title":"Gtk4.GtkPrintContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkPrintJob","page":"Gtk4 Reference","title":"Gtk4.GtkPrintJob","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkPrintOperation","page":"Gtk4 Reference","title":"Gtk4.GtkPrintOperation","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkPrintSettings","page":"Gtk4 Reference","title":"Gtk4.GtkPrintSettings","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkPrinter","page":"Gtk4 Reference","title":"Gtk4.GtkPrinter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkProgressBar","page":"Gtk4 Reference","title":"Gtk4.GtkProgressBar","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkPropertyExpression","page":"Gtk4 Reference","title":"Gtk4.GtkPropertyExpression","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkRange","page":"Gtk4 Reference","title":"Gtk4.GtkRange","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkRecentData","page":"Gtk4 Reference","title":"Gtk4.GtkRecentData","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkRecentInfo","page":"Gtk4 Reference","title":"Gtk4.GtkRecentInfo","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkRecentManager","page":"Gtk4 Reference","title":"Gtk4.GtkRecentManager","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkRequestedSize","page":"Gtk4 Reference","title":"Gtk4.GtkRequestedSize","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkRequisition","page":"Gtk4 Reference","title":"Gtk4.GtkRequisition","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkRevealer","page":"Gtk4 Reference","title":"Gtk4.GtkRevealer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkScale","page":"Gtk4 Reference","title":"Gtk4.GtkScale","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkScaleButton","page":"Gtk4 Reference","title":"Gtk4.GtkScaleButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkScrollbar","page":"Gtk4 Reference","title":"Gtk4.GtkScrollbar","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkScrolledWindow","page":"Gtk4 Reference","title":"Gtk4.GtkScrolledWindow","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkSearchBar","page":"Gtk4 Reference","title":"Gtk4.GtkSearchBar","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkSearchEntry","page":"Gtk4 Reference","title":"Gtk4.GtkSearchEntry","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkSelectionFilterModel","page":"Gtk4 Reference","title":"Gtk4.GtkSelectionFilterModel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkSeparator","page":"Gtk4 Reference","title":"Gtk4.GtkSeparator","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkSettings","page":"Gtk4 Reference","title":"Gtk4.GtkSettings","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkShortcut","page":"Gtk4 Reference","title":"Gtk4.GtkShortcut","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkShortcutAction","page":"Gtk4 Reference","title":"Gtk4.GtkShortcutAction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkShortcutController","page":"Gtk4 Reference","title":"Gtk4.GtkShortcutController","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkShortcutLabel","page":"Gtk4 Reference","title":"Gtk4.GtkShortcutLabel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkShortcutTrigger","page":"Gtk4 Reference","title":"Gtk4.GtkShortcutTrigger","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkShortcutsGroup","page":"Gtk4 Reference","title":"Gtk4.GtkShortcutsGroup","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkShortcutsSection","page":"Gtk4 Reference","title":"Gtk4.GtkShortcutsSection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkShortcutsShortcut","page":"Gtk4 Reference","title":"Gtk4.GtkShortcutsShortcut","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkShortcutsWindow","page":"Gtk4 Reference","title":"Gtk4.GtkShortcutsWindow","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkSignalAction","page":"Gtk4 Reference","title":"Gtk4.GtkSignalAction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkSignalListItemFactory","page":"Gtk4 Reference","title":"Gtk4.GtkSignalListItemFactory","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkSignalListItemFactory-Tuple{Function, Function}","page":"Gtk4 Reference","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/reference/#Gtk4.GtkSingleSelection","page":"Gtk4 Reference","title":"Gtk4.GtkSingleSelection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkSizeGroup","page":"Gtk4 Reference","title":"Gtk4.GtkSizeGroup","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkSliceListModel","page":"Gtk4 Reference","title":"Gtk4.GtkSliceListModel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkSnapshot","page":"Gtk4 Reference","title":"Gtk4.GtkSnapshot","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkSortListModel","page":"Gtk4 Reference","title":"Gtk4.GtkSortListModel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkSorter","page":"Gtk4 Reference","title":"Gtk4.GtkSorter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkSpinButton","page":"Gtk4 Reference","title":"Gtk4.GtkSpinButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkSpinner","page":"Gtk4 Reference","title":"Gtk4.GtkSpinner","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkStack","page":"Gtk4 Reference","title":"Gtk4.GtkStack","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkStackPage","page":"Gtk4 Reference","title":"Gtk4.GtkStackPage","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkStackSidebar","page":"Gtk4 Reference","title":"Gtk4.GtkStackSidebar","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkStackSwitcher","page":"Gtk4 Reference","title":"Gtk4.GtkStackSwitcher","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkStatusbar","page":"Gtk4 Reference","title":"Gtk4.GtkStatusbar","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkStringFilter","page":"Gtk4 Reference","title":"Gtk4.GtkStringFilter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkStringList","page":"Gtk4 Reference","title":"Gtk4.GtkStringList","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkStringObject","page":"Gtk4 Reference","title":"Gtk4.GtkStringObject","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkStringSorter","page":"Gtk4 Reference","title":"Gtk4.GtkStringSorter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkStyleContext","page":"Gtk4 Reference","title":"Gtk4.GtkStyleContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkSwitch","page":"Gtk4 Reference","title":"Gtk4.GtkSwitch","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkText","page":"Gtk4 Reference","title":"Gtk4.GtkText","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkTextBuffer","page":"Gtk4 Reference","title":"Gtk4.GtkTextBuffer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkTextChildAnchor","page":"Gtk4 Reference","title":"Gtk4.GtkTextChildAnchor","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkTextIter","page":"Gtk4 Reference","title":"Gtk4.GtkTextIter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkTextMark","page":"Gtk4 Reference","title":"Gtk4.GtkTextMark","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkTextTag","page":"Gtk4 Reference","title":"Gtk4.GtkTextTag","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkTextTagTable","page":"Gtk4 Reference","title":"Gtk4.GtkTextTagTable","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkTextView","page":"Gtk4 Reference","title":"Gtk4.GtkTextView","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkToggleButton","page":"Gtk4 Reference","title":"Gtk4.GtkToggleButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkTooltip","page":"Gtk4 Reference","title":"Gtk4.GtkTooltip","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkTreeExpander","page":"Gtk4 Reference","title":"Gtk4.GtkTreeExpander","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkTreeIter","page":"Gtk4 Reference","title":"Gtk4.GtkTreeIter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkTreeListModel","page":"Gtk4 Reference","title":"Gtk4.GtkTreeListModel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkTreeListRow","page":"Gtk4 Reference","title":"Gtk4.GtkTreeListRow","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkTreeListRowSorter","page":"Gtk4 Reference","title":"Gtk4.GtkTreeListRowSorter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkTreeModelFilter","page":"Gtk4 Reference","title":"Gtk4.GtkTreeModelFilter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkTreeModelSort","page":"Gtk4 Reference","title":"Gtk4.GtkTreeModelSort","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkTreePath","page":"Gtk4 Reference","title":"Gtk4.GtkTreePath","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkTreeSelection","page":"Gtk4 Reference","title":"Gtk4.GtkTreeSelection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkTreeStore","page":"Gtk4 Reference","title":"Gtk4.GtkTreeStore","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkTreeView","page":"Gtk4 Reference","title":"Gtk4.GtkTreeView","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkTreeViewColumn","page":"Gtk4 Reference","title":"Gtk4.GtkTreeViewColumn","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkUriLauncher","page":"Gtk4 Reference","title":"Gtk4.GtkUriLauncher","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkVideo","page":"Gtk4 Reference","title":"Gtk4.GtkVideo","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkViewport","page":"Gtk4 Reference","title":"Gtk4.GtkViewport","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkVolumeButton","page":"Gtk4 Reference","title":"Gtk4.GtkVolumeButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkWidget","page":"Gtk4 Reference","title":"Gtk4.GtkWidget","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkWidgetPaintable","page":"Gtk4 Reference","title":"Gtk4.GtkWidgetPaintable","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"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/#Gtk4.GtkWindowControls","page":"Gtk4 Reference","title":"Gtk4.GtkWindowControls","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkWindowGroup","page":"Gtk4 Reference","title":"Gtk4.GtkWindowGroup","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkWindowHandle","page":"Gtk4 Reference","title":"Gtk4.GtkWindowHandle","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.IconLookupFlags","page":"Gtk4 Reference","title":"Gtk4.IconLookupFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.IconSize","page":"Gtk4 Reference","title":"Gtk4.IconSize","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.IconThemeError","page":"Gtk4 Reference","title":"Gtk4.IconThemeError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.IconViewDropPosition","page":"Gtk4 Reference","title":"Gtk4.IconViewDropPosition","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.ImageType","page":"Gtk4 Reference","title":"Gtk4.ImageType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.InputHints","page":"Gtk4 Reference","title":"Gtk4.InputHints","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.InputPurpose","page":"Gtk4 Reference","title":"Gtk4.InputPurpose","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.InputSource","page":"Gtk4 Reference","title":"Gtk4.InputSource","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.InscriptionOverflow","page":"Gtk4 Reference","title":"Gtk4.InscriptionOverflow","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.Justification","page":"Gtk4 Reference","title":"Gtk4.Justification","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.KeyMatch","page":"Gtk4 Reference","title":"Gtk4.KeyMatch","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.LevelBarMode","page":"Gtk4 Reference","title":"Gtk4.LevelBarMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.License","page":"Gtk4 Reference","title":"Gtk4.License","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.MemoryFormat","page":"Gtk4 Reference","title":"Gtk4.MemoryFormat","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.MessageType","page":"Gtk4 Reference","title":"Gtk4.MessageType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.ModifierType","page":"Gtk4 Reference","title":"Gtk4.ModifierType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.MovementStep","page":"Gtk4 Reference","title":"Gtk4.MovementStep","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.NaturalWrapMode","page":"Gtk4 Reference","title":"Gtk4.NaturalWrapMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.NotebookTab","page":"Gtk4 Reference","title":"Gtk4.NotebookTab","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.NotifyType","page":"Gtk4 Reference","title":"Gtk4.NotifyType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.NumberUpLayout","page":"Gtk4 Reference","title":"Gtk4.NumberUpLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.Ordering","page":"Gtk4 Reference","title":"Gtk4.Ordering","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.Orientation","page":"Gtk4 Reference","title":"Gtk4.Orientation","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.Overflow","page":"Gtk4 Reference","title":"Gtk4.Overflow","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.PackType","page":"Gtk4 Reference","title":"Gtk4.PackType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.PadActionType","page":"Gtk4 Reference","title":"Gtk4.PadActionType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.PageOrientation","page":"Gtk4 Reference","title":"Gtk4.PageOrientation","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.PageSet","page":"Gtk4 Reference","title":"Gtk4.PageSet","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.PaintableFlags","page":"Gtk4 Reference","title":"Gtk4.PaintableFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.PanDirection","page":"Gtk4 Reference","title":"Gtk4.PanDirection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.PickFlags","page":"Gtk4 Reference","title":"Gtk4.PickFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.PolicyType","page":"Gtk4 Reference","title":"Gtk4.PolicyType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.PopoverMenuFlags","page":"Gtk4 Reference","title":"Gtk4.PopoverMenuFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.PositionType","page":"Gtk4 Reference","title":"Gtk4.PositionType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.PrintCapabilities","page":"Gtk4 Reference","title":"Gtk4.PrintCapabilities","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.PrintDuplex","page":"Gtk4 Reference","title":"Gtk4.PrintDuplex","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.PrintError","page":"Gtk4 Reference","title":"Gtk4.PrintError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.PrintOperationAction","page":"Gtk4 Reference","title":"Gtk4.PrintOperationAction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.PrintOperationResult","page":"Gtk4 Reference","title":"Gtk4.PrintOperationResult","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.PrintPages","page":"Gtk4 Reference","title":"Gtk4.PrintPages","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.PrintQuality","page":"Gtk4 Reference","title":"Gtk4.PrintQuality","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.PrintStatus","page":"Gtk4 Reference","title":"Gtk4.PrintStatus","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.PropagationLimit","page":"Gtk4 Reference","title":"Gtk4.PropagationLimit","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.PropagationPhase","page":"Gtk4 Reference","title":"Gtk4.PropagationPhase","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.RecentManagerError","page":"Gtk4 Reference","title":"Gtk4.RecentManagerError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.ResponseType","page":"Gtk4 Reference","title":"Gtk4.ResponseType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.RevealerTransitionType","page":"Gtk4 Reference","title":"Gtk4.RevealerTransitionType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.ScrollDirection","page":"Gtk4 Reference","title":"Gtk4.ScrollDirection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.ScrollStep","page":"Gtk4 Reference","title":"Gtk4.ScrollStep","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.ScrollType","page":"Gtk4 Reference","title":"Gtk4.ScrollType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.ScrollUnit","page":"Gtk4 Reference","title":"Gtk4.ScrollUnit","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.ScrollablePolicy","page":"Gtk4 Reference","title":"Gtk4.ScrollablePolicy","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.SeatCapabilities","page":"Gtk4 Reference","title":"Gtk4.SeatCapabilities","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.SelectionMode","page":"Gtk4 Reference","title":"Gtk4.SelectionMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.SensitivityType","page":"Gtk4 Reference","title":"Gtk4.SensitivityType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.ShortcutActionFlags","page":"Gtk4 Reference","title":"Gtk4.ShortcutActionFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.ShortcutScope","page":"Gtk4 Reference","title":"Gtk4.ShortcutScope","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.ShortcutType","page":"Gtk4 Reference","title":"Gtk4.ShortcutType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.SizeGroupMode","page":"Gtk4 Reference","title":"Gtk4.SizeGroupMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.SizeRequestMode","page":"Gtk4 Reference","title":"Gtk4.SizeRequestMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.SortType","page":"Gtk4 Reference","title":"Gtk4.SortType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.SorterChange","page":"Gtk4 Reference","title":"Gtk4.SorterChange","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.SorterOrder","page":"Gtk4 Reference","title":"Gtk4.SorterOrder","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.SpinButtonUpdatePolicy","page":"Gtk4 Reference","title":"Gtk4.SpinButtonUpdatePolicy","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.SpinType","page":"Gtk4 Reference","title":"Gtk4.SpinType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.StackTransitionType","page":"Gtk4 Reference","title":"Gtk4.StackTransitionType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.StateFlags","page":"Gtk4 Reference","title":"Gtk4.StateFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.StringFilterMatchMode","page":"Gtk4 Reference","title":"Gtk4.StringFilterMatchMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.StyleContextPrintFlags","page":"Gtk4 Reference","title":"Gtk4.StyleContextPrintFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.SubpixelLayout","page":"Gtk4 Reference","title":"Gtk4.SubpixelLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.SurfaceEdge","page":"Gtk4 Reference","title":"Gtk4.SurfaceEdge","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.SymbolicColor","page":"Gtk4 Reference","title":"Gtk4.SymbolicColor","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.SystemSetting","page":"Gtk4 Reference","title":"Gtk4.SystemSetting","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.TextDirection","page":"Gtk4 Reference","title":"Gtk4.TextDirection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.TextExtendSelection","page":"Gtk4 Reference","title":"Gtk4.TextExtendSelection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.TextSearchFlags","page":"Gtk4 Reference","title":"Gtk4.TextSearchFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.TextViewLayer","page":"Gtk4 Reference","title":"Gtk4.TextViewLayer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.TextWindowType","page":"Gtk4 Reference","title":"Gtk4.TextWindowType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.TextureError","page":"Gtk4 Reference","title":"Gtk4.TextureError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.ToplevelState","page":"Gtk4 Reference","title":"Gtk4.ToplevelState","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.TouchpadGesturePhase","page":"Gtk4 Reference","title":"Gtk4.TouchpadGesturePhase","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.TreeModelFlags","page":"Gtk4 Reference","title":"Gtk4.TreeModelFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.TreeViewColumnSizing","page":"Gtk4 Reference","title":"Gtk4.TreeViewColumnSizing","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.TreeViewDropPosition","page":"Gtk4 Reference","title":"Gtk4.TreeViewDropPosition","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.TreeViewGridLines","page":"Gtk4 Reference","title":"Gtk4.TreeViewGridLines","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.Unit","page":"Gtk4 Reference","title":"Gtk4.Unit","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.VulkanError","page":"Gtk4 Reference","title":"Gtk4.VulkanError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.WrapMode","page":"Gtk4 Reference","title":"Gtk4.WrapMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4._GtkTextIter-Tuple{GtkTextBuffer, Integer}","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":"method"},{"location":"doc/reference/#Constants-1","page":"Gtk4 Reference","title":"Constants","text":"","category":"section"},{"location":"doc/reference/#","page":"Gtk4 Reference","title":"Gtk4 Reference","text":"Modules = [Gtk4]\nOrder = [:constant]","category":"page"},{"location":"doc/reference/#Gtk4.ACCESSIBLE_VALUE_UNDEFINED","page":"Gtk4 Reference","title":"Gtk4.ACCESSIBLE_VALUE_UNDEFINED","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/reference/#Gtk4.ACTION_ALL","page":"Gtk4 Reference","title":"Gtk4.ACTION_ALL","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/reference/#Gtk4.BINARY_AGE","page":"Gtk4 Reference","title":"Gtk4.BINARY_AGE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/reference/#Gtk4.BUTTON_MIDDLE","page":"Gtk4 Reference","title":"Gtk4.BUTTON_MIDDLE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/reference/#Gtk4.BUTTON_PRIMARY","page":"Gtk4 Reference","title":"Gtk4.BUTTON_PRIMARY","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/reference/#Gtk4.BUTTON_SECONDARY","page":"Gtk4 Reference","title":"Gtk4.BUTTON_SECONDARY","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/reference/#Gtk4.CURRENT_TIME","page":"Gtk4 Reference","title":"Gtk4.CURRENT_TIME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/reference/#Gtk4.EVENT_PROPAGATE","page":"Gtk4 Reference","title":"Gtk4.EVENT_PROPAGATE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/reference/#Gtk4.EVENT_STOP","page":"Gtk4 Reference","title":"Gtk4.EVENT_STOP","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/reference/#Gtk4.INPUT_ERROR","page":"Gtk4 Reference","title":"Gtk4.INPUT_ERROR","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/reference/#Gtk4.INTERFACE_AGE","page":"Gtk4 Reference","title":"Gtk4.INTERFACE_AGE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/reference/#Gtk4.INVALID_LIST_POSITION","page":"Gtk4 Reference","title":"Gtk4.INVALID_LIST_POSITION","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/reference/#Gtk4.LEVEL_BAR_OFFSET_FULL","page":"Gtk4 Reference","title":"Gtk4.LEVEL_BAR_OFFSET_FULL","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/reference/#Gtk4.LEVEL_BAR_OFFSET_HIGH","page":"Gtk4 Reference","title":"Gtk4.LEVEL_BAR_OFFSET_HIGH","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/reference/#Gtk4.LEVEL_BAR_OFFSET_LOW","page":"Gtk4 Reference","title":"Gtk4.LEVEL_BAR_OFFSET_LOW","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/reference/#Gtk4.MAJOR_VERSION","page":"Gtk4 Reference","title":"Gtk4.MAJOR_VERSION","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/reference/#Gtk4.MICRO_VERSION","page":"Gtk4 Reference","title":"Gtk4.MICRO_VERSION","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/reference/#Gtk4.MINOR_VERSION","page":"Gtk4 Reference","title":"Gtk4.MINOR_VERSION","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/reference/#Gtk4.MODIFIER_MASK","page":"Gtk4 Reference","title":"Gtk4.MODIFIER_MASK","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/reference/#Gtk4.PAPER_NAME_A3","page":"Gtk4 Reference","title":"Gtk4.PAPER_NAME_A3","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/reference/#Gtk4.PAPER_NAME_A4","page":"Gtk4 Reference","title":"Gtk4.PAPER_NAME_A4","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/reference/#Gtk4.PAPER_NAME_A5","page":"Gtk4 Reference","title":"Gtk4.PAPER_NAME_A5","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/reference/#Gtk4.PAPER_NAME_B5","page":"Gtk4 Reference","title":"Gtk4.PAPER_NAME_B5","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/reference/#Gtk4.PAPER_NAME_EXECUTIVE","page":"Gtk4 Reference","title":"Gtk4.PAPER_NAME_EXECUTIVE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/reference/#Gtk4.PAPER_NAME_LEGAL","page":"Gtk4 Reference","title":"Gtk4.PAPER_NAME_LEGAL","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/reference/#Gtk4.PAPER_NAME_LETTER","page":"Gtk4 Reference","title":"Gtk4.PAPER_NAME_LETTER","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/reference/#Gtk4.PRINT_SETTINGS_OUTPUT_BASENAME","page":"Gtk4 Reference","title":"Gtk4.PRINT_SETTINGS_OUTPUT_BASENAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/reference/#Gtk4.PRINT_SETTINGS_OUTPUT_DIR","page":"Gtk4 Reference","title":"Gtk4.PRINT_SETTINGS_OUTPUT_DIR","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/reference/#Gtk4.PRINT_SETTINGS_OUTPUT_FILE_FORMAT","page":"Gtk4 Reference","title":"Gtk4.PRINT_SETTINGS_OUTPUT_FILE_FORMAT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/reference/#Gtk4.PRINT_SETTINGS_OUTPUT_URI","page":"Gtk4 Reference","title":"Gtk4.PRINT_SETTINGS_OUTPUT_URI","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/reference/#Gtk4.PRIORITY_REDRAW","page":"Gtk4 Reference","title":"Gtk4.PRIORITY_REDRAW","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/reference/#Gtk4.PRIORITY_RESIZE","page":"Gtk4 Reference","title":"Gtk4.PRIORITY_RESIZE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/reference/#Gtk4.STYLE_PROVIDER_PRIORITY_APPLICATION","page":"Gtk4 Reference","title":"Gtk4.STYLE_PROVIDER_PRIORITY_APPLICATION","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/reference/#Gtk4.STYLE_PROVIDER_PRIORITY_FALLBACK","page":"Gtk4 Reference","title":"Gtk4.STYLE_PROVIDER_PRIORITY_FALLBACK","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/reference/#Gtk4.STYLE_PROVIDER_PRIORITY_SETTINGS","page":"Gtk4 Reference","title":"Gtk4.STYLE_PROVIDER_PRIORITY_SETTINGS","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/reference/#Gtk4.STYLE_PROVIDER_PRIORITY_THEME","page":"Gtk4 Reference","title":"Gtk4.STYLE_PROVIDER_PRIORITY_THEME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/reference/#Gtk4.STYLE_PROVIDER_PRIORITY_USER","page":"Gtk4 Reference","title":"Gtk4.STYLE_PROVIDER_PRIORITY_USER","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/reference/#Gtk4.TEXT_VIEW_PRIORITY_VALIDATE","page":"Gtk4 Reference","title":"Gtk4.TEXT_VIEW_PRIORITY_VALIDATE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/reference/#Gtk4.TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID","page":"Gtk4 Reference","title":"Gtk4.TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/reference/#Gtk4.TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID","page":"Gtk4 Reference","title":"Gtk4.TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"manual/gettingStarted/#Getting-Started-1","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":"Since a GtkWindow can have only one child widget, we could have added the button to the window using","category":"page"},{"location":"manual/gettingStarted/#","page":"Getting Started","title":"Getting Started","text":"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-1","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/methods/#Automatically-generated-methods-1","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-1","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 GObjectconstructorname, 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-1","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-1","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-1","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, signal_connect supports an approach that allows your callback function to be directly compiled to machine code.","category":"page"},{"location":"manual/signals/#","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"This alternative syntax is as follows:","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-1","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/signals/#@guarded-1","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/layout/#Layout-1","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-1","page":"Layout","title":"GtkBox","text":"","category":"section"},{"location":"manual/layout/#","page":"Layout","title":"Layout","text":"The simplest layout widget is the 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/#GtkGrid-1","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/#GtkCenterBox-1","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/#GtkPaned-1","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/#GtkNotebook-1","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/#GtkStack-1","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":"s = GtkStack()\nsw = GtkStackSwitcher()\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]","category":"page"},{"location":"manual/layout/#Iterating-over-child-widgets-1","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 w in widget\n myfunc(w)\nend","category":"page"},{"location":"doc/GLib_reference/#GLib-Reference-1","page":"GLib Reference","title":"GLib Reference","text":"","category":"section"},{"location":"doc/GLib_reference/#Public-interface-1","page":"GLib Reference","title":"Public interface","text":"","category":"section"},{"location":"doc/GLib_reference/#","page":"GLib Reference","title":"GLib Reference","text":"Modules = [Gtk4.GLib]\nOrder = [:module, :function, :macro]\nPublic = true\nPrivate = false","category":"page"},{"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.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_source_remove-Tuple{Any}","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":"method"},{"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. The function is expected to return a Cint. If it returns a nonzero value, the function will be called again after another interval milliseconds. Otherwise 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.\n\nRelated GTK function: g_timeout_add()\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.gtk_propertynames-Tuple{Gtk4.GLib.GObject}","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":"method"},{"location":"doc/GLib_reference/#Gtk4.GLib.signal_handler_disconnect-Tuple{Gtk4.GLib.GObject, UInt64}","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":"method"},{"location":"doc/GLib_reference/#Gtk4.GLib.unbind_property-Tuple{Gtk4.GLib.GBinding}","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":"method"},{"location":"doc/GLib_reference/#Gtk4.GLib.@idle_add-Tuple{Any}","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/#Private-methods-1","page":"GLib Reference","title":"Private methods","text":"","category":"section"},{"location":"doc/GLib_reference/#","page":"GLib Reference","title":"GLib Reference","text":"Modules = [Gtk4.GLib]\nOrder = [:module, :function, :macro]\nPublic = false\nPrivate = true","category":"page"},{"location":"doc/GLib_reference/#Base.run-Tuple{Gtk4.GLib.GApplication}","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":"method"},{"location":"doc/GLib_reference/#Gtk4.GLib.g_type-Tuple{UInt64}","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":"method"},{"location":"doc/GLib_reference/#Gtk4.GLib.get_uv_loop_integration-Tuple{}","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":"method"},{"location":"doc/GLib_reference/#Gtk4.GLib.is_loop_running-Tuple{}","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":"method"},{"location":"doc/GLib_reference/#Gtk4.GLib.is_uv_loop_integration_enabled-Tuple{}","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":"method"},{"location":"doc/GLib_reference/#Gtk4.GLib.pause_main_loop-Tuple{Any}","page":"GLib Reference","title":"Gtk4.GLib.pause_main_loop","text":"pause_main_loop(f)\n\nPauses the GLib eventloop around a function. Restores the original state of the eventloop after calling the function.\n\n\n\n\n\n","category":"method"},{"location":"doc/GLib_reference/#Gtk4.GLib.propertyinfo-Tuple{Gtk4.GLib.GObject, AbstractString}","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":"method"},{"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.signal_handler_is_connected-Tuple{Gtk4.GLib.GObject, UInt64}","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":"method"},{"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.waitforsignal-Tuple{Gtk4.GLib.GObject, Any}","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.\n\n\n\n\n\n","category":"method"},{"location":"doc/GLib_reference/#Types-1","page":"GLib Reference","title":"Types","text":"","category":"section"},{"location":"doc/GLib_reference/#","page":"GLib Reference","title":"GLib Reference","text":"Modules = [Gtk4.GLib]\nOrder = [:type]\nPublic = true\nPrivate = false","category":"page"},{"location":"doc/GLib_reference/#Gtk4.GLib.AppInfoCreateFlags","page":"GLib Reference","title":"Gtk4.GLib.AppInfoCreateFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.ApplicationFlags","page":"GLib Reference","title":"Gtk4.GLib.ApplicationFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.AskPasswordFlags","page":"GLib Reference","title":"Gtk4.GLib.AskPasswordFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.BindingFlags","page":"GLib Reference","title":"Gtk4.GLib.BindingFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.BookmarkFileError","page":"GLib Reference","title":"Gtk4.GLib.BookmarkFileError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.BusNameOwnerFlags","page":"GLib Reference","title":"Gtk4.GLib.BusNameOwnerFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.BusNameWatcherFlags","page":"GLib Reference","title":"Gtk4.GLib.BusNameWatcherFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.BusType","page":"GLib Reference","title":"Gtk4.GLib.BusType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.ChecksumType","page":"GLib Reference","title":"Gtk4.GLib.ChecksumType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.ConnectFlags","page":"GLib Reference","title":"Gtk4.GLib.ConnectFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.ConvertError","page":"GLib Reference","title":"Gtk4.GLib.ConvertError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.ConverterFlags","page":"GLib Reference","title":"Gtk4.GLib.ConverterFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.ConverterResult","page":"GLib Reference","title":"Gtk4.GLib.ConverterResult","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.CredentialsType","page":"GLib Reference","title":"Gtk4.GLib.CredentialsType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.DBusCallFlags","page":"GLib Reference","title":"Gtk4.GLib.DBusCallFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.DBusCapabilityFlags","page":"GLib Reference","title":"Gtk4.GLib.DBusCapabilityFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.DBusConnectionFlags","page":"GLib Reference","title":"Gtk4.GLib.DBusConnectionFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.DBusError","page":"GLib Reference","title":"Gtk4.GLib.DBusError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.DBusInterfaceSkeletonFlags","page":"GLib Reference","title":"Gtk4.GLib.DBusInterfaceSkeletonFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.DBusMessageByteOrder","page":"GLib Reference","title":"Gtk4.GLib.DBusMessageByteOrder","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.DBusMessageFlags","page":"GLib Reference","title":"Gtk4.GLib.DBusMessageFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.DBusMessageHeaderField","page":"GLib Reference","title":"Gtk4.GLib.DBusMessageHeaderField","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.DBusMessageType","page":"GLib Reference","title":"Gtk4.GLib.DBusMessageType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.DBusObjectManagerClientFlags","page":"GLib Reference","title":"Gtk4.GLib.DBusObjectManagerClientFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.DBusPropertyInfoFlags","page":"GLib Reference","title":"Gtk4.GLib.DBusPropertyInfoFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.DBusProxyFlags","page":"GLib Reference","title":"Gtk4.GLib.DBusProxyFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.DBusSendMessageFlags","page":"GLib Reference","title":"Gtk4.GLib.DBusSendMessageFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.DBusServerFlags","page":"GLib Reference","title":"Gtk4.GLib.DBusServerFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.DBusSignalFlags","page":"GLib Reference","title":"Gtk4.GLib.DBusSignalFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.DBusSubtreeFlags","page":"GLib Reference","title":"Gtk4.GLib.DBusSubtreeFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.DataStreamByteOrder","page":"GLib Reference","title":"Gtk4.GLib.DataStreamByteOrder","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.DataStreamNewlineType","page":"GLib Reference","title":"Gtk4.GLib.DataStreamNewlineType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.DateDMY","page":"GLib Reference","title":"Gtk4.GLib.DateDMY","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.DateMonth","page":"GLib Reference","title":"Gtk4.GLib.DateMonth","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.DateWeekday","page":"GLib Reference","title":"Gtk4.GLib.DateWeekday","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.DriveStartFlags","page":"GLib Reference","title":"Gtk4.GLib.DriveStartFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.DriveStartStopType","page":"GLib Reference","title":"Gtk4.GLib.DriveStartStopType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.EmblemOrigin","page":"GLib Reference","title":"Gtk4.GLib.EmblemOrigin","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.ErrorType","page":"GLib Reference","title":"Gtk4.GLib.ErrorType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.FileAttributeInfoFlags","page":"GLib Reference","title":"Gtk4.GLib.FileAttributeInfoFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.FileAttributeStatus","page":"GLib Reference","title":"Gtk4.GLib.FileAttributeStatus","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.FileAttributeType","page":"GLib Reference","title":"Gtk4.GLib.FileAttributeType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.FileCopyFlags","page":"GLib Reference","title":"Gtk4.GLib.FileCopyFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.FileCreateFlags","page":"GLib Reference","title":"Gtk4.GLib.FileCreateFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.FileError","page":"GLib Reference","title":"Gtk4.GLib.FileError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.FileMeasureFlags","page":"GLib Reference","title":"Gtk4.GLib.FileMeasureFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.FileMonitorEvent","page":"GLib Reference","title":"Gtk4.GLib.FileMonitorEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.FileMonitorFlags","page":"GLib Reference","title":"Gtk4.GLib.FileMonitorFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.FileQueryInfoFlags","page":"GLib Reference","title":"Gtk4.GLib.FileQueryInfoFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.FileSetContentsFlags","page":"GLib Reference","title":"Gtk4.GLib.FileSetContentsFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.FileTest","page":"GLib Reference","title":"Gtk4.GLib.FileTest","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.FileType","page":"GLib Reference","title":"Gtk4.GLib.FileType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.FilesystemPreviewType","page":"GLib Reference","title":"Gtk4.GLib.FilesystemPreviewType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.FormatSizeFlags","page":"GLib Reference","title":"Gtk4.GLib.FormatSizeFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GAppInfoMonitor","page":"GLib Reference","title":"Gtk4.GLib.GAppInfoMonitor","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GAppLaunchContext","page":"GLib Reference","title":"Gtk4.GLib.GAppLaunchContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GApplication","page":"GLib Reference","title":"Gtk4.GLib.GApplication","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GApplicationCommandLine","page":"GLib Reference","title":"Gtk4.GLib.GApplicationCommandLine","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GBinding","page":"GLib Reference","title":"Gtk4.GLib.GBinding","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GBindingGroup","page":"GLib Reference","title":"Gtk4.GLib.GBindingGroup","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GBookmarkFile","page":"GLib Reference","title":"Gtk4.GLib.GBookmarkFile","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GBufferedInputStream","page":"GLib Reference","title":"Gtk4.GLib.GBufferedInputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GBufferedOutputStream","page":"GLib Reference","title":"Gtk4.GLib.GBufferedOutputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GBytes","page":"GLib Reference","title":"Gtk4.GLib.GBytes","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GBytesIcon","page":"GLib Reference","title":"Gtk4.GLib.GBytesIcon","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GCancellable","page":"GLib Reference","title":"Gtk4.GLib.GCancellable","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GCharsetConverter","page":"GLib Reference","title":"Gtk4.GLib.GCharsetConverter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GChecksum","page":"GLib Reference","title":"Gtk4.GLib.GChecksum","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GConverterInputStream","page":"GLib Reference","title":"Gtk4.GLib.GConverterInputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GConverterOutputStream","page":"GLib Reference","title":"Gtk4.GLib.GConverterOutputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GCredentials","page":"GLib Reference","title":"Gtk4.GLib.GCredentials","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GDBusActionGroup","page":"GLib Reference","title":"Gtk4.GLib.GDBusActionGroup","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GDBusAuthObserver","page":"GLib Reference","title":"Gtk4.GLib.GDBusAuthObserver","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GDBusConnection","page":"GLib Reference","title":"Gtk4.GLib.GDBusConnection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GDBusErrorEntry","page":"GLib Reference","title":"Gtk4.GLib.GDBusErrorEntry","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GDBusInterfaceSkeleton","page":"GLib Reference","title":"Gtk4.GLib.GDBusInterfaceSkeleton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GDBusMenuModel","page":"GLib Reference","title":"Gtk4.GLib.GDBusMenuModel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GDBusMessage","page":"GLib Reference","title":"Gtk4.GLib.GDBusMessage","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GDBusMethodInvocation","page":"GLib Reference","title":"Gtk4.GLib.GDBusMethodInvocation","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GDBusObjectManagerClient","page":"GLib Reference","title":"Gtk4.GLib.GDBusObjectManagerClient","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GDBusObjectManagerServer","page":"GLib Reference","title":"Gtk4.GLib.GDBusObjectManagerServer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GDBusObjectProxy","page":"GLib Reference","title":"Gtk4.GLib.GDBusObjectProxy","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GDBusObjectSkeleton","page":"GLib Reference","title":"Gtk4.GLib.GDBusObjectSkeleton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GDBusProxy","page":"GLib Reference","title":"Gtk4.GLib.GDBusProxy","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GDBusServer","page":"GLib Reference","title":"Gtk4.GLib.GDBusServer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GDataInputStream","page":"GLib Reference","title":"Gtk4.GLib.GDataInputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GDataOutputStream","page":"GLib Reference","title":"Gtk4.GLib.GDataOutputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GDate","page":"GLib Reference","title":"Gtk4.GLib.GDate","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GDateTime","page":"GLib Reference","title":"Gtk4.GLib.GDateTime","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GDebugKey","page":"GLib Reference","title":"Gtk4.GLib.GDebugKey","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GDesktopAppInfo","page":"GLib Reference","title":"Gtk4.GLib.GDesktopAppInfo","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GEmblem","page":"GLib Reference","title":"Gtk4.GLib.GEmblem","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GEmblemedIcon","page":"GLib Reference","title":"Gtk4.GLib.GEmblemedIcon","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GEnumClass","page":"GLib Reference","title":"Gtk4.GLib.GEnumClass","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GFileAttributeInfo","page":"GLib Reference","title":"Gtk4.GLib.GFileAttributeInfo","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GFileAttributeInfoList","page":"GLib Reference","title":"Gtk4.GLib.GFileAttributeInfoList","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GFileAttributeMatcher","page":"GLib Reference","title":"Gtk4.GLib.GFileAttributeMatcher","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GFileEnumerator","page":"GLib Reference","title":"Gtk4.GLib.GFileEnumerator","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GFileIOStream","page":"GLib Reference","title":"Gtk4.GLib.GFileIOStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GFileIcon","page":"GLib Reference","title":"Gtk4.GLib.GFileIcon","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GFileInfo","page":"GLib Reference","title":"Gtk4.GLib.GFileInfo","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GFileInputStream","page":"GLib Reference","title":"Gtk4.GLib.GFileInputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GFileMonitor","page":"GLib Reference","title":"Gtk4.GLib.GFileMonitor","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GFileOutputStream","page":"GLib Reference","title":"Gtk4.GLib.GFileOutputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GFilenameCompleter","page":"GLib Reference","title":"Gtk4.GLib.GFilenameCompleter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GFilterInputStream","page":"GLib Reference","title":"Gtk4.GLib.GFilterInputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GFilterOutputStream","page":"GLib Reference","title":"Gtk4.GLib.GFilterOutputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GFlagsClass","page":"GLib Reference","title":"Gtk4.GLib.GFlagsClass","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GIOModule","page":"GLib Reference","title":"Gtk4.GLib.GIOModule","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GIOStream","page":"GLib Reference","title":"Gtk4.GLib.GIOStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GInetAddress","page":"GLib Reference","title":"Gtk4.GLib.GInetAddress","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GInetAddressMask","page":"GLib Reference","title":"Gtk4.GLib.GInetAddressMask","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GInetSocketAddress","page":"GLib Reference","title":"Gtk4.GLib.GInetSocketAddress","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GInitiallyUnowned","page":"GLib Reference","title":"Gtk4.GLib.GInitiallyUnowned","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GInputStream","page":"GLib Reference","title":"Gtk4.GLib.GInputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GInputVector","page":"GLib Reference","title":"Gtk4.GLib.GInputVector","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GKeyFile","page":"GLib Reference","title":"Gtk4.GLib.GKeyFile","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GListStore","page":"GLib Reference","title":"Gtk4.GLib.GListStore","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GLogField","page":"GLib Reference","title":"Gtk4.GLib.GLogField","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GMainContext","page":"GLib Reference","title":"Gtk4.GLib.GMainContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GMainLoop","page":"GLib Reference","title":"Gtk4.GLib.GMainLoop","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GMappedFile","page":"GLib Reference","title":"Gtk4.GLib.GMappedFile","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GMarkupParseContext","page":"GLib Reference","title":"Gtk4.GLib.GMarkupParseContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GMatchInfo","page":"GLib Reference","title":"Gtk4.GLib.GMatchInfo","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GMemoryInputStream","page":"GLib Reference","title":"Gtk4.GLib.GMemoryInputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GMemoryOutputStream","page":"GLib Reference","title":"Gtk4.GLib.GMemoryOutputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GMenu","page":"GLib Reference","title":"Gtk4.GLib.GMenu","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GMenuAttributeIter","page":"GLib Reference","title":"Gtk4.GLib.GMenuAttributeIter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GMenuItem","page":"GLib Reference","title":"Gtk4.GLib.GMenuItem","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GMenuLinkIter","page":"GLib Reference","title":"Gtk4.GLib.GMenuLinkIter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GMenuModel","page":"GLib Reference","title":"Gtk4.GLib.GMenuModel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GMountOperation","page":"GLib Reference","title":"Gtk4.GLib.GMountOperation","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GNativeSocketAddress","page":"GLib Reference","title":"Gtk4.GLib.GNativeSocketAddress","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GNetworkAddress","page":"GLib Reference","title":"Gtk4.GLib.GNetworkAddress","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GNetworkService","page":"GLib Reference","title":"Gtk4.GLib.GNetworkService","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GNotification","page":"GLib Reference","title":"Gtk4.GLib.GNotification","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GOptionEntry","page":"GLib Reference","title":"Gtk4.GLib.GOptionEntry","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GOutputStream","page":"GLib Reference","title":"Gtk4.GLib.GOutputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GOutputVector","page":"GLib Reference","title":"Gtk4.GLib.GOutputVector","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GPatternSpec","page":"GLib Reference","title":"Gtk4.GLib.GPatternSpec","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GPermission","page":"GLib Reference","title":"Gtk4.GLib.GPermission","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GPropertyAction","page":"GLib Reference","title":"Gtk4.GLib.GPropertyAction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GProxyAddress","page":"GLib Reference","title":"Gtk4.GLib.GProxyAddress","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GProxyAddressEnumerator","page":"GLib Reference","title":"Gtk4.GLib.GProxyAddressEnumerator","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GRegex","page":"GLib Reference","title":"Gtk4.GLib.GRegex","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GResolver","page":"GLib Reference","title":"Gtk4.GLib.GResolver","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GResource","page":"GLib Reference","title":"Gtk4.GLib.GResource","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GScannerConfig","page":"GLib Reference","title":"Gtk4.GLib.GScannerConfig","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSettings","page":"GLib Reference","title":"Gtk4.GLib.GSettings","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSettingsBackend","page":"GLib Reference","title":"Gtk4.GLib.GSettingsBackend","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSettingsSchema","page":"GLib Reference","title":"Gtk4.GLib.GSettingsSchema","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSettingsSchemaKey","page":"GLib Reference","title":"Gtk4.GLib.GSettingsSchemaKey","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSettingsSchemaSource","page":"GLib Reference","title":"Gtk4.GLib.GSettingsSchemaSource","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSignalInvocationHint","page":"GLib Reference","title":"Gtk4.GLib.GSignalInvocationHint","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSignalQuery","page":"GLib Reference","title":"Gtk4.GLib.GSignalQuery","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"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.GSimpleActionGroup","page":"GLib Reference","title":"Gtk4.GLib.GSimpleActionGroup","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSimpleAsyncResult","page":"GLib Reference","title":"Gtk4.GLib.GSimpleAsyncResult","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSimpleIOStream","page":"GLib Reference","title":"Gtk4.GLib.GSimpleIOStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSimplePermission","page":"GLib Reference","title":"Gtk4.GLib.GSimplePermission","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSimpleProxyResolver","page":"GLib Reference","title":"Gtk4.GLib.GSimpleProxyResolver","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSocket","page":"GLib Reference","title":"Gtk4.GLib.GSocket","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSocketAddress","page":"GLib Reference","title":"Gtk4.GLib.GSocketAddress","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSocketAddressEnumerator","page":"GLib Reference","title":"Gtk4.GLib.GSocketAddressEnumerator","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSocketClient","page":"GLib Reference","title":"Gtk4.GLib.GSocketClient","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSocketConnection","page":"GLib Reference","title":"Gtk4.GLib.GSocketConnection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSocketControlMessage","page":"GLib Reference","title":"Gtk4.GLib.GSocketControlMessage","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSocketListener","page":"GLib Reference","title":"Gtk4.GLib.GSocketListener","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSocketService","page":"GLib Reference","title":"Gtk4.GLib.GSocketService","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSource","page":"GLib Reference","title":"Gtk4.GLib.GSource","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSourceCallbackFuncs","page":"GLib Reference","title":"Gtk4.GLib.GSourceCallbackFuncs","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSrvTarget","page":"GLib Reference","title":"Gtk4.GLib.GSrvTarget","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GString","page":"GLib Reference","title":"Gtk4.GLib.GString","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSubprocess","page":"GLib Reference","title":"Gtk4.GLib.GSubprocess","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSubprocessLauncher","page":"GLib Reference","title":"Gtk4.GLib.GSubprocessLauncher","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GTask","page":"GLib Reference","title":"Gtk4.GLib.GTask","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GTcpConnection","page":"GLib Reference","title":"Gtk4.GLib.GTcpConnection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GTcpWrapperConnection","page":"GLib Reference","title":"Gtk4.GLib.GTcpWrapperConnection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GTestDBus","page":"GLib Reference","title":"Gtk4.GLib.GTestDBus","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GThemedIcon","page":"GLib Reference","title":"Gtk4.GLib.GThemedIcon","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GThreadedResolver","page":"GLib Reference","title":"Gtk4.GLib.GThreadedResolver","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GThreadedSocketService","page":"GLib Reference","title":"Gtk4.GLib.GThreadedSocketService","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GTimeZone","page":"GLib Reference","title":"Gtk4.GLib.GTimeZone","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GTlsCertificate","page":"GLib Reference","title":"Gtk4.GLib.GTlsCertificate","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GTlsConnection","page":"GLib Reference","title":"Gtk4.GLib.GTlsConnection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GTlsDatabase","page":"GLib Reference","title":"Gtk4.GLib.GTlsDatabase","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GTlsInteraction","page":"GLib Reference","title":"Gtk4.GLib.GTlsInteraction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GTlsPassword","page":"GLib Reference","title":"Gtk4.GLib.GTlsPassword","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GTypeFundamentalInfo","page":"GLib Reference","title":"Gtk4.GLib.GTypeFundamentalInfo","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GTypeInfo","page":"GLib Reference","title":"Gtk4.GLib.GTypeInfo","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GTypeModule","page":"GLib Reference","title":"Gtk4.GLib.GTypeModule","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GTypePluginClass","page":"GLib Reference","title":"Gtk4.GLib.GTypePluginClass","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GTypeQuery","page":"GLib Reference","title":"Gtk4.GLib.GTypeQuery","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GUnixConnection","page":"GLib Reference","title":"Gtk4.GLib.GUnixConnection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GUnixCredentialsMessage","page":"GLib Reference","title":"Gtk4.GLib.GUnixCredentialsMessage","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GUri","page":"GLib Reference","title":"Gtk4.GLib.GUri","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GValueArray","page":"GLib Reference","title":"Gtk4.GLib.GValueArray","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GVariantBuilder","page":"GLib Reference","title":"Gtk4.GLib.GVariantBuilder","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GVariantDict","page":"GLib Reference","title":"Gtk4.GLib.GVariantDict","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GVariantType","page":"GLib Reference","title":"Gtk4.GLib.GVariantType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GVfs","page":"GLib Reference","title":"Gtk4.GLib.GVfs","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GVolumeMonitor","page":"GLib Reference","title":"Gtk4.GLib.GVolumeMonitor","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GXdpDocumentsIface","page":"GLib Reference","title":"Gtk4.GLib.GXdpDocumentsIface","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GXdpOpenURIIface","page":"GLib Reference","title":"Gtk4.GLib.GXdpOpenURIIface","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GXdpProxyResolverIface","page":"GLib Reference","title":"Gtk4.GLib.GXdpProxyResolverIface","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GXdpTrashIface","page":"GLib Reference","title":"Gtk4.GLib.GXdpTrashIface","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GZlibCompressor","page":"GLib Reference","title":"Gtk4.GLib.GZlibCompressor","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GZlibDecompressor","page":"GLib Reference","title":"Gtk4.GLib.GZlibDecompressor","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.G_FreedesktopDBusIface","page":"GLib Reference","title":"Gtk4.GLib.G_FreedesktopDBusIface","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.G_FreedesktopDBusProxy","page":"GLib Reference","title":"Gtk4.GLib.G_FreedesktopDBusProxy","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.G_FreedesktopDBusSkeleton","page":"GLib Reference","title":"Gtk4.GLib.G_FreedesktopDBusSkeleton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.HookFlagMask","page":"GLib Reference","title":"Gtk4.GLib.HookFlagMask","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.IOChannelError","page":"GLib Reference","title":"Gtk4.GLib.IOChannelError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.IOCondition","page":"GLib Reference","title":"Gtk4.GLib.IOCondition","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.IOError","page":"GLib Reference","title":"Gtk4.GLib.IOError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.IOErrorEnum","page":"GLib Reference","title":"Gtk4.GLib.IOErrorEnum","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.IOFlags","page":"GLib Reference","title":"Gtk4.GLib.IOFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.IOModuleScopeFlags","page":"GLib Reference","title":"Gtk4.GLib.IOModuleScopeFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.IOStatus","page":"GLib Reference","title":"Gtk4.GLib.IOStatus","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.IOStreamSpliceFlags","page":"GLib Reference","title":"Gtk4.GLib.IOStreamSpliceFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.KeyFileError","page":"GLib Reference","title":"Gtk4.GLib.KeyFileError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.KeyFileFlags","page":"GLib Reference","title":"Gtk4.GLib.KeyFileFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.LogLevelFlags","page":"GLib Reference","title":"Gtk4.GLib.LogLevelFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.LogWriterOutput","page":"GLib Reference","title":"Gtk4.GLib.LogWriterOutput","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.MainContextFlags","page":"GLib Reference","title":"Gtk4.GLib.MainContextFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.MarkupCollectType","page":"GLib Reference","title":"Gtk4.GLib.MarkupCollectType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.MarkupError","page":"GLib Reference","title":"Gtk4.GLib.MarkupError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.MarkupParseFlags","page":"GLib Reference","title":"Gtk4.GLib.MarkupParseFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.MemoryMonitorWarningLevel","page":"GLib Reference","title":"Gtk4.GLib.MemoryMonitorWarningLevel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.MountMountFlags","page":"GLib Reference","title":"Gtk4.GLib.MountMountFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.MountOperationResult","page":"GLib Reference","title":"Gtk4.GLib.MountOperationResult","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.MountUnmountFlags","page":"GLib Reference","title":"Gtk4.GLib.MountUnmountFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.NetworkConnectivity","page":"GLib Reference","title":"Gtk4.GLib.NetworkConnectivity","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.NormalizeMode","page":"GLib Reference","title":"Gtk4.GLib.NormalizeMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.NotificationPriority","page":"GLib Reference","title":"Gtk4.GLib.NotificationPriority","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.NumberParserError","page":"GLib Reference","title":"Gtk4.GLib.NumberParserError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.OnceStatus","page":"GLib Reference","title":"Gtk4.GLib.OnceStatus","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.OptionArg","page":"GLib Reference","title":"Gtk4.GLib.OptionArg","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.OptionError","page":"GLib Reference","title":"Gtk4.GLib.OptionError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.OptionFlags","page":"GLib Reference","title":"Gtk4.GLib.OptionFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.OutputStreamSpliceFlags","page":"GLib Reference","title":"Gtk4.GLib.OutputStreamSpliceFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.ParamFlags","page":"GLib Reference","title":"Gtk4.GLib.ParamFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.PasswordSave","page":"GLib Reference","title":"Gtk4.GLib.PasswordSave","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.PollableReturn","page":"GLib Reference","title":"Gtk4.GLib.PollableReturn","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.RegexCompileFlags","page":"GLib Reference","title":"Gtk4.GLib.RegexCompileFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.RegexError","page":"GLib Reference","title":"Gtk4.GLib.RegexError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.RegexMatchFlags","page":"GLib Reference","title":"Gtk4.GLib.RegexMatchFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.ResolverError","page":"GLib Reference","title":"Gtk4.GLib.ResolverError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.ResolverNameLookupFlags","page":"GLib Reference","title":"Gtk4.GLib.ResolverNameLookupFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.ResolverRecordType","page":"GLib Reference","title":"Gtk4.GLib.ResolverRecordType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.ResourceError","page":"GLib Reference","title":"Gtk4.GLib.ResourceError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.ResourceFlags","page":"GLib Reference","title":"Gtk4.GLib.ResourceFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.ResourceLookupFlags","page":"GLib Reference","title":"Gtk4.GLib.ResourceLookupFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.SeekType","page":"GLib Reference","title":"Gtk4.GLib.SeekType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.SettingsBindFlags","page":"GLib Reference","title":"Gtk4.GLib.SettingsBindFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.ShellError","page":"GLib Reference","title":"Gtk4.GLib.ShellError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.SignalFlags","page":"GLib Reference","title":"Gtk4.GLib.SignalFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.SignalMatchType","page":"GLib Reference","title":"Gtk4.GLib.SignalMatchType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.SocketClientEvent","page":"GLib Reference","title":"Gtk4.GLib.SocketClientEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.SocketFamily","page":"GLib Reference","title":"Gtk4.GLib.SocketFamily","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.SocketListenerEvent","page":"GLib Reference","title":"Gtk4.GLib.SocketListenerEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.SocketMsgFlags","page":"GLib Reference","title":"Gtk4.GLib.SocketMsgFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.SocketProtocol","page":"GLib Reference","title":"Gtk4.GLib.SocketProtocol","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.SocketType","page":"GLib Reference","title":"Gtk4.GLib.SocketType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.SpawnError","page":"GLib Reference","title":"Gtk4.GLib.SpawnError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.SpawnFlags","page":"GLib Reference","title":"Gtk4.GLib.SpawnFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.SubprocessFlags","page":"GLib Reference","title":"Gtk4.GLib.SubprocessFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.TestDBusFlags","page":"GLib Reference","title":"Gtk4.GLib.TestDBusFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.TestFileType","page":"GLib Reference","title":"Gtk4.GLib.TestFileType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.TestSubprocessFlags","page":"GLib Reference","title":"Gtk4.GLib.TestSubprocessFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.ThreadError","page":"GLib Reference","title":"Gtk4.GLib.ThreadError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.TimeType","page":"GLib Reference","title":"Gtk4.GLib.TimeType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.TlsAuthenticationMode","page":"GLib Reference","title":"Gtk4.GLib.TlsAuthenticationMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.TlsCertificateFlags","page":"GLib Reference","title":"Gtk4.GLib.TlsCertificateFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.TlsCertificateRequestFlags","page":"GLib Reference","title":"Gtk4.GLib.TlsCertificateRequestFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.TlsChannelBindingError","page":"GLib Reference","title":"Gtk4.GLib.TlsChannelBindingError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.TlsChannelBindingType","page":"GLib Reference","title":"Gtk4.GLib.TlsChannelBindingType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.TlsDatabaseLookupFlags","page":"GLib Reference","title":"Gtk4.GLib.TlsDatabaseLookupFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.TlsDatabaseVerifyFlags","page":"GLib Reference","title":"Gtk4.GLib.TlsDatabaseVerifyFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.TlsError","page":"GLib Reference","title":"Gtk4.GLib.TlsError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.TlsInteractionResult","page":"GLib Reference","title":"Gtk4.GLib.TlsInteractionResult","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.TlsPasswordFlags","page":"GLib Reference","title":"Gtk4.GLib.TlsPasswordFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.TlsProtocolVersion","page":"GLib Reference","title":"Gtk4.GLib.TlsProtocolVersion","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.TokenType","page":"GLib Reference","title":"Gtk4.GLib.TokenType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.TraverseFlags","page":"GLib Reference","title":"Gtk4.GLib.TraverseFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.TraverseType","page":"GLib Reference","title":"Gtk4.GLib.TraverseType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.TypeFlags","page":"GLib Reference","title":"Gtk4.GLib.TypeFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.TypeFundamentalFlags","page":"GLib Reference","title":"Gtk4.GLib.TypeFundamentalFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.UnicodeBreakType","page":"GLib Reference","title":"Gtk4.GLib.UnicodeBreakType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.UnicodeScript","page":"GLib Reference","title":"Gtk4.GLib.UnicodeScript","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.UnicodeType","page":"GLib Reference","title":"Gtk4.GLib.UnicodeType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.UnixSocketAddressType","page":"GLib Reference","title":"Gtk4.GLib.UnixSocketAddressType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.UriError","page":"GLib Reference","title":"Gtk4.GLib.UriError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.UriFlags","page":"GLib Reference","title":"Gtk4.GLib.UriFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.UriHideFlags","page":"GLib Reference","title":"Gtk4.GLib.UriHideFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.UriParamsFlags","page":"GLib Reference","title":"Gtk4.GLib.UriParamsFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.UserDirectory","page":"GLib Reference","title":"Gtk4.GLib.UserDirectory","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.VariantClass","page":"GLib Reference","title":"Gtk4.GLib.VariantClass","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.VariantParseError","page":"GLib Reference","title":"Gtk4.GLib.VariantParseError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.ZlibCompressorFormat","page":"GLib Reference","title":"Gtk4.GLib.ZlibCompressorFormat","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Constants-1","page":"GLib Reference","title":"Constants","text":"","category":"section"},{"location":"doc/GLib_reference/#","page":"GLib Reference","title":"GLib Reference","text":"Modules = [Gtk4.GLib]\nOrder = [:constant]","category":"page"},{"location":"doc/GLib_reference/#Gtk4.GLib.ASCII_DTOSTR_BUF_SIZE","page":"GLib Reference","title":"Gtk4.GLib.ASCII_DTOSTR_BUF_SIZE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.ATOMIC_REF_COUNT_INIT","page":"GLib Reference","title":"Gtk4.GLib.ATOMIC_REF_COUNT_INIT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.BIG_ENDIAN","page":"GLib Reference","title":"Gtk4.GLib.BIG_ENDIAN","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.CSET_A_2_Z","page":"GLib Reference","title":"Gtk4.GLib.CSET_A_2_Z","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.CSET_DIGITS","page":"GLib Reference","title":"Gtk4.GLib.CSET_DIGITS","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.CSET_a_2_z","page":"GLib Reference","title":"Gtk4.GLib.CSET_a_2_z","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.C_STD_VERSION","page":"GLib Reference","title":"Gtk4.GLib.C_STD_VERSION","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.DATALIST_FLAGS_MASK","page":"GLib Reference","title":"Gtk4.GLib.DATALIST_FLAGS_MASK","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.DATE_BAD_DAY","page":"GLib Reference","title":"Gtk4.GLib.DATE_BAD_DAY","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.DATE_BAD_JULIAN","page":"GLib Reference","title":"Gtk4.GLib.DATE_BAD_JULIAN","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.DATE_BAD_YEAR","page":"GLib Reference","title":"Gtk4.GLib.DATE_BAD_YEAR","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.DBUS_METHOD_INVOCATION_HANDLED","page":"GLib Reference","title":"Gtk4.GLib.DBUS_METHOD_INVOCATION_HANDLED","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.DBUS_METHOD_INVOCATION_UNHANDLED","page":"GLib Reference","title":"Gtk4.GLib.DBUS_METHOD_INVOCATION_UNHANDLED","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.DEBUG_CONTROLLER_EXTENSION_POINT_NAME","page":"GLib Reference","title":"Gtk4.GLib.DEBUG_CONTROLLER_EXTENSION_POINT_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.DIR_SEPARATOR","page":"GLib Reference","title":"Gtk4.GLib.DIR_SEPARATOR","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.DIR_SEPARATOR_S","page":"GLib Reference","title":"Gtk4.GLib.DIR_SEPARATOR_S","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.DRIVE_IDENTIFIER_KIND_UNIX_DEVICE","page":"GLib Reference","title":"Gtk4.GLib.DRIVE_IDENTIFIER_KIND_UNIX_DEVICE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_ACCESS_CAN_DELETE","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_ACCESS_CAN_DELETE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_ACCESS_CAN_EXECUTE","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_ACCESS_CAN_EXECUTE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_ACCESS_CAN_READ","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_ACCESS_CAN_READ","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_ACCESS_CAN_RENAME","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_ACCESS_CAN_RENAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_ACCESS_CAN_TRASH","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_ACCESS_CAN_TRASH","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_ACCESS_CAN_WRITE","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_ACCESS_CAN_WRITE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_DOS_IS_ARCHIVE","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_DOS_IS_ARCHIVE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_DOS_IS_MOUNTPOINT","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_DOS_IS_MOUNTPOINT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_DOS_IS_SYSTEM","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_DOS_IS_SYSTEM","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_DOS_REPARSE_POINT_TAG","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_DOS_REPARSE_POINT_TAG","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_ETAG_VALUE","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_ETAG_VALUE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_FILESYSTEM_FREE","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_FILESYSTEM_FREE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_FILESYSTEM_READONLY","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_FILESYSTEM_READONLY","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_FILESYSTEM_REMOTE","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_FILESYSTEM_REMOTE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_FILESYSTEM_SIZE","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_FILESYSTEM_SIZE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_FILESYSTEM_TYPE","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_FILESYSTEM_TYPE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_FILESYSTEM_USED","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_FILESYSTEM_USED","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_FILESYSTEM_USE_PREVIEW","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_FILESYSTEM_USE_PREVIEW","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_GVFS_BACKEND","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_GVFS_BACKEND","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_ID_FILE","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_ID_FILE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_ID_FILESYSTEM","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_ID_FILESYSTEM","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_CAN_EJECT","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_CAN_EJECT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_CAN_MOUNT","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_CAN_MOUNT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_CAN_POLL","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_CAN_POLL","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_CAN_START","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_CAN_START","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_CAN_START_DEGRADED","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_CAN_START_DEGRADED","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_CAN_STOP","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_CAN_STOP","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_CAN_UNMOUNT","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_CAN_UNMOUNT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_HAL_UDI","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_HAL_UDI","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_IS_MEDIA_CHECK_AUTOMATIC","page":"GLib Reference","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/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_START_STOP_TYPE","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_START_STOP_TYPE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE_FILE","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE_FILE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_OWNER_GROUP","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_OWNER_GROUP","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_OWNER_USER","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_OWNER_USER","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_OWNER_USER_REAL","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_OWNER_USER_REAL","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_PREVIEW_ICON","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_PREVIEW_ICON","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_RECENT_MODIFIED","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_RECENT_MODIFIED","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_SELINUX_CONTEXT","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_SELINUX_CONTEXT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_ALLOCATED_SIZE","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_ALLOCATED_SIZE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_COPY_NAME","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_COPY_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_DESCRIPTION","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_DESCRIPTION","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_EDIT_NAME","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_EDIT_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_ICON","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_ICON","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_IS_BACKUP","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_IS_BACKUP","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_IS_HIDDEN","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_IS_HIDDEN","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_IS_SYMLINK","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_IS_SYMLINK","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_IS_VIRTUAL","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_IS_VIRTUAL","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_IS_VOLATILE","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_IS_VOLATILE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_NAME","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_SIZE","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_SIZE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_SORT_ORDER","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_SORT_ORDER","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_SYMBOLIC_ICON","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_SYMBOLIC_ICON","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_TARGET_URI","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_TARGET_URI","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_TYPE","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_STANDARD_TYPE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAILING_FAILED","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAILING_FAILED","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAILING_FAILED_LARGE","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAILING_FAILED_LARGE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAILING_FAILED_NORMAL","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAILING_FAILED_NORMAL","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAILING_FAILED_XLARGE","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAILING_FAILED_XLARGE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAILING_FAILED_XXLARGE","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAILING_FAILED_XXLARGE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_IS_VALID","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_IS_VALID","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_LARGE","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_LARGE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_NORMAL","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_NORMAL","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_XLARGE","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_XLARGE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_XXLARGE","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_XXLARGE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_PATH","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_PATH","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_PATH_LARGE","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_PATH_LARGE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_PATH_NORMAL","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_PATH_NORMAL","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_PATH_XLARGE","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_PATH_XLARGE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_PATH_XXLARGE","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_THUMBNAIL_PATH_XXLARGE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_TIME_ACCESS","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_TIME_ACCESS","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_TIME_ACCESS_NSEC","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_TIME_ACCESS_NSEC","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_TIME_ACCESS_USEC","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_TIME_ACCESS_USEC","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_TIME_CHANGED","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_TIME_CHANGED","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_TIME_CHANGED_NSEC","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_TIME_CHANGED_NSEC","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_TIME_CHANGED_USEC","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_TIME_CHANGED_USEC","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_TIME_CREATED","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_TIME_CREATED","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_TIME_CREATED_NSEC","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_TIME_CREATED_NSEC","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_TIME_CREATED_USEC","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_TIME_CREATED_USEC","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_TIME_MODIFIED","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_TIME_MODIFIED","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_TIME_MODIFIED_NSEC","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_TIME_MODIFIED_NSEC","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_TIME_MODIFIED_USEC","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_TIME_MODIFIED_USEC","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_TRASH_DELETION_DATE","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_TRASH_DELETION_DATE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_TRASH_ITEM_COUNT","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_TRASH_ITEM_COUNT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_TRASH_ORIG_PATH","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_TRASH_ORIG_PATH","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_UNIX_BLOCKS","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_UNIX_BLOCKS","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_UNIX_BLOCK_SIZE","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_UNIX_BLOCK_SIZE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_UNIX_DEVICE","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_UNIX_DEVICE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_UNIX_GID","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_UNIX_GID","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_UNIX_INODE","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_UNIX_INODE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_UNIX_IS_MOUNTPOINT","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_UNIX_IS_MOUNTPOINT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_UNIX_MODE","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_UNIX_MODE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_UNIX_NLINK","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_UNIX_NLINK","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_UNIX_RDEV","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_UNIX_RDEV","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.FILE_ATTRIBUTE_UNIX_UID","page":"GLib Reference","title":"Gtk4.GLib.FILE_ATTRIBUTE_UNIX_UID","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.GINT16_FORMAT","page":"GLib Reference","title":"Gtk4.GLib.GINT16_FORMAT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.GINT16_MODIFIER","page":"GLib Reference","title":"Gtk4.GLib.GINT16_MODIFIER","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.GINT32_FORMAT","page":"GLib Reference","title":"Gtk4.GLib.GINT32_FORMAT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.GINT32_MODIFIER","page":"GLib Reference","title":"Gtk4.GLib.GINT32_MODIFIER","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.GINT64_FORMAT","page":"GLib Reference","title":"Gtk4.GLib.GINT64_FORMAT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.GINT64_MODIFIER","page":"GLib Reference","title":"Gtk4.GLib.GINT64_MODIFIER","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.GINTPTR_FORMAT","page":"GLib Reference","title":"Gtk4.GLib.GINTPTR_FORMAT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.GINTPTR_MODIFIER","page":"GLib Reference","title":"Gtk4.GLib.GINTPTR_MODIFIER","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSIZE_FORMAT","page":"GLib Reference","title":"Gtk4.GLib.GSIZE_FORMAT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSIZE_MODIFIER","page":"GLib Reference","title":"Gtk4.GLib.GSIZE_MODIFIER","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSSIZE_FORMAT","page":"GLib Reference","title":"Gtk4.GLib.GSSIZE_FORMAT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSSIZE_MODIFIER","page":"GLib Reference","title":"Gtk4.GLib.GSSIZE_MODIFIER","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.GUINT16_FORMAT","page":"GLib Reference","title":"Gtk4.GLib.GUINT16_FORMAT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.GUINT32_FORMAT","page":"GLib Reference","title":"Gtk4.GLib.GUINT32_FORMAT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.GUINT64_FORMAT","page":"GLib Reference","title":"Gtk4.GLib.GUINT64_FORMAT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.GUINTPTR_FORMAT","page":"GLib Reference","title":"Gtk4.GLib.GUINTPTR_FORMAT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.HAVE_GNUC_VISIBILITY","page":"GLib Reference","title":"Gtk4.GLib.HAVE_GNUC_VISIBILITY","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.HOOK_FLAG_USER_SHIFT","page":"GLib Reference","title":"Gtk4.GLib.HOOK_FLAG_USER_SHIFT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.IEEE754_DOUBLE_BIAS","page":"GLib Reference","title":"Gtk4.GLib.IEEE754_DOUBLE_BIAS","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.IEEE754_FLOAT_BIAS","page":"GLib Reference","title":"Gtk4.GLib.IEEE754_FLOAT_BIAS","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_GROUP","page":"GLib Reference","title":"Gtk4.GLib.KEY_FILE_DESKTOP_GROUP","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_ACTIONS","page":"GLib Reference","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_ACTIONS","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_CATEGORIES","page":"GLib Reference","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_CATEGORIES","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_COMMENT","page":"GLib Reference","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_COMMENT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_DBUS_ACTIVATABLE","page":"GLib Reference","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_DBUS_ACTIVATABLE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_EXEC","page":"GLib Reference","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_EXEC","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_GENERIC_NAME","page":"GLib Reference","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_GENERIC_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_HIDDEN","page":"GLib Reference","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_HIDDEN","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_ICON","page":"GLib Reference","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_ICON","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_MIME_TYPE","page":"GLib Reference","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_MIME_TYPE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_NAME","page":"GLib Reference","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_NOT_SHOW_IN","page":"GLib Reference","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/GLib_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_NO_DISPLAY","page":"GLib Reference","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_NO_DISPLAY","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_ONLY_SHOW_IN","page":"GLib Reference","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/GLib_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_PATH","page":"GLib Reference","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_PATH","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_STARTUP_NOTIFY","page":"GLib Reference","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_STARTUP_NOTIFY","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_STARTUP_WM_CLASS","page":"GLib Reference","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/GLib_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_TERMINAL","page":"GLib Reference","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_TERMINAL","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_TRY_EXEC","page":"GLib Reference","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_TRY_EXEC","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_TYPE","page":"GLib Reference","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_TYPE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_URL","page":"GLib Reference","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_URL","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_KEY_VERSION","page":"GLib Reference","title":"Gtk4.GLib.KEY_FILE_DESKTOP_KEY_VERSION","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_TYPE_APPLICATION","page":"GLib Reference","title":"Gtk4.GLib.KEY_FILE_DESKTOP_TYPE_APPLICATION","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_TYPE_DIRECTORY","page":"GLib Reference","title":"Gtk4.GLib.KEY_FILE_DESKTOP_TYPE_DIRECTORY","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.KEY_FILE_DESKTOP_TYPE_LINK","page":"GLib Reference","title":"Gtk4.GLib.KEY_FILE_DESKTOP_TYPE_LINK","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.LITTLE_ENDIAN","page":"GLib Reference","title":"Gtk4.GLib.LITTLE_ENDIAN","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.LOG_DOMAIN","page":"GLib Reference","title":"Gtk4.GLib.LOG_DOMAIN","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.LOG_FATAL_MASK","page":"GLib Reference","title":"Gtk4.GLib.LOG_FATAL_MASK","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.LOG_LEVEL_USER_SHIFT","page":"GLib Reference","title":"Gtk4.GLib.LOG_LEVEL_USER_SHIFT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.MAJOR_VERSION","page":"GLib Reference","title":"Gtk4.GLib.MAJOR_VERSION","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.MAXINT16","page":"GLib Reference","title":"Gtk4.GLib.MAXINT16","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.MAXINT32","page":"GLib Reference","title":"Gtk4.GLib.MAXINT32","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.MAXINT64","page":"GLib Reference","title":"Gtk4.GLib.MAXINT64","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.MAXINT8","page":"GLib Reference","title":"Gtk4.GLib.MAXINT8","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.MAXUINT16","page":"GLib Reference","title":"Gtk4.GLib.MAXUINT16","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.MAXUINT32","page":"GLib Reference","title":"Gtk4.GLib.MAXUINT32","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.MAXUINT64","page":"GLib Reference","title":"Gtk4.GLib.MAXUINT64","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.MAXUINT8","page":"GLib Reference","title":"Gtk4.GLib.MAXUINT8","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.MEMORY_MONITOR_EXTENSION_POINT_NAME","page":"GLib Reference","title":"Gtk4.GLib.MEMORY_MONITOR_EXTENSION_POINT_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.MENU_ATTRIBUTE_ACTION","page":"GLib Reference","title":"Gtk4.GLib.MENU_ATTRIBUTE_ACTION","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.MENU_ATTRIBUTE_ACTION_NAMESPACE","page":"GLib Reference","title":"Gtk4.GLib.MENU_ATTRIBUTE_ACTION_NAMESPACE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.MENU_ATTRIBUTE_ICON","page":"GLib Reference","title":"Gtk4.GLib.MENU_ATTRIBUTE_ICON","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.MENU_ATTRIBUTE_LABEL","page":"GLib Reference","title":"Gtk4.GLib.MENU_ATTRIBUTE_LABEL","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.MENU_ATTRIBUTE_TARGET","page":"GLib Reference","title":"Gtk4.GLib.MENU_ATTRIBUTE_TARGET","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.MENU_EXPORTER_MAX_SECTION_SIZE","page":"GLib Reference","title":"Gtk4.GLib.MENU_EXPORTER_MAX_SECTION_SIZE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.MENU_LINK_SECTION","page":"GLib Reference","title":"Gtk4.GLib.MENU_LINK_SECTION","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.MENU_LINK_SUBMENU","page":"GLib Reference","title":"Gtk4.GLib.MENU_LINK_SUBMENU","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.MICRO_VERSION","page":"GLib Reference","title":"Gtk4.GLib.MICRO_VERSION","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.MININT16","page":"GLib Reference","title":"Gtk4.GLib.MININT16","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.MININT32","page":"GLib Reference","title":"Gtk4.GLib.MININT32","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.MININT64","page":"GLib Reference","title":"Gtk4.GLib.MININT64","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.MININT8","page":"GLib Reference","title":"Gtk4.GLib.MININT8","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.MINOR_VERSION","page":"GLib Reference","title":"Gtk4.GLib.MINOR_VERSION","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.NETWORK_MONITOR_EXTENSION_POINT_NAME","page":"GLib Reference","title":"Gtk4.GLib.NETWORK_MONITOR_EXTENSION_POINT_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.OPTION_REMAINING","page":"GLib Reference","title":"Gtk4.GLib.OPTION_REMAINING","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.PARAM_MASK","page":"GLib Reference","title":"Gtk4.GLib.PARAM_MASK","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.PARAM_STATIC_STRINGS","page":"GLib Reference","title":"Gtk4.GLib.PARAM_STATIC_STRINGS","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.PARAM_USER_SHIFT","page":"GLib Reference","title":"Gtk4.GLib.PARAM_USER_SHIFT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.PDP_ENDIAN","page":"GLib Reference","title":"Gtk4.GLib.PDP_ENDIAN","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.PID_FORMAT","page":"GLib Reference","title":"Gtk4.GLib.PID_FORMAT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.POLLFD_FORMAT","page":"GLib Reference","title":"Gtk4.GLib.POLLFD_FORMAT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.POWER_PROFILE_MONITOR_EXTENSION_POINT_NAME","page":"GLib Reference","title":"Gtk4.GLib.POWER_PROFILE_MONITOR_EXTENSION_POINT_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.PRIORITY_DEFAULT","page":"GLib Reference","title":"Gtk4.GLib.PRIORITY_DEFAULT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.PRIORITY_DEFAULT_IDLE","page":"GLib Reference","title":"Gtk4.GLib.PRIORITY_DEFAULT_IDLE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.PRIORITY_HIGH","page":"GLib Reference","title":"Gtk4.GLib.PRIORITY_HIGH","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.PRIORITY_HIGH_IDLE","page":"GLib Reference","title":"Gtk4.GLib.PRIORITY_HIGH_IDLE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.PRIORITY_LOW","page":"GLib Reference","title":"Gtk4.GLib.PRIORITY_LOW","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.PROXY_EXTENSION_POINT_NAME","page":"GLib Reference","title":"Gtk4.GLib.PROXY_EXTENSION_POINT_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.PROXY_RESOLVER_EXTENSION_POINT_NAME","page":"GLib Reference","title":"Gtk4.GLib.PROXY_RESOLVER_EXTENSION_POINT_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.REF_COUNT_INIT","page":"GLib Reference","title":"Gtk4.GLib.REF_COUNT_INIT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.SEARCHPATH_SEPARATOR","page":"GLib Reference","title":"Gtk4.GLib.SEARCHPATH_SEPARATOR","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.SEARCHPATH_SEPARATOR_S","page":"GLib Reference","title":"Gtk4.GLib.SEARCHPATH_SEPARATOR_S","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.SETTINGS_BACKEND_EXTENSION_POINT_NAME","page":"GLib Reference","title":"Gtk4.GLib.SETTINGS_BACKEND_EXTENSION_POINT_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.SIGNAL_FLAGS_MASK","page":"GLib Reference","title":"Gtk4.GLib.SIGNAL_FLAGS_MASK","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.SIGNAL_MATCH_MASK","page":"GLib Reference","title":"Gtk4.GLib.SIGNAL_MATCH_MASK","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.SOURCE_CONTINUE","page":"GLib Reference","title":"Gtk4.GLib.SOURCE_CONTINUE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.SOURCE_REMOVE","page":"GLib Reference","title":"Gtk4.GLib.SOURCE_REMOVE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.STR_DELIMITERS","page":"GLib Reference","title":"Gtk4.GLib.STR_DELIMITERS","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.TEST_OPTION_ISOLATE_DIRS","page":"GLib Reference","title":"Gtk4.GLib.TEST_OPTION_ISOLATE_DIRS","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.TIME_SPAN_DAY","page":"GLib Reference","title":"Gtk4.GLib.TIME_SPAN_DAY","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.TIME_SPAN_HOUR","page":"GLib Reference","title":"Gtk4.GLib.TIME_SPAN_HOUR","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.TIME_SPAN_MILLISECOND","page":"GLib Reference","title":"Gtk4.GLib.TIME_SPAN_MILLISECOND","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.TIME_SPAN_MINUTE","page":"GLib Reference","title":"Gtk4.GLib.TIME_SPAN_MINUTE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.TIME_SPAN_SECOND","page":"GLib Reference","title":"Gtk4.GLib.TIME_SPAN_SECOND","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.TLS_BACKEND_EXTENSION_POINT_NAME","page":"GLib Reference","title":"Gtk4.GLib.TLS_BACKEND_EXTENSION_POINT_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.TLS_DATABASE_PURPOSE_AUTHENTICATE_CLIENT","page":"GLib Reference","title":"Gtk4.GLib.TLS_DATABASE_PURPOSE_AUTHENTICATE_CLIENT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.TLS_DATABASE_PURPOSE_AUTHENTICATE_SERVER","page":"GLib Reference","title":"Gtk4.GLib.TLS_DATABASE_PURPOSE_AUTHENTICATE_SERVER","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.TYPE_FLAG_RESERVED_ID_BIT","page":"GLib Reference","title":"Gtk4.GLib.TYPE_FLAG_RESERVED_ID_BIT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.TYPE_FUNDAMENTAL_MAX","page":"GLib Reference","title":"Gtk4.GLib.TYPE_FUNDAMENTAL_MAX","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.TYPE_FUNDAMENTAL_SHIFT","page":"GLib Reference","title":"Gtk4.GLib.TYPE_FUNDAMENTAL_SHIFT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.TYPE_RESERVED_BSE_FIRST","page":"GLib Reference","title":"Gtk4.GLib.TYPE_RESERVED_BSE_FIRST","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.TYPE_RESERVED_BSE_LAST","page":"GLib Reference","title":"Gtk4.GLib.TYPE_RESERVED_BSE_LAST","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.TYPE_RESERVED_GLIB_FIRST","page":"GLib Reference","title":"Gtk4.GLib.TYPE_RESERVED_GLIB_FIRST","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.TYPE_RESERVED_GLIB_LAST","page":"GLib Reference","title":"Gtk4.GLib.TYPE_RESERVED_GLIB_LAST","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.TYPE_RESERVED_USER_FIRST","page":"GLib Reference","title":"Gtk4.GLib.TYPE_RESERVED_USER_FIRST","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.UNICHAR_MAX_DECOMPOSITION_LENGTH","page":"GLib Reference","title":"Gtk4.GLib.UNICHAR_MAX_DECOMPOSITION_LENGTH","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.URI_RESERVED_CHARS_GENERIC_DELIMITERS","page":"GLib Reference","title":"Gtk4.GLib.URI_RESERVED_CHARS_GENERIC_DELIMITERS","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.URI_RESERVED_CHARS_SUBCOMPONENT_DELIMITERS","page":"GLib Reference","title":"Gtk4.GLib.URI_RESERVED_CHARS_SUBCOMPONENT_DELIMITERS","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.USEC_PER_SEC","page":"GLib Reference","title":"Gtk4.GLib.USEC_PER_SEC","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.VALUE_INTERNED_STRING","page":"GLib Reference","title":"Gtk4.GLib.VALUE_INTERNED_STRING","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.VALUE_NOCOPY_CONTENTS","page":"GLib Reference","title":"Gtk4.GLib.VALUE_NOCOPY_CONTENTS","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.VERSION_MIN_REQUIRED","page":"GLib Reference","title":"Gtk4.GLib.VERSION_MIN_REQUIRED","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.VFS_EXTENSION_POINT_NAME","page":"GLib Reference","title":"Gtk4.GLib.VFS_EXTENSION_POINT_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.VOLUME_IDENTIFIER_KIND_CLASS","page":"GLib Reference","title":"Gtk4.GLib.VOLUME_IDENTIFIER_KIND_CLASS","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.VOLUME_IDENTIFIER_KIND_LABEL","page":"GLib Reference","title":"Gtk4.GLib.VOLUME_IDENTIFIER_KIND_LABEL","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.VOLUME_IDENTIFIER_KIND_NFS_MOUNT","page":"GLib Reference","title":"Gtk4.GLib.VOLUME_IDENTIFIER_KIND_NFS_MOUNT","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.VOLUME_IDENTIFIER_KIND_UNIX_DEVICE","page":"GLib Reference","title":"Gtk4.GLib.VOLUME_IDENTIFIER_KIND_UNIX_DEVICE","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.VOLUME_IDENTIFIER_KIND_UUID","page":"GLib Reference","title":"Gtk4.GLib.VOLUME_IDENTIFIER_KIND_UUID","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"doc/GLib_reference/#Gtk4.GLib.VOLUME_MONITOR_EXTENSION_POINT_NAME","page":"GLib Reference","title":"Gtk4.GLib.VOLUME_MONITOR_EXTENSION_POINT_NAME","text":"See the GTK docs.\n\n\n\n\n\n","category":"constant"},{"location":"manual/builder/#Builder-1","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 by hand).","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","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":"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\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":"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-1","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.","category":"page"},{"location":"manual/properties/#Properties-1","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-1","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-1","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":"doc/GI_reference/#API-Reference-1","page":"-","title":"API Reference","text":"","category":"section"},{"location":"doc/GI_reference/#Public-interface-1","page":"-","title":"Public interface","text":"","category":"section"},{"location":"doc/GI_reference/#","page":"-","title":"-","text":"Modules = [GI]\nOrder = [:module, :constant, :type, :function, :macro]\nPublic = true\nPrivate = false","category":"page"},{"location":"doc/GI_reference/#Private-methods-1","page":"-","title":"Private methods","text":"","category":"section"},{"location":"doc/GI_reference/#","page":"-","title":"-","text":"Modules = [GI]\nOrder = [:module, :constant, :type, :function, :macro]\nPublic = false\nPrivate = true","category":"page"},{"location":"manual/textwidgets/#Text-Widgets-1","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-1","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-1","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/#Search-Entry-1","page":"Text Widgets","title":"Search Entry","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-1","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-1","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-1","page":"Home","title":"Usage","text":"","category":"section"},{"location":"#","page":"Home","title":"Home","text":"See Getting Started for an introduction to using the package, adapted from the Gtk.jl manual.\nSee 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-1","page":"Home","title":"History","text":"","category":"section"},{"location":"#","page":"Home","title":"Home","text":"This package was 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, and calling show is no longer necessary in most situations. Exceptions include GtkDialogs and GtkApplicationWindows.","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":"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/","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 (julia -t2 on the command line).","category":"page"},{"location":"howto/async/","page":"Asynchronous UI","title":"Asynchronous UI","text":"using Gtk4\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\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 Cint(false)\n end\n end\nend\n\nwin = GtkWindow(grid, \"Threads\", 200, 200)","category":"page"},{"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/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","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).","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 can use","category":"page"},{"location":"manual/combobox/","page":"Dropdown widgets","title":"Dropdown widgets","text":"new_options_list = Gtk4.GtkStringList([\"one\",\"two\",\"three\",\"four\",\"five\"])\nGtk4.model(dd,GListModel(new_options_list))","category":"page"},{"location":"manual/combobox/","page":"Dropdown widgets","title":"Dropdown widgets","text":"More complex uses of GtkDropDown are possible and may be supported in future versions of Gtk4.jl.","category":"page"},{"location":"manual/combobox/#GtkComboBox","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","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/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/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/#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 can 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":"The GtkTreeView is a very powerful widget for displaying table-like or hierarchical data. It is used for both lists and trees.","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"The power of this widget comes with a slightly more complex design that one has to understand when using the widget. The most important thing is that the widget itself does not store the displayed data. Instead there are dedicated GtkListStore and GtkTreeStore containers that will hold the data. The benefit of this approach is that it is possible to decouple the view from the data:","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"The widget automatically updates when adding, removing or editing data from the store\nThe widget can sort its data without modifications in the store\nColumns can be reordered and resized\nFiltering can be used to show only subsets of data","category":"page"},{"location":"manual/listtreeview/","page":"List and Tree Widgets","title":"List and Tree Widgets","text":"We will in the following introduce both widgets based on small and a more complex example.","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":"Lets start with a very simple example: A table with three columns representing the name, the age and the gender of a person. Each column must have a specific type. Here, we chose to represent the gender using a boolean value where true represents female and false represents male. We thus 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, Bool)","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,false))\npush!(ls,(\"Paul\",30,false))\npush!(ls,(\"Mary\",25,true))","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, true))","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,3)","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/#List-View","page":"List and Tree Widgets","title":"List View","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)]))\nc3 = GtkTreeViewColumn(\"Female\", rTog, Dict([(\"active\",2)]))","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, c3)","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, c3]\n Gtk4.resizable(c, true)\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":"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,c3])\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, c3])\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","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)\nc3 = GtkTreeViewColumn(\"Female\", rTog, Dict([(\"active\",2)]), sort_column_id=2)\n\ntmFiltered = GtkTreeModelFilter(ls)\nGtk4.visible_column(tmFiltered,3)\ntv = GtkTreeView(GtkTreeModel(tmFiltered))\npush!(tv, c1, c2, c3)\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,1],\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":"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 on this page 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\")\n","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":"A more complicated example can be found in the \"examples\" subdirectory. For interactive plots, you can try Gtk4Makie.jl, which draws GLMakie plots onto GTK's GtkGLArea widget.","category":"page"},{"location":"doc/reference/#Gtk4-Reference","page":"Gtk4 Reference","title":"Gtk4 Reference","text":"","category":"section"},{"location":"doc/reference/#Public-interface","page":"Gtk4 Reference","title":"Public interface","text":"","category":"section"},{"location":"doc/reference/","page":"Gtk4 Reference","title":"Gtk4 Reference","text":"Modules = [Gtk4, Gtk4.GdkPixbufLib]\nOrder = [:module, :function, :macro]\nPublic = true\nPrivate = false","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-Tuple{GtkWidget}","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":"method"},{"location":"doc/reference/#Cairo.destroy-Tuple{GtkWindow}","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":"method"},{"location":"doc/reference/#Graphics.getgc-Tuple{GtkCanvas}","page":"Gtk4 Reference","title":"Graphics.getgc","text":"getgc(c::GtkCanvas)\n\nReturn the CairoContext of the CairoSurface for a GtkCanvas.\n\n\n\n\n\n","category":"method"},{"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.activate-Tuple{GtkWidget}","page":"Gtk4 Reference","title":"Gtk4.activate","text":"activate(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":"method"},{"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.buffer-Tuple{Union{_GtkTextIter, Ref{_GtkTextIter}}}","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":"method"},{"location":"doc/reference/#Gtk4.configure!-Tuple{GtkAdjustment}","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\n","category":"method"},{"location":"doc/reference/#Gtk4.configure!-Tuple{GtkSpinButton}","page":"Gtk4 Reference","title":"Gtk4.configure!","text":"configure!(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":"method"},{"location":"doc/reference/#Gtk4.create_mark-Tuple{GtkTextBuffer, Any, Union{_GtkTextIter, Ref{_GtkTextIter}}, Bool}","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\nImpements gtk_text_buffer_create_mark.\n\n\n\n\n\n","category":"method"},{"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.cursor-Tuple{GtkWidget, Union{Nothing, GdkCursor}}","page":"Gtk4 Reference","title":"Gtk4.cursor","text":"cursor(w::GtkWidget, c)\n\nSets a cursor c when the mouse pointer is over a widget w, where c can be a GdkCursor or a string to specify a name. If c is nothing, use the default cursor for w.\n\nRelated GTK functions: gtk_widget_set_cursor(), gtk_widget_set_cursor_from_name()\n\n\n\n\n\n","category":"method"},{"location":"doc/reference/#Gtk4.fullscreen-Tuple{GtkWindow, GdkMonitor}","page":"Gtk4 Reference","title":"Gtk4.fullscreen","text":"fullscreen(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":"method"},{"location":"doc/reference/#Gtk4.fullscreen-Tuple{GtkWindow}","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\n","category":"method"},{"location":"doc/reference/#Gtk4.get_error-Tuple{GtkGLArea}","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":"method"},{"location":"doc/reference/#Gtk4.grab_focus-Tuple{GtkWidget}","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":"method"},{"location":"doc/reference/#Gtk4.hasparent-Tuple{GtkWidget}","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":"method"},{"location":"doc/reference/#Gtk4.hide-Tuple{GtkWidget}","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":"method"},{"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.isvisible-Tuple{GtkWidget}","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":"method"},{"location":"doc/reference/#Gtk4.make_current-Tuple{GtkGLArea}","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":"method"},{"location":"doc/reference/#Gtk4.maximize-Tuple{GtkWindow}","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":"method"},{"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.place_cursor-Tuple{GtkTextBuffer, _GtkTextIter}","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":"method"},{"location":"doc/reference/#Gtk4.present-Tuple{GtkWindow}","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":"method"},{"location":"doc/reference/#Gtk4.queue_render-Tuple{GtkGLArea}","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":"method"},{"location":"doc/reference/#Gtk4.reveal-Tuple{GtkGLArea}","page":"Gtk4 Reference","title":"Gtk4.reveal","text":"reveal(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":"method"},{"location":"doc/reference/#Gtk4.reveal-Tuple{GtkWidget}","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\n","category":"method"},{"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/#Gtk4.screen_size","page":"Gtk4 Reference","title":"Gtk4.screen_size","text":"screen_size(widget=nothing)\n\nReturns a tuple (width,height) that gives the primary monitor size for the display where widget is being displayed, or the default display if widget is unrealized or not given.\n\n\n\n\n\n","category":"function"},{"location":"doc/reference/#Gtk4.scroll_to-Tuple{GtkTextView, GtkTextMark, Real, Bool, Real, Real}","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":"method"},{"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-Tuple{GtkTextBuffer, Union{_GtkTextIter, Ref{_GtkTextIter}}, Union{_GtkTextIter, Ref{_GtkTextIter}}}","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":"method"},{"location":"doc/reference/#Gtk4.selection_bounds-Tuple{GtkTextBuffer}","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":"method"},{"location":"doc/reference/#Gtk4.toplevel-Tuple{GtkWidget}","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":"method"},{"location":"doc/reference/#Gtk4.unfullscreen-Tuple{GtkWindow}","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":"method"},{"location":"doc/reference/#Gtk4.unmaximize-Tuple{GtkWindow}","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":"method"},{"location":"doc/reference/#Gtk4.visible-Tuple{GtkWidget, Bool}","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":"method"},{"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.@load_builder-Tuple{Any}","page":"Gtk4 Reference","title":"Gtk4.@load_builder","text":"@load_builder(b::GtkBuilder)\n\nLoads all GtkBuildable objects from a GtkBuilder object and assigns them to Julia variables in the current scope. GtkBuilder ID's are mapped onto Julia variable names.\n\n\n\n\n\n","category":"macro"},{"location":"doc/reference/#Private-methods","page":"Gtk4 Reference","title":"Private methods","text":"","category":"section"},{"location":"doc/reference/","page":"Gtk4 Reference","title":"Gtk4 Reference","text":"Modules = [Gtk4, Gtk4.GdkPixbufLib]\nOrder = [:module, :type, :function, :macro]\nPublic = false\nPrivate = true","category":"page"},{"location":"doc/reference/#Gtk4.BlendMode","page":"Gtk4 Reference","title":"Gtk4.BlendMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.Corner","page":"Gtk4 Reference","title":"Gtk4.Corner","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GLUniformType","page":"Gtk4 Reference","title":"Gtk4.GLUniformType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.MaskMode","page":"Gtk4 Reference","title":"Gtk4.MaskMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.RenderNodeType","page":"Gtk4 Reference","title":"Gtk4.RenderNodeType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.ScalingFilter","page":"Gtk4 Reference","title":"Gtk4.ScalingFilter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.SerializationError","page":"Gtk4 Reference","title":"Gtk4.SerializationError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.TransformCategory","page":"Gtk4 Reference","title":"Gtk4.TransformCategory","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Base.close-Tuple{GtkWindow}","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":"method"},{"location":"doc/reference/#Base.skip-Tuple{Ref{_GtkTextIter}, Integer, Symbol}","page":"Gtk4 Reference","title":"Base.skip","text":"skip(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":"method"},{"location":"doc/reference/#Base.skip-Tuple{Ref{_GtkTextIter}, Integer}","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\n","category":"method"},{"location":"doc/reference/#Base.skip-Tuple{Ref{_GtkTextIter}, Symbol}","page":"Gtk4 Reference","title":"Base.skip","text":"skip(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\n","category":"method"},{"location":"doc/reference/#Gtk4.backward_search-Tuple{Ref{_GtkTextIter}, AbstractString, Ref{_GtkTextIter}, Ref{_GtkTextIter}, Ref{_GtkTextIter}, Any}","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":"method"},{"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.cairo_surface-Tuple{GtkCanvas}","page":"Gtk4 Reference","title":"Gtk4.cairo_surface","text":"cairo_surface(c::GtkCanvas)\n\nReturn the image CairoSurface for a GtkCanvas.\n\n\n\n\n\n","category":"method"},{"location":"doc/reference/#Gtk4.char_offset-Tuple{Union{_GtkTextIter, Ref{_GtkTextIter}}}","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":"method"},{"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.find_controller-Union{Tuple{T}, Tuple{GtkWidget, Type{T}}} where T<:GtkEventController","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":"method"},{"location":"doc/reference/#Gtk4.forward_search-Tuple{Ref{_GtkTextIter}, AbstractString, Ref{_GtkTextIter}, Ref{_GtkTextIter}, Ref{_GtkTextIter}, Any}","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":"method"},{"location":"doc/reference/#Gtk4.isfullscreen-Tuple{GtkWindow}","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":"method"},{"location":"doc/reference/#Gtk4.monitor-Tuple{GtkWidget}","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":"method"},{"location":"doc/reference/#Gtk4.monitors-Tuple{}","page":"Gtk4 Reference","title":"Gtk4.monitors","text":"monitors()\n\nReturns a list of GdkMonitors for the default GdkDisplay, or nothing if none are found.\n\n\n\n\n\n","category":"method"},{"location":"doc/reference/#Gtk4.size_request-Tuple{GtkWidget, Any}","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":"method"},{"location":"doc/reference/#Gtk4.text_iter_at_position-Tuple{GtkTextView, Integer, Integer}","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":"method"},{"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.GdkPixbufLib.Colorspace","page":"Gtk4 Reference","title":"Gtk4.GdkPixbufLib.Colorspace","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkPixbufLib.InterpType","page":"Gtk4 Reference","title":"Gtk4.GdkPixbufLib.InterpType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkPixbufLib.PixbufError","page":"Gtk4 Reference","title":"Gtk4.GdkPixbufLib.PixbufError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkPixbufLib.PixbufFormatFlags","page":"Gtk4 Reference","title":"Gtk4.GdkPixbufLib.PixbufFormatFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkPixbufLib.PixbufRotation","page":"Gtk4 Reference","title":"Gtk4.GdkPixbufLib.PixbufRotation","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Types","page":"Gtk4 Reference","title":"Types","text":"","category":"section"},{"location":"doc/reference/","page":"Gtk4 Reference","title":"Gtk4 Reference","text":"Modules = [Gtk4, Gtk4.GdkPixbufLib]\nOrder = [:type]\nPublic = true\nPrivate = false","category":"page"},{"location":"doc/reference/#Gtk4.AccessibleAutocomplete","page":"Gtk4 Reference","title":"Gtk4.AccessibleAutocomplete","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.AccessibleInvalidState","page":"Gtk4 Reference","title":"Gtk4.AccessibleInvalidState","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.AccessiblePlatformState","page":"Gtk4 Reference","title":"Gtk4.AccessiblePlatformState","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.AccessibleProperty","page":"Gtk4 Reference","title":"Gtk4.AccessibleProperty","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.AccessibleRelation","page":"Gtk4 Reference","title":"Gtk4.AccessibleRelation","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.AccessibleRole","page":"Gtk4 Reference","title":"Gtk4.AccessibleRole","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.AccessibleSort","page":"Gtk4 Reference","title":"Gtk4.AccessibleSort","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.AccessibleState","page":"Gtk4 Reference","title":"Gtk4.AccessibleState","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.AccessibleTristate","page":"Gtk4 Reference","title":"Gtk4.AccessibleTristate","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.Align","page":"Gtk4 Reference","title":"Gtk4.Align","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.AnchorHints","page":"Gtk4 Reference","title":"Gtk4.AnchorHints","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.ApplicationInhibitFlags","page":"Gtk4 Reference","title":"Gtk4.ApplicationInhibitFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.ArrowType","page":"Gtk4 Reference","title":"Gtk4.ArrowType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.AssistantPageType","page":"Gtk4 Reference","title":"Gtk4.AssistantPageType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.AxisFlags","page":"Gtk4 Reference","title":"Gtk4.AxisFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.AxisUse","page":"Gtk4 Reference","title":"Gtk4.AxisUse","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.BaselinePosition","page":"Gtk4 Reference","title":"Gtk4.BaselinePosition","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.BorderStyle","page":"Gtk4 Reference","title":"Gtk4.BorderStyle","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.BuilderClosureFlags","page":"Gtk4 Reference","title":"Gtk4.BuilderClosureFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.BuilderError","page":"Gtk4 Reference","title":"Gtk4.BuilderError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.ButtonsType","page":"Gtk4 Reference","title":"Gtk4.ButtonsType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.CellRendererAccelMode","page":"Gtk4 Reference","title":"Gtk4.CellRendererAccelMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.CellRendererMode","page":"Gtk4 Reference","title":"Gtk4.CellRendererMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.CellRendererState","page":"Gtk4 Reference","title":"Gtk4.CellRendererState","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.Collation","page":"Gtk4 Reference","title":"Gtk4.Collation","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.ConstraintAttribute","page":"Gtk4 Reference","title":"Gtk4.ConstraintAttribute","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.ConstraintRelation","page":"Gtk4 Reference","title":"Gtk4.ConstraintRelation","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.ConstraintStrength","page":"Gtk4 Reference","title":"Gtk4.ConstraintStrength","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.ConstraintVflParserError","page":"Gtk4 Reference","title":"Gtk4.ConstraintVflParserError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.ContentFit","page":"Gtk4 Reference","title":"Gtk4.ContentFit","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.CornerType","page":"Gtk4 Reference","title":"Gtk4.CornerType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.CrossingMode","page":"Gtk4 Reference","title":"Gtk4.CrossingMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.CssParserError","page":"Gtk4 Reference","title":"Gtk4.CssParserError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.CssParserWarning","page":"Gtk4 Reference","title":"Gtk4.CssParserWarning","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.DebugFlags","page":"Gtk4 Reference","title":"Gtk4.DebugFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.DeleteType","page":"Gtk4 Reference","title":"Gtk4.DeleteType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.DevicePadFeature","page":"Gtk4 Reference","title":"Gtk4.DevicePadFeature","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.DeviceToolType","page":"Gtk4 Reference","title":"Gtk4.DeviceToolType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.DialogError","page":"Gtk4 Reference","title":"Gtk4.DialogError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.DialogFlags","page":"Gtk4 Reference","title":"Gtk4.DialogFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.DirectionType","page":"Gtk4 Reference","title":"Gtk4.DirectionType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.DragAction","page":"Gtk4 Reference","title":"Gtk4.DragAction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.DragCancelReason","page":"Gtk4 Reference","title":"Gtk4.DragCancelReason","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.EditableProperties","page":"Gtk4 Reference","title":"Gtk4.EditableProperties","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.EntryIconPosition","page":"Gtk4 Reference","title":"Gtk4.EntryIconPosition","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.EventControllerScrollFlags","page":"Gtk4 Reference","title":"Gtk4.EventControllerScrollFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.EventSequenceState","page":"Gtk4 Reference","title":"Gtk4.EventSequenceState","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.EventType","page":"Gtk4 Reference","title":"Gtk4.EventType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.FileChooserAction","page":"Gtk4 Reference","title":"Gtk4.FileChooserAction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.FileChooserError","page":"Gtk4 Reference","title":"Gtk4.FileChooserError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.FilterChange","page":"Gtk4 Reference","title":"Gtk4.FilterChange","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.FilterMatch","page":"Gtk4 Reference","title":"Gtk4.FilterMatch","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.FontChooserLevel","page":"Gtk4 Reference","title":"Gtk4.FontChooserLevel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.FontLevel","page":"Gtk4 Reference","title":"Gtk4.FontLevel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.FrameClockPhase","page":"Gtk4 Reference","title":"Gtk4.FrameClockPhase","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.FullscreenMode","page":"Gtk4 Reference","title":"Gtk4.FullscreenMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GLAPI","page":"Gtk4 Reference","title":"Gtk4.GLAPI","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GLError","page":"Gtk4 Reference","title":"Gtk4.GLError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkAppLaunchContext","page":"Gtk4 Reference","title":"Gtk4.GdkAppLaunchContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkButtonEvent","page":"Gtk4 Reference","title":"Gtk4.GdkButtonEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkCairoContext","page":"Gtk4 Reference","title":"Gtk4.GdkCairoContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkClipboard","page":"Gtk4 Reference","title":"Gtk4.GdkClipboard","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkContentDeserializer","page":"Gtk4 Reference","title":"Gtk4.GdkContentDeserializer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkContentFormats","page":"Gtk4 Reference","title":"Gtk4.GdkContentFormats","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkContentFormatsBuilder","page":"Gtk4 Reference","title":"Gtk4.GdkContentFormatsBuilder","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkContentProvider","page":"Gtk4 Reference","title":"Gtk4.GdkContentProvider","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkContentSerializer","page":"Gtk4 Reference","title":"Gtk4.GdkContentSerializer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkCrossingEvent","page":"Gtk4 Reference","title":"Gtk4.GdkCrossingEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkCursor","page":"Gtk4 Reference","title":"Gtk4.GdkCursor","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkDNDEvent","page":"Gtk4 Reference","title":"Gtk4.GdkDNDEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkDeleteEvent","page":"Gtk4 Reference","title":"Gtk4.GdkDeleteEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkDevice","page":"Gtk4 Reference","title":"Gtk4.GdkDevice","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkDeviceTool","page":"Gtk4 Reference","title":"Gtk4.GdkDeviceTool","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkDisplay","page":"Gtk4 Reference","title":"Gtk4.GdkDisplay","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkDisplayManager","page":"Gtk4 Reference","title":"Gtk4.GdkDisplayManager","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkDrag","page":"Gtk4 Reference","title":"Gtk4.GdkDrag","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkDrawContext","page":"Gtk4 Reference","title":"Gtk4.GdkDrawContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkDrop","page":"Gtk4 Reference","title":"Gtk4.GdkDrop","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkEvent","page":"Gtk4 Reference","title":"Gtk4.GdkEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkEventSequence","page":"Gtk4 Reference","title":"Gtk4.GdkEventSequence","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkFileList","page":"Gtk4 Reference","title":"Gtk4.GdkFileList","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkFocusEvent","page":"Gtk4 Reference","title":"Gtk4.GdkFocusEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkFrameClock","page":"Gtk4 Reference","title":"Gtk4.GdkFrameClock","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkFrameTimings","page":"Gtk4 Reference","title":"Gtk4.GdkFrameTimings","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkGLContext","page":"Gtk4 Reference","title":"Gtk4.GdkGLContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkGLTexture","page":"Gtk4 Reference","title":"Gtk4.GdkGLTexture","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkGrabBrokenEvent","page":"Gtk4 Reference","title":"Gtk4.GdkGrabBrokenEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkKeyEvent","page":"Gtk4 Reference","title":"Gtk4.GdkKeyEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkKeymapKey","page":"Gtk4 Reference","title":"Gtk4.GdkKeymapKey","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkMemoryTexture","page":"Gtk4 Reference","title":"Gtk4.GdkMemoryTexture","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkMonitor","page":"Gtk4 Reference","title":"Gtk4.GdkMonitor","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkMotionEvent","page":"Gtk4 Reference","title":"Gtk4.GdkMotionEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkPadEvent","page":"Gtk4 Reference","title":"Gtk4.GdkPadEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkPopupLayout","page":"Gtk4 Reference","title":"Gtk4.GdkPopupLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkProximityEvent","page":"Gtk4 Reference","title":"Gtk4.GdkProximityEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkRGBA","page":"Gtk4 Reference","title":"Gtk4.GdkRGBA","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkRectangle","page":"Gtk4 Reference","title":"Gtk4.GdkRectangle","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkScrollEvent","page":"Gtk4 Reference","title":"Gtk4.GdkScrollEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkSeat","page":"Gtk4 Reference","title":"Gtk4.GdkSeat","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkSnapshot","page":"Gtk4 Reference","title":"Gtk4.GdkSnapshot","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkSurface","page":"Gtk4 Reference","title":"Gtk4.GdkSurface","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkTexture","page":"Gtk4 Reference","title":"Gtk4.GdkTexture","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkTimeCoord","page":"Gtk4 Reference","title":"Gtk4.GdkTimeCoord","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkToplevelLayout","page":"Gtk4 Reference","title":"Gtk4.GdkToplevelLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkTouchEvent","page":"Gtk4 Reference","title":"Gtk4.GdkTouchEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkTouchpadEvent","page":"Gtk4 Reference","title":"Gtk4.GdkTouchpadEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkVulkanContext","page":"Gtk4 Reference","title":"Gtk4.GdkVulkanContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.Gravity","page":"Gtk4 Reference","title":"Gtk4.Gravity","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskBlendNode","page":"Gtk4 Reference","title":"Gtk4.GskBlendNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskBlurNode","page":"Gtk4 Reference","title":"Gtk4.GskBlurNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskBorderNode","page":"Gtk4 Reference","title":"Gtk4.GskBorderNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskCairoNode","page":"Gtk4 Reference","title":"Gtk4.GskCairoNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskCairoRenderer","page":"Gtk4 Reference","title":"Gtk4.GskCairoRenderer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskClipNode","page":"Gtk4 Reference","title":"Gtk4.GskClipNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskColorMatrixNode","page":"Gtk4 Reference","title":"Gtk4.GskColorMatrixNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskColorNode","page":"Gtk4 Reference","title":"Gtk4.GskColorNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskColorStop","page":"Gtk4 Reference","title":"Gtk4.GskColorStop","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskConicGradientNode","page":"Gtk4 Reference","title":"Gtk4.GskConicGradientNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskContainerNode","page":"Gtk4 Reference","title":"Gtk4.GskContainerNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskCrossFadeNode","page":"Gtk4 Reference","title":"Gtk4.GskCrossFadeNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskDebugNode","page":"Gtk4 Reference","title":"Gtk4.GskDebugNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskGLShader","page":"Gtk4 Reference","title":"Gtk4.GskGLShader","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskGLShaderNode","page":"Gtk4 Reference","title":"Gtk4.GskGLShaderNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskInsetShadowNode","page":"Gtk4 Reference","title":"Gtk4.GskInsetShadowNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskLinearGradientNode","page":"Gtk4 Reference","title":"Gtk4.GskLinearGradientNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskMaskNode","page":"Gtk4 Reference","title":"Gtk4.GskMaskNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskOpacityNode","page":"Gtk4 Reference","title":"Gtk4.GskOpacityNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskOutsetShadowNode","page":"Gtk4 Reference","title":"Gtk4.GskOutsetShadowNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskParseLocation","page":"Gtk4 Reference","title":"Gtk4.GskParseLocation","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskRadialGradientNode","page":"Gtk4 Reference","title":"Gtk4.GskRadialGradientNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskRenderNode","page":"Gtk4 Reference","title":"Gtk4.GskRenderNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskRenderer","page":"Gtk4 Reference","title":"Gtk4.GskRenderer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskRepeatNode","page":"Gtk4 Reference","title":"Gtk4.GskRepeatNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskRepeatingLinearGradientNode","page":"Gtk4 Reference","title":"Gtk4.GskRepeatingLinearGradientNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskRepeatingRadialGradientNode","page":"Gtk4 Reference","title":"Gtk4.GskRepeatingRadialGradientNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskRoundedClipNode","page":"Gtk4 Reference","title":"Gtk4.GskRoundedClipNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskRoundedRect","page":"Gtk4 Reference","title":"Gtk4.GskRoundedRect","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskShadow","page":"Gtk4 Reference","title":"Gtk4.GskShadow","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskShadowNode","page":"Gtk4 Reference","title":"Gtk4.GskShadowNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskTextNode","page":"Gtk4 Reference","title":"Gtk4.GskTextNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskTextureNode","page":"Gtk4 Reference","title":"Gtk4.GskTextureNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskTextureScaleNode","page":"Gtk4 Reference","title":"Gtk4.GskTextureScaleNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskTransform","page":"Gtk4 Reference","title":"Gtk4.GskTransform","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GskTransformNode","page":"Gtk4 Reference","title":"Gtk4.GskTransformNode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkATContext","page":"Gtk4 Reference","title":"Gtk4.GtkATContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkAboutDialog","page":"Gtk4 Reference","title":"Gtk4.GtkAboutDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkActionBar","page":"Gtk4 Reference","title":"Gtk4.GtkActionBar","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkActivateAction","page":"Gtk4 Reference","title":"Gtk4.GtkActivateAction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkAdjustment","page":"Gtk4 Reference","title":"Gtk4.GtkAdjustment","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkAlertDialog","page":"Gtk4 Reference","title":"Gtk4.GtkAlertDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkAlternativeTrigger","page":"Gtk4 Reference","title":"Gtk4.GtkAlternativeTrigger","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkAnyFilter","page":"Gtk4 Reference","title":"Gtk4.GtkAnyFilter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkAppChooserButton","page":"Gtk4 Reference","title":"Gtk4.GtkAppChooserButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkAppChooserDialog","page":"Gtk4 Reference","title":"Gtk4.GtkAppChooserDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkAppChooserWidget","page":"Gtk4 Reference","title":"Gtk4.GtkAppChooserWidget","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkApplication","page":"Gtk4 Reference","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/reference/#Gtk4.GtkApplication-2","page":"Gtk4 Reference","title":"Gtk4.GtkApplication","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkApplicationWindow","page":"Gtk4 Reference","title":"Gtk4.GtkApplicationWindow","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkAspectFrame","page":"Gtk4 Reference","title":"Gtk4.GtkAspectFrame","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkAssistant","page":"Gtk4 Reference","title":"Gtk4.GtkAssistant","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkAssistantPage","page":"Gtk4 Reference","title":"Gtk4.GtkAssistantPage","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkBinLayout","page":"Gtk4 Reference","title":"Gtk4.GtkBinLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkBitset","page":"Gtk4 Reference","title":"Gtk4.GtkBitset","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkBitsetIter","page":"Gtk4 Reference","title":"Gtk4.GtkBitsetIter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkBookmarkList","page":"Gtk4 Reference","title":"Gtk4.GtkBookmarkList","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkBoolFilter","page":"Gtk4 Reference","title":"Gtk4.GtkBoolFilter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkBorder","page":"Gtk4 Reference","title":"Gtk4.GtkBorder","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkBox","page":"Gtk4 Reference","title":"Gtk4.GtkBox","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkBoxLayout","page":"Gtk4 Reference","title":"Gtk4.GtkBoxLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkBuildableParseContext","page":"Gtk4 Reference","title":"Gtk4.GtkBuildableParseContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkBuildableParser","page":"Gtk4 Reference","title":"Gtk4.GtkBuildableParser","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkBuilder","page":"Gtk4 Reference","title":"Gtk4.GtkBuilder","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkBuilderCScope","page":"Gtk4 Reference","title":"Gtk4.GtkBuilderCScope","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkBuilderListItemFactory","page":"Gtk4 Reference","title":"Gtk4.GtkBuilderListItemFactory","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkButton","page":"Gtk4 Reference","title":"Gtk4.GtkButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkButton-Tuple{GtkWidget}","page":"Gtk4 Reference","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/reference/#Gtk4.GtkButton-Tuple{Symbol, AbstractString}","page":"Gtk4 Reference","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/reference/#Gtk4.GtkCalendar","page":"Gtk4 Reference","title":"Gtk4.GtkCalendar","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkCallbackAction","page":"Gtk4 Reference","title":"Gtk4.GtkCallbackAction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"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.GtkCellArea","page":"Gtk4 Reference","title":"Gtk4.GtkCellArea","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkCellAreaBox","page":"Gtk4 Reference","title":"Gtk4.GtkCellAreaBox","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkCellAreaContext","page":"Gtk4 Reference","title":"Gtk4.GtkCellAreaContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkCellRenderer","page":"Gtk4 Reference","title":"Gtk4.GtkCellRenderer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkCellRendererAccel","page":"Gtk4 Reference","title":"Gtk4.GtkCellRendererAccel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkCellRendererCombo","page":"Gtk4 Reference","title":"Gtk4.GtkCellRendererCombo","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkCellRendererPixbuf","page":"Gtk4 Reference","title":"Gtk4.GtkCellRendererPixbuf","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkCellRendererProgress","page":"Gtk4 Reference","title":"Gtk4.GtkCellRendererProgress","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkCellRendererSpin","page":"Gtk4 Reference","title":"Gtk4.GtkCellRendererSpin","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkCellRendererSpinner","page":"Gtk4 Reference","title":"Gtk4.GtkCellRendererSpinner","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkCellRendererText","page":"Gtk4 Reference","title":"Gtk4.GtkCellRendererText","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkCellRendererToggle","page":"Gtk4 Reference","title":"Gtk4.GtkCellRendererToggle","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkCellView","page":"Gtk4 Reference","title":"Gtk4.GtkCellView","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkCenterBox","page":"Gtk4 Reference","title":"Gtk4.GtkCenterBox","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkCenterLayout","page":"Gtk4 Reference","title":"Gtk4.GtkCenterLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkCheckButton","page":"Gtk4 Reference","title":"Gtk4.GtkCheckButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkColorButton","page":"Gtk4 Reference","title":"Gtk4.GtkColorButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkColorChooserDialog","page":"Gtk4 Reference","title":"Gtk4.GtkColorChooserDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkColorChooserWidget","page":"Gtk4 Reference","title":"Gtk4.GtkColorChooserWidget","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkColorDialog","page":"Gtk4 Reference","title":"Gtk4.GtkColorDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkColorDialogButton","page":"Gtk4 Reference","title":"Gtk4.GtkColorDialogButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkColumnView","page":"Gtk4 Reference","title":"Gtk4.GtkColumnView","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkColumnViewColumn","page":"Gtk4 Reference","title":"Gtk4.GtkColumnViewColumn","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkColumnViewSorter","page":"Gtk4 Reference","title":"Gtk4.GtkColumnViewSorter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkComboBox","page":"Gtk4 Reference","title":"Gtk4.GtkComboBox","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkComboBoxText","page":"Gtk4 Reference","title":"Gtk4.GtkComboBoxText","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkConstantExpression","page":"Gtk4 Reference","title":"Gtk4.GtkConstantExpression","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkConstraint","page":"Gtk4 Reference","title":"Gtk4.GtkConstraint","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkConstraintGuide","page":"Gtk4 Reference","title":"Gtk4.GtkConstraintGuide","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkConstraintLayout","page":"Gtk4 Reference","title":"Gtk4.GtkConstraintLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkConstraintLayoutChild","page":"Gtk4 Reference","title":"Gtk4.GtkConstraintLayoutChild","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkCssProvider","page":"Gtk4 Reference","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/reference/#Gtk4.GtkCssProvider-2","page":"Gtk4 Reference","title":"Gtk4.GtkCssProvider","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkCssSection","page":"Gtk4 Reference","title":"Gtk4.GtkCssSection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkCustomFilter","page":"Gtk4 Reference","title":"Gtk4.GtkCustomFilter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkCustomLayout","page":"Gtk4 Reference","title":"Gtk4.GtkCustomLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkCustomSorter","page":"Gtk4 Reference","title":"Gtk4.GtkCustomSorter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkDialog","page":"Gtk4 Reference","title":"Gtk4.GtkDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkDirectoryList","page":"Gtk4 Reference","title":"Gtk4.GtkDirectoryList","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkDragIcon","page":"Gtk4 Reference","title":"Gtk4.GtkDragIcon","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkDragSource","page":"Gtk4 Reference","title":"Gtk4.GtkDragSource","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkDrawingArea","page":"Gtk4 Reference","title":"Gtk4.GtkDrawingArea","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkDropControllerMotion","page":"Gtk4 Reference","title":"Gtk4.GtkDropControllerMotion","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkDropDown","page":"Gtk4 Reference","title":"Gtk4.GtkDropDown","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkDropTarget","page":"Gtk4 Reference","title":"Gtk4.GtkDropTarget","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkDropTargetAsync","page":"Gtk4 Reference","title":"Gtk4.GtkDropTargetAsync","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkEditableLabel","page":"Gtk4 Reference","title":"Gtk4.GtkEditableLabel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkEmojiChooser","page":"Gtk4 Reference","title":"Gtk4.GtkEmojiChooser","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkEntry","page":"Gtk4 Reference","title":"Gtk4.GtkEntry","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkEntryBuffer","page":"Gtk4 Reference","title":"Gtk4.GtkEntryBuffer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkEntryCompletion","page":"Gtk4 Reference","title":"Gtk4.GtkEntryCompletion","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkEventController","page":"Gtk4 Reference","title":"Gtk4.GtkEventController","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkEventControllerFocus","page":"Gtk4 Reference","title":"Gtk4.GtkEventControllerFocus","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkEventControllerKey","page":"Gtk4 Reference","title":"Gtk4.GtkEventControllerKey","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkEventControllerLegacy","page":"Gtk4 Reference","title":"Gtk4.GtkEventControllerLegacy","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkEventControllerMotion","page":"Gtk4 Reference","title":"Gtk4.GtkEventControllerMotion","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkEventControllerScroll","page":"Gtk4 Reference","title":"Gtk4.GtkEventControllerScroll","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkEveryFilter","page":"Gtk4 Reference","title":"Gtk4.GtkEveryFilter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkExpander","page":"Gtk4 Reference","title":"Gtk4.GtkExpander","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkExpression","page":"Gtk4 Reference","title":"Gtk4.GtkExpression","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkExpressionWatch","page":"Gtk4 Reference","title":"Gtk4.GtkExpressionWatch","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkFileChooserDialog","page":"Gtk4 Reference","title":"Gtk4.GtkFileChooserDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkFileChooserNative","page":"Gtk4 Reference","title":"Gtk4.GtkFileChooserNative","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkFileChooserWidget","page":"Gtk4 Reference","title":"Gtk4.GtkFileChooserWidget","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkFileDialog","page":"Gtk4 Reference","title":"Gtk4.GtkFileDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkFileFilter","page":"Gtk4 Reference","title":"Gtk4.GtkFileFilter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkFileLauncher","page":"Gtk4 Reference","title":"Gtk4.GtkFileLauncher","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkFilter","page":"Gtk4 Reference","title":"Gtk4.GtkFilter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkFilterListModel","page":"Gtk4 Reference","title":"Gtk4.GtkFilterListModel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkFixed","page":"Gtk4 Reference","title":"Gtk4.GtkFixed","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkFixedLayout","page":"Gtk4 Reference","title":"Gtk4.GtkFixedLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkFixedLayoutChild","page":"Gtk4 Reference","title":"Gtk4.GtkFixedLayoutChild","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkFlattenListModel","page":"Gtk4 Reference","title":"Gtk4.GtkFlattenListModel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkFlowBox","page":"Gtk4 Reference","title":"Gtk4.GtkFlowBox","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkFlowBoxChild","page":"Gtk4 Reference","title":"Gtk4.GtkFlowBoxChild","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkFontButton","page":"Gtk4 Reference","title":"Gtk4.GtkFontButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkFontChooserDialog","page":"Gtk4 Reference","title":"Gtk4.GtkFontChooserDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkFontChooserWidget","page":"Gtk4 Reference","title":"Gtk4.GtkFontChooserWidget","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkFontDialog","page":"Gtk4 Reference","title":"Gtk4.GtkFontDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkFontDialogButton","page":"Gtk4 Reference","title":"Gtk4.GtkFontDialogButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkFrame","page":"Gtk4 Reference","title":"Gtk4.GtkFrame","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkGLArea","page":"Gtk4 Reference","title":"Gtk4.GtkGLArea","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkGesture","page":"Gtk4 Reference","title":"Gtk4.GtkGesture","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkGestureClick","page":"Gtk4 Reference","title":"Gtk4.GtkGestureClick","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkGestureDrag","page":"Gtk4 Reference","title":"Gtk4.GtkGestureDrag","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkGestureLongPress","page":"Gtk4 Reference","title":"Gtk4.GtkGestureLongPress","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkGesturePan","page":"Gtk4 Reference","title":"Gtk4.GtkGesturePan","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkGestureRotate","page":"Gtk4 Reference","title":"Gtk4.GtkGestureRotate","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkGestureSingle","page":"Gtk4 Reference","title":"Gtk4.GtkGestureSingle","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkGestureStylus","page":"Gtk4 Reference","title":"Gtk4.GtkGestureStylus","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkGestureSwipe","page":"Gtk4 Reference","title":"Gtk4.GtkGestureSwipe","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkGestureZoom","page":"Gtk4 Reference","title":"Gtk4.GtkGestureZoom","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkGrid","page":"Gtk4 Reference","title":"Gtk4.GtkGrid","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkGridLayout","page":"Gtk4 Reference","title":"Gtk4.GtkGridLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkGridLayoutChild","page":"Gtk4 Reference","title":"Gtk4.GtkGridLayoutChild","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkGridView","page":"Gtk4 Reference","title":"Gtk4.GtkGridView","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkHeaderBar","page":"Gtk4 Reference","title":"Gtk4.GtkHeaderBar","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkIMContext","page":"Gtk4 Reference","title":"Gtk4.GtkIMContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkIMContextSimple","page":"Gtk4 Reference","title":"Gtk4.GtkIMContextSimple","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkIMMulticontext","page":"Gtk4 Reference","title":"Gtk4.GtkIMMulticontext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkIconPaintable","page":"Gtk4 Reference","title":"Gtk4.GtkIconPaintable","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkIconTheme","page":"Gtk4 Reference","title":"Gtk4.GtkIconTheme","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkIconTheme-Tuple{GdkDisplay}","page":"Gtk4 Reference","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/reference/#Gtk4.GtkIconView","page":"Gtk4 Reference","title":"Gtk4.GtkIconView","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkImage","page":"Gtk4 Reference","title":"Gtk4.GtkImage","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkInfoBar","page":"Gtk4 Reference","title":"Gtk4.GtkInfoBar","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkInscription","page":"Gtk4 Reference","title":"Gtk4.GtkInscription","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkKeyvalTrigger","page":"Gtk4 Reference","title":"Gtk4.GtkKeyvalTrigger","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkLabel","page":"Gtk4 Reference","title":"Gtk4.GtkLabel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkLayoutChild","page":"Gtk4 Reference","title":"Gtk4.GtkLayoutChild","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkLayoutManager","page":"Gtk4 Reference","title":"Gtk4.GtkLayoutManager","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkLevelBar","page":"Gtk4 Reference","title":"Gtk4.GtkLevelBar","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkLinkButton","page":"Gtk4 Reference","title":"Gtk4.GtkLinkButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkListBase","page":"Gtk4 Reference","title":"Gtk4.GtkListBase","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkListBox","page":"Gtk4 Reference","title":"Gtk4.GtkListBox","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkListBoxRow","page":"Gtk4 Reference","title":"Gtk4.GtkListBoxRow","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkListItem","page":"Gtk4 Reference","title":"Gtk4.GtkListItem","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkListItemFactory","page":"Gtk4 Reference","title":"Gtk4.GtkListItemFactory","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkListStore","page":"Gtk4 Reference","title":"Gtk4.GtkListStore","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkListView","page":"Gtk4 Reference","title":"Gtk4.GtkListView","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkLockButton","page":"Gtk4 Reference","title":"Gtk4.GtkLockButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkMapListModel","page":"Gtk4 Reference","title":"Gtk4.GtkMapListModel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkMediaControls","page":"Gtk4 Reference","title":"Gtk4.GtkMediaControls","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkMediaFile","page":"Gtk4 Reference","title":"Gtk4.GtkMediaFile","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkMediaStream","page":"Gtk4 Reference","title":"Gtk4.GtkMediaStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkMenuButton","page":"Gtk4 Reference","title":"Gtk4.GtkMenuButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkMessageDialog","page":"Gtk4 Reference","title":"Gtk4.GtkMessageDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkMnemonicAction","page":"Gtk4 Reference","title":"Gtk4.GtkMnemonicAction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkMnemonicTrigger","page":"Gtk4 Reference","title":"Gtk4.GtkMnemonicTrigger","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkMountOperation","page":"Gtk4 Reference","title":"Gtk4.GtkMountOperation","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkMultiFilter","page":"Gtk4 Reference","title":"Gtk4.GtkMultiFilter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkMultiSelection","page":"Gtk4 Reference","title":"Gtk4.GtkMultiSelection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkMultiSorter","page":"Gtk4 Reference","title":"Gtk4.GtkMultiSorter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkNamedAction","page":"Gtk4 Reference","title":"Gtk4.GtkNamedAction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkNativeDialog","page":"Gtk4 Reference","title":"Gtk4.GtkNativeDialog","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkNeverTrigger","page":"Gtk4 Reference","title":"Gtk4.GtkNeverTrigger","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkNoSelection","page":"Gtk4 Reference","title":"Gtk4.GtkNoSelection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkNotebook","page":"Gtk4 Reference","title":"Gtk4.GtkNotebook","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkNotebookPage","page":"Gtk4 Reference","title":"Gtk4.GtkNotebookPage","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkNothingAction","page":"Gtk4 Reference","title":"Gtk4.GtkNothingAction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkNumericSorter","page":"Gtk4 Reference","title":"Gtk4.GtkNumericSorter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkObjectExpression","page":"Gtk4 Reference","title":"Gtk4.GtkObjectExpression","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkOverlay","page":"Gtk4 Reference","title":"Gtk4.GtkOverlay","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkOverlayLayout","page":"Gtk4 Reference","title":"Gtk4.GtkOverlayLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkOverlayLayoutChild","page":"Gtk4 Reference","title":"Gtk4.GtkOverlayLayoutChild","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkPadActionEntry","page":"Gtk4 Reference","title":"Gtk4.GtkPadActionEntry","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkPadController","page":"Gtk4 Reference","title":"Gtk4.GtkPadController","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkPageSetup","page":"Gtk4 Reference","title":"Gtk4.GtkPageSetup","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkPaned","page":"Gtk4 Reference","title":"Gtk4.GtkPaned","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkPaperSize","page":"Gtk4 Reference","title":"Gtk4.GtkPaperSize","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkPasswordEntry","page":"Gtk4 Reference","title":"Gtk4.GtkPasswordEntry","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkPasswordEntryBuffer","page":"Gtk4 Reference","title":"Gtk4.GtkPasswordEntryBuffer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkPicture","page":"Gtk4 Reference","title":"Gtk4.GtkPicture","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkPopover","page":"Gtk4 Reference","title":"Gtk4.GtkPopover","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkPopoverMenu","page":"Gtk4 Reference","title":"Gtk4.GtkPopoverMenu","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkPopoverMenuBar","page":"Gtk4 Reference","title":"Gtk4.GtkPopoverMenuBar","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkPrintContext","page":"Gtk4 Reference","title":"Gtk4.GtkPrintContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkPrintJob","page":"Gtk4 Reference","title":"Gtk4.GtkPrintJob","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkPrintOperation","page":"Gtk4 Reference","title":"Gtk4.GtkPrintOperation","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkPrintSettings","page":"Gtk4 Reference","title":"Gtk4.GtkPrintSettings","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkPrinter","page":"Gtk4 Reference","title":"Gtk4.GtkPrinter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkProgressBar","page":"Gtk4 Reference","title":"Gtk4.GtkProgressBar","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkPropertyExpression","page":"Gtk4 Reference","title":"Gtk4.GtkPropertyExpression","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkRange","page":"Gtk4 Reference","title":"Gtk4.GtkRange","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkRecentData","page":"Gtk4 Reference","title":"Gtk4.GtkRecentData","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkRecentInfo","page":"Gtk4 Reference","title":"Gtk4.GtkRecentInfo","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkRecentManager","page":"Gtk4 Reference","title":"Gtk4.GtkRecentManager","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkRequestedSize","page":"Gtk4 Reference","title":"Gtk4.GtkRequestedSize","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkRequisition","page":"Gtk4 Reference","title":"Gtk4.GtkRequisition","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkRevealer","page":"Gtk4 Reference","title":"Gtk4.GtkRevealer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkScale","page":"Gtk4 Reference","title":"Gtk4.GtkScale","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkScaleButton","page":"Gtk4 Reference","title":"Gtk4.GtkScaleButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkScrollbar","page":"Gtk4 Reference","title":"Gtk4.GtkScrollbar","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkScrolledWindow","page":"Gtk4 Reference","title":"Gtk4.GtkScrolledWindow","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkSearchBar","page":"Gtk4 Reference","title":"Gtk4.GtkSearchBar","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkSearchEntry","page":"Gtk4 Reference","title":"Gtk4.GtkSearchEntry","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkSelectionFilterModel","page":"Gtk4 Reference","title":"Gtk4.GtkSelectionFilterModel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkSeparator","page":"Gtk4 Reference","title":"Gtk4.GtkSeparator","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkSettings","page":"Gtk4 Reference","title":"Gtk4.GtkSettings","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkShortcut","page":"Gtk4 Reference","title":"Gtk4.GtkShortcut","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkShortcutAction","page":"Gtk4 Reference","title":"Gtk4.GtkShortcutAction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkShortcutController","page":"Gtk4 Reference","title":"Gtk4.GtkShortcutController","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkShortcutLabel","page":"Gtk4 Reference","title":"Gtk4.GtkShortcutLabel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkShortcutTrigger","page":"Gtk4 Reference","title":"Gtk4.GtkShortcutTrigger","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkShortcutsGroup","page":"Gtk4 Reference","title":"Gtk4.GtkShortcutsGroup","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkShortcutsSection","page":"Gtk4 Reference","title":"Gtk4.GtkShortcutsSection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkShortcutsShortcut","page":"Gtk4 Reference","title":"Gtk4.GtkShortcutsShortcut","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkShortcutsWindow","page":"Gtk4 Reference","title":"Gtk4.GtkShortcutsWindow","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkSignalAction","page":"Gtk4 Reference","title":"Gtk4.GtkSignalAction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkSignalListItemFactory","page":"Gtk4 Reference","title":"Gtk4.GtkSignalListItemFactory","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkSignalListItemFactory-Tuple{Function, Function}","page":"Gtk4 Reference","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/reference/#Gtk4.GtkSingleSelection","page":"Gtk4 Reference","title":"Gtk4.GtkSingleSelection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkSizeGroup","page":"Gtk4 Reference","title":"Gtk4.GtkSizeGroup","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkSliceListModel","page":"Gtk4 Reference","title":"Gtk4.GtkSliceListModel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkSnapshot","page":"Gtk4 Reference","title":"Gtk4.GtkSnapshot","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkSortListModel","page":"Gtk4 Reference","title":"Gtk4.GtkSortListModel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkSorter","page":"Gtk4 Reference","title":"Gtk4.GtkSorter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkSpinButton","page":"Gtk4 Reference","title":"Gtk4.GtkSpinButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkSpinner","page":"Gtk4 Reference","title":"Gtk4.GtkSpinner","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkStack","page":"Gtk4 Reference","title":"Gtk4.GtkStack","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkStackPage","page":"Gtk4 Reference","title":"Gtk4.GtkStackPage","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkStackSidebar","page":"Gtk4 Reference","title":"Gtk4.GtkStackSidebar","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkStackSwitcher","page":"Gtk4 Reference","title":"Gtk4.GtkStackSwitcher","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkStatusbar","page":"Gtk4 Reference","title":"Gtk4.GtkStatusbar","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkStringFilter","page":"Gtk4 Reference","title":"Gtk4.GtkStringFilter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkStringList","page":"Gtk4 Reference","title":"Gtk4.GtkStringList","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkStringObject","page":"Gtk4 Reference","title":"Gtk4.GtkStringObject","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkStringSorter","page":"Gtk4 Reference","title":"Gtk4.GtkStringSorter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkStyleContext","page":"Gtk4 Reference","title":"Gtk4.GtkStyleContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkSwitch","page":"Gtk4 Reference","title":"Gtk4.GtkSwitch","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkText","page":"Gtk4 Reference","title":"Gtk4.GtkText","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkTextBuffer","page":"Gtk4 Reference","title":"Gtk4.GtkTextBuffer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkTextChildAnchor","page":"Gtk4 Reference","title":"Gtk4.GtkTextChildAnchor","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkTextIter","page":"Gtk4 Reference","title":"Gtk4.GtkTextIter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkTextMark","page":"Gtk4 Reference","title":"Gtk4.GtkTextMark","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkTextTag","page":"Gtk4 Reference","title":"Gtk4.GtkTextTag","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkTextTagTable","page":"Gtk4 Reference","title":"Gtk4.GtkTextTagTable","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkTextView","page":"Gtk4 Reference","title":"Gtk4.GtkTextView","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkToggleButton","page":"Gtk4 Reference","title":"Gtk4.GtkToggleButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkTooltip","page":"Gtk4 Reference","title":"Gtk4.GtkTooltip","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkTreeExpander","page":"Gtk4 Reference","title":"Gtk4.GtkTreeExpander","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkTreeIter","page":"Gtk4 Reference","title":"Gtk4.GtkTreeIter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkTreeListModel","page":"Gtk4 Reference","title":"Gtk4.GtkTreeListModel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkTreeListRow","page":"Gtk4 Reference","title":"Gtk4.GtkTreeListRow","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkTreeListRowSorter","page":"Gtk4 Reference","title":"Gtk4.GtkTreeListRowSorter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkTreeModelFilter","page":"Gtk4 Reference","title":"Gtk4.GtkTreeModelFilter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkTreeModelSort","page":"Gtk4 Reference","title":"Gtk4.GtkTreeModelSort","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkTreePath","page":"Gtk4 Reference","title":"Gtk4.GtkTreePath","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkTreeSelection","page":"Gtk4 Reference","title":"Gtk4.GtkTreeSelection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkTreeStore","page":"Gtk4 Reference","title":"Gtk4.GtkTreeStore","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkTreeView","page":"Gtk4 Reference","title":"Gtk4.GtkTreeView","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkTreeViewColumn","page":"Gtk4 Reference","title":"Gtk4.GtkTreeViewColumn","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkUriLauncher","page":"Gtk4 Reference","title":"Gtk4.GtkUriLauncher","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkVideo","page":"Gtk4 Reference","title":"Gtk4.GtkVideo","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkViewport","page":"Gtk4 Reference","title":"Gtk4.GtkViewport","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkVolumeButton","page":"Gtk4 Reference","title":"Gtk4.GtkVolumeButton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkWidget","page":"Gtk4 Reference","title":"Gtk4.GtkWidget","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkWidgetPaintable","page":"Gtk4 Reference","title":"Gtk4.GtkWidgetPaintable","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"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/#Gtk4.GtkWindowControls","page":"Gtk4 Reference","title":"Gtk4.GtkWindowControls","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkWindowGroup","page":"Gtk4 Reference","title":"Gtk4.GtkWindowGroup","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GtkWindowHandle","page":"Gtk4 Reference","title":"Gtk4.GtkWindowHandle","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.IconLookupFlags","page":"Gtk4 Reference","title":"Gtk4.IconLookupFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.IconSize","page":"Gtk4 Reference","title":"Gtk4.IconSize","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.IconThemeError","page":"Gtk4 Reference","title":"Gtk4.IconThemeError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.IconViewDropPosition","page":"Gtk4 Reference","title":"Gtk4.IconViewDropPosition","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.ImageType","page":"Gtk4 Reference","title":"Gtk4.ImageType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.InputHints","page":"Gtk4 Reference","title":"Gtk4.InputHints","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.InputPurpose","page":"Gtk4 Reference","title":"Gtk4.InputPurpose","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.InputSource","page":"Gtk4 Reference","title":"Gtk4.InputSource","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.InscriptionOverflow","page":"Gtk4 Reference","title":"Gtk4.InscriptionOverflow","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.Justification","page":"Gtk4 Reference","title":"Gtk4.Justification","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.KeyMatch","page":"Gtk4 Reference","title":"Gtk4.KeyMatch","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.LevelBarMode","page":"Gtk4 Reference","title":"Gtk4.LevelBarMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.License","page":"Gtk4 Reference","title":"Gtk4.License","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.MemoryFormat","page":"Gtk4 Reference","title":"Gtk4.MemoryFormat","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.MessageType","page":"Gtk4 Reference","title":"Gtk4.MessageType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.ModifierType","page":"Gtk4 Reference","title":"Gtk4.ModifierType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.MovementStep","page":"Gtk4 Reference","title":"Gtk4.MovementStep","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.NaturalWrapMode","page":"Gtk4 Reference","title":"Gtk4.NaturalWrapMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.NotebookTab","page":"Gtk4 Reference","title":"Gtk4.NotebookTab","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.NotifyType","page":"Gtk4 Reference","title":"Gtk4.NotifyType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.NumberUpLayout","page":"Gtk4 Reference","title":"Gtk4.NumberUpLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.Ordering","page":"Gtk4 Reference","title":"Gtk4.Ordering","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.Orientation","page":"Gtk4 Reference","title":"Gtk4.Orientation","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.Overflow","page":"Gtk4 Reference","title":"Gtk4.Overflow","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.PackType","page":"Gtk4 Reference","title":"Gtk4.PackType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.PadActionType","page":"Gtk4 Reference","title":"Gtk4.PadActionType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.PageOrientation","page":"Gtk4 Reference","title":"Gtk4.PageOrientation","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.PageSet","page":"Gtk4 Reference","title":"Gtk4.PageSet","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.PaintableFlags","page":"Gtk4 Reference","title":"Gtk4.PaintableFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.PanDirection","page":"Gtk4 Reference","title":"Gtk4.PanDirection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.PickFlags","page":"Gtk4 Reference","title":"Gtk4.PickFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.PolicyType","page":"Gtk4 Reference","title":"Gtk4.PolicyType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.PopoverMenuFlags","page":"Gtk4 Reference","title":"Gtk4.PopoverMenuFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.PositionType","page":"Gtk4 Reference","title":"Gtk4.PositionType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.PrintCapabilities","page":"Gtk4 Reference","title":"Gtk4.PrintCapabilities","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.PrintDuplex","page":"Gtk4 Reference","title":"Gtk4.PrintDuplex","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.PrintError","page":"Gtk4 Reference","title":"Gtk4.PrintError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.PrintOperationAction","page":"Gtk4 Reference","title":"Gtk4.PrintOperationAction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.PrintOperationResult","page":"Gtk4 Reference","title":"Gtk4.PrintOperationResult","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.PrintPages","page":"Gtk4 Reference","title":"Gtk4.PrintPages","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.PrintQuality","page":"Gtk4 Reference","title":"Gtk4.PrintQuality","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.PrintStatus","page":"Gtk4 Reference","title":"Gtk4.PrintStatus","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.PropagationLimit","page":"Gtk4 Reference","title":"Gtk4.PropagationLimit","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.PropagationPhase","page":"Gtk4 Reference","title":"Gtk4.PropagationPhase","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.RecentManagerError","page":"Gtk4 Reference","title":"Gtk4.RecentManagerError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.ResponseType","page":"Gtk4 Reference","title":"Gtk4.ResponseType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.RevealerTransitionType","page":"Gtk4 Reference","title":"Gtk4.RevealerTransitionType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.ScrollDirection","page":"Gtk4 Reference","title":"Gtk4.ScrollDirection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.ScrollStep","page":"Gtk4 Reference","title":"Gtk4.ScrollStep","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.ScrollType","page":"Gtk4 Reference","title":"Gtk4.ScrollType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.ScrollUnit","page":"Gtk4 Reference","title":"Gtk4.ScrollUnit","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.ScrollablePolicy","page":"Gtk4 Reference","title":"Gtk4.ScrollablePolicy","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.SeatCapabilities","page":"Gtk4 Reference","title":"Gtk4.SeatCapabilities","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.SelectionMode","page":"Gtk4 Reference","title":"Gtk4.SelectionMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.SensitivityType","page":"Gtk4 Reference","title":"Gtk4.SensitivityType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.ShortcutActionFlags","page":"Gtk4 Reference","title":"Gtk4.ShortcutActionFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.ShortcutScope","page":"Gtk4 Reference","title":"Gtk4.ShortcutScope","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.ShortcutType","page":"Gtk4 Reference","title":"Gtk4.ShortcutType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.SizeGroupMode","page":"Gtk4 Reference","title":"Gtk4.SizeGroupMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.SizeRequestMode","page":"Gtk4 Reference","title":"Gtk4.SizeRequestMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.SortType","page":"Gtk4 Reference","title":"Gtk4.SortType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.SorterChange","page":"Gtk4 Reference","title":"Gtk4.SorterChange","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.SorterOrder","page":"Gtk4 Reference","title":"Gtk4.SorterOrder","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.SpinButtonUpdatePolicy","page":"Gtk4 Reference","title":"Gtk4.SpinButtonUpdatePolicy","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.SpinType","page":"Gtk4 Reference","title":"Gtk4.SpinType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.StackTransitionType","page":"Gtk4 Reference","title":"Gtk4.StackTransitionType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.StateFlags","page":"Gtk4 Reference","title":"Gtk4.StateFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.StringFilterMatchMode","page":"Gtk4 Reference","title":"Gtk4.StringFilterMatchMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.StyleContextPrintFlags","page":"Gtk4 Reference","title":"Gtk4.StyleContextPrintFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.SubpixelLayout","page":"Gtk4 Reference","title":"Gtk4.SubpixelLayout","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.SurfaceEdge","page":"Gtk4 Reference","title":"Gtk4.SurfaceEdge","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.SymbolicColor","page":"Gtk4 Reference","title":"Gtk4.SymbolicColor","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.SystemSetting","page":"Gtk4 Reference","title":"Gtk4.SystemSetting","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.TextDirection","page":"Gtk4 Reference","title":"Gtk4.TextDirection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.TextExtendSelection","page":"Gtk4 Reference","title":"Gtk4.TextExtendSelection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.TextSearchFlags","page":"Gtk4 Reference","title":"Gtk4.TextSearchFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.TextViewLayer","page":"Gtk4 Reference","title":"Gtk4.TextViewLayer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.TextWindowType","page":"Gtk4 Reference","title":"Gtk4.TextWindowType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.TextureError","page":"Gtk4 Reference","title":"Gtk4.TextureError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.ToplevelState","page":"Gtk4 Reference","title":"Gtk4.ToplevelState","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.TouchpadGesturePhase","page":"Gtk4 Reference","title":"Gtk4.TouchpadGesturePhase","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.TreeModelFlags","page":"Gtk4 Reference","title":"Gtk4.TreeModelFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.TreeViewColumnSizing","page":"Gtk4 Reference","title":"Gtk4.TreeViewColumnSizing","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.TreeViewDropPosition","page":"Gtk4 Reference","title":"Gtk4.TreeViewDropPosition","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.TreeViewGridLines","page":"Gtk4 Reference","title":"Gtk4.TreeViewGridLines","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.Unit","page":"Gtk4 Reference","title":"Gtk4.Unit","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.VulkanError","page":"Gtk4 Reference","title":"Gtk4.VulkanError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.WrapMode","page":"Gtk4 Reference","title":"Gtk4.WrapMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4._GtkTextIter-Tuple{GtkTextBuffer, Integer}","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":"method"},{"location":"doc/reference/#Gtk4.GdkPixbufLib.GdkPixbuf","page":"Gtk4 Reference","title":"Gtk4.GdkPixbufLib.GdkPixbuf","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkPixbufLib.GdkPixbufAnimation","page":"Gtk4 Reference","title":"Gtk4.GdkPixbufLib.GdkPixbufAnimation","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkPixbufLib.GdkPixbufAnimationIter","page":"Gtk4 Reference","title":"Gtk4.GdkPixbufLib.GdkPixbufAnimationIter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkPixbufLib.GdkPixbufFormat","page":"Gtk4 Reference","title":"Gtk4.GdkPixbufLib.GdkPixbufFormat","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkPixbufLib.GdkPixbufLoader","page":"Gtk4 Reference","title":"Gtk4.GdkPixbufLib.GdkPixbufLoader","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/reference/#Gtk4.GdkPixbufLib.GdkPixbufSimpleAnim","page":"Gtk4 Reference","title":"Gtk4.GdkPixbufLib.GdkPixbufSimpleAnim","text":"See the GTK docs.\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":"Since a GtkWindow can have only one child widget, we could have added the button to the window using","category":"page"},{"location":"manual/gettingStarted/","page":"Getting Started","title":"Getting Started","text":"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/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 GObjectconstructorname, 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, signal_connect supports an approach that allows your callback function to be directly compiled to machine code.","category":"page"},{"location":"manual/signals/","page":"Signals and Callbacks","title":"Signals and Callbacks","text":"This alternative syntax is as follows:","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/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/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","page":"Layout","title":"GtkBox","text":"","category":"section"},{"location":"manual/layout/","page":"Layout","title":"Layout","text":"The simplest layout widget is the 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","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","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","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","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/#GtkStack","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":"s = GtkStack()\nsw = GtkStackSwitcher()\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]","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 w in widget\n myfunc(w)\nend","category":"page"},{"location":"doc/GLib_reference/#GLib-Reference","page":"GLib Reference","title":"GLib Reference","text":"","category":"section"},{"location":"doc/GLib_reference/#Public-interface","page":"GLib Reference","title":"Public interface","text":"","category":"section"},{"location":"doc/GLib_reference/","page":"GLib Reference","title":"GLib Reference","text":"Modules = [Gtk4.GLib]\nOrder = [:module, :function, :macro]\nPublic = true\nPrivate = false","category":"page"},{"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.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_source_remove-Tuple{Any}","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":"method"},{"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. The function is expected to return a Cint. If it returns a nonzero value, the function will be called again after another interval milliseconds. Otherwise 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.\n\nRelated GTK function: g_timeout_add()\n\n\n\n\n\n","category":"function"},{"location":"doc/GLib_reference/#Gtk4.GLib.gtk_propertynames-Tuple{Gtk4.GLib.GObject}","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":"method"},{"location":"doc/GLib_reference/#Gtk4.GLib.signal_handler_disconnect-Tuple{Gtk4.GLib.GObject, UInt64}","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":"method"},{"location":"doc/GLib_reference/#Gtk4.GLib.unbind_property-Tuple{Gtk4.GLib.GBinding}","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":"method"},{"location":"doc/GLib_reference/#Gtk4.GLib.@idle_add-Tuple{Any}","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/#Private-methods","page":"GLib Reference","title":"Private methods","text":"","category":"section"},{"location":"doc/GLib_reference/","page":"GLib Reference","title":"GLib Reference","text":"Modules = [Gtk4.GLib]\nOrder = [:module, :function, :macro]\nPublic = false\nPrivate = true","category":"page"},{"location":"doc/GLib_reference/#Base.run-Tuple{Gtk4.GLib.GApplication}","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":"method"},{"location":"doc/GLib_reference/#Gtk4.GLib.g_type-Tuple{UInt64}","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":"method"},{"location":"doc/GLib_reference/#Gtk4.GLib.get_uv_loop_integration-Tuple{}","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":"method"},{"location":"doc/GLib_reference/#Gtk4.GLib.is_loop_running-Tuple{}","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":"method"},{"location":"doc/GLib_reference/#Gtk4.GLib.is_uv_loop_integration_enabled-Tuple{}","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":"method"},{"location":"doc/GLib_reference/#Gtk4.GLib.pause_main_loop-Tuple{Any}","page":"GLib Reference","title":"Gtk4.GLib.pause_main_loop","text":"pause_main_loop(f)\n\nPauses the GLib eventloop around a function. Restores the original state of the eventloop after calling the function.\n\n\n\n\n\n","category":"method"},{"location":"doc/GLib_reference/#Gtk4.GLib.propertyinfo-Tuple{Gtk4.GLib.GObject, AbstractString}","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":"method"},{"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.signal_handler_is_connected-Tuple{Gtk4.GLib.GObject, UInt64}","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":"method"},{"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.waitforsignal-Tuple{Gtk4.GLib.GObject, Any}","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.\n\n\n\n\n\n","category":"method"},{"location":"doc/GLib_reference/#Types","page":"GLib Reference","title":"Types","text":"","category":"section"},{"location":"doc/GLib_reference/","page":"GLib Reference","title":"GLib Reference","text":"Modules = [Gtk4.GLib]\nOrder = [:type]\nPublic = true\nPrivate = false","category":"page"},{"location":"doc/GLib_reference/#Gtk4.GLib.AppInfoCreateFlags","page":"GLib Reference","title":"Gtk4.GLib.AppInfoCreateFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.ApplicationFlags","page":"GLib Reference","title":"Gtk4.GLib.ApplicationFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.AskPasswordFlags","page":"GLib Reference","title":"Gtk4.GLib.AskPasswordFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.BindingFlags","page":"GLib Reference","title":"Gtk4.GLib.BindingFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.BookmarkFileError","page":"GLib Reference","title":"Gtk4.GLib.BookmarkFileError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.BusNameOwnerFlags","page":"GLib Reference","title":"Gtk4.GLib.BusNameOwnerFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.BusNameWatcherFlags","page":"GLib Reference","title":"Gtk4.GLib.BusNameWatcherFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.BusType","page":"GLib Reference","title":"Gtk4.GLib.BusType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.ChecksumType","page":"GLib Reference","title":"Gtk4.GLib.ChecksumType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.ConnectFlags","page":"GLib Reference","title":"Gtk4.GLib.ConnectFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.ConvertError","page":"GLib Reference","title":"Gtk4.GLib.ConvertError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.ConverterFlags","page":"GLib Reference","title":"Gtk4.GLib.ConverterFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.ConverterResult","page":"GLib Reference","title":"Gtk4.GLib.ConverterResult","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.CredentialsType","page":"GLib Reference","title":"Gtk4.GLib.CredentialsType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.DBusCallFlags","page":"GLib Reference","title":"Gtk4.GLib.DBusCallFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.DBusCapabilityFlags","page":"GLib Reference","title":"Gtk4.GLib.DBusCapabilityFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.DBusConnectionFlags","page":"GLib Reference","title":"Gtk4.GLib.DBusConnectionFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.DBusError","page":"GLib Reference","title":"Gtk4.GLib.DBusError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.DBusInterfaceSkeletonFlags","page":"GLib Reference","title":"Gtk4.GLib.DBusInterfaceSkeletonFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.DBusMessageByteOrder","page":"GLib Reference","title":"Gtk4.GLib.DBusMessageByteOrder","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.DBusMessageFlags","page":"GLib Reference","title":"Gtk4.GLib.DBusMessageFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.DBusMessageHeaderField","page":"GLib Reference","title":"Gtk4.GLib.DBusMessageHeaderField","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.DBusMessageType","page":"GLib Reference","title":"Gtk4.GLib.DBusMessageType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.DBusObjectManagerClientFlags","page":"GLib Reference","title":"Gtk4.GLib.DBusObjectManagerClientFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.DBusPropertyInfoFlags","page":"GLib Reference","title":"Gtk4.GLib.DBusPropertyInfoFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.DBusProxyFlags","page":"GLib Reference","title":"Gtk4.GLib.DBusProxyFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.DBusSendMessageFlags","page":"GLib Reference","title":"Gtk4.GLib.DBusSendMessageFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.DBusServerFlags","page":"GLib Reference","title":"Gtk4.GLib.DBusServerFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.DBusSignalFlags","page":"GLib Reference","title":"Gtk4.GLib.DBusSignalFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.DBusSubtreeFlags","page":"GLib Reference","title":"Gtk4.GLib.DBusSubtreeFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.DataStreamByteOrder","page":"GLib Reference","title":"Gtk4.GLib.DataStreamByteOrder","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.DataStreamNewlineType","page":"GLib Reference","title":"Gtk4.GLib.DataStreamNewlineType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.DateDMY","page":"GLib Reference","title":"Gtk4.GLib.DateDMY","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.DateMonth","page":"GLib Reference","title":"Gtk4.GLib.DateMonth","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.DateWeekday","page":"GLib Reference","title":"Gtk4.GLib.DateWeekday","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.DriveStartFlags","page":"GLib Reference","title":"Gtk4.GLib.DriveStartFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.DriveStartStopType","page":"GLib Reference","title":"Gtk4.GLib.DriveStartStopType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.EmblemOrigin","page":"GLib Reference","title":"Gtk4.GLib.EmblemOrigin","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.ErrorType","page":"GLib Reference","title":"Gtk4.GLib.ErrorType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.FileAttributeInfoFlags","page":"GLib Reference","title":"Gtk4.GLib.FileAttributeInfoFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.FileAttributeStatus","page":"GLib Reference","title":"Gtk4.GLib.FileAttributeStatus","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.FileAttributeType","page":"GLib Reference","title":"Gtk4.GLib.FileAttributeType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.FileCopyFlags","page":"GLib Reference","title":"Gtk4.GLib.FileCopyFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.FileCreateFlags","page":"GLib Reference","title":"Gtk4.GLib.FileCreateFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.FileError","page":"GLib Reference","title":"Gtk4.GLib.FileError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.FileMeasureFlags","page":"GLib Reference","title":"Gtk4.GLib.FileMeasureFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.FileMonitorEvent","page":"GLib Reference","title":"Gtk4.GLib.FileMonitorEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.FileMonitorFlags","page":"GLib Reference","title":"Gtk4.GLib.FileMonitorFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.FileQueryInfoFlags","page":"GLib Reference","title":"Gtk4.GLib.FileQueryInfoFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.FileSetContentsFlags","page":"GLib Reference","title":"Gtk4.GLib.FileSetContentsFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.FileTest","page":"GLib Reference","title":"Gtk4.GLib.FileTest","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.FileType","page":"GLib Reference","title":"Gtk4.GLib.FileType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.FilesystemPreviewType","page":"GLib Reference","title":"Gtk4.GLib.FilesystemPreviewType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.FormatSizeFlags","page":"GLib Reference","title":"Gtk4.GLib.FormatSizeFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GAppInfoMonitor","page":"GLib Reference","title":"Gtk4.GLib.GAppInfoMonitor","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GAppLaunchContext","page":"GLib Reference","title":"Gtk4.GLib.GAppLaunchContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GApplication","page":"GLib Reference","title":"Gtk4.GLib.GApplication","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GApplicationCommandLine","page":"GLib Reference","title":"Gtk4.GLib.GApplicationCommandLine","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GBinding","page":"GLib Reference","title":"Gtk4.GLib.GBinding","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GBindingGroup","page":"GLib Reference","title":"Gtk4.GLib.GBindingGroup","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GBookmarkFile","page":"GLib Reference","title":"Gtk4.GLib.GBookmarkFile","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GBufferedInputStream","page":"GLib Reference","title":"Gtk4.GLib.GBufferedInputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GBufferedOutputStream","page":"GLib Reference","title":"Gtk4.GLib.GBufferedOutputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GBytes","page":"GLib Reference","title":"Gtk4.GLib.GBytes","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GBytesIcon","page":"GLib Reference","title":"Gtk4.GLib.GBytesIcon","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GCancellable","page":"GLib Reference","title":"Gtk4.GLib.GCancellable","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GCharsetConverter","page":"GLib Reference","title":"Gtk4.GLib.GCharsetConverter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GChecksum","page":"GLib Reference","title":"Gtk4.GLib.GChecksum","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GConverterInputStream","page":"GLib Reference","title":"Gtk4.GLib.GConverterInputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GConverterOutputStream","page":"GLib Reference","title":"Gtk4.GLib.GConverterOutputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GCredentials","page":"GLib Reference","title":"Gtk4.GLib.GCredentials","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GDBusActionGroup","page":"GLib Reference","title":"Gtk4.GLib.GDBusActionGroup","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GDBusAuthObserver","page":"GLib Reference","title":"Gtk4.GLib.GDBusAuthObserver","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GDBusConnection","page":"GLib Reference","title":"Gtk4.GLib.GDBusConnection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GDBusErrorEntry","page":"GLib Reference","title":"Gtk4.GLib.GDBusErrorEntry","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GDBusInterfaceSkeleton","page":"GLib Reference","title":"Gtk4.GLib.GDBusInterfaceSkeleton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GDBusMenuModel","page":"GLib Reference","title":"Gtk4.GLib.GDBusMenuModel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GDBusMessage","page":"GLib Reference","title":"Gtk4.GLib.GDBusMessage","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GDBusMethodInvocation","page":"GLib Reference","title":"Gtk4.GLib.GDBusMethodInvocation","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GDBusObjectManagerClient","page":"GLib Reference","title":"Gtk4.GLib.GDBusObjectManagerClient","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GDBusObjectManagerServer","page":"GLib Reference","title":"Gtk4.GLib.GDBusObjectManagerServer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GDBusObjectProxy","page":"GLib Reference","title":"Gtk4.GLib.GDBusObjectProxy","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GDBusObjectSkeleton","page":"GLib Reference","title":"Gtk4.GLib.GDBusObjectSkeleton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GDBusProxy","page":"GLib Reference","title":"Gtk4.GLib.GDBusProxy","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GDBusServer","page":"GLib Reference","title":"Gtk4.GLib.GDBusServer","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GDataInputStream","page":"GLib Reference","title":"Gtk4.GLib.GDataInputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GDataOutputStream","page":"GLib Reference","title":"Gtk4.GLib.GDataOutputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GDate","page":"GLib Reference","title":"Gtk4.GLib.GDate","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GDateTime","page":"GLib Reference","title":"Gtk4.GLib.GDateTime","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GDebugKey","page":"GLib Reference","title":"Gtk4.GLib.GDebugKey","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GDesktopAppInfo","page":"GLib Reference","title":"Gtk4.GLib.GDesktopAppInfo","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GEmblem","page":"GLib Reference","title":"Gtk4.GLib.GEmblem","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GEmblemedIcon","page":"GLib Reference","title":"Gtk4.GLib.GEmblemedIcon","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GEnumClass","page":"GLib Reference","title":"Gtk4.GLib.GEnumClass","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GFileAttributeInfo","page":"GLib Reference","title":"Gtk4.GLib.GFileAttributeInfo","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GFileAttributeInfoList","page":"GLib Reference","title":"Gtk4.GLib.GFileAttributeInfoList","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GFileAttributeMatcher","page":"GLib Reference","title":"Gtk4.GLib.GFileAttributeMatcher","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GFileEnumerator","page":"GLib Reference","title":"Gtk4.GLib.GFileEnumerator","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GFileIOStream","page":"GLib Reference","title":"Gtk4.GLib.GFileIOStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GFileIcon","page":"GLib Reference","title":"Gtk4.GLib.GFileIcon","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GFileInfo","page":"GLib Reference","title":"Gtk4.GLib.GFileInfo","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GFileInputStream","page":"GLib Reference","title":"Gtk4.GLib.GFileInputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GFileMonitor","page":"GLib Reference","title":"Gtk4.GLib.GFileMonitor","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GFileOutputStream","page":"GLib Reference","title":"Gtk4.GLib.GFileOutputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GFilenameCompleter","page":"GLib Reference","title":"Gtk4.GLib.GFilenameCompleter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GFilterInputStream","page":"GLib Reference","title":"Gtk4.GLib.GFilterInputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GFilterOutputStream","page":"GLib Reference","title":"Gtk4.GLib.GFilterOutputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GFlagsClass","page":"GLib Reference","title":"Gtk4.GLib.GFlagsClass","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GIOModule","page":"GLib Reference","title":"Gtk4.GLib.GIOModule","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GIOStream","page":"GLib Reference","title":"Gtk4.GLib.GIOStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GInetAddress","page":"GLib Reference","title":"Gtk4.GLib.GInetAddress","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GInetAddressMask","page":"GLib Reference","title":"Gtk4.GLib.GInetAddressMask","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GInetSocketAddress","page":"GLib Reference","title":"Gtk4.GLib.GInetSocketAddress","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GInitiallyUnowned","page":"GLib Reference","title":"Gtk4.GLib.GInitiallyUnowned","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GInputStream","page":"GLib Reference","title":"Gtk4.GLib.GInputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GInputVector","page":"GLib Reference","title":"Gtk4.GLib.GInputVector","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GKeyFile","page":"GLib Reference","title":"Gtk4.GLib.GKeyFile","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GListStore","page":"GLib Reference","title":"Gtk4.GLib.GListStore","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GLogField","page":"GLib Reference","title":"Gtk4.GLib.GLogField","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GMainContext","page":"GLib Reference","title":"Gtk4.GLib.GMainContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GMainLoop","page":"GLib Reference","title":"Gtk4.GLib.GMainLoop","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GMappedFile","page":"GLib Reference","title":"Gtk4.GLib.GMappedFile","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GMarkupParseContext","page":"GLib Reference","title":"Gtk4.GLib.GMarkupParseContext","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GMatchInfo","page":"GLib Reference","title":"Gtk4.GLib.GMatchInfo","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GMemoryInputStream","page":"GLib Reference","title":"Gtk4.GLib.GMemoryInputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GMemoryOutputStream","page":"GLib Reference","title":"Gtk4.GLib.GMemoryOutputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GMenu","page":"GLib Reference","title":"Gtk4.GLib.GMenu","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GMenuAttributeIter","page":"GLib Reference","title":"Gtk4.GLib.GMenuAttributeIter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GMenuItem","page":"GLib Reference","title":"Gtk4.GLib.GMenuItem","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GMenuLinkIter","page":"GLib Reference","title":"Gtk4.GLib.GMenuLinkIter","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GMenuModel","page":"GLib Reference","title":"Gtk4.GLib.GMenuModel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GMountOperation","page":"GLib Reference","title":"Gtk4.GLib.GMountOperation","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GNativeSocketAddress","page":"GLib Reference","title":"Gtk4.GLib.GNativeSocketAddress","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GNetworkAddress","page":"GLib Reference","title":"Gtk4.GLib.GNetworkAddress","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GNetworkService","page":"GLib Reference","title":"Gtk4.GLib.GNetworkService","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GNotification","page":"GLib Reference","title":"Gtk4.GLib.GNotification","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GOptionEntry","page":"GLib Reference","title":"Gtk4.GLib.GOptionEntry","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GOutputStream","page":"GLib Reference","title":"Gtk4.GLib.GOutputStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GOutputVector","page":"GLib Reference","title":"Gtk4.GLib.GOutputVector","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GPatternSpec","page":"GLib Reference","title":"Gtk4.GLib.GPatternSpec","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GPermission","page":"GLib Reference","title":"Gtk4.GLib.GPermission","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GPropertyAction","page":"GLib Reference","title":"Gtk4.GLib.GPropertyAction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GProxyAddress","page":"GLib Reference","title":"Gtk4.GLib.GProxyAddress","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GProxyAddressEnumerator","page":"GLib Reference","title":"Gtk4.GLib.GProxyAddressEnumerator","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GRegex","page":"GLib Reference","title":"Gtk4.GLib.GRegex","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GResolver","page":"GLib Reference","title":"Gtk4.GLib.GResolver","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GResource","page":"GLib Reference","title":"Gtk4.GLib.GResource","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GScannerConfig","page":"GLib Reference","title":"Gtk4.GLib.GScannerConfig","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSettings","page":"GLib Reference","title":"Gtk4.GLib.GSettings","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSettingsBackend","page":"GLib Reference","title":"Gtk4.GLib.GSettingsBackend","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSettingsSchema","page":"GLib Reference","title":"Gtk4.GLib.GSettingsSchema","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSettingsSchemaKey","page":"GLib Reference","title":"Gtk4.GLib.GSettingsSchemaKey","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSettingsSchemaSource","page":"GLib Reference","title":"Gtk4.GLib.GSettingsSchemaSource","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSignalInvocationHint","page":"GLib Reference","title":"Gtk4.GLib.GSignalInvocationHint","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSignalQuery","page":"GLib Reference","title":"Gtk4.GLib.GSignalQuery","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"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.GSimpleActionGroup","page":"GLib Reference","title":"Gtk4.GLib.GSimpleActionGroup","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSimpleAsyncResult","page":"GLib Reference","title":"Gtk4.GLib.GSimpleAsyncResult","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSimpleIOStream","page":"GLib Reference","title":"Gtk4.GLib.GSimpleIOStream","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSimplePermission","page":"GLib Reference","title":"Gtk4.GLib.GSimplePermission","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSimpleProxyResolver","page":"GLib Reference","title":"Gtk4.GLib.GSimpleProxyResolver","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSocket","page":"GLib Reference","title":"Gtk4.GLib.GSocket","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSocketAddress","page":"GLib Reference","title":"Gtk4.GLib.GSocketAddress","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSocketAddressEnumerator","page":"GLib Reference","title":"Gtk4.GLib.GSocketAddressEnumerator","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSocketClient","page":"GLib Reference","title":"Gtk4.GLib.GSocketClient","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSocketConnection","page":"GLib Reference","title":"Gtk4.GLib.GSocketConnection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSocketControlMessage","page":"GLib Reference","title":"Gtk4.GLib.GSocketControlMessage","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSocketListener","page":"GLib Reference","title":"Gtk4.GLib.GSocketListener","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSocketService","page":"GLib Reference","title":"Gtk4.GLib.GSocketService","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSource","page":"GLib Reference","title":"Gtk4.GLib.GSource","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSourceCallbackFuncs","page":"GLib Reference","title":"Gtk4.GLib.GSourceCallbackFuncs","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSrvTarget","page":"GLib Reference","title":"Gtk4.GLib.GSrvTarget","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GString","page":"GLib Reference","title":"Gtk4.GLib.GString","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSubprocess","page":"GLib Reference","title":"Gtk4.GLib.GSubprocess","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GSubprocessLauncher","page":"GLib Reference","title":"Gtk4.GLib.GSubprocessLauncher","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GTask","page":"GLib Reference","title":"Gtk4.GLib.GTask","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GTcpConnection","page":"GLib Reference","title":"Gtk4.GLib.GTcpConnection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GTcpWrapperConnection","page":"GLib Reference","title":"Gtk4.GLib.GTcpWrapperConnection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GTestDBus","page":"GLib Reference","title":"Gtk4.GLib.GTestDBus","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GThemedIcon","page":"GLib Reference","title":"Gtk4.GLib.GThemedIcon","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GThreadedResolver","page":"GLib Reference","title":"Gtk4.GLib.GThreadedResolver","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GThreadedSocketService","page":"GLib Reference","title":"Gtk4.GLib.GThreadedSocketService","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GTimeZone","page":"GLib Reference","title":"Gtk4.GLib.GTimeZone","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GTlsCertificate","page":"GLib Reference","title":"Gtk4.GLib.GTlsCertificate","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GTlsConnection","page":"GLib Reference","title":"Gtk4.GLib.GTlsConnection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GTlsDatabase","page":"GLib Reference","title":"Gtk4.GLib.GTlsDatabase","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GTlsInteraction","page":"GLib Reference","title":"Gtk4.GLib.GTlsInteraction","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GTlsPassword","page":"GLib Reference","title":"Gtk4.GLib.GTlsPassword","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GTypeFundamentalInfo","page":"GLib Reference","title":"Gtk4.GLib.GTypeFundamentalInfo","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GTypeInfo","page":"GLib Reference","title":"Gtk4.GLib.GTypeInfo","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GTypeModule","page":"GLib Reference","title":"Gtk4.GLib.GTypeModule","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GTypePluginClass","page":"GLib Reference","title":"Gtk4.GLib.GTypePluginClass","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GTypeQuery","page":"GLib Reference","title":"Gtk4.GLib.GTypeQuery","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GUnixConnection","page":"GLib Reference","title":"Gtk4.GLib.GUnixConnection","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GUnixCredentialsMessage","page":"GLib Reference","title":"Gtk4.GLib.GUnixCredentialsMessage","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GUri","page":"GLib Reference","title":"Gtk4.GLib.GUri","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GValueArray","page":"GLib Reference","title":"Gtk4.GLib.GValueArray","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GVariantBuilder","page":"GLib Reference","title":"Gtk4.GLib.GVariantBuilder","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GVariantDict","page":"GLib Reference","title":"Gtk4.GLib.GVariantDict","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GVariantType","page":"GLib Reference","title":"Gtk4.GLib.GVariantType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GVfs","page":"GLib Reference","title":"Gtk4.GLib.GVfs","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GVolumeMonitor","page":"GLib Reference","title":"Gtk4.GLib.GVolumeMonitor","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GXdpDocumentsIface","page":"GLib Reference","title":"Gtk4.GLib.GXdpDocumentsIface","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GXdpOpenURIIface","page":"GLib Reference","title":"Gtk4.GLib.GXdpOpenURIIface","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GXdpProxyResolverIface","page":"GLib Reference","title":"Gtk4.GLib.GXdpProxyResolverIface","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GXdpTrashIface","page":"GLib Reference","title":"Gtk4.GLib.GXdpTrashIface","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GZlibCompressor","page":"GLib Reference","title":"Gtk4.GLib.GZlibCompressor","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.GZlibDecompressor","page":"GLib Reference","title":"Gtk4.GLib.GZlibDecompressor","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.G_FreedesktopDBusIface","page":"GLib Reference","title":"Gtk4.GLib.G_FreedesktopDBusIface","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.G_FreedesktopDBusProxy","page":"GLib Reference","title":"Gtk4.GLib.G_FreedesktopDBusProxy","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.G_FreedesktopDBusSkeleton","page":"GLib Reference","title":"Gtk4.GLib.G_FreedesktopDBusSkeleton","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.HookFlagMask","page":"GLib Reference","title":"Gtk4.GLib.HookFlagMask","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.IOChannelError","page":"GLib Reference","title":"Gtk4.GLib.IOChannelError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.IOCondition","page":"GLib Reference","title":"Gtk4.GLib.IOCondition","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.IOError","page":"GLib Reference","title":"Gtk4.GLib.IOError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.IOErrorEnum","page":"GLib Reference","title":"Gtk4.GLib.IOErrorEnum","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.IOFlags","page":"GLib Reference","title":"Gtk4.GLib.IOFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.IOModuleScopeFlags","page":"GLib Reference","title":"Gtk4.GLib.IOModuleScopeFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.IOStatus","page":"GLib Reference","title":"Gtk4.GLib.IOStatus","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.IOStreamSpliceFlags","page":"GLib Reference","title":"Gtk4.GLib.IOStreamSpliceFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.KeyFileError","page":"GLib Reference","title":"Gtk4.GLib.KeyFileError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.KeyFileFlags","page":"GLib Reference","title":"Gtk4.GLib.KeyFileFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.LogLevelFlags","page":"GLib Reference","title":"Gtk4.GLib.LogLevelFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.LogWriterOutput","page":"GLib Reference","title":"Gtk4.GLib.LogWriterOutput","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.MainContextFlags","page":"GLib Reference","title":"Gtk4.GLib.MainContextFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.MarkupCollectType","page":"GLib Reference","title":"Gtk4.GLib.MarkupCollectType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.MarkupError","page":"GLib Reference","title":"Gtk4.GLib.MarkupError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.MarkupParseFlags","page":"GLib Reference","title":"Gtk4.GLib.MarkupParseFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.MemoryMonitorWarningLevel","page":"GLib Reference","title":"Gtk4.GLib.MemoryMonitorWarningLevel","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.MountMountFlags","page":"GLib Reference","title":"Gtk4.GLib.MountMountFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.MountOperationResult","page":"GLib Reference","title":"Gtk4.GLib.MountOperationResult","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.MountUnmountFlags","page":"GLib Reference","title":"Gtk4.GLib.MountUnmountFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.NetworkConnectivity","page":"GLib Reference","title":"Gtk4.GLib.NetworkConnectivity","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.NormalizeMode","page":"GLib Reference","title":"Gtk4.GLib.NormalizeMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.NotificationPriority","page":"GLib Reference","title":"Gtk4.GLib.NotificationPriority","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.NumberParserError","page":"GLib Reference","title":"Gtk4.GLib.NumberParserError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.OnceStatus","page":"GLib Reference","title":"Gtk4.GLib.OnceStatus","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.OptionArg","page":"GLib Reference","title":"Gtk4.GLib.OptionArg","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.OptionError","page":"GLib Reference","title":"Gtk4.GLib.OptionError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.OptionFlags","page":"GLib Reference","title":"Gtk4.GLib.OptionFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.OutputStreamSpliceFlags","page":"GLib Reference","title":"Gtk4.GLib.OutputStreamSpliceFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.ParamFlags","page":"GLib Reference","title":"Gtk4.GLib.ParamFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.PasswordSave","page":"GLib Reference","title":"Gtk4.GLib.PasswordSave","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.PollableReturn","page":"GLib Reference","title":"Gtk4.GLib.PollableReturn","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.RegexCompileFlags","page":"GLib Reference","title":"Gtk4.GLib.RegexCompileFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.RegexError","page":"GLib Reference","title":"Gtk4.GLib.RegexError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.RegexMatchFlags","page":"GLib Reference","title":"Gtk4.GLib.RegexMatchFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.ResolverError","page":"GLib Reference","title":"Gtk4.GLib.ResolverError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.ResolverNameLookupFlags","page":"GLib Reference","title":"Gtk4.GLib.ResolverNameLookupFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.ResolverRecordType","page":"GLib Reference","title":"Gtk4.GLib.ResolverRecordType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.ResourceError","page":"GLib Reference","title":"Gtk4.GLib.ResourceError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.ResourceFlags","page":"GLib Reference","title":"Gtk4.GLib.ResourceFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.ResourceLookupFlags","page":"GLib Reference","title":"Gtk4.GLib.ResourceLookupFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.SeekType","page":"GLib Reference","title":"Gtk4.GLib.SeekType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.SettingsBindFlags","page":"GLib Reference","title":"Gtk4.GLib.SettingsBindFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.ShellError","page":"GLib Reference","title":"Gtk4.GLib.ShellError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.SignalFlags","page":"GLib Reference","title":"Gtk4.GLib.SignalFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.SignalMatchType","page":"GLib Reference","title":"Gtk4.GLib.SignalMatchType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.SocketClientEvent","page":"GLib Reference","title":"Gtk4.GLib.SocketClientEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.SocketFamily","page":"GLib Reference","title":"Gtk4.GLib.SocketFamily","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.SocketListenerEvent","page":"GLib Reference","title":"Gtk4.GLib.SocketListenerEvent","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.SocketMsgFlags","page":"GLib Reference","title":"Gtk4.GLib.SocketMsgFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.SocketProtocol","page":"GLib Reference","title":"Gtk4.GLib.SocketProtocol","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.SocketType","page":"GLib Reference","title":"Gtk4.GLib.SocketType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.SpawnError","page":"GLib Reference","title":"Gtk4.GLib.SpawnError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.SpawnFlags","page":"GLib Reference","title":"Gtk4.GLib.SpawnFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.SubprocessFlags","page":"GLib Reference","title":"Gtk4.GLib.SubprocessFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.TestDBusFlags","page":"GLib Reference","title":"Gtk4.GLib.TestDBusFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.TestFileType","page":"GLib Reference","title":"Gtk4.GLib.TestFileType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.TestSubprocessFlags","page":"GLib Reference","title":"Gtk4.GLib.TestSubprocessFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.ThreadError","page":"GLib Reference","title":"Gtk4.GLib.ThreadError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.TimeType","page":"GLib Reference","title":"Gtk4.GLib.TimeType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.TlsAuthenticationMode","page":"GLib Reference","title":"Gtk4.GLib.TlsAuthenticationMode","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.TlsCertificateFlags","page":"GLib Reference","title":"Gtk4.GLib.TlsCertificateFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.TlsCertificateRequestFlags","page":"GLib Reference","title":"Gtk4.GLib.TlsCertificateRequestFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.TlsChannelBindingError","page":"GLib Reference","title":"Gtk4.GLib.TlsChannelBindingError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.TlsChannelBindingType","page":"GLib Reference","title":"Gtk4.GLib.TlsChannelBindingType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.TlsDatabaseLookupFlags","page":"GLib Reference","title":"Gtk4.GLib.TlsDatabaseLookupFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.TlsDatabaseVerifyFlags","page":"GLib Reference","title":"Gtk4.GLib.TlsDatabaseVerifyFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.TlsError","page":"GLib Reference","title":"Gtk4.GLib.TlsError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.TlsInteractionResult","page":"GLib Reference","title":"Gtk4.GLib.TlsInteractionResult","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.TlsPasswordFlags","page":"GLib Reference","title":"Gtk4.GLib.TlsPasswordFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.TlsProtocolVersion","page":"GLib Reference","title":"Gtk4.GLib.TlsProtocolVersion","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.TokenType","page":"GLib Reference","title":"Gtk4.GLib.TokenType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.TraverseFlags","page":"GLib Reference","title":"Gtk4.GLib.TraverseFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.TraverseType","page":"GLib Reference","title":"Gtk4.GLib.TraverseType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.TypeFlags","page":"GLib Reference","title":"Gtk4.GLib.TypeFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.TypeFundamentalFlags","page":"GLib Reference","title":"Gtk4.GLib.TypeFundamentalFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.UnicodeBreakType","page":"GLib Reference","title":"Gtk4.GLib.UnicodeBreakType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.UnicodeScript","page":"GLib Reference","title":"Gtk4.GLib.UnicodeScript","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.UnicodeType","page":"GLib Reference","title":"Gtk4.GLib.UnicodeType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.UnixSocketAddressType","page":"GLib Reference","title":"Gtk4.GLib.UnixSocketAddressType","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.UriError","page":"GLib Reference","title":"Gtk4.GLib.UriError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.UriFlags","page":"GLib Reference","title":"Gtk4.GLib.UriFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.UriHideFlags","page":"GLib Reference","title":"Gtk4.GLib.UriHideFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.UriParamsFlags","page":"GLib Reference","title":"Gtk4.GLib.UriParamsFlags","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.UserDirectory","page":"GLib Reference","title":"Gtk4.GLib.UserDirectory","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.VariantClass","page":"GLib Reference","title":"Gtk4.GLib.VariantClass","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.VariantParseError","page":"GLib Reference","title":"Gtk4.GLib.VariantParseError","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"location":"doc/GLib_reference/#Gtk4.GLib.ZlibCompressorFormat","page":"GLib Reference","title":"Gtk4.GLib.ZlibCompressorFormat","text":"See the GTK docs.\n\n\n\n\n\n","category":"type"},{"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 by hand).","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 False\n 1\n 1\n False\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":"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\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":"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.","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","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","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/#Search-Entry","page":"Text Widgets","title":"Search Entry","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":"See Getting Started for an introduction to using the package, adapted from the Gtk.jl manual.\nSee 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 was 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"}]
}