Esempio n. 1
0
static ClutterLayoutMeta *
layout_manager_real_create_child_meta (ClutterLayoutManager *manager,
                                       ClutterContainer     *container,
                                       ClutterActor         *actor)
{
    ClutterLayoutManagerClass *klass;
    GType meta_type;

    klass = CLUTTER_LAYOUT_MANAGER_GET_CLASS (manager);
    meta_type = klass->get_child_meta_type (manager);

    /* provide a default implementation to reduce common code */
    if (meta_type != G_TYPE_INVALID)
    {
        g_assert (g_type_is_a (meta_type, CLUTTER_TYPE_LAYOUT_META));

        return g_object_new (meta_type,
                             "manager", manager,
                             "container", container,
                             "actor", actor,
                             NULL);
    }

    return NULL;
}
Esempio n. 2
0
static inline ClutterLayoutMeta *
create_child_meta (ClutterLayoutManager *manager,
                   ClutterContainer     *container,
                   ClutterActor         *actor)
{
  ClutterLayoutManagerClass *klass;

  klass = CLUTTER_LAYOUT_MANAGER_GET_CLASS (manager);
  if (klass->get_child_meta_type (manager) != G_TYPE_INVALID)
    return klass->create_child_meta (manager, container, actor);

  return NULL;
}
Esempio n. 3
0
static inline ClutterLayoutMeta *
create_child_meta (ClutterLayoutManager *manager,
                   ClutterContainer     *container,
                   ClutterActor         *actor)
{
    ClutterLayoutManagerClass *klass;
    ClutterLayoutMeta *meta = NULL;

    layout_manager_freeze_layout_change (manager);

    klass = CLUTTER_LAYOUT_MANAGER_GET_CLASS (manager);
    if (klass->get_child_meta_type (manager) != G_TYPE_INVALID)
        meta = klass->create_child_meta (manager, container, actor);

    layout_manager_thaw_layout_change (manager);

    return meta;
}
Esempio n. 4
0
/**
 * clutter_layout_manager_find_child_property:
 * @manager: a #ClutterLayoutManager
 * @name: the name of the property
 *
 * Retrieves the #GParamSpec for the layout property @name inside
 * the #ClutterLayoutMeta sub-class used by @manager
 *
 * Return value: (transfer none): a #GParamSpec describing the property,
 *   or %NULL if no property with that name exists. The returned
 *   #GParamSpec is owned by the layout manager and should not be
 *   modified or freed
 *
 * Since: 1.2
 */
GParamSpec *
clutter_layout_manager_find_child_property (ClutterLayoutManager *manager,
        const gchar          *name)
{
    ClutterLayoutManagerClass *klass;
    GObjectClass *meta_klass;
    GParamSpec *pspec;
    GType meta_type;

    klass = CLUTTER_LAYOUT_MANAGER_GET_CLASS (manager);
    meta_type = klass->get_child_meta_type (manager);
    if (meta_type == G_TYPE_INVALID)
        return NULL;

    meta_klass = g_type_class_ref (meta_type);

    pspec = g_object_class_find_property (meta_klass, name);

    g_type_class_unref (meta_klass);

    return pspec;
}