Widget

open class Widget(pointer: <Error class: unknown class><<Error class: unknown class>>) : Accessible, Buildable, ConstraintTarget

The base class for all widgets.

GtkWidget is the base class all widgets in GTK derive from. It manages the widget lifecycle, layout, states and style.

Height-for-width Geometry Management

GTK uses a height-for-width (and width-for-height) geometry management system. Height-for-width means that a widget can change how much vertical space it needs, depending on the amount of horizontal space that it is given (and similar for width-for-height). The most common example is a label that reflows to fill up the available width, wraps to fewer lines, and therefore needs less height.

Height-for-width geometry management is implemented in GTK by way of two virtual methods:

  • vfunc@Gtk.Widget.get_request_mode

  • vfunc@Gtk.Widget.measure

There are some important things to keep in mind when implementing height-for-width and when using it in widget implementations.

If you implement a direct GtkWidget subclass that supports height-for-width or width-for-height geometry management for itself or its child widgets, the vfunc@Gtk.Widget.get_request_mode virtual function must be implemented as well and return the widget's preferred request mode. The default implementation of this virtual function returns %GTK_SIZE_REQUEST_CONSTANT_SIZE, which means that the widget will only ever get -1 passed as the for_size value to its vfunc@Gtk.Widget.measure implementation.

The geometry management system will query a widget hierarchy in only one orientation at a time. When widgets are initially queried for their minimum sizes it is generally done in two initial passes in the enum@Gtk.SizeRequestMode chosen by the toplevel.

For example, when queried in the normal %GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH mode:

First, the default minimum and natural width for each widget in the interface will be computed using method@Gtk.Widget.measure with an orientation of %GTK_ORIENTATION_HORIZONTAL and a for_size of -1. Because the preferred widths for each widget depend on the preferred widths of their children, this information propagates up the hierarchy, and finally a minimum and natural width is determined for the entire toplevel. Next, the toplevel will use the minimum width to query for the minimum height contextual to that width using method@Gtk.Widget.measure with an orientation of %GTK_ORIENTATION_VERTICAL and a for_size of the just computed width. This will also be a highly recursive operation. The minimum height for the minimum width is normally used to set the minimum size constraint on the toplevel.

After the toplevel window has initially requested its size in both dimensions it can go on to allocate itself a reasonable size (or a size previously specified with method@Gtk.Window.set_default_size). During the recursive allocation process it’s important to note that request cycles will be recursively executed while widgets allocate their children. Each widget, once allocated a size, will go on to first share the space in one orientation among its children and then request each child's height for its target allocated width or its width for allocated height, depending. In this way a GtkWidget will typically be requested its size a number of times before actually being allocated a size. The size a widget is finally allocated can of course differ from the size it has requested. For this reason, GtkWidget caches a small number of results to avoid re-querying for the same sizes in one allocation cycle.

If a widget does move content around to intelligently use up the allocated size then it must support the request in both GtkSizeRequestModes even if the widget in question only trades sizes in a single orientation.

For instance, a class@Gtk.Label that does height-for-width word wrapping will not expect to have vfunc@Gtk.Widget.measure with an orientation of %GTK_ORIENTATION_VERTICAL called because that call is specific to a width-for-height request. In this case the label must return the height required for its own minimum possible width. By following this rule any widget that handles height-for-width or width-for-height requests will always be allocated at least enough space to fit its own content.

Here are some examples of how a %GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH widget generally deals with width-for-height requests:

static void
foo_widget_measure (GtkWidget *widget,
GtkOrientation orientation,
int for_size,
int *minimum_size,
int *natural_size,
int *minimum_baseline,
int *natural_baseline)
{
if (orientation == GTK_ORIENTATION_HORIZONTAL)
{
// Calculate minimum and natural width
}
else // VERTICAL
{
if (i_am_in_height_for_width_mode)
{
int min_width, dummy;

// First, get the minimum width of our widget
GTK_WIDGET_GET_CLASS (widget)->measure (widget, GTK_ORIENTATION_HORIZONTAL, -1,
&min_width, &dummy, &dummy, &dummy);

// Now use the minimum width to retrieve the minimum and natural height to display
// that width.
GTK_WIDGET_GET_CLASS (widget)->measure (widget, GTK_ORIENTATION_VERTICAL, min_width,
minimum_size, natural_size, &dummy, &dummy);
}
else
{
// ... some widgets do both.
}
}
}

Often a widget needs to get its own request during size request or allocation. For example, when computing height it may need to also compute width. Or when deciding how to use an allocation, the widget may need to know its natural size. In these cases, the widget should be careful to call its virtual methods directly, like in the code example above.

It will not work to use the wrapper function method@Gtk.Widget.measure inside your own vfunc@Gtk.Widget.size_allocate implementation. These return a request adjusted by class@Gtk.SizeGroup, the widget's align and expand flags, as well as its CSS style.

If a widget used the wrappers inside its virtual method implementations, then the adjustments (such as widget margins) would be applied twice. GTK therefore does not allow this and will warn if you try to do it.

Of course if you are getting the size request for another widget, such as a child widget, you must use method@Gtk.Widget.measure; otherwise, you would not properly consider widget margins, class@Gtk.SizeGroup, and so forth.

GTK also supports baseline vertical alignment of widgets. This means that widgets are positioned such that the typographical baseline of widgets in the same row are aligned. This happens if a widget supports baselines, has a vertical alignment using baselines, and is inside a widget that supports baselines and has a natural “row” that it aligns to the baseline, or a baseline assigned to it by the grandparent.

Baseline alignment support for a widget is also done by the vfunc@Gtk.Widget.measure virtual function. It allows you to report both a minimum and natural size.

If a widget ends up baseline aligned it will be allocated all the space in the parent as if it was %GTK_ALIGN_FILL, but the selected baseline can be found via method@Gtk.Widget.get_baseline. If the baseline has a value other than -1 you need to align the widget such that the baseline appears at the position.

GtkWidget as GtkBuildable

The GtkWidget implementation of the GtkBuildable interface supports various custom elements to specify additional aspects of widgets that are not directly expressed as properties.

If the widget uses a class@Gtk.LayoutManager, GtkWidget supports a custom <layout> element, used to define layout properties:

<object class="GtkGrid" id="my_grid">
<child>
<object class="GtkLabel" id="label1">
<property name="label">Description</property>
<layout>
<property name="column">0</property>
<property name="row">0</property>
<property name="row-span">1</property>
<property name="column-span">1</property>
</layout>
</object>
</child>
<child>
<object class="GtkEntry" id="description_entry">
<layout>
<property name="column">1</property>
<property name="row">0</property>
<property name="row-span">1</property>
<property name="column-span">1</property>
</layout>
</object>
</child>
</object>

GtkWidget allows style information such as style classes to be associated with widgets, using the custom <style> element:

<object class="GtkButton" id="button1">
<style>
<class name="my-special-button-class"/>
<class name="dark-button"/>
</style>
</object>

GtkWidget allows defining accessibility information, such as properties, relations, and states, using the custom <accessibility> element:

<object class="GtkButton" id="button1">
<accessibility>
<property name="label">Download</property>
<relation name="labelled-by">label1</relation>
</accessibility>
</object>

Building composite widgets from template XML

GtkWidget exposes some facilities to automate the procedure of creating composite widgets using "templates".

To create composite widgets with GtkBuilder XML, one must associate the interface description with the widget class at class initialization time using method@Gtk.WidgetClass.set_template.

The interface description semantics expected in composite template descriptions is slightly different from regular class@Gtk.Builder XML.

Unlike regular interface descriptions, method@Gtk.WidgetClass.set_template will expect a <template> tag as a direct child of the toplevel <interface> tag. The <template> tag must specify the “class” attribute which must be the type name of the widget. Optionally, the “parent” attribute may be specified to specify the direct parent type of the widget type; this is ignored by GtkBuilder but can be used by UI design tools to introspect what kind of properties and internal children exist for a given type when the actual type does not exist.

The XML which is contained inside the <template> tag behaves as if it were added to the <object> tag defining the widget itself. You may set properties on a widget by inserting <property> tags into the <template> tag, and also add <child> tags to add children and extend a widget in the normal way you would with <object> tags.

Additionally, <object> tags can also be added before and after the initial <template> tag in the normal way, allowing one to define auxiliary objects which might be referenced by other widgets declared as children of the <template> tag.

Since, unlike the <object> tag, the <template> tag does not contain an “id” attribute, if you need to refer to the instance of the object itself that the template will create, simply refer to the template class name in an applicable element content.

Here is an example of a template definition, which includes an example of this in the <signal> tag:

<interface>
<template class="FooWidget" parent="GtkBox">
<property name="orientation">horizontal</property>
<property name="spacing">4</property>
<child>
<object class="GtkButton" id="hello_button">
<property name="label">Hello World</property>
<signal name="clicked" handler="hello_button_clicked" object="FooWidget" swapped="yes"/>
</object>
</child>
<child>
<object class="GtkButton" id="goodbye_button">
<property name="label">Goodbye World</property>
</object>
</child>
</template>
</interface>

Typically, you'll place the template fragment into a file that is bundled with your project, using GResource. In order to load the template, you need to call method@Gtk.WidgetClass.set_template_from_resource from the class initialization of your GtkWidget type:

static void
foo_widget_class_init (FooWidgetClass *klass)
{
// ...

gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (klass),
"/com/example/ui/foowidget.ui");
}

You will also need to call method@Gtk.Widget.init_template from the instance initialization function:

static void
foo_widget_init (FooWidget *self)
{
gtk_widget_init_template (GTK_WIDGET (self));

// Initialize the rest of the widget...
}

as well as calling method@Gtk.Widget.dispose_template from the dispose function:

static void
foo_widget_dispose (GObject *gobject)
{
FooWidget *self = FOO_WIDGET (gobject);

// Dispose objects for which you have a reference...

// Clear the template children for this widget type
gtk_widget_dispose_template (GTK_WIDGET (self), FOO_TYPE_WIDGET);

G_OBJECT_CLASS (foo_widget_parent_class)->dispose (gobject);
}

You can access widgets defined in the template using the method@Gtk.Widget.get_template_child function, but you will typically declare a pointer in the instance private data structure of your type using the same name as the widget in the template definition, and call method@Gtk.WidgetClass.bind_template_child_full (or one of its wrapper macros func@Gtk.widget_class_bind_template_child and func@Gtk.widget_class_bind_template_child_private) with that name, e.g.

typedef struct {
GtkWidget *hello_button;
GtkWidget *goodbye_button;
} FooWidgetPrivate;

G_DEFINE_TYPE_WITH_PRIVATE (FooWidget, foo_widget, GTK_TYPE_BOX)

static void
foo_widget_dispose (GObject *gobject)
{
gtk_widget_dispose_template (GTK_WIDGET (gobject), FOO_TYPE_WIDGET);

G_OBJECT_CLASS (foo_widget_parent_class)->dispose (gobject);
}

static void
foo_widget_class_init (FooWidgetClass *klass)
{
// ...
G_OBJECT_CLASS (klass)->dispose = foo_widget_dispose;

gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (klass),
"/com/example/ui/foowidget.ui");
gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (klass),
FooWidget, hello_button);
gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (klass),
FooWidget, goodbye_button);
}

static void
foo_widget_init (FooWidget *widget)
{
gtk_widget_init_template (GTK_WIDGET (widget));
}

You can also use method@Gtk.WidgetClass.bind_template_callback_full (or is wrapper macro func@Gtk.widget_class_bind_template_callback) to connect a signal callback defined in the template with a function visible in the scope of the class, e.g.

// the signal handler has the instance and user data swapped
// because of the swapped="yes" attribute in the template XML
static void
hello_button_clicked (FooWidget *self,
GtkButton *button)
{
g_print ("Hello, world!\n");
}

static void
foo_widget_class_init (FooWidgetClass *klass)
{
// ...
gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (klass),
"/com/example/ui/foowidget.ui");
gtk_widget_class_bind_template_callback (GTK_WIDGET_CLASS (klass), hello_button_clicked);
}

Skipped during bindings generation

  • parameter allocation: allocation: Out parameter is not supported

  • method get_font_options: Return type cairo.FontOptions is unsupported

  • parameter width: width: Out parameter is not supported

  • parameter minimum: minimum: Out parameter is not supported

  • parameter options: cairo.FontOptions

  • parameter allocation: Gdk.Rectangle

  • parameter snapshot: missing cType for GirClass Snapshot

  • parameter dest_x: dest_x: Out parameter is not supported

  • method has-default: Property has no getter nor setter

  • method has-focus: Property has no getter nor setter

  • method height-request: Property has no getter nor setter

  • method sensitive: Property has no getter

  • method visible: Property has no getter

  • method width-request: Property has no getter nor setter

Inheritors

Constructors

Link copied to clipboard
constructor(pointer: <Error class: unknown class><<Error class: unknown class>>)

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard

The accessible role of the given GtkAccessible implementation.

Link copied to clipboard
open var canFocus: Boolean

Whether the widget or any of its descendents can accept the input focus.

Link copied to clipboard
open var canTarget: Boolean

Whether the widget can receive pointer events.

Link copied to clipboard

A list of css classes applied to this widget.

Link copied to clipboard
open val cssName: String

The name of this widget in the CSS tree.

Link copied to clipboard
open var cursor: <Error class: unknown class>?

The cursor used by @widget.

Link copied to clipboard
open var focusable: Boolean

Whether this widget itself will accept the input focus.

Link copied to clipboard

Whether the widget should grab focus when it is clicked with the mouse.

Link copied to clipboard
open override val gtkAccessiblePointer: <Error class: unknown class><<Error class: unknown class>>
Link copied to clipboard
open override val gtkBuildablePointer: <Error class: unknown class><<Error class: unknown class>>
Link copied to clipboard
open override val gtkConstraintTargetPointer: <Error class: unknown class><<Error class: unknown class>>
Link copied to clipboard
val gtkWidgetPointer: <Error class: unknown class><<Error class: unknown class>>
Link copied to clipboard
open var halign: Align

How to distribute horizontal space if widget gets extra space.

Link copied to clipboard

Enables or disables the emission of the ::query-tooltip signal on @widget.

Link copied to clipboard
open var hexpand: Boolean

Whether to expand horizontally.

Link copied to clipboard

Whether to use the hexpand property.

Link copied to clipboard

The GtkLayoutManager instance to use to compute the preferred size of the widget, and allocate its children.

Link copied to clipboard
open var marginBottom: <Error class: unknown class>

Margin on bottom side of widget.

Link copied to clipboard
open var marginEnd: <Error class: unknown class>

Margin on end of widget, horizontally.

Link copied to clipboard
open var marginStart: <Error class: unknown class>

Margin on start of widget, horizontally.

Link copied to clipboard
open var marginTop: <Error class: unknown class>

Margin on top side of widget.

Link copied to clipboard
open var name: String

The name of the widget.

Link copied to clipboard
open var opacity: <Error class: unknown class>

The requested opacity of the widget.

Link copied to clipboard
open var overflow: Overflow

How content outside the widget's content area is treated.

Link copied to clipboard
open val parent: Widget?

The parent widget of this widget.

Link copied to clipboard

Whether the widget will receive the default action when it is focused.

Link copied to clipboard
open val root: Root?

The GtkRoot widget of the widget tree containing this widget.

Link copied to clipboard
open val scaleFactor: <Error class: unknown class>

The scale factor of the widget.

Link copied to clipboard

Sets the text of tooltip to be the given string, which is marked up with Pango markup.

Link copied to clipboard
open var tooltipText: String?

Sets the text of tooltip to be the given string.

Link copied to clipboard
open var valign: Align

How to distribute vertical space if widget gets extra space.

Link copied to clipboard
open var vexpand: Boolean

Whether to expand vertically.

Link copied to clipboard

Whether to use the vexpand property.

Functions

Link copied to clipboard
open fun actionSetEnabled(actionName: String, enabled: Boolean)

Enable or disable an action installed with gtk_widget_class_install_action().

Link copied to clipboard
open fun activateActionIfExists(name: String, args: <Error class: unknown class>? = null): Boolean

Looks up the action in the action groups associated with

Link copied to clipboard
open fun activateDefault()

Activates the default.activate action from @widget.

Link copied to clipboard

For widgets that can be “activated” (buttons, menu items, etc.), this function activates them.

Link copied to clipboard
open fun addController(controller: EventController)

Adds @controller to @widget so that it will receive events.

Link copied to clipboard
open fun addCssClass(cssClass: String)

Adds a style class to @widget.

Link copied to clipboard
open fun addMnemonicLabel(label: Widget)

Adds a widget to the list of mnemonic labels for this widget.

Link copied to clipboard
open fun addTickCallback(callback: TickCallback): <Error class: unknown class>

Queues an animation frame update and adds a callback to be called before each frame.

Link copied to clipboard
open fun allocate(width: <Error class: unknown class>, height: <Error class: unknown class>, baseline: <Error class: unknown class>, transform: <Error class: unknown class>? = null)

This function is only used by GtkWidget subclasses, to assign a size, position and (optionally) baseline to their child widgets.

Link copied to clipboard
open fun announce(message: String, priority: AccessibleAnnouncementPriority)

Requests the user's screen reader to announce the given message.

Link copied to clipboard
open fun childFocus(direction: DirectionType): Boolean

Called by widgets as the user moves around the window using keyboard shortcuts.

Link copied to clipboard
open fun computeBounds(target: Widget, outBounds: <Error class: unknown class>): Boolean

Computes the bounds for @widget in the coordinate space of @target.

Link copied to clipboard
open fun computeExpand(orientation: Orientation): Boolean

Computes whether a container should give this widget extra space when possible.

Link copied to clipboard
open fun computePoint(target: Widget, point: <Error class: unknown class>, outPoint: <Error class: unknown class>): Boolean

Translates the given @point in @widget's coordinates to coordinates relative to @target’s coordinate system.

Link copied to clipboard
open fun computeTransform(target: Widget, outTransform: <Error class: unknown class>): Boolean

Computes a matrix suitable to describe a transformation from

Link copied to clipboard
fun connectDestroy(connectFlags: <Error class: unknown class> = ConnectFlags(0u), handler: () -> Unit): <Error class: unknown class>

Signals that all holders of a reference to the widget should release the reference that they hold.

Link copied to clipboard
fun connectDirectionChanged(connectFlags: <Error class: unknown class> = ConnectFlags(0u), handler: (previousDirection: TextDirection) -> Unit): <Error class: unknown class>

Emitted when the text direction of a widget changes.

Link copied to clipboard
fun connectHide(connectFlags: <Error class: unknown class> = ConnectFlags(0u), handler: () -> Unit): <Error class: unknown class>

Emitted when @widget is hidden.

Link copied to clipboard
fun connectKeynavFailed(connectFlags: <Error class: unknown class> = ConnectFlags(0u), handler: (direction: DirectionType) -> Boolean): <Error class: unknown class>

Emitted if keyboard navigation fails.

Link copied to clipboard
fun connectMap(connectFlags: <Error class: unknown class> = ConnectFlags(0u), handler: () -> Unit): <Error class: unknown class>

Emitted when @widget is going to be mapped.

Link copied to clipboard
fun connectMnemonicActivate(connectFlags: <Error class: unknown class> = ConnectFlags(0u), handler: (groupCycling: Boolean) -> Boolean): <Error class: unknown class>

Emitted when a widget is activated via a mnemonic.

Link copied to clipboard
fun connectMoveFocus(connectFlags: <Error class: unknown class> = ConnectFlags(0u), handler: (direction: DirectionType) -> Unit): <Error class: unknown class>

Emitted when the focus is moved.

Link copied to clipboard
fun connectQueryTooltip(connectFlags: <Error class: unknown class> = ConnectFlags(0u), handler: (<Error class: unknown class>, <Error class: unknown class>, keyboardMode: Boolean, tooltip: Tooltip) -> Boolean): <Error class: unknown class>

Emitted when the widget’s tooltip is about to be shown.

Link copied to clipboard
fun connectRealize(connectFlags: <Error class: unknown class> = ConnectFlags(0u), handler: () -> Unit): <Error class: unknown class>

Emitted when @widget is associated with a GdkSurface.

Link copied to clipboard
fun connectShow(connectFlags: <Error class: unknown class> = ConnectFlags(0u), handler: () -> Unit): <Error class: unknown class>

Emitted when @widget is shown.

Link copied to clipboard
fun connectStateFlagsChanged(connectFlags: <Error class: unknown class> = ConnectFlags(0u), handler: (flags: StateFlags) -> Unit): <Error class: unknown class>

Emitted when the widget state changes.

Link copied to clipboard
fun connectUnmap(connectFlags: <Error class: unknown class> = ConnectFlags(0u), handler: () -> Unit): <Error class: unknown class>

Emitted when @widget is going to be unmapped.

Link copied to clipboard
fun connectUnrealize(connectFlags: <Error class: unknown class> = ConnectFlags(0u), handler: () -> Unit): <Error class: unknown class>

Emitted when the GdkSurface associated with @widget is destroyed.

Link copied to clipboard
open fun contains(x: <Error class: unknown class>, y: <Error class: unknown class>): Boolean

Tests if the point at (@x, @y) is contained in @widget.

Link copied to clipboard
open fun createPangoContext(): <Error class: unknown class>

Creates a new PangoContext with the appropriate font map, font options, font description, and base direction for drawing text for this widget.

Link copied to clipboard
open fun createPangoLayout(text: String? = null): <Error class: unknown class>

Creates a new PangoLayout with the appropriate font map, font description, and base direction for drawing text for this widget.

Link copied to clipboard
open fun disposeTemplate(widgetType: <Error class: unknown class>)

Clears the template children for the given widget.

Link copied to clipboard
open fun dragCheckThreshold(startX: <Error class: unknown class>, startY: <Error class: unknown class>, currentX: <Error class: unknown class>, currentY: <Error class: unknown class>): Boolean

Checks to see if a drag movement has passed the GTK drag threshold.

Link copied to clipboard
open fun errorBell()

Notifies the user about an input-related error on this widget.

Link copied to clipboard

Retrieves the accessible parent for an accessible object.

Link copied to clipboard

Retrieves the accessible role of an accessible object.

Link copied to clipboard
open fun getAllocatedBaseline(): <Error class: unknown class>

Returns the baseline that has currently been allocated to @widget.

Link copied to clipboard
open fun getAllocatedHeight(): <Error class: unknown class>

Returns the height that has currently been allocated to @widget.

Link copied to clipboard
open fun getAllocatedWidth(): <Error class: unknown class>

Returns the width that has currently been allocated to @widget.

Link copied to clipboard
open fun getAncestor(widgetType: <Error class: unknown class>): Widget?

Gets the first ancestor of @widget with type @widget_type.

Link copied to clipboard

Retrieves the accessible implementation for the given GtkAccessible.

Link copied to clipboard
open fun getBaseline(): <Error class: unknown class>

Returns the baseline that has currently been allocated to @widget.

Link copied to clipboard
open fun getBuildableId(): String?

Gets the ID of the @buildable object.

Link copied to clipboard

Gets the value set with gtk_widget_set_child_visible().

Link copied to clipboard
open fun getClipboard(): <Error class: unknown class>

Gets the clipboard object for @widget.

Link copied to clipboard
open fun getColor(color: <Error class: unknown class>)

Gets the current foreground color for the widget’s CSS style.

Link copied to clipboard

Gets the reading direction for a particular widget.

Link copied to clipboard
open fun getDisplay(): <Error class: unknown class>

Get the GdkDisplay for the toplevel window associated with this widget.

Link copied to clipboard

Retrieves the first accessible child of an accessible object.

Link copied to clipboard
open fun getFirstChild(): Widget?

Returns the widget’s first child.

Link copied to clipboard
open fun getFocusChild(): Widget?

Returns the current focus child of @widget.

Link copied to clipboard
open fun getFontMap(): <Error class: unknown class>?

Gets the font map of @widget.

Link copied to clipboard
open fun getFrameClock(): <Error class: unknown class>?

Obtains the frame clock for a widget.

Link copied to clipboard
open fun getHeight(): <Error class: unknown class>

Returns the content height of the widget.

Link copied to clipboard
open fun getLastChild(): Widget?

Returns the widget’s last child.

Link copied to clipboard
open fun getMapped(): Boolean

Whether the widget is mapped.

Link copied to clipboard
open fun getNative(): Native?

Returns the nearest GtkNative ancestor of @widget.

Link copied to clipboard

Retrieves the next accessible sibling of an accessible object

Link copied to clipboard
open fun getNextSibling(): Widget?

Returns the widget’s next sibling.

Link copied to clipboard
open fun getPangoContext(): <Error class: unknown class>

Gets a PangoContext with the appropriate font map, font description, and base direction for this widget.

Link copied to clipboard

Query a platform state, such as focus.

Link copied to clipboard
open fun getPreferredSize(minimumSize: Requisition?, naturalSize: Requisition?)

Retrieves the minimum and natural size of a widget, taking into account the widget’s preference for height-for-width management.

Link copied to clipboard
open fun getPrevSibling(): Widget?

Returns the widget’s previous sibling.

Link copied to clipboard
open fun getPrimaryClipboard(): <Error class: unknown class>

Gets the primary clipboard of @widget.

Link copied to clipboard
open fun getRealized(): Boolean

Determines whether @widget is realized.

Link copied to clipboard

Gets whether the widget prefers a height-for-width layout or a width-for-height layout.

Link copied to clipboard
open fun getSensitive(): Boolean

Returns the widget’s sensitivity.

Link copied to clipboard
open fun getSettings(): Settings

Gets the settings object holding the settings used for this widget.

Link copied to clipboard
open fun getSize(orientation: Orientation): <Error class: unknown class>

Returns the content width or height of the widget.

Link copied to clipboard

Returns the widget state as a flag set.

Link copied to clipboard

Returns the style context associated to @widget.

Link copied to clipboard
open fun getTemplateChild(widgetType: <Error class: unknown class>, name: String): <Error class: unknown class>

Fetch an object build from the template XML for @widget_type in this @widget instance.

Link copied to clipboard
open fun getVisible(): Boolean

Determines whether the widget is visible.

Link copied to clipboard
open fun getWidth(): <Error class: unknown class>

Returns the content width of the widget.

Link copied to clipboard
open fun grabFocus(): Boolean

Causes @widget to have the keyboard focus for the GtkWindow it's inside.

Link copied to clipboard
open fun hasCssClass(cssClass: String): Boolean

Returns whether @css_class is currently applied to @widget.

Link copied to clipboard
open fun hasDefault(): Boolean

Determines whether @widget is the current default widget within its toplevel.

Link copied to clipboard
open fun hasFocus(): Boolean

Determines if the widget has the global input focus.

Link copied to clipboard

Determines if the widget should show a visible indication that it has the global input focus.

Link copied to clipboard
open fun hide()

Reverses the effects of gtk_widget_show().

Link copied to clipboard

Returns whether the widget is currently being destroyed.

Link copied to clipboard
open fun initTemplate()

Creates and initializes child widgets defined in templates.

Link copied to clipboard
open fun insertActionGroup(name: String, group: <Error class: unknown class>? = null)

Inserts @group into @widget.

Link copied to clipboard
open fun insertAfter(parent: Widget, previousSibling: Widget? = null)

Inserts @widget into the child widget list of @parent.

Link copied to clipboard
open fun insertBefore(parent: Widget, nextSibling: Widget? = null)

Inserts @widget into the child widget list of @parent.

Link copied to clipboard
open fun isAncestor(ancestor: Widget): Boolean

Determines whether @widget is somewhere inside @ancestor, possibly with intermediate containers.

Link copied to clipboard
open fun isDrawable(): Boolean

Determines whether @widget can be drawn to.

Link copied to clipboard
open fun isFocus(): Boolean

Determines if the widget is the focus widget within its toplevel.

Link copied to clipboard
open fun isSensitive(): Boolean

Returns the widget’s effective sensitivity.

Link copied to clipboard
open fun isVisible(): Boolean

Determines whether the widget and all its parents are marked as visible.

Link copied to clipboard
open fun keynavFailed(direction: DirectionType): Boolean

Emits the ::keynav-failed signal on the widget.

Link copied to clipboard
open fun listMnemonicLabels(): <Error class: unknown class>

Returns the widgets for which this widget is the target of a mnemonic.

Link copied to clipboard
open fun map()

Causes a widget to be mapped if it isn’t already.

Link copied to clipboard
open fun mnemonicActivate(groupCycling: Boolean): Boolean

Emits the ::mnemonic-activate signal.

Link copied to clipboard
open fun observeChildren(): <Error class: unknown class>

Returns a GListModel to track the children of @widget.

Link copied to clipboard
open fun observeControllers(): <Error class: unknown class>

Returns a GListModel to track the class@Gtk.EventControllers of @widget.

Link copied to clipboard
open fun pick(x: <Error class: unknown class>, y: <Error class: unknown class>, flags: PickFlags): Widget?

Finds the descendant of @widget closest to the point (@x, @y).

Link copied to clipboard
open fun queueAllocate()

Flags the widget for a rerun of the vfunc@Gtk.Widget.size_allocate function.

Link copied to clipboard
open fun queueDraw()

Schedules this widget to be redrawn in the paint phase of the current or the next frame.

Link copied to clipboard
open fun queueResize()

Flags a widget to have its size renegotiated.

Link copied to clipboard
open fun realize()

Creates the GDK resources associated with a widget.

Link copied to clipboard
open fun removeController(controller: EventController)

Removes @controller from @widget, so that it doesn't process events anymore.

Link copied to clipboard
open fun removeCssClass(cssClass: String)

Removes a style from @widget.

Link copied to clipboard
open fun removeMnemonicLabel(label: Widget)

Removes a widget from the list of mnemonic labels for this widget.

Link copied to clipboard
open fun removeTickCallback(id: <Error class: unknown class>)

Removes a tick callback previously registered with gtk_widget_add_tick_callback().

Link copied to clipboard
open fun resetProperty(property: AccessibleProperty)

Resets the accessible @property to its default value.

Link copied to clipboard
open fun resetRelation(relation: AccessibleRelation)

Resets the accessible @relation to its default value.

Link copied to clipboard
open fun resetState(state: AccessibleState)

Resets the accessible @state to its default value.

Link copied to clipboard
open fun setAccessibleParent(parent: Accessible? = null, nextSibling: Accessible? = null)

Sets the parent and sibling of an accessible object.

Link copied to clipboard
open fun setChildVisible(childVisible: Boolean)

Sets whether @widget should be mapped along with its parent.

Link copied to clipboard
open fun setCursorFromName(name: String? = null)

Sets a named cursor to be shown when pointer devices point towards @widget.

Link copied to clipboard

Sets the reading direction on a particular widget.

Link copied to clipboard
open fun setFocusChild(child: Widget? = null)

Set @child as the current focus child of @widget.

Link copied to clipboard
open fun setFontMap(fontMap: <Error class: unknown class>? = null)

Sets the font map to use for Pango rendering.

Link copied to clipboard

Set all margins to the same value.

fun Widget.setMargins(horizontal: Int = 0, vertical: Int = 0)

Set start and end margin to horizontal and top and bottom margin to vertical

fun Widget.setMargins(start: Int = 0, top: Int = 0, end: Int = 0, bottom: Int = 0)

Set margins.

Link copied to clipboard
open fun setParent(parent: Widget)

Sets @parent as the parent widget of @widget.

Link copied to clipboard
open fun setSensitive(sensitive: Boolean)

Sets the sensitivity of a widget.

Link copied to clipboard
open fun setSizeRequest(width: <Error class: unknown class>, height: <Error class: unknown class>)

Sets the minimum size of a widget.

Link copied to clipboard
open fun setStateFlags(flags: StateFlags, clear: Boolean)

Turns on flag values in the current widget state.

Link copied to clipboard
open fun setVisible(visible: Boolean)

Sets the visibility state of @widget.

Link copied to clipboard
open fun shouldLayout(): Boolean

Returns whether @widget should contribute to the measuring and allocation of its parent.

Link copied to clipboard
open fun show()

Flags a widget to be displayed.

Link copied to clipboard

Triggers a tooltip query on the display where the toplevel of @widget is located.

Link copied to clipboard
open fun unmap()

Causes a widget to be unmapped if it’s currently mapped.

Link copied to clipboard
open fun unparent()

Dissociate @widget from its parent.

Link copied to clipboard
open fun unrealize()

Causes a widget to be unrealized (frees all GDK resources associated with the widget).

Link copied to clipboard
open fun unsetStateFlags(flags: StateFlags)

Turns off flag values for the current widget state.

Link copied to clipboard
open fun updateNextAccessibleSibling(newSibling: Accessible? = null)

Updates the next accessible sibling of @self.