Evas_Clip_Group (3) - Linux Manuals

Evas_Clip_Group: Functions that manage the clipping of objects by other objects.

NAME

Clip Functions - Functions that manage the clipping of objects by other objects.

Functions


EAPI void evas_object_clip_set (Evas_Object *obj, Evas_Object *clip)
Clip one object to another.
EAPI Evas_Object * evas_object_clip_get (const Evas_Object *obj)
Get the object clipping this one (if any).
EAPI void evas_object_clip_unset (Evas_Object *obj)
Disable clipping for an object.
EAPI const Evas_List * evas_object_clipees_get (const Evas_Object *obj)
Return a list of objects currently clipped by a specific object.

Detailed Description

Functions that manage the clipping of objects by other objects.

Function Documentation

EAPI Evas_Object* evas_object_clip_get (const Evas_Object * obj)

Get the object clipping this one (if any).

Parameters:

obj The object to get the clipper from

This function returns the the object clipping obj. If obj not being clipped, NULL is returned. The object obj must be a valid object.

See also evas_object_clip_set(), evas_object_clip_unset() and evas_object_clipees_get().

Example:

 extern Evas_Object *obj;
 Evas_Object *clipper;

 clipper = evas_object_clip_get(obj);
 if (clipper) evas_object_show(clipper);


 

EAPI void evas_object_clip_set (Evas_Object * obj, Evas_Object * clip)

Clip one object to another.

Parameters:

obj The object to be clipped
clip The object to clip obj by

This function will clip the object obj to the area occupied by the object clipper. This means the object obj will only be visible within the area occupied by the clipping object (clip). The color of the object being clipped will be multiplied by the color of the clipping object, so the resulting color for the clipped object is RESULT = (OBJ * CLIP) / (255 * 255) per color element (red, green, blue and alpha). Clipping is recursive, so clip objects may be clipped by other objects, and their color will in tern be multiplied. You may NOT set up circular clipping lists (i.e. object 1 clips object 2 which clips object 1). The behavior of Evas is undefined in this case. Objects which do not clip others are visible as normal, those that clip 1 or more objects become invisible themselves, only affecting what they clip. If an object ceases to have other objects being clipped by it, it will become visible again. The visibility of an object affects the objects that are clipped by it, so if the object clipping others is not shown, the objects clipped will not be shown either. If the object was being clipped by another object when this function is called, it is implicitly removed from the clipper it is being clipped to, and now is made to clip its new clipper.

At the moment the only objects that can validly be used to clip other objects are rectangle objects. All other object types are invalid and the result of using them is undefined.

The clip object clip must be a valid object, but may also be NULL in which case the effect of this function is the same as calling evas_object_clip_unset() on the obj object.

Example:

 extern Evas *evas;
 extern Evas_Object *obj;
 Evas_Object *clipper;

 clipper = evas_object_rectangle_add(evas);
 evas_object_color_set(clipper, 255, 255, 255, 255);
 evas_object_move(clipper, 10, 10);
 evas_object_resize(clipper, 20, 50);
 evas_object_clip_set(obj, clipper);
 evas_object_show(clipper);


 

References evas_list_append(), evas_list_remove(), and evas_object_clip_unset().

Referenced by evas_object_smart_clipped_member_add().

EAPI void evas_object_clip_unset (Evas_Object * obj)

Disable clipping for an object.

Parameters:

obj The object to cease clipping on

This function disables clipping for the object obj, if it was already clipped. If it wasn't, this has no effect. The object obj must be a valid object.

See also evas_object_clip_set(), evas_object_clipees_get() and evas_object_clip_get().

Example:

 extern Evas_Object *obj;
 Evas_Object *clipper;

 clipper = evas_object_clip_get(obj);
 if (clipper)
   {
     evas_object_clip_unset(obj);
     evas_object_hide(obj);
   }


 

References evas_list_remove().

Referenced by evas_object_clip_set(), evas_object_del(), and evas_object_smart_clipped_member_del().

EAPI const Evas_List* evas_object_clipees_get (const Evas_Object * obj)

Return a list of objects currently clipped by a specific object.

Parameters:

obj The object to get a list of clippees from

This returns the inernal list handle that contains all objects clipped by the object obj. If none are clipped, it returns NULL. This list is only valid until the clip list is changed and should be fetched again with another call to evas_object_clipees_get() if any objects being clipped by this object are unclipped, clipped by a new object, are deleted or the clipper is deleted. These operations will invalidate the list returned so it should not be used anymore after that point. Any use of the list after this may have undefined results, not limited just to strange behavior but possible segfaults and other strange memory errors. The object obj must be a valid object.

See also evas_object_clip_set(), evas_object_clip_unset() and evas_object_clip_get().

Example:

 extern Evas_Object *obj;
 Evas_Object *clipper;

 clipper = evas_object_clip_get(obj);
 if (clipper)
   {
     Evas_List *clippees, *l;

     clippees = evas_object_clipees_get(clipper);
     printf('Clipper clips %i objects, evas_list_count(clippees));
     for (l = clippees; l; l = l->next)
       {
         Evas_Object *obj_tmp;

         obj_tmp = l->data;
         evas_object_show(obj_tmp);
       }
   }


 

Referenced by evas_object_smart_clipped_member_del().

Author

Generated automatically by Doxygen for Evas from the source code.