shell-generic-container

shell-generic-container — A container class with signals for allocation

Signals

void allocate Run Last
void get-preferred-height Run Last
void get-preferred-width Run Last

Object Hierarchy

    GBoxed
    ╰── ShellGenericContainerAllocation
    GObject
    ╰── GInitiallyUnowned
        ╰── ClutterActor
            ╰── StWidget
                ╰── ShellGenericContainer

Implemented Interfaces

ShellGenericContainer implements ClutterContainer, ClutterScriptable, ClutterAnimatable and AtkImplementorIface.

Description

ShellGenericContainer is mainly a workaround for the current lack of GObject subclassing + vfunc overrides in gjs. We implement the container interface, but proxy the virtual functions into signals, which gjs can catch.

ShellGenericContainer is an StWidget, and automatically takes its borders and padding into account during size request and allocation.

Functions

shell_generic_container_get_n_skip_paint ()

guint
shell_generic_container_get_n_skip_paint
                               (ShellGenericContainer *self);

Parameters

Returns

Number of children which will not be painted.


shell_generic_container_get_skip_paint ()

gboolean
shell_generic_container_get_skip_paint
                               (ShellGenericContainer *self,
                                ClutterActor *child);

Gets whether or not actor is skipped when painting.

Parameters

self

A ShellGenericContainer

 

child

Child ClutterActor

 

Returns

TRUE or FALSE


shell_generic_container_set_skip_paint ()

void
shell_generic_container_set_skip_paint
                               (ShellGenericContainer *self,
                                ClutterActor *child,
                                gboolean skip);

Set whether or not we should skip painting actor . Workaround for lack of gjs ability to override _paint vfunc.

Parameters

self

A ShellGenericContainer

 

child

Child ClutterActor

 

skip

TRUE if we should skip painting

 

Types and Values

SHELL_TYPE_GENERIC_CONTAINER

#define SHELL_TYPE_GENERIC_CONTAINER (shell_generic_container_get_type ())

ShellGenericContainer

typedef struct _ShellGenericContainer ShellGenericContainer;

Signal Details

The “allocate” signal

void
user_function (ShellGenericContainer *self,
               ClutterActorBox       *box,
               ClutterAllocationFlags flags,
               gpointer               user_data)

Emitted when self is allocated, after chaining up to the parent allocate method.

Note that box is self 's content box (qv st_theme_node_get_content_box()), NOT its allocation.

Parameters

self

the ShellGenericContainer

 

box

self 's content box

 

flags

the allocation flags.

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last


The “get-preferred-height” signal

void
user_function (ShellGenericContainer           *self,
               gfloat                           for_width,
               ShellGenericContainerAllocation *alloc,
               gpointer                         user_data)

Emitted when clutter_actor_get_preferred_height() is called on self . You should fill in the fields of alloc with the your minimum and natural heights. ShellGenericContainer will deal with taking its borders and padding into account for you.

alloc 's fields are initialized to 0, so unless you have a fixed height specified (via “height” or CSS), you must connect to this signal and fill in the values.

Parameters

self

the ShellGenericContainer

 

for_width

as in clutter_actor_get_preferred_height()

 

alloc

a ShellGenericContainerAllocation to be filled in

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last


The “get-preferred-width” signal

void
user_function (ShellGenericContainer           *self,
               gfloat                           for_height,
               ShellGenericContainerAllocation *alloc,
               gpointer                         user_data)

Emitted when clutter_actor_get_preferred_width() is called on self . You should fill in the fields of alloc with the your minimum and natural widths. ShellGenericContainer will deal with taking its borders and padding into account for you.

alloc 's fields are initialized to 0, so unless you have a fixed width specified (via “width” or CSS), you must connect to this signal and fill in the values.

Parameters

self

the ShellGenericContainer

 

for_height

as in clutter_actor_get_preferred_width()

 

alloc

a ShellGenericContainerAllocation to be filled in

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last