CinnamonGenericContainer

CinnamonGenericContainer — A container class with signals for allocation

Synopsis

                    CinnamonGenericContainerAllocation;
struct              CinnamonGenericContainer;
struct              CinnamonGenericContainerClass;
guint               cinnamon_generic_container_get_n_skip_paint
                                                        (CinnamonGenericContainer *self);
gboolean            cinnamon_generic_container_get_skip_paint
                                                        (CinnamonGenericContainer *self,
                                                         ClutterActor *child);
void                cinnamon_generic_container_set_skip_paint
                                                        (CinnamonGenericContainer *self,
                                                         ClutterActor *child,
                                                         gboolean skip);

Object Hierarchy

  GBoxed
   +----CinnamonGenericContainerAllocation
  GObject
   +----GInitiallyUnowned
         +----ClutterActor
               +----StWidget
                     +----StContainer
                           +----CinnamonGenericContainer

Implemented Interfaces

CinnamonGenericContainer implements ClutterContainer, ClutterScriptable, ClutterAnimatable and AtkImplementorIface.

Signals

  "allocate"                                       : Run Last
  "get-preferred-height"                           : Run Last
  "get-preferred-width"                            : Run Last

Description

CinnamonGenericContainer 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.

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

Details

CinnamonGenericContainerAllocation

typedef struct {
  float min_size;
  float natural_size;
} CinnamonGenericContainerAllocation;

struct CinnamonGenericContainer

struct CinnamonGenericContainer;

struct CinnamonGenericContainerClass

struct CinnamonGenericContainerClass {
    StContainerClass parent_class;
};

cinnamon_generic_container_get_n_skip_paint ()

guint               cinnamon_generic_container_get_n_skip_paint
                                                        (CinnamonGenericContainer *self);

self :

A CinnamonGenericContainer

Returns :

Number of children which will not be painted.

cinnamon_generic_container_get_skip_paint ()

gboolean            cinnamon_generic_container_get_skip_paint
                                                        (CinnamonGenericContainer *self,
                                                         ClutterActor *child);

Gets whether or not actor is skipped when painting.

self :

A CinnamonGenericContainer

child :

Child ClutterActor

Returns :

TRUE or FALSE

cinnamon_generic_container_set_skip_paint ()

void                cinnamon_generic_container_set_skip_paint
                                                        (CinnamonGenericContainer *self,
                                                         ClutterActor *child,
                                                         gboolean skip);

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

self :

A CinnamonGenericContainer

child :

Child ClutterActor

skip :

TRUE if we should skip painting

Signal Details

The "allocate" signal

void                user_function                      (CinnamonGenericContainer *self,
                                                        ClutterActorBox          *box,
                                                        ClutterAllocationFlags    flags,
                                                        gpointer                  user_data)      : Run Last

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.

self :

the CinnamonGenericContainer

box :

self's content box

flags :

the allocation flags.

user_data :

user data set when the signal handler was connected.

The "get-preferred-height" signal

void                user_function                      (CinnamonGenericContainer           *self,
                                                        gfloat                              for_width,
                                                        CinnamonGenericContainerAllocation *alloc,
                                                        gpointer                            user_data)      : Run Last

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. CinnamonGenericContainer 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.

self :

the CinnamonGenericContainer

for_width :

as in clutter_actor_get_preferred_height()

alloc :

a CinnamonGenericContainerAllocation to be filled in

user_data :

user data set when the signal handler was connected.

The "get-preferred-width" signal

void                user_function                      (CinnamonGenericContainer           *self,
                                                        gfloat                              for_height,
                                                        CinnamonGenericContainerAllocation *alloc,
                                                        gpointer                            user_data)       : Run Last

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. CinnamonGenericContainer 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.

self :

the CinnamonGenericContainer

for_height :

as in clutter_actor_get_preferred_width()

alloc :

a CinnamonGenericContainerAllocation to be filled in

user_data :

user data set when the signal handler was connected.