diff --git a/legacy/edje/src/lib/Edje.h b/legacy/edje/src/lib/Edje.h index 988eeb8308..07c689e1ee 100644 --- a/legacy/edje/src/lib/Edje.h +++ b/legacy/edje/src/lib/Edje.h @@ -789,17 +789,17 @@ typedef enum _Edje_Drag_Dir typedef enum _Edje_Load_Error { - EDJE_LOAD_ERROR_NONE = 0, - EDJE_LOAD_ERROR_GENERIC = 1, - EDJE_LOAD_ERROR_DOES_NOT_EXIST = 2, - EDJE_LOAD_ERROR_PERMISSION_DENIED = 3, - EDJE_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED = 4, - EDJE_LOAD_ERROR_CORRUPT_FILE = 5, - EDJE_LOAD_ERROR_UNKNOWN_FORMAT = 6, - EDJE_LOAD_ERROR_INCOMPATIBLE_FILE = 7, - EDJE_LOAD_ERROR_UNKNOWN_COLLECTION = 8, - EDJE_LOAD_ERROR_RECURSIVE_REFERENCE = 9 -} Edje_Load_Error; + EDJE_LOAD_ERROR_NONE = 0, /**< No error happened, the loading was successful */ + EDJE_LOAD_ERROR_GENERIC = 1, /**< A generic error happened during the loading */ + EDJE_LOAD_ERROR_DOES_NOT_EXIST = 2, /**< The file pointed to did not exist */ + EDJE_LOAD_ERROR_PERMISSION_DENIED = 3, /**< Permission to read the given file was denied */ + EDJE_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED = 4, /**< Resource allocation failed during the loading */ + EDJE_LOAD_ERROR_CORRUPT_FILE = 5, /**< The file pointed to was corrupt */ + EDJE_LOAD_ERROR_UNKNOWN_FORMAT = 6, /**< The file pointed to had an unknown format */ + EDJE_LOAD_ERROR_INCOMPATIBLE_FILE = 7, /**< The file pointed to is incompatible, i.e., it doesn't match the library's current version's format */ + EDJE_LOAD_ERROR_UNKNOWN_COLLECTION = 8, /**< The group/collection set to load from was @b not found in the file */ + EDJE_LOAD_ERROR_RECURSIVE_REFERENCE = 9 /**< The group/collection set to load from had recursive references on its components */ +} Edje_Load_Error; /**< Edje file loading error codes one can get - see edje_load_error_str() too. */ typedef enum _Edje_Text_Filter_Type { @@ -1035,15 +1035,16 @@ typedef void (*Edje_Text_Filter_Cb) (void *data, Evas_Object *obj, c typedef Evas_Object *(*Edje_Item_Provider_Cb) (void *data, Evas_Object *obj, const char *part, const char *item); /** - * @brief Initialize the edje library. + * @brief Initialize the Edje library. * * @return The new init count. The initial value is zero. * - * This function initializes the ejde library, making the propers - * calls to initialization functions. It makes calls to functions - * eina_init(), ecore_init(), embryo_init() and eet_init() so - * there is no need to call those functions again in your code. To - * shutdown edje there is a function edje_shutdown(). + * This function initializes the Ejde library, making the proper calls + * to internal initialization functions. It will also initialize its + * @b dependencies, making calls to @c eina_init(), @c ecore_init(), + * @c embryo_init() and @c eet_init(). So, there is no need to call + * those functions again, in your code. To shutdown Edje there is the + * function edje_shutdown(). * * @see edje_shutdown() * @see eina_init() @@ -1055,14 +1056,15 @@ typedef Evas_Object *(*Edje_Item_Provider_Cb) (void *data, Evas_Object *obj, c EAPI int edje_init (void); /** - * @brief Shutdown the edje library. + * @brief Shutdown the Edje library. * - * @return The number of times the library has been initialised without being - * shutdown. + * @return The number of times the library has been initialised + * without being shutdown. * - * This function shuts down the edje library. It calls the functions - * eina_shutdown(), ecore_shutdown(), embryo_shutdown() and - * eet_shutdown(), so there is no need to call these functions again + * This function shuts down the Edje library. It will also call the + * shutdown functions of its @b dependencies, which are @c + * eina_shutdown(), @c ecore_shutdown(), @c embryo_shutdown() and @c + * eet_shutdown(), so there is no need to call these functions again, * in your code. * * @see edje_init() @@ -1146,36 +1148,34 @@ EAPI void edje_fontset_append_set (const char *fonts); EAPI const char *edje_fontset_append_get (void); /** - * @brief Set edje's global scaling factor. + * @brief Set Edje's global scaling factor. * - * @param scale The edje (global) scale factor. The defaul is 1.0. + * @param scale The global scaling factor (the default value is @c 1.0) * - * Edje allows one to build scalable interfaces. Scale factors, which - * are set to neutral values by default (no scaling, actual sizes), - * are of two types: global and individual. Edje's global scaling - * factor will affect all its objects which hadn't their individual - * scaling factors altered from the default value. If they had it set - * differently, that factor will override the global one. + * Edje allows one to build scalable interfaces. Scaling factors, + * which are set to neutral (@c 1.0) values by default (no scaling, + * actual sizes), are of two types: @b global and @b + * individual. Edje's global scaling factor will affect all its + * objects which hadn't their individual scaling factors altered from + * the default value. If they had it set differently, by + * edje_object_scale_set(), that factor will @b override the global + * one. * - * Scaling affects the values of min/max object sizes, which are - * multiplied by it. Font sizes are scaled, too. - * - * This property can be retrieved with edje_scale_get(). + * Scaling affects the values of mininum/maximum object sizes, which + * are @b multiplied by it. Font sizes are scaled, too. * * @see edje_scale_get(). - * */ EAPI void edje_scale_set (double scale); /** - * @brief Get edje's global scaling factor. + * @brief Retrieve Edje's global scaling factor. * - * @return The edje (global) scale factor. The defaul is 1.0. + * @return The global scaling factor * - * This function returns edje's global scale factor, which can be set - * by edje_scale_set(). + * This function returns Edje's global scaling factor. * - * @see edje_scale_set(). + * @see edje_scale_set() for more details * */ EAPI double edje_scale_get (void); @@ -1210,32 +1210,34 @@ EAPI void edje_password_show_last_set(Eina_Bool password_show_last); EAPI void edje_password_show_last_timeout_set(double password_show_last_timeout); /** - * @brief Set the edje object's scaling factor. + * @brief Set the scaling factor for a given Edje object. * - * @param obj The edje object's reference. - * @param scale The edje object scale factor. The defaul is 1.0. + * @param obj A handle to an Edje object + * @param scale The scaling factor (the defaul value is @c 1.0) * - * This function sets the individual scale factor of the @a obj edje - * object. This property (or edje's global scale factor, when + * This function sets an @b individual scaling factor on the @a obj + * Edje object. This property (or Edje's global scaling factor, when * applicable), will affect this object's parts. However, only parts - * which, at the EDC language level, were declared which the "scale" - * attribute set to 1 (default is zero) will be affected. - * - * This scale factor can be retrieved with edje_object_scale_get(). - * @see edje_object_scale_get(). + * which, at the EDC language level, were declared which the + * @c "scale" attribute set to @c 1 (default value being @c 0) will be + * affected. That EDC attribute means that the given part is subject + * to scaling. Check the complete @ref edcref "syntax reference" for + * EDC files. * + * @see edje_object_scale_get() + * @see edje_scale_get() for more details */ EAPI Eina_Bool edje_object_scale_set (Evas_Object *obj, double scale); /** - * @brief Get the edje object's scaling factor. + * @brief Get a given Edje object's scaling factor. * - * @param obj The edje object's reference. + * @param obj A handle to an Edje object * - * This function returns the individual scale factor of the @a obj - * edje object, which can be set by edje_object_scale_set(). + * This function returns the @c individual scaling factor set on the + * @a obj Edje object. * - * @see edje_object_scale_set(). + * @see edje_object_scale_set() for more details * */ EAPI double edje_object_scale_get (const Evas_Object *obj); @@ -1578,25 +1580,57 @@ EAPI void edje_extern_object_aspect_set (Evas_Object *obj, Edje_Aspect EAPI void edje_box_layout_register (const char *name, Evas_Object_Box_Layout func, void *(*layout_data_get)(void *), void (*layout_data_free)(void *), void (*free_data)(void *), void *data); /** - * @brief Constructs the Edje object - * @param evas A valid Evas handle - * @return The Evas_Object pointer. + * @brief Instantiate a new Edje object * - * Creates the Edje smart object, returning the Evas_Object handle. + * @param evas A valid Evas handle, the canvas to place the new object + * in + * @return A handle to the new object created or @c NULL, on errors. + * + * This function creates a new Edje smart object, returning its @c + * Evas_Object handle. An Edje object is useless without a (source) + * file set to it, so you'd most probably call edje_object_file_set() + * afterwards, like in: + * @code + * Evas_Object *edje; + * + * edje = edje_object_add(canvas); + * if (!edje) + * { + * fprintf(stderr, "could not create edje object!\n"); + * return NULL; + * } + * + * if (!edje_object_file_set(edje, "theme.edj", "group_name")) + * { + * int err = edje_object_load_error_get(edje); + * const char *errmsg = edje_load_error_str(err); + * fprintf(stderr, "could not load 'group_name' from theme.edj: %s", + * errmsg); + * + * evas_object_del(edje); + * return NULL; + * } + * + * @endcode + * + * @note before creating the first Edje object in your code, remember + * to initialize the library, with edje_init(), or unexpected behavior + * might occur. */ EAPI Evas_Object *edje_object_add (Evas *evas); /** - * @brief Get Edje object data. + * @brief Retrive an EDC data field's value from a given Edje + * object's group. * - * @param obj A valid Evas_Object handle - * @param key The data key - * @return The data string + * @param obj A handle to an Edje object + * @param key The data field's key string + * @return The data's value string * - * This function fetches data specified at the object level. + * This function fetches an EDC data field's value, which is declared + * on the objects building EDC file, under its group. * - * In EDC this comes from a data block within the group block that @a - * obj was loaded from. E.g. + * Data fields in EDC files are @c "data" blocks, like the following: * * @code * collections { @@ -1609,59 +1643,115 @@ EAPI Evas_Object *edje_object_add (Evas *evas); * } * } * @endcode + * + * EDC data fields always hold @b strings as values, hence the return + * type of this function. Check the complete @ref edcref "syntax reference" + * for EDC files. + * + * @warning Do not confuse this call with edje_file_data_get(), which + * queries for a @b global EDC data field on an EDC declaration file. + * + * @see edje_object_file_set() */ EAPI const char *edje_object_data_get (const Evas_Object *obj, const char *key); /** - * @brief Sets the EET file and group to load @a obj from - * @param obj A valid Evas_Object handle - * @param file The path to the EET file - * @param group The group name in the Edje - * @return 0 on Error\n - * 1 on Success and sets EDJE_LOAD_ERROR_NONE + * @brief Sets the @b EDJ file (and group within it) to load an Edje + * object's contents from * - * Edje uses EET files, conventionally ending in .edj, to store object - * descriptions. A single file contains multiple named groups. This function - * specifies the file and group name to load @a obj from. + * @param obj A handle to an Edje object + * @param file The path to the EDJ file to load @p from + * @param group The name of the group, in @p file, which implements an + * Edje object + * @return @c EINA_TRUE, on success or @c EINA_FALSE, on errors (check + * edje_object_load_error_get() after this call to get errors causes) + * + * Edje expects EDJ files, which are theming objects' descriptions and + * resources packed together in an EET file, to read Edje object + * definitions from. They usually are created with the @c .edj + * extension. EDJ files, in turn, are assembled from @b textual object + * description files, where one describes Edje objects declaratively + * -- the EDC files (see @ref edcref "the syntax" for those files). + * + * Those description files were designed so that many Edje object + * definitions -- also called @b groups (or collections) -- could be + * packed together in the same EDJ file, so that a whole + * application's theme could be packed in one file only. This is the + * reason for the @p group argument. + * + * Use this function after you instantiate a new Edje object, so that + * you can "give him life", telling where to get its contents from. + * + * @see edje_object_add() + * @see edje_object_file_get() */ EAPI Eina_Bool edje_object_file_set (Evas_Object *obj, const char *file, const char *group); /** - * @brief Get the file and group name that @a obj was loaded from - * @param obj A valid Evas_Object handle - * @param file A pointer to store a pointer to the filename in - * @param group A pointer to store a pointer to the group name in + * @brief Get the file and group name that a given Edje object is bound to * - * This gets the EET file location and group for the given Evas_Object. - * If @a obj is either not an edje file, or has not had its file/group set - * using edje_object_file_set(), then both @a file and @a group will be set - * to NULL. + * @param obj A handle to an Edje object + * @param file A pointer to a variable whero to store the file's + * path + * @param group A pointer to a variable where to store the group + * name in * - * It is valid to pass in NULL for either @a file or @a group if you are not - * interested in one of the values. + * This gets the EDJ file's path, with the respective group set for + * the given Edje object. If @a obj is either not an Edje file, or has + * not had its file/group set previously, by edje_object_file_set(), + * then both @p file and @p group will be set to @c NULL, indicating + * an error. + * + * @see edje_object_file_set() + * + * @note Use @c NULL pointers on the file/group components you're not + * interested in: they'll be ignored by the function. */ EAPI void edje_object_file_get (const Evas_Object *obj, const char **file, const char **group); /** - * @brief Gets the Edje load error - * @param obj A valid Evas_Object handle + * @brief Gets the (last) file loading error for a given Edje object * - * @return The Edje load error:\n - * EDJE_LOAD_ERROR_NONE: No Error\n - * EDJE_LOAD_ERROR_GENERIC: Generic Error\n - * EDJE_LOAD_ERROR_DOES_NOT_EXIST: Does not Exist\n - * EDJE_LOAD_ERROR_PERMISSION_DENIED: Permission Denied\n - * EDJE_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED: Resource Allocation Failed\n - * EDJE_LOAD_ERROR_CORRUPT_FILE: Corrupt File\n - * EDJE_LOAD_ERROR_UNKNOWN_FORMAT: Unknown Format\n - * EDJE_LOAD_ERROR_INCOMPATIBLE_FILE: Incompatible File\n - * EDJE_LOAD_ERROR_UNKNOWN_COLLECTION: Unknown Collection\n - * EDJE_LOAD_ERROR_RECURSIVE_REFERENCE: Recursive Reference\n + * @param obj A handlet to an Edje object + * + * @return The Edje loading error, one of: + * - #EDJE_LOAD_ERROR_NONE + * - #EDJE_LOAD_ERROR_GENERIC + * - #EDJE_LOAD_ERROR_DOES_NOT_EXIST + * - #EDJE_LOAD_ERROR_PERMISSION_DENIED + * - #EDJE_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED + * - #EDJE_LOAD_ERROR_CORRUPT_FILE + * - #EDJE_LOAD_ERROR_UNKNOWN_FORMAT + * - #EDJE_LOAD_ERROR_INCOMPATIBLE_FILE + * - #EDJE_LOAD_ERROR_UNKNOWN_COLLECTION + * - #EDJE_LOAD_ERROR_RECURSIVE_REFERENCE + * + * This function is meant to be used after an Edje EDJ file + * loading, what takes place with the edje_object_file_set() + * function. If that function does not return @c EINA_TRUE, one should + * check for the reason of failure with this one. + * + * @see edje_load_error_str() */ EAPI Edje_Load_Error edje_object_load_error_get (const Evas_Object *obj); - EAPI const char *edje_load_error_str (Edje_Load_Error error); - EAPI Eina_Bool edje_object_preload (Evas_Object *obj, Eina_Bool cancel); +/** + * Converts the given Edje file load error code into a string + * describing it in English. + * + * @param error the error code, a value in ::Edje_Load_Error. + * @return Always returns a valid string. If the given @p error is not + * supported, "Unknown error" is returned. + * + * edje_object_file_set() is a function which sets an error value, + * afterwards, which can be fetched with + * edje_object_load_error_get(). The function in question is meant + * to be used in conjunction with the latter, for pretty-printing any + * possible error cause. + */ +EAPI const char *edje_load_error_str (Edje_Load_Error error); + +EAPI Eina_Bool edje_object_preload (Evas_Object *obj, Eina_Bool cancel); /** * @brief Add a callback for a signal emitted by @a obj. @@ -1977,26 +2067,77 @@ EAPI Eina_Bool edje_object_color_class_get (const Evas_Object *o, con EAPI Eina_Bool edje_object_text_class_set (Evas_Object *obj, const char *text_class, const char *font, Evas_Font_Size size); /** - * @brief Get the minimum size for an object. + * @brief Get the minimum size specified -- as an EDC property -- for a + * given Edje object * - * @param obj A valid Evas_Object handle - * @param minw Minimum width pointer - * @param minh Minimum height pointer + * @param obj A handle to an Edje object + * @param minw Pointer to a variable where to store the minimum width + * @param minh Pointer to a variable where to store the minimum height * - * Gets the object's minimum size values from the Edje. These are set - * to zero if no Edje is connected to the Evas Object. + * This function retrieves the @p obj object's minimum size values, + * as declared in its EDC group definition. Minimum size of + * groups have the following syntax + * @code + * collections { + * group { + * name: "a_group"; + * min: 100 100; + * } + * } + * @endcode + * + * where one declares a minimum size of 100 pixels both for width and + * height. Those are (hint) values which should be respected when the + * given object/group is to be controlled by a given container object + * (e.g. an Edje object being "swallowed" into a given @c SWALLOW + * typed part, as in edje_object_part_swallow()). Check the complete + * @ref edcref "syntax reference" for EDC files. + * + * @note If the @c min EDC property was not declared for @p obj, this + * call will return the value 0, for each axis. + * + * @note On failure, this function will make all non-@c NULL size + * pointers' pointed variables be set to zero. + * + * @see edje_object_size_max_get() */ EAPI void edje_object_size_min_get (const Evas_Object *obj, Evas_Coord *minw, Evas_Coord *minh); /** - * @brief Get the maximum size for an object. + * @brief Get the maximum size specified -- as an EDC property -- for a + * given Edje object * - * @param obj A valid Evas_Object handle - * @param maxw Maximum width pointer - * @param maxh Maximum height pointer + * @param obj A handle to an Edje object + * @param maxw Pointer to a variable where to store the maximum width + * @param maxh Pointer to a variable where to store the maximum height * - * Gets the object's maximum size values from the Edje. These are set - * to zero if no Edje is connected to the Evas Object. + * This function retrieves the @p obj object's maximum size values, + * as declared in its EDC group definition. Maximum size of + * groups have the following syntax + * @code + * collections { + * group { + * name: "a_group"; + * max: 100 100; + * } + * } + * @endcode + * + * where one declares a maximum size of 100 pixels both for width and + * height. Those are (hint) values which should be respected when the + * given object/group is to be controlled by a given container object + * (e.g. an Edje object being "swallowed" into a given @c SWALLOW + * typed part, as in edje_object_part_swallow()). Check the complete + * @ref edcref "syntax reference" for EDC files. + * + * @note If the @c max EDC property was not declared for @p obj, this + * call will return the maximum size a given Edje object may have, for + * each axis. + * + * @note On failure, this function will make all non-@c NULL size + * pointers' pointed variables be set to zero. + * + * @see edje_object_size_min_get() */ EAPI void edje_object_size_max_get (const Evas_Object *obj, Evas_Coord *maxw, Evas_Coord *maxh); @@ -2011,63 +2152,141 @@ EAPI void edje_object_size_max_get (const Evas_Object *obj, E EAPI void edje_object_calc_force (Evas_Object *obj); /** - * @brief Calculate minimum size. + * @brief Calculate the minimum required size for a given Edje object. * - * @param obj A valid Evas_Object handle - * @param minw Minimum width pointer - * @param minh Minimum height pointer + * @param obj A handle to an Edje object + * @param minw Pointer to a variable where to store the minimum + * required width + * @param minh Pointer to a variable where to store the minimum + * required height * - * Calculates the object's minimum size ?! + * This call works exactly as edje_object_size_min_restricted_calc(), + * with the last two arguments set to 0. Please refer to its + * documentation, than. */ EAPI void edje_object_size_min_calc (Evas_Object *obj, Evas_Coord *minw, Evas_Coord *minh); - EAPI Eina_Bool edje_object_parts_extends_calc (Evas_Object *obj, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h); - EAPI void edje_object_size_min_restricted_calc(Evas_Object *obj, Evas_Coord *minw, Evas_Coord *minh, Evas_Coord restrictedw, Evas_Coord restrictedh); /** - * @brief Check if Edje part exists. + * Calculate the geometry of the region, relative to a given Edje + * object's area, occupied by all parts in the object * - * @param obj A valid Evas_Object handle - * @param part The part name to check + * @param obj A handle to an Edje object + * @param part The Edje part's name + * @param x A pointer to a variable where to store the parts region's + * x coordinate + * @param y A pointer to a variable where to store the parts region's + * y coordinate + * @param w A pointer to a variable where to store the parts region's + * width + * @param h A pointer to a variable where to store the parts region's + * height * - * @return 0 on Error, 1 if Edje part exists. + * This function gets the geometry of the rectangle equal to the area + * required to group all parts in @p obj's group/collection. The @p x + * and @p y coordinates are relative to the top left corner of the + * whole @p obj object's area. Parts placed out of the group's + * boundaries will also be taken in account, so that @p x and @p y + * may be negative. * - * This function returns if a part exists in the edje. + * @note Use @c NULL pointers on the geometry components you're not + * interested in: they'll be ignored by the function. * + * @note On failure, this function will make all non-@c NULL geometry + * pointers' pointed variables be set to zero. + */ +EAPI Eina_Bool edje_object_parts_extends_calc (Evas_Object *obj, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h); + +/** + * @brief Calculate the minimum required size for a given Edje object. + * + * @param obj A handle to an Edje object + * @param minw Pointer to a variable where to store the minimum + * required width + * @param minh Pointer to a variable where to store the minimum + * required height + * @param restrictedw Do not allow object's calculated (minimum) width + * to be less than this value + * @param restrictedh Do not allow object's calculated (minimum) + * height to be less than this value + * + * This call will trigger an internal recalculation of all parts of + * the @p obj object, in order to return its minimum required + * dimensions for width and height. The user might choose to @b impose + * those minimum sizes, making the resulting calculation to get to values + * equal or bigger than @p restrictedw and @p restrictedh, for width and + * height, respectively. + * + * @note At the end of this call, @p obj @b won't be automatically + * resized to new dimensions, but just return the calculated + * sizes. The caller is the one up to change its geometry or not. + * + * @warning Be advised that invisible parts in @p obj @b will be taken + * into account in this calculation. If you don't want that to happen, + * resize those parts to zeroed dimensions. + */ +EAPI void edje_object_size_min_restricted_calc(Evas_Object *obj, Evas_Coord *minw, Evas_Coord *minh, Evas_Coord restrictedw, Evas_Coord restrictedh); + +/** + * @brief Check if an Edje part exists in a given Edje object's group + * definition.. + * + * @param obj A handle to an Edje object + * @param part The part's name to check for existence in @p obj's + * group + * @return @c EINA_TRUE, if the Edje part exists in @p obj's group or + * @c EINA_FALSE, otherwise (and on errors) + * + * This function returns if a given part exists in the Edje group + * bound to object @p obj (with edje_object_file_set()). + * + * This call is useful, for example, when one could expect or not a + * given GUI element, depending on the @b theme applied to @p obj. */ EAPI Eina_Bool edje_object_part_exists (const Evas_Object *obj, const char *part); /** - * @brief Gets the evas object from a part. + * @brief Get a handle to the Evas object implementing a given Edje + * part, in an Edje object. * - * @param obj A valid Evas_Object handle - * @param part The Edje part - * @return Returns the Evas_Object corresponding to the given part, or - * NULL on failure (if the part doesn't exist) + * @param obj A handle to an Edje object + * @param part The Edje part's name + * @return A pointer to the Evas object implementing the given part, + * or @c NULL on failure (e.g. the given part doesn't exist) * - * This functio gets the Evas_Object corresponding to a given part. + * This function gets a pointer the Evas object corresponding to a + * given part in the @p obj object's group. * - * You should never modify the state of the returned object (with - * evas_object_move() or evas_object_hide() for example), but you can - * safely query info about its current state (with - * evas_object_visible_get() or evas_object_color_get() for example) - * - **/ + * You should @b never modify the state of the returned object (with + * @c evas_object_move() or @c evas_object_hide() for example), + * because it's meant to be managed be Edje, solely. You are safe to + * query information about its current state (with @c + * evas_object_visible_get() or @c evas_object_color_get() for + * example), though. + */ EAPI const Evas_Object *edje_object_part_object_get (const Evas_Object *obj, const char *part); /** - * @brief Get the geometry of an Edje part. + * @brief Retrieve the geometry of a given Edje part, in a given Edje + * object's group definition, relative to the object's area * - * @param obj A valid Evas_Object handle - * @param part The Edje part - * @param x The x coordinate pointer - * @param y The y coordinate pointer - * @param w The width pointer - * @param h The height pointer + * @param obj A handle to an Edje object + * @param part The Edje part's name + * @param x A pointer to a variable where to store the part's x + * coordinate + * @param y A pointer to a variable where to store the part's y + * coordinate + * @param w A pointer to a variable where to store the part's width + * @param h A pointer to a variable where to store the part's height * - * This function gets the geometry of an Edje part. + * This function gets the geometry of an Edje part within its + * group. The @p x and @p y coordinates are relative to the top left + * corner of the whole @p obj object's area. * - * It is valid to pass NULL as any of @a x, @a y, @a w or @a h, whose - * values you are uninterested in. + * @note Use @c NULL pointers on the geometry components you're not + * interested in: they'll be ignored by the function. + * + * @note On failure, this function will make all non-@c NULL geometry + * pointers' pointed variables be set to zero. */ EAPI Eina_Bool edje_object_part_geometry_get (const Evas_Object *obj, const char *part, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h); diff --git a/legacy/edje/src/lib/edje_util.c b/legacy/edje/src/lib/edje_util.c index b2350df00c..0fda12399d 100644 --- a/legacy/edje/src/lib/edje_util.c +++ b/legacy/edje/src/lib/edje_util.c @@ -2236,15 +2236,6 @@ edje_object_size_min_calc(Evas_Object *obj, Evas_Coord *minw, Evas_Coord *minh) edje_object_size_min_restricted_calc(obj, minw, minh, 0, 0); } -/** Calculate the geometry used by all parts - * @param obj A valid Evas_Object handle - * @param x The x coordinate pointer - * @param y The y coordinate pointer - * @param w The width pointer - * @param h The height pointer - * - * Calculates the geometry used by all object parts. Including out of bounds parts. - */ EAPI Eina_Bool edje_object_parts_extends_calc(Evas_Object *obj, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h) { @@ -2298,17 +2289,6 @@ edje_object_parts_extends_calc(Evas_Object *obj, Evas_Coord *x, Evas_Coord *y, E return EINA_TRUE; } -/** Calculate minimum size - * @param obj A valid Evas_Object handle - * @param minw Minimum width pointer - * @param minh Minimum height pointer - * @param restrictedw Do not allow object min width calc to be less than this - * @param restrictedh Do not allow object min height calc to be less than this - * - * Calculates the object's minimum size. Be advised that invisible parts *ARE* - * taken into account in this calculation, if you don't want that to happen, - * resize them to 0. - */ EAPI void edje_object_size_min_restricted_calc(Evas_Object *obj, Evas_Coord *minw, Evas_Coord *minh, Evas_Coord restrictedw, Evas_Coord restrictedh) {