Tizen Native API  4.0
Basic Object Manipulation

Almost every evas object created will have some generic function used to manipulate it. That's because there are a number of basic actions to be done to objects that are irrespective of the object's type, things like:

  • Showing/Hiding
  • Setting(and getting) geometry
  • Bring up or down a layer
  • Color management
  • Handling focus
  • Clipping
  • Reference counting

All of this issues are handled through the functions here grouped. Examples of these function can be seen in Evas objects basic manipulation example(which deals with the most common ones) and in Evas object stacking functions (and some event handling)(which deals with stacking functions).


Function Documentation

void evas_object_color_get ( const Evas_Object obj,
int *  r,
int *  g,
int *  b,
int *  a 
)

Retrieves the general/main color of the given Evas object.

Retrieves the “main” color's RGB component (and alpha channel) values, which range from 0 to 255. For the alpha channel, which defines the object's transparency level, 0 means totally transparent, while 255 means opaque. These color values are premultiplied by the alpha value.

Usually you’ll use this attribute for text and rectangle objects, where the “main” color is their unique one. If set for objects which themselves have colors, like the images one, those colors get modulated by this one.

Note:
All newly created Evas rectangles get the default color values of 255 255 255 255 (opaque white).
Use NULL pointers on the components you're not interested in: they'll be ignored by the function.

Example:

        int alpha, r, g, b;

        evas_object_color_get(d.clipper, &r, &g, &b, &alpha);
        evas_color_argb_unpremul(alpha, &r, &g, &b);

        alpha -= 20;
        if (alpha < 0)
          alpha = 255;

        evas_color_argb_premul(alpha, &r, &g, &b);
        evas_object_color_set(d.clipper, r, g, b, alpha);

        fprintf(stdout, "Changing clipper's opacity: %d%%\n",
                (int)((alpha / 255.0) * 100));
        return;

See the full example.

Parameters:
[out]rThe red component of the given color.
[out]gThe green component of the given color.
[out]bThe blue component of the given color.
[out]aThe alpha component of the given color.
Since :
2.3
Examples:
edje-basic.c, evas-object-manipulation.c, evas-smart-interface.c, and evas-smart-object.c.
void evas_object_color_set ( Evas_Object obj,
int  r,
int  g,
int  b,
int  a 
)

Sets the general/main color of the given Evas object to the given one.

See also:
evas_object_color_get() (for an example)
Note:
These color values are expected to be premultiplied by a.
Parameters:
[in]rThe red component of the given color.
[in]gThe green component of the given color.
[in]bThe blue component of the given color.
[in]aThe alpha component of the given color.
Since :
2.3
Examples:
ecore_animator_example.c, ecore_evas_basics_example.c, ecore_evas_buffer_example_01.c, ecore_evas_buffer_example_02.c, ecore_evas_callbacks.c, ecore_evas_object_example.c, ecore_evas_window_sizes_example.c, ecore_imf_example.c, edje-basic.c, edje-box.c, edje-box2.c, edje-color-class.c, edje-drag.c, edje-perspective.c, edje-signals-messages.c, edje-swallow.c, edje-table.c, edje-text.c, eina_tiler_01.c, evas-aspect-hints.c, evas-box.c, evas-buffer-simple.c, evas-events.c, evas-hints.c, evas-images.c, evas-images2.c, evas-map-utils.c, evas-object-manipulation.c, evas-smart-interface.c, evas-smart-object.c, evas-stacking.c, evas-table.c, and evas-text.c.
void evas_object_del ( Evas_Object obj)

Marks the given Evas object for deletion (when Evas will free its memory).

Parameters:
objThe given Evas object.

This call will mark obj for deletion, which will take place whenever it has no more references to it (see evas_object_ref() and evas_object_unref()).

At actual deletion time, which may or may not be just after this call, EVAS_CALLBACK_DEL and EVAS_CALLBACK_FREE callbacks will be called. If the object currently had the focus, its EVAS_CALLBACK_FOCUS_OUT callback will also be called.

See also:
evas_object_ref()
evas_object_unref()
Since :
2.3
Examples:
ecore_animator_example.c, ecore_imf_example.c, edje-basic.c, edje-box.c, edje-box2.c, edje-signals-messages.c, edje-table.c, eina_tiler_01.c, evas-box.c, evas-smart-interface.c, and evas-smart-object.c.
void evas_object_geometry_get ( const Evas_Object obj,
Evas_Coord x,
Evas_Coord y,
Evas_Coord w,
Evas_Coord h 
)

Retrieves the position and (rectangular) size of the given Evas object.

Parameters:
objThe given Evas object.
xPointer to an integer in which to store the X coordinate of the object.
yPointer to an integer in which to store the Y coordinate of the object.
wPointer to an integer in which to store the width of the object.
hPointer to an integer in which to store the height of the object.

The position, naturally, will be relative to the top left corner of the canvas' viewport.

Note:
Use NULL pointers on the geometry components you're not interested in: they'll be ignored by the function.

Example:

   int w, h, cw, ch;

   evas_object_geometry_get(d.img, NULL, NULL, &w, &h);
   ecore_evas_geometry_get(d.ee, NULL, NULL, &cw, &ch);

   if (w < cw)
     evas_object_resize(d.img, cw, ch);
   else
     evas_object_resize(d.img, cw / 2, ch / 2);

   return EINA_TRUE; /* re-issue the timer */

See the full example.

Since :
2.3
Examples:
ecore_imf_example.c, edje-box2.c, evas-box.c, evas-events.c, evas-map-utils.c, evas-smart-interface.c, and evas-smart-object.c.

Set the position and (rectangular) size of the given Evas object.

Parameters:
objThe given Evas object.
xX position to move the object to, in canvas units.
yY position to move the object to, in canvas units.
wThe new width of the Evas object.
hThe new height of the Evas object.

The position, naturally, will be relative to the top left corner of the canvas' viewport.

If the object get moved, the object's EVAS_CALLBACK_MOVE callback will be called.

If the object get resized, the object's EVAS_CALLBACK_RESIZE callback will be called.

See also:
evas_object_move()
evas_object_resize()
evas_object_geometry_get
Since (EFL) :
1.8
Since :
3.0
void evas_object_hide ( Evas_Object obj)

Makes the given Evas object invisible.

Parameters:
objThe given Evas object.

Hidden objects, besides not being shown at all in your canvas, won't be checked for changes on the canvas rendering process. Furthermore, they will not catch input events. Thus, they are much ligher (in processing needs) than an object that is invisible due to indirect causes, such as being clipped or out of the canvas' viewport.

Besides becoming hidden, obj object's EVAS_CALLBACK_SHOW callback will be called.

Note:
All objects are created in the hidden state! If you want them shown, use evas_object_show() after their creation.
See also:
evas_object_show()
evas_object_visible_get()

Example:

        if (evas_object_visible_get(d.clipper))
          {
             evas_object_hide(d.clipper);
             fprintf(stdout, "hidden\n");
          }
        else
          {
             evas_object_show(d.clipper);
             fprintf(stdout, "visible\n");
          }
        return;

See the full example.

Since :
2.3
Examples:
evas-map-utils.c, evas-object-manipulation.c, and evas-smart-interface.c.
void evas_object_ref ( Evas_Object obj)

Increments object reference count to defer its deletion.

Parameters:
objThe given Evas object to reference

This increments the reference count of an object, which if greater than 0 will defer deletion by evas_object_del() until all references are released back (counter back to 0). References cannot go below 0 and unreferencing past that will result in the reference count being limited to 0. References are limited to 2^32 - 1 for an object. Referencing it more than this will result in it being limited to this value.

See also:
evas_object_unref()
evas_object_del()
Note:
This is a very simple reference counting mechanism! For instance, Evas is not ready to check for pending references on a canvas deletion, or things like that. This is useful on scenarios where, inside a code block, callbacks exist which would possibly delete an object we are operating on afterwards. Then, one would evas_object_ref() it on the beginning of the block and evas_object_unref() it on the end. It would then be deleted at this point, if it should be.

Example:

  evas_object_ref(obj);

  // action here...
  evas_object_smart_callback_call(obj, SIG_SELECTED, NULL);
  // more action here...
  evas_object_unref(obj);
Since (EFL) :
1.1
Since :
2.3
int evas_object_ref_get ( const Evas_Object obj)

Get the object reference count.

Parameters:
objThe given Evas object to query

This gets the reference count for an object (normally 0 until it is referenced). Values of 1 or greater mean that someone is holding a reference to this object that needs to be unreffed before it can be deleted.

See also:
evas_object_ref()
evas_object_unref()
evas_object_del()
Since (EFL) :
1.2
Since :
2.3
void evas_object_unref ( Evas_Object obj)

Decrements object reference count.

Parameters:
objThe given Evas object to unreference

This decrements the reference count of an object. If the object has had evas_object_del() called on it while references were more than 0, it will be deleted at the time this function is called and puts the counter back to 0. See evas_object_ref() for more information.

See also:
evas_object_ref() (for an example)
evas_object_del()
Since (EFL) :
1.1
Since :
2.3