diff --git a/src/Makefile_Evas.am b/src/Makefile_Evas.am index df85f92363..f2edbe131e 100644 --- a/src/Makefile_Evas.am +++ b/src/Makefile_Evas.am @@ -36,6 +36,7 @@ BUILT_SOURCES += \ lib/evas/canvas/evas_common_interface.eo.legacy.h \ lib/evas/canvas/evas_object.eo.c \ lib/evas/canvas/evas_object.eo.h \ + lib/evas/canvas/evas_object.eo.legacy.h \ lib/evas/canvas/evas.eo.c \ lib/evas/canvas/evas.eo.h \ lib/evas/canvas/evas_grid.eo.c \ @@ -131,8 +132,9 @@ nodist_installed_evascanvasheaders_DATA = \ lib/evas/canvas/evas_smart.eo.legacy.h \ lib/evas/canvas/evas_smart_clipped.eo.legacy.h \ lib/evas/canvas/evas_table.eo.legacy.h \ - lib/evas/canvas/evas_common_interface.eo.legacy.h - + lib/evas/canvas/evas_common_interface.eo.legacy.h \ + lib/evas/canvas/evas_object.eo.legacy.h + noinst_HEADERS = \ lib/evas/include/evas_inline.x \ lib/evas/include/evas_private.h \ diff --git a/src/lib/evas/Evas_Legacy.h b/src/lib/evas/Evas_Legacy.h index 39c5c95cf9..e48d5fa096 100644 --- a/src/lib/evas/Evas_Legacy.h +++ b/src/lib/evas/Evas_Legacy.h @@ -1540,268 +1540,8 @@ EAPI const Eina_List *evas_font_path_list(const Evas *e) EINA_WARN_UNUSED * @{ */ -/** - * Clip one object to another. - * - * @param obj The object to be clipped - * @param clip The object to clip @p obj by - * - * This function will clip the object @p obj to the area occupied by - * the object @p clip. This means the object @p obj will only be - * visible within the area occupied by the clipping object (@p clip). - * - * The color of the object being clipped will be multiplied by the - * color of the clipping one, so the resulting color for the former - * will be RESULT = (OBJ * CLIP) / (255 * 255), per color - * element (red, green, blue and alpha). - * - * Clipping is recursive, so clipping objects may be clipped by - * others, and their color will in term be multiplied. You may @b 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 in the canvas as - * normal; those that clip one 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 (as in - * evas_object_show()), the objects clipped by it will not be shown - * either. - * - * If @p obj was being clipped by another object when this function is - * called, it gets implicitly removed from the old clipper's domain - * and is made now to be clipped by its new clipper. - * - * The following figure illustrates some clipping in Evas: - * - * @image html clipping.png - * @image rtf clipping.png - * @image latex clipping.eps - * - * @note 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 @p clip must be a valid object, but can also be @c - * NULL, in which case the effect of this function is the same as - * calling evas_object_clip_unset() on the @p obj object. - * - * Example: - * @dontinclude evas-object-manipulation.c - * @skip solid white clipper (note that it's the default color for a - * @until evas_object_show(d.clipper); - * - * See the full @ref Example_Evas_Object_Manipulation "example". - */ -EAPI void evas_object_clip_set(Evas_Object *obj, Evas_Object *clip) EINA_ARG_NONNULL(1, 2); -/** - * Get the object clipping @p obj (if any). - * - * @param obj The object to get the clipper from - * - * This function returns the object clipping @p obj. If @p obj is - * not being clipped at all, @c NULL is returned. The object @p obj - * must be a valid ::Evas_Object. - * - * See also evas_object_clip_set(), evas_object_clip_unset() and - * evas_object_clipees_get(). - * - * Example: - * @dontinclude evas-object-manipulation.c - * @skip if (evas_object_clip_get(d.img) == d.clipper) - * @until return - * - * See the full @ref Example_Evas_Object_Manipulation "example". - */ -EAPI Evas_Object *evas_object_clip_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); -/** - * Disable/cease clipping on a clipped @p obj object. - * - * @param obj The object to cease clipping on - * - * This function disables clipping for the object @p obj, if it was - * already clipped, i.e., its visibility and color get detached from - * the previous clipper. If it wasn't, this has no effect. The object - * @p obj must be a valid ::Evas_Object. - * - * See also evas_object_clip_set() (for an example), - * evas_object_clipees_get() and evas_object_clip_get(). - * - */ -EAPI void evas_object_clip_unset(Evas_Object *obj); - -/** - * Return a list of objects currently clipped by @p obj. - * - * @param obj The object to get a list of clippees from - * @return a list of objects being clipped by @p obj - * - * This returns the internal list handle that contains all objects - * clipped by the object @p obj. If none are clipped by it, the call - * returns @c 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, deleted or get the - * clipper 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, possibly - * leading to crashes. The object @p obj must be a valid - * ::Evas_Object. - * - * See also evas_object_clip_set(), evas_object_clip_unset() and - * evas_object_clip_get(). - * - * Example: - * @code - * extern Evas_Object *obj; - * Evas_Object *clipper; - * - * clipper = evas_object_clip_get(obj); - * if (clipper) - * { - * Eina_List *clippees, *l; - * Evas_Object *obj_tmp; - * - * clippees = evas_object_clipees_get(clipper); - * printf("Clipper clips %i objects\n", eina_list_count(clippees)); - * EINA_LIST_FOREACH(clippees, l, obj_tmp) - * evas_object_show(obj_tmp); - * } - * @endcode - */ -EAPI const Eina_List *evas_object_clipees_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); - -/** - * Test if any object is clipped by @p obj. - * - * @param obj The object to get a list of clippees from - * @return EINA_TRUE if @p obj clip any object. - * @since 1.8 - */ -EAPI Eina_Bool evas_object_clipees_has(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); - -/** - * Sets or unsets a given object as the currently focused one on its - * canvas. - * - * @param obj The object to be focused or unfocused. - * @param focus @c EINA_TRUE, to set it as focused or @c EINA_FALSE, - * to take away the focus from it. - * - * Changing focus only affects where (key) input events go. There can - * be only one object focused at any time. If @p focus is @c EINA_TRUE, - * @p obj will be set as the currently focused object and it will - * receive all keyboard events that are not exclusive key grabs on - * other objects. - * - * Example: - * @dontinclude evas-events.c - * @skip evas_object_focus_set - * @until evas_object_focus_set - * - * See the full example @ref Example_Evas_Events "here". - * - * @see evas_object_focus_get - * @see evas_focus_get - * @see evas_object_key_grab - * @see evas_object_key_ungrab - */ -EAPI void evas_object_focus_set(Evas_Object *obj, Eina_Bool focus) EINA_ARG_NONNULL(1); - -/** - * Retrieve whether an object has the focus. - * - * @param obj The object to retrieve focus information from. - * @return @c EINA_TRUE if the object has the focus, @c EINA_FALSE otherwise. - * - * If the passed object is the currently focused one, @c EINA_TRUE is - * returned. @c EINA_FALSE is returned, otherwise. - * - * Example: - * @dontinclude evas-events.c - * @skip And again - * @until something is bad - * - * See the full example @ref Example_Evas_Events "here". - * - * @see evas_object_focus_set - * @see evas_focus_get - * @see evas_object_key_grab - * @see evas_object_key_ungrab - */ -EAPI Eina_Bool evas_object_focus_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); - -/** - * Sets the layer of its canvas that the given object will be part of. - * - * @param obj The given Evas object. - * @param l The number of the layer to place the object on. - * Must be between #EVAS_LAYER_MIN and #EVAS_LAYER_MAX. - * - * If you don't use this function, you'll be dealing with an @b unique - * layer of objects, the default one. Additional layers are handy when - * you don't want a set of objects to interfere with another set with - * regard to @b stacking. Two layers are completely disjoint in that - * matter. - * - * This is a low-level function, which you'd be using when something - * should be always on top, for example. - * - * @warning Be careful, it doesn't make sense to change the layer of - * smart objects' children. Smart objects have a layer of their own, - * which should contain all their children objects. - * - * @see evas_object_layer_get() - */ -EAPI void evas_object_layer_set(Evas_Object *obj, short l) EINA_ARG_NONNULL(1); - -/** - * Retrieves the layer of its canvas that the given object is part of. - * - * @param obj The given Evas object to query layer from - * @return Number of its layer - * - * @see evas_object_layer_set() - */ -EAPI short evas_object_layer_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); - -/** - * Sets the name of the given Evas object to the given name. - * - * @param obj The given object. - * @param name The given name. - * - * There might be occasions where one would like to name his/her - * objects. - * - * Example: - * @dontinclude evas-events.c - * @skip d.bg = evas_object_rectangle_add(d.canvas); - * @until evas_object_name_set(d.bg, "our dear rectangle"); - * - * See the full @ref Example_Evas_Events "example". - */ -EAPI void evas_object_name_set(Evas_Object *obj, const char *name) EINA_ARG_NONNULL(1); - -/** - * Retrieves the name of the given Evas object. - * - * @param obj The given object. - * @return The name of the object or @c NULL, if no name has been given - * to it. - * - * Example: - * @dontinclude evas-events.c - * @skip fprintf(stdout, "An object got focused: %s\n", - * @until evas_focus_get - * - * See the full @ref Example_Evas_Events "example". - */ -EAPI const char *evas_object_name_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); /** * Increments object reference count to defer its deletion. @@ -1902,67 +1642,6 @@ EAPI int evas_object_ref_get(const Evas_Object *obj); */ EAPI void evas_object_del(Evas_Object *obj) EINA_ARG_NONNULL(1); -/** - * Move the given Evas object to the given location inside its - * canvas' viewport. - * - * @param obj The given Evas object. - * @param x X position to move the object to, in canvas units. - * @param y Y position to move the object to, in canvas units. - * - * Besides being moved, the object's ::EVAS_CALLBACK_MOVE callback - * will be called. - * - * @note Naturally, newly created objects are placed at the canvas' - * origin: 0, 0. - * - * Example: - * @dontinclude evas-object-manipulation.c - * @skip evas_object_image_border_set(d.clipper_border, 3, 3, 3, 3); - * @until evas_object_show - * - * See the full @ref Example_Evas_Object_Manipulation "example". - * - * @ingroup Evas_Object_Group_Basic - */ -EAPI void evas_object_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y) EINA_ARG_NONNULL(1); - -/** - * Changes the size of the given Evas object. - * - * @param obj The given Evas object. - * @param w The new width of the Evas object. - * @param h The new height of the Evas object. - * - * Besides being resized, the object's ::EVAS_CALLBACK_RESIZE callback - * will be called. - * - * @note Newly created objects have zeroed dimensions. Then, you most - * probably want to use evas_object_resize() on them after they are - * created. - * - * @note Be aware that resizing an object changes its drawing area, - * but that does imply the object is rescaled! For instance, images - * are filled inside their drawing area using the specifications of - * evas_object_image_fill_set(). Thus to scale the image to match - * exactly your drawing area, you need to change the - * evas_object_image_fill_set() as well. - * - * @note This is more evident in images, but text, textblock, lines - * and polygons will behave similarly. Check their specific APIs to - * know how to achieve your desired behavior. Consider the following - * example: - * - * @code - * // rescale image to fill exactly its area without tiling: - * evas_object_resize(img, w, h); - * evas_object_image_fill_set(img, 0, 0, w, h); - * @endcode - * - * @ingroup Evas_Object_Group_Basic - */ -EAPI void evas_object_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h) EINA_ARG_NONNULL(1); - /** * Retrieves the position and (rectangular) size of the given Evas * object. @@ -2069,233 +1748,10 @@ EAPI void evas_object_show(Evas_Object *obj) EINA_ARG_NONNULL(1); */ EAPI void evas_object_hide(Evas_Object *obj) EINA_ARG_NONNULL(1); -/** - * Retrieves whether or not the given Evas object is visible. - * - * @param obj The given Evas object. - * @return @c EINA_TRUE if the object is visible, @c EINA_FALSE - * otherwise. - * - * This retrieves an object's visibility as the one enforced by - * evas_object_show() and evas_object_hide(). - * - * @note The value returned isn't, by any means, influenced by - * clippers covering @p obj, it being out of its canvas' viewport or - * stacked below other object. - * - * @see evas_object_show() - * @see evas_object_hide() (for an example) - * - * @ingroup Evas_Object_Group_Basic - */ -EAPI Eina_Bool evas_object_visible_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); - -/** - * Sets the general/main color of the given Evas object to the given - * one. - * - * @param obj The given Evas object. - * @param r The red component of the given color. - * @param g The green component of the given color. - * @param b The blue component of the given color. - * @param a The alpha component of the given color. - * - * @see evas_object_color_get() (for an example) - * @note These color values are expected to be premultiplied by @p a. - * - * @ingroup Evas_Object_Group_Basic - */ -EAPI void evas_object_color_set(Evas_Object *obj, int r, int g, int b, int a) EINA_ARG_NONNULL(1); - -/** - * Retrieves the general/main color of the given Evas object. - * - * @param obj The given Evas object to retrieve color from. - * @param r Pointer to an integer in which to store the red component - * of the color. - * @param g Pointer to an integer in which to store the green - * component of the color. - * @param b Pointer to an integer in which to store the blue component - * of the color. - * @param a Pointer to an integer in which to store the alpha - * component of the color. - * - * 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). - * - * @note Use @c NULL pointers on the components you're not interested - * in: they'll be ignored by the function. - * - * Example: - * @dontinclude evas-object-manipulation.c - * @skip int alpha, r, g, b; - * @until return - * - * See the full @ref Example_Evas_Object_Manipulation "example". - * - * @ingroup Evas_Object_Group_Basic - */ -EAPI void evas_object_color_get(const Evas_Object *obj, int *r, int *g, int *b, int *a) EINA_ARG_NONNULL(1); #include "canvas/evas_common_interface.eo.legacy.h" +#include "canvas/evas_object.eo.legacy.h" -/** - * Retrieves the type of the given Evas object. - * - * @param obj The given object. - * @return The type of the object. - * - * For Evas' builtin types, the return strings will be one of: - * - "rectangle", - * - "line", - * - "polygon", - * - "text", - * - "textblock" and - * - "image". - * - * For Evas smart objects (see @ref Evas_Smart_Group), the name of the - * smart class itself is returned on this call. For the built-in smart - * objects, these names are: - * - "EvasObjectSmartClipped", for the clipped smart object - * - "Evas_Object_Box", for the box object and - * - "Evas_Object_Table", for the table object. - * - * Example: - * @dontinclude evas-object-manipulation.c - * @skip d.img = evas_object_image_filled_add(d.canvas); - * @until border on the - * - * See the full @ref Example_Evas_Object_Manipulation "example". - */ -EAPI const char *evas_object_type_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); - -/** - * Raise @p obj to the top of its layer. - * - * @param obj the object to raise - * - * @p obj will, then, be the highest one in the layer it belongs - * to. Object on other layers won't get touched. - * - * @see evas_object_stack_above() - * @see evas_object_stack_below() - * @see evas_object_lower() - */ -EAPI void evas_object_raise(Evas_Object *obj) EINA_ARG_NONNULL(1); - -/** - * Lower @p obj to the bottom of its layer. - * - * @param obj the object to lower - * - * @p obj will, then, be the lowest one in the layer it belongs - * to. Objects on other layers won't get touched. - * - * @see evas_object_stack_above() - * @see evas_object_stack_below() - * @see evas_object_raise() - */ -EAPI void evas_object_lower(Evas_Object *obj) EINA_ARG_NONNULL(1); - -/** - * Stack @p obj immediately above @p above - * - * @param obj the object to stack - * @param above the object above which to stack - * - * Objects, in a given canvas, are stacked in the order they get added - * to it. This means that, if they overlap, the highest ones will - * cover the lowest ones, in that order. This function is a way to - * change the stacking order for the objects. - * - * This function is intended to be used with objects belonging to - * the same layer in a given canvas, otherwise it will fail (and - * accomplish nothing). - * - * If you have smart objects on your canvas and @p obj is a member of - * one of them, then @p above must also be a member of the same - * smart object. - * - * Similarly, if @p obj is not a member of a smart object, @p above - * must not be either. - * - * @see evas_object_layer_get() - * @see evas_object_layer_set() - * @see evas_object_stack_below() - */ -EAPI void evas_object_stack_above(Evas_Object *obj, Evas_Object *above) EINA_ARG_NONNULL(1, 2); - -/** - * Stack @p obj immediately below @p below - * - * @param obj the object to stack - * @param below the object below which to stack - * - * Objects, in a given canvas, are stacked in the order they get added - * to it. This means that, if they overlap, the highest ones will - * cover the lowest ones, in that order. This function is a way to - * change the stacking order for the objects. - * - * This function is intended to be used with objects belonging to - * the same layer in a given canvas, otherwise it will fail (and - * accomplish nothing). - * - * If you have smart objects on your canvas and @p obj is a member of - * one of them, then @p below must also be a member of the same - * smart object. - * - * Similarly, if @p obj is not a member of a smart object, @p below - * must not be either. - * - * @see evas_object_layer_get() - * @see evas_object_layer_set() - * @see evas_object_stack_below() - */ -EAPI void evas_object_stack_below(Evas_Object *obj, Evas_Object *below) EINA_ARG_NONNULL(1, 2); - -/** - * Get the Evas object stacked right above @p obj - * - * @param obj an #Evas_Object - * @return the #Evas_Object directly above @p obj, if any, or @c NULL, - * if none - * - * This function will traverse layers in its search, if there are - * objects on layers above the one @p obj is placed at. - * - * @see evas_object_layer_get() - * @see evas_object_layer_set() - * @see evas_object_below_get() - * - */ -EAPI Evas_Object *evas_object_above_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); - -/** - * Get the Evas object stacked right below @p obj - * - * @param obj an #Evas_Object - * @return the #Evas_Object directly below @p obj, if any, or @c NULL, - * if none - * - * This function will traverse layers in its search, if there are - * objects on layers below the one @p obj is placed at. - * - * @see evas_object_layer_get() - * @see evas_object_layer_set() - * @see evas_object_below_get() - */ -EAPI Evas_Object *evas_object_below_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); /** * @} */ @@ -2569,169 +2025,7 @@ EAPI void *evas_object_event_callback_del(Evas_Object *obj, Evas_Callback_Ty */ EAPI void *evas_object_event_callback_del_full(Evas_Object *obj, Evas_Callback_Type type, Evas_Object_Event_Cb func, const void *data) EINA_ARG_NONNULL(1, 3); -/** - * Set whether an Evas object is to pass (ignore) events. - * - * @param obj the Evas object to operate on - * @param pass whether @p obj is to pass events (@c EINA_TRUE) or not - * (@c EINA_FALSE) - * - * If @p pass is @c EINA_TRUE, it will make events on @p obj to be @b - * ignored. They will be triggered on the @b next lower object (that - * is not set to pass events), instead (see evas_object_below_get()). - * - * If @p pass is @c EINA_FALSE, events will be processed on that - * object as normal. - * - * @see evas_object_pass_events_get() for an example - * @see evas_object_repeat_events_set() - * @see evas_object_propagate_events_set() - * @see evas_object_freeze_events_set() - */ -EAPI void evas_object_pass_events_set(Evas_Object *obj, Eina_Bool pass) EINA_ARG_NONNULL(1); -/** - * Determine whether an object is set to pass (ignore) events. - * - * @param obj the Evas object to get information from. - * @return pass whether @p obj is set to pass events (@c EINA_TRUE) or not - * (@c EINA_FALSE) - * - * Example: - * @dontinclude evas-stacking.c - * @skip if (strcmp(ev->key, "p") == 0) - * @until } - * - * See the full @ref Example_Evas_Stacking "example". - * - * @see evas_object_pass_events_set() - * @see evas_object_repeat_events_get() - * @see evas_object_propagate_events_get() - * @see evas_object_freeze_events_get() - */ -EAPI Eina_Bool evas_object_pass_events_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); - -/** - * Set whether an Evas object is to repeat events. - * - * @param obj the Evas object to operate on - * @param repeat whether @p obj is to repeat events (@c EINA_TRUE) or not - * (@c EINA_FALSE) - * - * If @p repeat is @c EINA_TRUE, it will make events on @p obj to also - * be repeated for the @b next lower object in the objects' stack (see - * see evas_object_below_get()). - * - * If @p repeat is @c EINA_FALSE, events occurring on @p obj will be - * processed only on it. - * - * Example: - * @dontinclude evas-stacking.c - * @skip if (strcmp(ev->key, "r") == 0) - * @until } - * - * See the full @ref Example_Evas_Stacking "example". - * - * @see evas_object_repeat_events_get() - * @see evas_object_pass_events_set() - * @see evas_object_propagate_events_set() - * @see evas_object_freeze_events_set() - */ -EAPI void evas_object_repeat_events_set(Evas_Object *obj, Eina_Bool repeat) EINA_ARG_NONNULL(1); - -/** - * Determine whether an object is set to repeat events. - * - * @param obj the given Evas object pointer - * @return whether @p obj is set to repeat events (@c EINA_TRUE) - * or not (@c EINA_FALSE) - * - * @see evas_object_repeat_events_set() for an example - * @see evas_object_pass_events_get() - * @see evas_object_propagate_events_get() - * @see evas_object_freeze_events_get() - */ -EAPI Eina_Bool evas_object_repeat_events_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); - -/** - * Set whether events on a smart object's member should get propagated - * up to its parent. - * - * @param obj the smart object's child to operate on - * @param prop whether to propagate events (@c EINA_TRUE) or not - * (@c EINA_FALSE) - * - * This function has @b no effect if @p obj is not a member of a smart - * object. - * - * If @p prop is @c EINA_TRUE, events occurring on this object will be - * propagated on to the smart object of which @p obj is a member. If - * @p prop is @c EINA_FALSE, events occurring on this object will @b - * not be propagated on to the smart object of which @p obj is a - * member. The default value is @c EINA_TRUE. - * - * @see evas_object_propagate_events_get() - * @see evas_object_repeat_events_set() - * @see evas_object_pass_events_set() - * @see evas_object_freeze_events_set() - */ -EAPI void evas_object_propagate_events_set(Evas_Object *obj, Eina_Bool prop) EINA_ARG_NONNULL(1); - -/** - * Retrieve whether an Evas object is set to propagate events. - * - * @param obj the given Evas object pointer - * @return whether @p obj is set to propagate events (@c EINA_TRUE) - * or not (@c EINA_FALSE) - * - * @see evas_object_propagate_events_set() - * @see evas_object_repeat_events_get() - * @see evas_object_pass_events_get() - * @see evas_object_freeze_events_get() - */ -EAPI Eina_Bool evas_object_propagate_events_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); - -/** - * Set whether an Evas object is to freeze (discard) events. - * - * @param obj the Evas object to operate on - * @param freeze pass whether @p obj is to freeze events (@c EINA_TRUE) or not - * (@c EINA_FALSE) - * - * If @p freeze is @c EINA_TRUE, it will make events on @p obj to be @b - * discarded. Unlike evas_object_pass_events_set(), events will not be - * passed to @b next lower object. This API can be used for blocking - * events while @p obj is on transiting. - * - * If @p freeze is @c EINA_FALSE, events will be processed on that - * object as normal. - * - * @warning If you block only key/mouse up events with this API, we won't - * guarantee the state of the object, that only had key/mouse down - * events, will be. - * - * @see evas_object_freeze_events_get() - * @see evas_object_pass_events_set() - * @see evas_object_repeat_events_set() - * @see evas_object_propagate_events_set() - * @since 1.1 - */ -EAPI void evas_object_freeze_events_set(Evas_Object *obj, Eina_Bool freeze) EINA_ARG_NONNULL(1); - -/** - * Determine whether an object is set to freeze (discard) events. - * - * @param obj the Evas object to get information from. - * @return freeze whether @p obj is set to freeze events (@c EINA_TRUE) or - * not (@c EINA_FALSE) - * - * @see evas_object_freeze_events_set() - * @see evas_object_pass_events_get() - * @see evas_object_repeat_events_get() - * @see evas_object_propagate_events_get() - * @since 1.1 - */ -EAPI Eina_Bool evas_object_freeze_events_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); /** * @} */ @@ -2742,98 +2036,6 @@ EAPI Eina_Bool evas_object_freeze_events_get(const Evas_Object *obj) EINA_WARN_U * @{ */ -/** - * Enable or disable the map that is set. - * - * Enable or disable the use of map for the object @p obj. - * On enable, the object geometry will be saved, and the new geometry will - * change (position and size) to reflect the map geometry set. - * - * If the object doesn't have a map set (with evas_object_map_set()), the - * initial geometry will be undefined. It is advised to always set a map - * to the object first, and then call this function to enable its use. - * - * @param obj object to enable the map on - * @param enabled enabled state - */ -EAPI void evas_object_map_enable_set(Evas_Object *obj, Eina_Bool enabled); - -/** - * Get the map enabled state - * - * This returns the currently enabled state of the map on the object indicated. - * The default map enable state is off. You can enable and disable it with - * evas_object_map_enable_set(). - * - * @param obj object to get the map enabled state from - * @return the map enabled state - */ -EAPI Eina_Bool evas_object_map_enable_get(const Evas_Object *obj); - -/** - * Set current object transformation map. - * - * This sets the map on a given object. It is copied from the @p map pointer, - * so there is no need to keep the @p map object if you don't need it anymore. - * - * A map is a set of 4 points which have canvas x, y coordinates per point, - * with an optional z point value as a hint for perspective correction, if it - * is available. As well each point has u and v coordinates. These are like - * "texture coordinates" in OpenGL in that they define a point in the source - * image that is mapped to that map vertex/point. The u corresponds to the x - * coordinate of this mapped point and v, the y coordinate. Note that these - * coordinates describe a bounding region to sample. If you have a 200x100 - * source image and want to display it at 200x100 with proper pixel - * precision, then do: - * - * @code - * Evas_Map *m = evas_map_new(4); - * evas_map_point_coord_set(m, 0, 0, 0, 0); - * evas_map_point_coord_set(m, 1, 200, 0, 0); - * evas_map_point_coord_set(m, 2, 200, 100, 0); - * evas_map_point_coord_set(m, 3, 0, 100, 0); - * evas_map_point_image_uv_set(m, 0, 0, 0); - * evas_map_point_image_uv_set(m, 1, 200, 0); - * evas_map_point_image_uv_set(m, 2, 200, 100); - * evas_map_point_image_uv_set(m, 3, 0, 100); - * evas_object_map_set(obj, m); - * evas_map_free(m); - * @endcode - * - * Note that the map points a uv coordinates match the image geometry. If - * the @p map parameter is NULL, the stored map will be freed and geometry - * prior to enabling/setting a map will be restored. - * - * @param obj object to change transformation map - * @param map new map to use - * - * @see evas_map_new() - */ -EAPI void evas_object_map_set(Evas_Object *obj, const Evas_Map *map); - -/** - * Get current object transformation map. - * - * This returns the current internal map set on the indicated object. It is - * intended for read-only access and is only valid as long as the object is - * not deleted or the map on the object is not changed. If you wish to modify - * the map and set it back do the following: - * - * @code - * const Evas_Map *m = evas_object_map_get(obj); - * Evas_Map *m2 = evas_map_dup(m); - * evas_map_util_rotate(m2, 30.0, 0, 0); - * evas_object_map_set(obj, m2); - * evas_map_free(m2); - * @endcode - * - * @param obj object to query transformation map. - * @return map reference to map in use. This is an internal data structure, so - * do not modify it. - * - * @see evas_object_map_set() - */ -EAPI const Evas_Map *evas_object_map_get(const Evas_Object *obj); /** * @} */ @@ -2844,412 +2046,7 @@ EAPI const Evas_Map *evas_object_map_get(const Evas_Object *obj); * @{ */ -/** - * Retrieves the hints for an object's minimum size. - * - * @param obj The given Evas object to query hints from. - * @param w Pointer to an integer in which to store the minimum width. - * @param h Pointer to an integer in which to store the minimum height. - * - * These are hints on the minimum sizes @p obj should have. This is - * not a size enforcement in any way, it's just a hint that should be - * used whenever appropriate. - * - * @note Use @c NULL pointers on the hint components you're not - * interested in: they'll be ignored by the function. - * - * @see evas_object_size_hint_min_set() for an example - */ -EAPI void evas_object_size_hint_min_get(const Evas_Object *obj, Evas_Coord *w, Evas_Coord *h) EINA_ARG_NONNULL(1); -/** - * Sets the hints for an object's minimum size. - * - * @param obj The given Evas object to query hints from. - * @param w Integer to use as the minimum width hint. - * @param h Integer to use as the minimum height hint. - * - * This is not a size enforcement in any way, it's just a hint that - * should be used whenever appropriate. - * - * Values @c 0 will be treated as unset hint components, when queried - * by managers. - * - * Example: - * @dontinclude evas-hints.c - * @skip evas_object_size_hint_min_set - * @until return - * - * In this example the minimum size hints change the behavior of an - * Evas box when layouting its children. See the full @ref - * Example_Evas_Size_Hints "example". - * - * @see evas_object_size_hint_min_get() - */ -EAPI void evas_object_size_hint_min_set(Evas_Object *obj, Evas_Coord w, Evas_Coord h) EINA_ARG_NONNULL(1); - -/** - * Retrieves the hints for an object's maximum size. - * - * @param obj The given Evas object to query hints from. - * @param w Pointer to an integer in which to store the maximum width. - * @param h Pointer to an integer in which to store the maximum height. - * - * These are hints on the maximum sizes @p obj should have. This is - * not a size enforcement in any way, it's just a hint that should be - * used whenever appropriate. - * - * @note Use @c NULL pointers on the hint components you're not - * interested in: they'll be ignored by the function. - * - * @see evas_object_size_hint_max_set() - */ -EAPI void evas_object_size_hint_max_get(const Evas_Object *obj, Evas_Coord *w, Evas_Coord *h) EINA_ARG_NONNULL(1); - -/** - * Sets the hints for an object's maximum size. - * - * @param obj The given Evas object to query hints from. - * @param w Integer to use as the maximum width hint. - * @param h Integer to use as the maximum height hint. - * - * This is not a size enforcement in any way, it's just a hint that - * should be used whenever appropriate. - * - * Values @c -1 will be treated as unset hint components, when queried - * by managers. - * - * Example: - * @dontinclude evas-hints.c - * @skip evas_object_size_hint_max_set - * @until return - * - * In this example the maximum size hints change the behavior of an - * Evas box when layouting its children. See the full @ref - * Example_Evas_Size_Hints "example". - * - * @see evas_object_size_hint_max_get() - */ -EAPI void evas_object_size_hint_max_set(Evas_Object *obj, Evas_Coord w, Evas_Coord h) EINA_ARG_NONNULL(1); - -/** - * Retrieves the hints for an object's display mode - * - * @param obj The given Evas object to query hints from. - * - * These are hints on the display mode @p obj. This is - * not a size enforcement in any way, it's just a hint that can be - * used whenever appropriate. - * This mode can be used object's display mode like commpress or expand - * - * @see evas_object_size_hint_display_mode_set() - */ -EAPI Evas_Display_Mode evas_object_size_hint_display_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); - -/** - * Sets the hints for an object's disply mode - * - * @param obj The given Evas object to query hints from. - * @param dispmode to use as the display mode hint. - * - * This is not a size enforcement in any way, it's just a hint that - * can be used whenever appropriate. - * - * @see evas_object_size_hint_display_mode_get() - */ -EAPI void evas_object_size_hint_display_mode_set(Evas_Object *obj, Evas_Display_Mode dispmode) EINA_ARG_NONNULL(1); - -/** - * Retrieves the hints for an object's optimum size. - * - * @param obj The given Evas object to query hints from. - * @param w Pointer to an integer in which to store the requested width. - * @param h Pointer to an integer in which to store the requested height. - * - * These are hints on the optimum sizes @p obj should have. This is - * not a size enforcement in any way, it's just a hint that should be - * used whenever appropriate. - * - * @note Use @c NULL pointers on the hint components you're not - * interested in: they'll be ignored by the function. - * - * @see evas_object_size_hint_request_set() - */ -EAPI void evas_object_size_hint_request_get(const Evas_Object *obj, Evas_Coord *w, Evas_Coord *h) EINA_ARG_NONNULL(1); - -/** - * Sets the hints for an object's optimum size. - * - * @param obj The given Evas object to query hints from. - * @param w Integer to use as the preferred width hint. - * @param h Integer to use as the preferred height hint. - * - * This is not a size enforcement in any way, it's just a hint that - * should be used whenever appropriate. - * - * Values @c 0 will be treated as unset hint components, when queried - * by managers. - * - * @see evas_object_size_hint_request_get() - */ -EAPI void evas_object_size_hint_request_set(Evas_Object *obj, Evas_Coord w, Evas_Coord h) EINA_ARG_NONNULL(1); - -/** - * Retrieves the hints for an object's aspect ratio. - * - * @param obj The given Evas object to query hints from. - * @param aspect Returns the policy/type of aspect ratio applied to @p obj. - * @param w Pointer to an integer in which to store the aspect's width - * ratio term. - * @param h Pointer to an integer in which to store the aspect's - * height ratio term. - * - * The different aspect ratio policies are documented in the - * #Evas_Aspect_Control type. A container respecting these size hints - * would @b resize its children accordingly to those policies. - * - * For any policy, if any of the given aspect ratio terms are @c 0, - * the object's container should ignore the aspect and scale @p obj to - * occupy the whole available area. If they are both positive - * integers, that proportion will be respected, under each scaling - * policy. - * - * These images illustrate some of the #Evas_Aspect_Control policies: - * - * @image html any-policy.png - * @image rtf any-policy.png - * @image latex any-policy.eps - * - * @image html aspect-control-none-neither.png - * @image rtf aspect-control-none-neither.png - * @image latex aspect-control-none-neither.eps - * - * @image html aspect-control-both.png - * @image rtf aspect-control-both.png - * @image latex aspect-control-both.eps - * - * @image html aspect-control-horizontal.png - * @image rtf aspect-control-horizontal.png - * @image latex aspect-control-horizontal.eps - * - * This is not a size enforcement in any way, it's just a hint that - * should be used whenever appropriate. - * - * @note Use @c NULL pointers on the hint components you're not - * interested in: they'll be ignored by the function. - * - * Example: - * @dontinclude evas-aspect-hints.c - * @skip if (strcmp(ev->key, "c") == 0) - * @until } - * - * See the full @ref Example_Evas_Aspect_Hints "example". - * - * @see evas_object_size_hint_aspect_set() - */ -EAPI void evas_object_size_hint_aspect_get(const Evas_Object *obj, Evas_Aspect_Control *aspect, Evas_Coord *w, Evas_Coord *h) EINA_ARG_NONNULL(1); - -/** - * Sets the hints for an object's aspect ratio. - * - * @param obj The given Evas object to query hints from. - * @param aspect The policy/type of aspect ratio to apply to @p obj. - * @param w Integer to use as aspect width ratio term. - * @param h Integer to use as aspect height ratio term. - * - * This is not a size enforcement in any way, it's just a hint that should - * be used whenever appropriate. - * - * If any of the given aspect ratio terms are @c 0, - * the object's container will ignore the aspect and scale @p obj to - * occupy the whole available area, for any given policy. - * - * @see evas_object_size_hint_aspect_get() for more information. - */ -EAPI void evas_object_size_hint_aspect_set(Evas_Object *obj, Evas_Aspect_Control aspect, Evas_Coord w, Evas_Coord h) EINA_ARG_NONNULL(1); - -/** - * Retrieves the hints for on object's alignment. - * - * @param obj The given Evas object to query hints from. - * @param x Pointer to a double in which to store the horizontal - * alignment hint. - * @param y Pointer to a double in which to store the vertical - * alignment hint. - * - * This is not a size enforcement in any way, it's just a hint that - * should be used whenever appropriate. - * - * @note Use @c NULL pointers on the hint components you're not - * interested in: they'll be ignored by the function. - * @note If @c obj is invalid, then the hint components will be set with 0.5 - * - * @see evas_object_size_hint_align_set() for more information - */ -EAPI void evas_object_size_hint_align_get(const Evas_Object *obj, double *x, double *y) EINA_ARG_NONNULL(1); - -/** - * Sets the hints for an object's alignment. - * - * @param obj The given Evas object to query hints from. - * @param x Double, ranging from @c 0.0 to @c 1.0 or with the - * special value #EVAS_HINT_FILL, to use as horizontal alignment hint. - * @param y Double, ranging from @c 0.0 to @c 1.0 or with the - * special value #EVAS_HINT_FILL, to use as vertical alignment hint. - * - * These are hints on how to align an object inside the boundaries - * of a container/manager. Accepted values are in the @c 0.0 to @c - * 1.0 range, with the special value #EVAS_HINT_FILL used to specify - * "justify" or "fill" by some users. In this case, maximum size hints - * should be enforced with higher priority, if they are set. Also, any - * padding hint set on objects should add up to the alignment space on - * the final scene composition. - * - * See documentation of possible users: in Evas, they are the @ref - * Evas_Object_Box "box" and @ref Evas_Object_Table "table" smart - * objects. - * - * For the horizontal component, @c 0.0 means to the left, @c 1.0 - * means to the right. Analogously, for the vertical component, @c 0.0 - * to the top, @c 1.0 means to the bottom. - * - * See the following figure: - * - * @image html alignment-hints.png - * @image rtf alignment-hints.png - * @image latex alignment-hints.eps - * - * This is not a size enforcement in any way, it's just a hint that - * should be used whenever appropriate. - * - * @note Default alignment hint values are 0.5, for both axis. - * - * Example: - * @dontinclude evas-hints.c - * @skip evas_object_size_hint_align_set - * @until return - * - * In this example the alignment hints change the behavior of an Evas - * box when layouting its children. See the full @ref - * Example_Evas_Size_Hints "example". - * - * @see evas_object_size_hint_align_get() - * @see evas_object_size_hint_max_set() - * @see evas_object_size_hint_padding_set() - */ -EAPI void evas_object_size_hint_align_set(Evas_Object *obj, double x, double y) EINA_ARG_NONNULL(1); - -/** - * Retrieves the hints for an object's weight. - * - * @param obj The given Evas object to query hints from. - * @param x Pointer to a double in which to store the horizontal weight. - * @param y Pointer to a double in which to store the vertical weight. - * - * Accepted values are zero or positive values. Some users might use - * this hint as a boolean, but some might consider it as a @b - * proportion, see documentation of possible users, which in Evas are - * the @ref Evas_Object_Box "box" and @ref Evas_Object_Table "table" - * smart objects. - * - * This is not a size enforcement in any way, it's just a hint that - * should be used whenever appropriate. - * - * @note Use @c NULL pointers on the hint components you're not - * interested in: they'll be ignored by the function. - * @note If @c obj is invalid, then the hint components will be set with 0.0 - * - * @see evas_object_size_hint_weight_set() for an example - */ -EAPI void evas_object_size_hint_weight_get(const Evas_Object *obj, double *x, double *y) EINA_ARG_NONNULL(1); - -/** - * Sets the hints for an object's weight. - * - * @param obj The given Evas object to query hints from. - * @param x Nonnegative double value to use as horizontal weight hint. - * @param y Nonnegative double value to use as vertical weight hint. - * - * This is not a size enforcement in any way, it's just a hint that - * should be used whenever appropriate. - * - * This is a hint on how a container object should @b resize a given - * child within its area. Containers may adhere to the simpler logic - * of just expanding the child object's dimensions to fit its own (see - * the #EVAS_HINT_EXPAND helper weight macro) or the complete one of - * taking each child's weight hint as real @b weights to how much of - * its size to allocate for them in each axis. A container is supposed - * to, after @b normalizing the weights of its children (with weight - * hints), distribute the space it has to layout them by those factors - * -- most weighted children get larger in this process than the least - * ones. - * - * Example: - * @dontinclude evas-hints.c - * @skip evas_object_size_hint_weight_set - * @until return - * - * In this example the weight hints change the behavior of an Evas box - * when layouting its children. See the full @ref - * Example_Evas_Size_Hints "example". - * - * @note Default weight hint values are 0.0, for both axis. - * - * @see evas_object_size_hint_weight_get() for more information - */ -EAPI void evas_object_size_hint_weight_set(Evas_Object *obj, double x, double y) EINA_ARG_NONNULL(1); - -/** - * Retrieves the hints for an object's padding space. - * - * @param obj The given Evas object to query hints from. - * @param l Pointer to an integer in which to store left padding. - * @param r Pointer to an integer in which to store right padding. - * @param t Pointer to an integer in which to store top padding. - * @param b Pointer to an integer in which to store bottom padding. - * - * Padding is extra space an object takes on each of its delimiting - * rectangle sides, in canvas units. This space will be rendered - * transparent, naturally, as in the following figure: - * - * @image html padding-hints.png - * @image rtf padding-hints.png - * @image latex padding-hints.eps - * - * This is not a size enforcement in any way, it's just a hint that - * should be used whenever appropriate. - * - * @note Use @c NULL pointers on the hint components you're not - * interested in: they'll be ignored by the function. - * - * Example: - * @dontinclude evas-hints.c - * @skip evas_object_size_hint_padding_set - * @until return - * - * In this example the padding hints change the behavior of an Evas box - * when layouting its children. See the full @ref - * Example_Evas_Size_Hints "example". - * - * @see evas_object_size_hint_padding_set() - */ -EAPI void evas_object_size_hint_padding_get(const Evas_Object *obj, Evas_Coord *l, Evas_Coord *r, Evas_Coord *t, Evas_Coord *b) EINA_ARG_NONNULL(1); - -/** - * Sets the hints for an object's padding space. - * - * @param obj The given Evas object to query hints from. - * @param l Integer to specify left padding. - * @param r Integer to specify right padding. - * @param t Integer to specify top padding. - * @param b Integer to specify bottom padding. - * - * This is not a size enforcement in any way, it's just a hint that - * should be used whenever appropriate. - * - * @see evas_object_size_hint_padding_get() for more information - */ -EAPI void evas_object_size_hint_padding_set(Evas_Object *obj, Evas_Coord l, Evas_Coord r, Evas_Coord t, Evas_Coord b) EINA_ARG_NONNULL(1); /** * @} */ @@ -3353,176 +2150,6 @@ EAPI void *evas_object_data_get(const Evas_Object *obj, const */ EAPI void *evas_object_data_del(Evas_Object *obj, const char *key) EINA_ARG_NONNULL(1, 2); -/** - * Set pointer behavior. - * - * @param obj - * @param setting desired behavior. - * - * This function has direct effect on event callbacks related to - * mouse. - * - * If @p setting is EVAS_OBJECT_POINTER_MODE_AUTOGRAB, then when mouse - * is down at this object, events will be restricted to it as source, - * mouse moves, for example, will be emitted even if outside this - * object area. - * - * If @p setting is EVAS_OBJECT_POINTER_MODE_NOGRAB, then events will - * be emitted just when inside this object area. - * - * The default value is EVAS_OBJECT_POINTER_MODE_AUTOGRAB. - * - * @ingroup Evas_Object_Group_Extras - */ -EAPI void evas_object_pointer_mode_set(Evas_Object *obj, Evas_Object_Pointer_Mode setting) EINA_ARG_NONNULL(1); - -/** - * Determine how pointer will behave. - * @param obj - * @return pointer behavior. - * @ingroup Evas_Object_Group_Extras - */ -EAPI Evas_Object_Pointer_Mode evas_object_pointer_mode_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); - -/** - * Sets whether or not the given Evas object is to be drawn anti-aliased. - * - * @param obj The given Evas object. - * @param antialias 1 if the object is to be anti_aliased, 0 otherwise. - * @ingroup Evas_Object_Group_Extras - */ -EAPI void evas_object_anti_alias_set(Evas_Object *obj, Eina_Bool antialias) EINA_ARG_NONNULL(1); - -/** - * Retrieves whether or not the given Evas object is to be drawn anti_aliased. - * @param obj The given Evas object. - * @return @c 1 if the object is to be anti_aliased. @c 0 otherwise. - * @ingroup Evas_Object_Group_Extras - */ -EAPI Eina_Bool evas_object_anti_alias_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); - -/** - * Sets the scaling factor for an Evas object. Does not affect all - * objects. - * - * @param obj The given Evas object. - * @param scale The scaling factor. 1.0 means no scaling, - * default size. - * - * This will multiply the object's dimension by the given factor, thus - * altering its geometry (width and height). Useful when you want - * scalable UI elements, possibly at run time. - * - * @note Only text and textblock objects have scaling change - * handlers. Other objects won't change visually on this call. - * - * @see evas_object_scale_get() - * - * @ingroup Evas_Object_Group_Extras - */ -EAPI void evas_object_scale_set(Evas_Object *obj, double scale) EINA_ARG_NONNULL(1); - -/** - * Retrieves the scaling factor for the given Evas object. - * - * @param obj The given Evas object. - * @return The scaling factor. - * - * @ingroup Evas_Object_Group_Extras - * - * @see evas_object_scale_set() - */ -EAPI double evas_object_scale_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); - -/** - * Sets the render_op to be used for rendering the Evas object. - * @param obj The given Evas object. - * @param op one of the Evas_Render_Op values. - * @ingroup Evas_Object_Group_Extras - */ -EAPI void evas_object_render_op_set(Evas_Object *obj, Evas_Render_Op op) EINA_ARG_NONNULL(1); - -/** - * Retrieves the current value of the operation used for rendering the Evas object. - * @param obj The given Evas object. - * @return one of the enumerated values in Evas_Render_Op. - * @ingroup Evas_Object_Group_Extras - */ -EAPI Evas_Render_Op evas_object_render_op_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); - -/** - * Set whether to use precise (usually expensive) point collision - * detection for a given Evas object. - * - * @param obj The given object. - * @param precise Whether to use precise point collision detection or - * not. The default value is false. - * - * Use this function to make Evas treat objects' transparent areas as - * @b not belonging to it with regard to mouse pointer events. By - * default, all of the object's boundary rectangle will be taken in - * account for them. - * - * @warning By using precise point collision detection you'll be - * making Evas more resource intensive. - * - * Example code follows. - * @dontinclude evas-events.c - * @skip if (strcmp(ev->key, "p") == 0) - * @until } - * - * See the full example @ref Example_Evas_Events "here". - * - * @see evas_object_precise_is_inside_get() - * @ingroup Evas_Object_Group_Extras - */ -EAPI void evas_object_precise_is_inside_set(Evas_Object *obj, Eina_Bool precise) EINA_ARG_NONNULL(1); - -/** - * Determine whether an object is set to use precise point collision - * detection. - * - * @param obj The given object. - * @return whether @p obj is set to use precise point collision - * detection or not The default value is false. - * - * @see evas_object_precise_is_inside_set() for an example - * - * @ingroup Evas_Object_Group_Extras - */ -EAPI Eina_Bool evas_object_precise_is_inside_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); - -/** - * Set a hint flag on the given Evas object that it's used as a "static - * clipper". - * - * @param obj The given object. - * @param is_static_clip @c EINA_TRUE if it's to be used as a static - * clipper, @c EINA_FALSE otherwise. - * - * This is a hint to Evas that this object is used as a big static - * clipper and shouldn't be moved with children and otherwise - * considered specially. The default value for new objects is - * @c EINA_FALSE. - * - * @see evas_object_static_clip_get() - * - * @ingroup Evas_Object_Group_Extras - */ -EAPI void evas_object_static_clip_set(Evas_Object *obj, Eina_Bool is_static_clip) EINA_ARG_NONNULL(1); - -/** - * Get the "static clipper" hint flag for a given Evas object. - * - * @param obj The given object. - * @return @c EINA_TRUE if it's set as a static clipper, - * @c EINA_FALSE otherwise. - * - * @see evas_object_static_clip_set() for more details - * - * @ingroup Evas_Object_Group_Extras - */ -EAPI Eina_Bool evas_object_static_clip_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); /** * @} */ @@ -5340,10 +3967,10 @@ EAPI Evas_Object *evas_object_polygon_add(Evas *e) EINA_WARN_UNUSED_RESULT EINA_ */ /* @since 1.2 */ -EAPI void evas_object_is_frame_object_set(Evas_Object *obj, Eina_Bool is_frame); +//EAPI void evas_object_is_frame_object_set(Evas_Object *obj, Eina_Bool is_frame); /* @since 1.2 */ -EAPI Eina_Bool evas_object_is_frame_object_get(const Evas_Object *obj); +//EAPI Eina_Bool evas_object_is_frame_object_get(const Evas_Object *obj); /** * @} @@ -5418,134 +4045,6 @@ EAPI void evas_object_smart_member_add(Evas_Object *obj, Evas_Object *sm */ EAPI void evas_object_smart_member_del(Evas_Object *obj) EINA_ARG_NONNULL(1); -/** - * Retrieves the list of the member objects of a given Evas smart - * object - * - * @param obj the smart object to get members from - * @return Returns the list of the member objects of @p obj. - * - * The returned list should be freed with @c eina_list_free() when you - * no longer need it. - * - * @since 1.7 This function will return @c NULL when a non-smart object is passed. - * - * @see evas_object_smart_member_add() - * @see evas_object_smart_member_del() - * @see evas_object_smart_iterator_new() - */ -//EAPI Eina_List *evas_object_smart_members_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); - -/** - * Retrieves an iterator of the member objects of a given Evas smart - * object - * - * @param obj the smart object to get members from - * @return Returns the iterator of the member objects of @p obj. - * - * @since 1.8 - * - * @see evas_object_smart_member_add() - * @see evas_object_smart_member_del() - * @see evas_object_smart_members_get() - */ -//EAPI Eina_Iterator *evas_object_smart_iterator_new(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); - -/** - * Gets the parent smart object of a given Evas object, if it has one. - * - * @param obj the Evas object you want to get the parent smart object - * from - * @return Returns the parent smart object of @a obj or @c NULL, if @a - * obj is not a smart member of any - * - * @ingroup Evas_Smart_Object_Group - */ -EAPI Evas_Object *evas_object_smart_parent_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); - -/** - * Checks whether a given smart object or any of its smart object - * parents is of a given smart class. - * - * @param obj An Evas smart object to check the type of - * @param type The @b name (type) of the smart class to check for - * @return @c EINA_TRUE, if @a obj or any of its parents is of type @a - * type, @c EINA_FALSE otherwise - * - * If @p obj is not a smart object, this call will fail - * immediately. - * - * This function supports Eo and legacy inheritance mechanisms. However, - * it is recommended to use eo_isa instead if your object is using Eo from - * top to bottom. - * - * The checks use smart classes names and string - * comparison. There is a version of this same check using - * pointer comparison, since a smart class' name is a single - * string in Evas. - * - * @see evas_object_smart_type_check_ptr() - * @see eo_isa - * - * @ingroup Evas_Smart_Object_Group - */ -EAPI Eina_Bool evas_object_smart_type_check(const Evas_Object *obj, const char *type) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2); - -/** - * Checks whether a given smart object or any of its smart object - * parents is of a given smart class, using pointer comparison. - * - * @param obj An Evas smart object to check the type of - * @param type The type (name string) to check for. Must be the name - * @return @c EINA_TRUE, if @a obj or any of its parents is of type @a - * type, @c EINA_FALSE otherwise - * - * @see evas_object_smart_type_check() for more details - * @see eo_isa - * - * @ingroup Evas_Smart_Object_Group - */ -EAPI Eina_Bool evas_object_smart_type_check_ptr(const Evas_Object *obj, const char *type) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2); - -/** - * Get the #Evas_Smart from which @p obj smart object was created. - * - * @param obj a smart object - * @return the #Evas_Smart handle or @c NULL, on errors - * - * @ingroup Evas_Smart_Object_Group - */ -//EAPI Evas_Smart *evas_object_smart_smart_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); - -/** - * Retrieve user data stored on a given smart object. - * - * @param obj The smart object's handle - * @return A pointer to data stored using - * evas_object_smart_data_set(), or @c NULL, if none has been - * set. - * - * @see evas_object_smart_data_set() - * - * @ingroup Evas_Smart_Object_Group - */ -EAPI void *evas_object_smart_data_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); - -/** - * Store a pointer to user data for a given smart object. - * - * @param obj The smart object's handle - * @param data A pointer to user data - * - * This data is stored @b independently of the one set by - * evas_object_data_set(), naturally. - * - * @see evas_object_smart_data_get() - * - * @ingroup Evas_Smart_Object_Group - */ -//EAPI void evas_object_smart_data_set(Evas_Object *obj, void *data) EINA_ARG_NONNULL(1); - /** * Add (register) a callback function to the smart event specified by * @p event on the smart object @p obj. @@ -5677,93 +4176,6 @@ EAPI void *evas_object_smart_callback_del_full(Evas_Object *obj, const ch */ EAPI void evas_object_smart_callback_call(Evas_Object *obj, const char *event, void *event_info) EINA_ARG_NONNULL(1, 2); -/** - * Set an smart object @b instance's smart callbacks descriptions. - * - * @param obj A smart object - * @param descriptions @c NULL terminated array with - * #Evas_Smart_Cb_Description descriptions. Array elements won't be - * modified at run time, but references to them and their contents - * will be made, so this array should be kept alive during the whole - * object's lifetime. - * @return @c EINA_TRUE on success, @c EINA_FALSE on failure. - * - * These descriptions are hints to be used by introspection and are - * not enforced in any way. - * - * It will not be checked if instance callbacks descriptions have the - * same name as respective possibly registered in the smart object - * @b class. Both are kept in different arrays and users of - * evas_object_smart_callbacks_descriptions_get() should handle this - * case as they wish. - * - * @note Becase @p descriptions must be @c NULL terminated, and - * because a @c NULL name makes little sense, too, - * Evas_Smart_Cb_Description::name must @b not be @c NULL. - * - * @note While instance callbacks descriptions are possible, they are - * @b not recommended. Use @b class callbacks descriptions - * instead as they make you smart object user's life simpler and - * will use less memory, as descriptions and arrays will be - * shared among all instances. - * - * @ingroup Evas_Smart_Object_Group - */ -//EAPI Eina_Bool evas_object_smart_callbacks_descriptions_set(Evas_Object *obj, const Evas_Smart_Cb_Description *descriptions) EINA_ARG_NONNULL(1); - -/** - * Retrieve an smart object's know smart callback descriptions (both - * instance and class ones). - * - * @param obj The smart object to get callback descriptions from. - * @param class_descriptions Where to store class callbacks - * descriptions array, if any is known. If no descriptions are - * known, @c NULL is returned - * @param class_count Returns how many class callbacks descriptions - * are known. - * @param instance_descriptions Where to store instance callbacks - * descriptions array, if any is known. If no descriptions are - * known, @c NULL is returned. - * @param instance_count Returns how many instance callbacks - * descriptions are known. - * - * This call searches for registered callback descriptions for both - * instance and class of the given smart object. These arrays will be - * sorted by Evas_Smart_Cb_Description::name and also @c NULL - * terminated, so both @a class_count and @a instance_count can be - * ignored, if the caller wishes so. The terminator @c NULL is not - * counted in these values. - * - * @note If just class descriptions are of interest, try - * evas_smart_callbacks_descriptions_get() instead. - * - * @note Use @c NULL pointers on the descriptions/counters you're not - * interested in: they'll be ignored by the function. - * - * @see evas_smart_callbacks_descriptions_get() - * - * @ingroup Evas_Smart_Object_Group - */ -//EAPI void evas_object_smart_callbacks_descriptions_get(const Evas_Object *obj, const Evas_Smart_Cb_Description ***class_descriptions, unsigned int *class_count, const Evas_Smart_Cb_Description ***instance_descriptions, unsigned int *instance_count) EINA_ARG_NONNULL(1); - -/** - * Find callback description for callback called @a name. - * - * @param obj the smart object. - * @param name name of desired callback, must @b not be @c NULL. The - * search have a special case for @a name being the same - * pointer as registered with Evas_Smart_Cb_Description, one - * can use it to avoid excessive use of strcmp(). - * @param class_description pointer to return class description or - * @c NULL if not found. If parameter is @c NULL, no search will - * be done on class descriptions. - * @param instance_description pointer to return instance description - * or @c NULL if not found. If parameter is @c NULL, no search - * will be done on instance descriptions. - * @return reference to description if found, @c NULL if not found. - */ -//EAPI void evas_object_smart_callback_description_find(const Evas_Object *obj, const char *name, const Evas_Smart_Cb_Description **class_description, const Evas_Smart_Cb_Description **instance_description) EINA_ARG_NONNULL(1, 2); - /** * Retrieve an Evas smart object's interface, by name string pointer. * @@ -5792,99 +4204,6 @@ EAPI const void *evas_object_smart_interface_get(const Evas_Object *obj, c */ EAPI void *evas_object_smart_interface_data_get(const Evas_Object *obj, const Evas_Smart_Interface *iface); -/** - * Mark smart object as changed, dirty. - * - * @param obj The given Evas smart object - * - * This will flag the given object as needing recalculation, - * forcefully. As an effect, on the next rendering cycle its @b - * calculate() (see #Evas_Smart_Class) smart function will be called. - * - * @see evas_object_smart_need_recalculate_set(). - * @see evas_object_smart_calculate(). - * - * @ingroup Evas_Smart_Object_Group - */ -//EAPI void evas_object_smart_changed(Evas_Object *obj) EINA_ARG_NONNULL(1); - -/** - * Set or unset the flag signalling that a given smart object needs to - * get recalculated. - * - * @param obj the smart object - * @param value whether one wants to set (@c EINA_TRUE) or to unset - * (@c EINA_FALSE) the flag. - * - * If this flag is set, then the @c calculate() smart function of @p - * obj will be called, if one is provided, during rendering phase of - * Evas (see evas_render()), after which this flag will be - * automatically unset. - * - * If that smart function is not provided for the given object, this - * flag will be left unchanged. - * - * @note just setting this flag will not make the canvas' whole scene - * dirty, by itself, and evas_render() will have no effect. To - * force that, use evas_object_smart_changed(), that will also - * call this function automatically, with @c EINA_TRUE as parameter. - * - * @see evas_object_smart_need_recalculate_get() - * @see evas_object_smart_calculate() - * @see evas_smart_objects_calculate() - * - * @ingroup Evas_Smart_Object_Group - */ -//EAPI void evas_object_smart_need_recalculate_set(Evas_Object *obj, Eina_Bool value) EINA_ARG_NONNULL(1); - -/** - * Get the value of the flag signalling that a given smart object needs to - * get recalculated. - * - * @param obj the smart object - * @return if flag is set or not. - * - * @note this flag will be unset during the rendering phase, when the - * @c calculate() smart function is called, if one is provided. - * If it's not provided, then the flag will be left unchanged - * after the rendering phase. - * - * @see evas_object_smart_need_recalculate_set(), for more details - * - * @ingroup Evas_Smart_Object_Group - */ -//EAPI Eina_Bool evas_object_smart_need_recalculate_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); - -/** - * Call the @b calculate() smart function immediately on a given smart - * object. - * - * @param obj the smart object's handle - * - * This will force immediate calculations (see #Evas_Smart_Class) - * needed for renderization of this object and, besides, unset the - * flag on it telling it needs recalculation for the next rendering - * phase. - * - * @see evas_object_smart_need_recalculate_set() - * - * @ingroup Evas_Smart_Object_Group - */ -//EAPI void evas_object_smart_calculate(Evas_Object *obj) EINA_ARG_NONNULL(1); - -/** - * Call user-provided @c calculate() smart functions and unset the - * flag signalling that the object needs to get recalculated to @b all - * smart objects in the canvas. - * - * @param e The canvas to calculate all smart objects in - * - * @see evas_object_smart_need_recalculate_set() - * - * @ingroup Evas_Smart_Object_Group - */ -EAPI void evas_smart_objects_calculate(Evas *e); - /** * This gets the internal counter that counts the number of smart calculations * @@ -5903,24 +4222,6 @@ EAPI void evas_smart_objects_calculate(Evas *e); */ EAPI int evas_smart_objects_calculate_count_get(const Evas *e); -/** - * Moves all children objects of a given smart object relative to a - * given offset. - * - * @param obj the smart object. - * @param dx horizontal offset (delta). - * @param dy vertical offset (delta). - * - * This will make each of @p obj object's children to move, from where - * they before, with those delta values (offsets) on both directions. - * - * @note This is most useful on custom smart @c move() functions. - * - * @note Clipped smart objects already make use of this function on - * their @c move() smart function definition. - */ -EAPI void evas_object_smart_move_children_relative(Evas_Object *obj, Evas_Coord dx, Evas_Coord dy) EINA_ARG_NONNULL(1); - #include "canvas/evas_smart.eo.legacy.h" /** * @} @@ -7057,82 +5358,6 @@ EAPI void evas_key_lock_off(Evas *e, const char *keyname) EINA_A */ EAPI Evas_Modifier_Mask evas_key_modifier_mask_get(const Evas *e, const char *keyname) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2); -/** - * Requests @p keyname key events be directed to @p obj. - * - * @param obj the object to direct @p keyname events to. - * @param keyname the key to request events for. - * @param modifiers a mask of modifiers that must be present to - * trigger the event. - * @param not_modifiers a mask of modifiers that must @b not be present - * to trigger the event. - * @param exclusive request that the @p obj is the only object - * receiving the @p keyname events. - * @return @c EINA_TRUE, if the call succeeded, @c EINA_FALSE otherwise. - * - * Key grabs allow one or more objects to receive key events for - * specific key strokes even if other objects have focus. Whenever a - * key is grabbed, only the objects grabbing it will get the events - * for the given keys. - * - * @p keyname is a platform dependent symbolic name for the key - * pressed (see @ref Evas_Keys for more information). - * - * @p modifiers and @p not_modifiers are bit masks of all the - * modifiers that must and mustn't, respectively, be pressed along - * with @p keyname key in order to trigger this new key - * grab. Modifiers can be things such as Shift and Ctrl as well as - * user defined types via evas_key_modifier_add(). Retrieve them with - * evas_key_modifier_mask_get() or use @c 0 for empty masks. - * - * @p exclusive will make the given object the only one permitted to - * grab the given key. If given @c EINA_TRUE, subsequent calls on this - * function with different @p obj arguments will fail, unless the key - * is ungrabbed again. - * - * Example code follows. - * @dontinclude evas-events.c - * @skip if (d.focus) - * @until else - * - * See the full example @ref Example_Evas_Events "here". - * - * @warning Providing impossible modifier sets creates undefined behavior - * - * @see evas_object_key_ungrab - * @see evas_object_focus_set - * @see evas_object_focus_get - * @see evas_focus_get - * @see evas_key_modifier_add - */ -EAPI Eina_Bool evas_object_key_grab(Evas_Object *obj, const char *keyname, Evas_Modifier_Mask modifiers, Evas_Modifier_Mask not_modifiers, Eina_Bool exclusive) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2); - -/** - * Removes the grab on @p keyname key events by @p obj. - * - * @param obj the object that has an existing key grab. - * @param keyname the key the grab is set for. - * @param modifiers a mask of modifiers that must be present to - * trigger the event. - * @param not_modifiers a mask of modifiers that must not not be - * present to trigger the event. - * - * Removes a key grab on @p obj if @p keyname, @p modifiers, and @p - * not_modifiers match. - * - * Example code follows. - * @dontinclude evas-events.c - * @skip got here by key grabs - * @until } - * - * See the full example @ref Example_Evas_Events "here". - * - * @see evas_object_key_grab - * @see evas_object_focus_set - * @see evas_object_focus_get - * @see evas_focus_get - */ -EAPI void evas_object_key_ungrab(Evas_Object *obj, const char *keyname, Evas_Modifier_Mask modifiers, Evas_Modifier_Mask not_modifiers) EINA_ARG_NONNULL(1, 2); /** * @} */ diff --git a/src/lib/evas/canvas/evas_object.eo b/src/lib/evas/canvas/evas_object.eo index b7166ed025..948f35a12f 100644 --- a/src/lib/evas/canvas/evas_object.eo +++ b/src/lib/evas/canvas/evas_object.eo @@ -90,6 +90,7 @@ abstract Evas_Object (Eo_Base, Evas_Common_Interface) type { set { /*@ Sets the type of the given Evas object. */ + legacy null; } get { /*@ @@ -221,6 +222,10 @@ abstract Evas_Object (Eo_Base, Evas_Common_Interface) If @p freeze is @c EINA_FALSE, events will be processed on that object as normal. + + @warning If you block only key/mouse up events with this API, we won't + guarantee the state of the object, that only had key/mouse down + events, will be. @see evas_object_freeze_events_get() @see evas_object_pass_events_set() @@ -732,6 +737,7 @@ abstract Evas_Object (Eo_Base, Evas_Common_Interface) } get { /*@ Retrieves the (rectangular) size of the given Evas object. */ + legacy null; } values { Evas_Coord w; /*@ in */ @@ -1017,6 +1023,7 @@ abstract Evas_Object (Eo_Base, Evas_Common_Interface) } get { /*@ Retrieves the position of the given Evas object. */ + legacy null; } values { Evas_Coord x; /*@ in */