Tizen Native API  5.5
Clipped Smart Object

Clipped smart object is a base to construct other smart objects based on the concept of having an internal clipper that is applied to all children objects. This clipper will control the visibility, clipping and color of sibling objects (remember that the clipping is recursive, and clipper color modulates the color of its clippees). By default, this base will also move children relative to the parent, and delete them when parent is deleted. In other words, it is the base for simple object grouping.

See some examples of this group of functions.

See also:
evas_object_smart_clipped_smart_set()

Functions

void evas_object_smart_clipped_smart_set (Evas_Smart_Class *sc)
const Evas_Smart_Classevas_object_smart_clipped_class_get (void)

Typedefs

typedef struct
_Evas_Object_Smart_Clipped_Data 
Evas_Object_Smart_Clipped_Data

Typedef Documentation

typedef struct _Evas_Object_Smart_Clipped_Data Evas_Object_Smart_Clipped_Data

Every subclass should provide this at the beginning of their own data set with evas_object_smart_data_set().


Function Documentation

Get a pointer to the clipped smart object's class, to use for proper inheritance

See also:
Clipped Smart Object for more information on this smart class 3.0f(2.3.1)
Examples:
evas-smart-interface.c, and evas-smart-object.c.

Set a given smart class' callbacks so it implements the clipped smart object"'s interface.

Parameters:
scThe smart class handle to operate on

This call will assign all the required methods of the sc Evas_Smart_Class instance to the implementations set for clipped smart objects. If one wants to "subclass" it, call this function and then override desired values. If one wants to call any original method, save it somewhere. Example:

 static Evas_Smart_Class parent_sc = EVAS_SMART_CLASS_INIT_NULL;

 static void my_class_smart_add(Evas_Object *o)
 {
    parent_sc.add(o);
    evas_object_color_set(evas_object_smart_clipped_clipper_get(o),
                          255, 0, 0, 255);
 }

 Evas_Smart_Class *my_class_new(void)
 {
    static Evas_Smart_Class sc = EVAS_SMART_CLASS_INIT_NAME_VERSION("MyClass");
    if (!parent_sc.name)
      {
         evas_object_smart_clipped_smart_set(&sc);
         parent_sc = sc;
         sc.add = my_class_smart_add;
      }
    return ≻
 }

Default behavior for each of Evas_Smart_Class functions on a clipped smart object are:

  • add: creates a hidden clipper with "infinite" size, to clip any incoming members;
  • del: delete all children objects;
  • move: move all objects relative relatively;
  • resize: not defined;
  • show: if there are children objects, show clipper;
  • hide: hides clipper;
  • color_set: set the color of clipper;
  • clip_set: set clipper of clipper;
  • clip_unset: unset the clipper of clipper;
Note:
There are other means of assigning parent smart classes to child ones, like the EVAS_SMART_SUBCLASS_NEW macro or the evas_smart_class_inherit_full() function. 3.0f(2.3.1)