St.Widget
Description: Reference for St.Widget

### Class

# StWidget

#### Description [src]

    class St.Widget : Clutter.Actor
      implements Atk.ImplementorIface, Clutter.Animatable {
      /* No available fields */
    }

Base class for stylable actors

`StWidget` is a simple abstract class on top of `ClutterActor`. It provides basic theming properties.

Actors in the St library should subclass `StWidget` if they plan to obey to a certain `StStyle`.

#### Ancestors

- ClutterActor
- GInitiallyUnowned
- GObject

#### Descendants

- StBin
- StDrawingArea
- StEntry
- StIcon
- StLabel
- StScrollBar
- StScrollView
- StViewport

#### Implements

- AtkImplementorIface
- ClutterAnimatable

#### Instance methods

###### st_widget_add_style_class_name

Adds `style_class` to `actor`‘s style class name list, if it is not already present.

###### st_widget_add_style_pseudo_class

Adds `pseudo_class` to `actor`‘s pseudo class list, if it is not already present.

###### st_widget_ensure_style

Ensures that `widget` has read its style information and propagated any changes to its children.

###### st_widget_get_can_focus

Returns the current value of the can-focus property. See `st_widget_set_can_focus()` for more information.

###### st_widget_get_focus_chain

Gets a list of the focusable children of `widget`, in “Tab” order. By default, this returns all visible (as in `clutter_actor_is_visible()`) children of `widget`.

###### st_widget_get_hover

If `StWidget:track-hover` is set, this returns whether the pointer is currently over the widget.

###### st_widget_get_label_actor

Gets the label that identifies `widget` if it is defined.

###### st_widget_get_style

Get the current inline style string. See st_widget_set_style().

###### st_widget_get_style_class_name

Get the current style class name.

###### st_widget_get_style_pseudo_class

Get the current style pseudo class list.

###### st_widget_get_theme_node

Gets the theme node holding style information for the widget. The theme node is used to access standard and custom CSS properties of the widget.

###### st_widget_get_track_hover

Returns the current value of the `StWidget:track-hover` property. See `st_widget_set_track_hover()` for more information.

###### st_widget_has_style_class_name

Tests if `actor`‘s style class list includes `style_class`.

###### st_widget_has_style_pseudo_class

Tests if `actor`‘s pseudo class list includes `pseudo_class`.

###### st_widget_navigate_focus

Tries to update the keyboard focus within `widget` in response to a keyboard event.

###### st_widget_paint_background

Paint the background of the widget. This is meant to be called by subclasses of StWidget that need to paint the background without painting children.

###### st_widget_peek_theme_node

Returns the theme node for the widget if it has already been computed, `NULL` if the widget hasn’t been added to a stage or the theme node hasn’t been computed. If `NULL` is returned, then ::style-changed will be reliably emitted before the widget is allocated or painted.

###### st_widget_popup_menu

Asks the widget to pop-up a context menu by emitting `StWidget::popup-menu`.

###### st_widget_remove_style_class_name

Removes `style_class` from `actor`‘s style class name, if it is present.

###### st_widget_remove_style_pseudo_class

Removes `pseudo_class` from `actor`‘s pseudo class, if it is present.

###### st_widget_set_can_focus

Marks `widget` as being able to receive keyboard focus via keyboard navigation.

###### st_widget_set_hover

Sets `widget`‘s hover property and adds or removes “hover” from its pseudo class accordingly.

###### st_widget_set_label_actor

Sets `label` as the `ClutterActor` that identifies (labels) `widget`. `label` can be `NULL` to indicate that `widget` is not labelled any more.

###### st_widget_set_style

Set the inline style string for this widget. The inline style string is an optional ‘;’-separated list of CSS properties that override the style as determined from the stylesheets of the current theme.

###### st_widget_set_style_class_name

Set the style class name list. `style_class_list` can either be `NULL`, for no classes, or a space-separated list of style class names. See also `st_widget_add_style_class_name()` and st_widget_remove_style_class_name().

###### st_widget_set_style_pseudo_class

Set the style pseudo class list. `pseudo_class_list` can either be `NULL`, for no classes, or a space-separated list of pseudo class names. See also `st_widget_add_style_pseudo_class()` and st_widget_remove_style_pseudo_class().

###### st_widget_set_track_hover

Enables hover tracking on the `StWidget`.

###### st_widget_style_changed

No description available.

###### st_widget_sync_hover

Sets `widget`‘s hover state according to the current pointer position. This can be used to ensure that it is correct after (or during) a pointer grab.

##### Methods inherited from ClutterActor (222)

Please see ClutterActor for a full list of methods.

##### Methods inherited from GObject (43)

Please see GObject for a full list of methods.

##### Methods inherited from ClutterAnimatable (5)

###### clutter_animatable_find_property

Finds the `GParamSpec` for `property_name`.

###### clutter_animatable_get_actor

Get animated actor.

###### clutter_animatable_get_initial_state

Retrieves the current state of `property_name` and sets `value` with it.

###### clutter_animatable_interpolate_value

Asks a `ClutterAnimatable` implementation to interpolate a a named property between the initial and final values of a `ClutterInterval`, using `progress` as the interpolation value, and store the result inside `value`.

###### clutter_animatable_set_final_state

Sets the current state of `property_name` to `value`.

#### Properties

###### St.Widget:can-focus

Whether or not the widget can be focused via keyboard navigation.

###### St.Widget:hover

Whether or not the pointer is currently hovering over the widget. This is only tracked automatically if `StWidget:track-hover` is `TRUE`, but you can adjust it manually in any case.

###### St.Widget:label-actor

An actor that labels this widget.

###### St.Widget:pseudo-class

The pseudo-class of the actor. Typical values include “hover”, “active”, “focus”.

###### St.Widget:style

Inline style information for the actor as a ‘;’-separated list of CSS properties.

###### St.Widget:style-class

The style-class of the actor for use in styling.

###### St.Widget:track-hover

Determines whether the widget tracks pointer hover state. If `TRUE` (and the widget is visible and reactive), the `StWidget:hover` property and “hover” style pseudo class will be adjusted automatically as the pointer moves in and out of the widget.

##### Properties inherited from ClutterActor (75)

###### Clutter.Actor:accessible-name

Object instance’s name for assistive technology access.

###### Clutter.Actor:accessible-role

The accessible role of this object.

###### Clutter.Actor:actions

Adds a `ClutterAction` to the actor.

###### Clutter.Actor:allocation

The allocation for the actor, in pixels.

###### Clutter.Actor:background-color

Paints a solid fill of the actor’s allocation using the specified color.

###### Clutter.Actor:background-color-set

Whether the `ClutterActor:background-color` property has been set.

###### Clutter.Actor:child-transform

Applies a transformation matrix on each child of an actor.

###### Clutter.Actor:child-transform-set

Whether the `ClutterActor:child-transform` property is set.

###### Clutter.Actor:clip-rect

The visible region of the actor, in actor-relative coordinates, expressed as a #graphene_rect_t.

###### Clutter.Actor:clip-to-allocation

Whether the clip region should track the allocated area of the actor.

###### Clutter.Actor:color-state

The `ClutterColorState` contains the properties like colorspace for each actors.

###### Clutter.Actor:constraints

Adds a `ClutterConstraint` to the actor.

###### Clutter.Actor:content

The `ClutterContent` implementation that controls the content of the actor.

###### Clutter.Actor:content-box

The bounding box for the `ClutterContent` used by the actor.

###### Clutter.Actor:content-gravity

The alignment that should be honoured by the `ClutterContent` set with the `ClutterActor:content` property.

###### Clutter.Actor:content-repeat

The repeat policy for the actor’s `ClutterActor:content`.

###### Clutter.Actor:context

The %ClutterContext of the actor.

###### Clutter.Actor:cursor-type

No description available.

###### Clutter.Actor:effect

Adds `ClutterEffect` to the list of effects be applied on a `ClutterActor`.

###### Clutter.Actor:first-child

The actor’s first child.

###### Clutter.Actor:fixed-position-set

This flag controls whether the `ClutterActor:fixed-x` and `ClutterActor:fixed-y` properties are used.

###### Clutter.Actor:fixed-x

The fixed X position of the actor in pixels.

###### Clutter.Actor:fixed-y

The fixed Y position of the actor in pixels.

###### Clutter.Actor:has-clip

Whether the actor has the `ClutterActor:clip-rect` property set or not.

###### Clutter.Actor:has-pointer

Whether the actor contains the pointer of a `ClutterInputDevice` or not.

###### Clutter.Actor:height

Height of the actor (in pixels). If written, forces the minimum and natural size request of the actor to the given height. If read, returns the allocated height if available, otherwise the height request.

###### Clutter.Actor:last-child

The actor’s last child.

###### Clutter.Actor:layout-manager

A delegate object for controlling the layout of the children of an actor.

###### Clutter.Actor:magnification-filter

No description available.

###### Clutter.Actor:mapped

Whether the actor is mapped (will be painted when the stage to which it belongs is mapped).

###### Clutter.Actor:margin-bottom

The margin (in pixels) from the bottom of the actor.

###### Clutter.Actor:margin-left

The margin (in pixels) from the left of the actor.

###### Clutter.Actor:margin-right

The margin (in pixels) from the right of the actor.

###### Clutter.Actor:margin-top

The margin (in pixels) from the top of the actor.

###### Clutter.Actor:min-height

A forced minimum height request for the actor, in pixels.

###### Clutter.Actor:min-height-set

This flag controls whether the `ClutterActor:min-height` property is used.

###### Clutter.Actor:min-width

A forced minimum width request for the actor, in pixels.

###### Clutter.Actor:min-width-set

This flag controls whether the `ClutterActor:min-width` property is used.

###### Clutter.Actor:minification-filter

No description available.

###### Clutter.Actor:name

The name of the actor.

###### Clutter.Actor:natural-height

A forced natural height request for the actor, in pixels.

###### Clutter.Actor:natural-height-set

This flag controls whether the `ClutterActor:natural-height` property is used.

###### Clutter.Actor:natural-width

A forced natural width request for the actor, in pixels.

###### Clutter.Actor:natural-width-set

This flag controls whether the `ClutterActor:natural-width` property is used.

###### Clutter.Actor:offscreen-redirect

Determines the conditions in which the actor will be redirected to an offscreen framebuffer while being painted. For example this can be used to cache an actor in a framebuffer or for improved handling of transparent actors. See `clutter_actor_set_offscreen_redirect()` for details.

###### Clutter.Actor:opacity

Opacity of an actor, between 0 (fully transparent) and 255 (fully opaque).

###### Clutter.Actor:pivot-point

The point around which the scaling and rotation transformations occur.

###### Clutter.Actor:pivot-point-z

The Z component of the `ClutterActor:pivot-point`, expressed as a value along the Z axis.

###### Clutter.Actor:position

The position of the origin of the actor.

###### Clutter.Actor:reactive

Whether the actor is reactive to events or not.

###### Clutter.Actor:realized

Whether the actor has been realized.

###### Clutter.Actor:request-mode

Request mode for the `ClutterActor`. The request mode determines the type of geometry management used by the actor, either height for width (the default) or width for height.

###### Clutter.Actor:rotation-angle-x

The rotation angle on the X axis.

###### Clutter.Actor:rotation-angle-y

The rotation angle on the Y axis.

###### Clutter.Actor:rotation-angle-z

The rotation angle on the Z axis.

###### Clutter.Actor:scale-x

The horizontal scale of the actor.

###### Clutter.Actor:scale-y

The vertical scale of the actor.

###### Clutter.Actor:scale-z

The scale factor of the actor along the Z axis.

###### Clutter.Actor:show-on-set-parent

If `TRUE`, the actor is automatically shown when parented.

###### Clutter.Actor:size

The size of the actor.

###### Clutter.Actor:text-direction

The direction of the text inside a `ClutterActor`.

###### Clutter.Actor:transform

Overrides the transformations of a `ClutterActor` with a custom matrix.

###### Clutter.Actor:transform-set

Whether the `ClutterActor:transform` property is set.

###### Clutter.Actor:translation-x

An additional translation applied along the X axis, relative to the actor’s `ClutterActor:pivot-point`.

###### Clutter.Actor:translation-y

An additional translation applied along the Y axis, relative to the actor’s `ClutterActor:pivot-point`.

###### Clutter.Actor:translation-z

An additional translation applied along the Z axis, relative to the actor’s `ClutterActor:pivot-point`.

###### Clutter.Actor:visible

Whether the actor is set to be visible or not.

###### Clutter.Actor:width

Width of the actor (in pixels). If written, forces the minimum and natural size request of the actor to the given width. If read, returns the allocated width if available, otherwise the width request.

###### Clutter.Actor:x

X coordinate of the actor in pixels. If written, forces a fixed position for the actor. If read, returns the fixed position if any, otherwise the allocation if available, otherwise 0.

###### Clutter.Actor:x-align

The alignment of an actor on the X axis, if the actor has been given extra space for its allocation. See also the `ClutterActor:x-expand` property.

###### Clutter.Actor:x-expand

Whether a layout manager should assign more space to the actor on the X axis.

###### Clutter.Actor:y

Y coordinate of the actor in pixels. If written, forces a fixed position for the actor. If read, returns the fixed position if any, otherwise the allocation if available, otherwise 0.

###### Clutter.Actor:y-align

The alignment of an actor on the Y axis, if the actor has been given extra space for its allocation.

###### Clutter.Actor:y-expand

Whether a layout manager should assign more space to the actor on the Y axis.

###### Clutter.Actor:z-position

The actor’s position on the Z axis, relative to the parent’s transformations.

#### Signals

###### St.Widget::popup-menu

Emitted when the user has requested a context menu (eg, via a keybinding).

###### St.Widget::style-changed

Emitted when the style information that the widget derives from the theme changes.

##### Signals inherited from ClutterActor (29)

###### ClutterActor::button-press-event

The signal is emitted each time a mouse button is pressed on `actor`.

###### ClutterActor::button-release-event

The signal is emitted each time a mouse button is released on `actor`.

###### ClutterActor::captured-event

The signal is emitted when an event is captured by Clutter. This signal will be emitted starting from the top-level container (the `ClutterStage`) to the actor which received the event going down the hierarchy. This signal can be used to intercept every event before the specialized events (like `ClutterActor::button-press-event` or `ClutterActor::button-release-event`) are emitted.

###### ClutterActor::child-added

The signal is emitted each time an actor has been added to `actor`.

###### ClutterActor::child-removed

The signal is emitted each time an actor is removed from `actor`.

###### ClutterActor::cloned

No description available.

###### ClutterActor::decloned

No description available.

###### ClutterActor::destroy

The signal notifies that all references held on the actor which emitted it should be released.

###### ClutterActor::enter-event

The signal is emitted when the pointer enters the `actor`.

###### ClutterActor::event

The signal is emitted each time an event is received by the `actor`. This signal will be emitted on every actor, following the hierarchy chain, until it reaches the top-level container (the `ClutterStage`).

###### ClutterActor::hide

The signal is emitted when an actor is no longer rendered on the stage.

###### ClutterActor::key-focus-in

The signal is emitted when `actor` receives key focus.

###### ClutterActor::key-focus-out

The signal is emitted when `actor` loses key focus.

###### ClutterActor::key-press-event

The signal is emitted each time a keyboard button is pressed while `actor` has key focus (see clutter_stage_set_key_focus()).

###### ClutterActor::key-release-event

The signal is emitted each time a keyboard button is released while `actor` has key focus (see clutter_stage_set_key_focus()).

###### ClutterActor::leave-event

The signal is emitted when the pointer leaves the `actor`.

###### ClutterActor::motion-event

The signal is emitted each time the mouse pointer is moved over `actor`.

###### ClutterActor::parent-set

This signal is emitted when the parent of the actor changes.

###### ClutterActor::pick

The signal is emitted each time an actor is being painted in “pick mode”. The pick mode is used to identify the actor during the event handling phase, or by `clutter_stage_get_actor_at_pos()`.

###### ClutterActor::queue-relayout

The signal is emitted when `clutter_actor_queue_relayout()` is called on an actor.

###### ClutterActor::realize

The signal is emitted each time an actor is being realized.

###### ClutterActor::resource-scale-changed

The signal is emitted when the resource scale value returned by `clutter_actor_get_resource_scale()` changes.

###### ClutterActor::scroll-event

The signal is emitted each time the mouse is scrolled on `actor`.

###### ClutterActor::show

The signal is emitted when an actor is visible and rendered on the stage.

###### ClutterActor::stage-views-changed

The signal is emitted when the position or size an actor is being painted at have changed so that it’s visible on different stage views.

###### ClutterActor::touch-event

The signal is emitted each time a touch begin/end/update/cancel event.

###### ClutterActor::transition-stopped

The signal is emitted once a transition is stopped; a transition is stopped once it reached its total duration (including eventual repeats), it has been stopped using `clutter_timeline_stop()`, or it has been removed from the transitions applied on `actor`, using `clutter_actor_remove_transition()`.

###### ClutterActor::transitions-completed

The signal is emitted once all transitions involving `actor` are complete.

###### ClutterActor::unrealize

The signal is emitted each time an actor is being unrealized.

##### Signals inherited from GObject (1)

###### GObject::notify

The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.

#### Class structure

    struct StWidgetClass {
      void (* style_changed) (
        StWidget* self
      );
      void (* popup_menu) (
        StWidget* self
      );
      gboolean (* navigate_focus) (
        StWidget* self,
        ClutterActor* from,
        StDirectionType direction
      );
      GList* (* get_focus_chain) (
        StWidget* widget
      );

    }

Base class for stylable actors.

###### Class members

`style_changed: void (* style_changed) ( StWidget* self )`

  No description available.

`popup_menu: void (* popup_menu) ( StWidget* self )`

  No description available.

`navigate_focus: gboolean (* navigate_focus) ( StWidget* self, ClutterActor* from, StDirectionType direction )`

  No description available.

`get_focus_chain: GList* (* get_focus_chain) ( StWidget* widget )`

  No description available.

#### Virtual methods

###### St.WidgetClass.get_focus_chain

Gets a list of the focusable children of `widget`, in “Tab” order. By default, this returns all visible (as in `clutter_actor_is_visible()`) children of `widget`.

###### St.WidgetClass.navigate_focus

No description available.

###### St.WidgetClass.popup_menu

Asks the widget to pop-up a context menu by emitting `StWidget::popup-menu`.

###### St.WidgetClass.style_changed

No description available.