diff --git a/legacy/elementary/src/lib/elm_bg.h b/legacy/elementary/src/lib/elm_bg.h index 3bed0a6614..4fc0fbb58e 100644 --- a/legacy/elementary/src/lib/elm_bg.h +++ b/legacy/elementary/src/lib/elm_bg.h @@ -29,287 +29,13 @@ * @li @ref bg_03_example_page */ -#define ELM_OBJ_BG_CLASS elm_obj_bg_class_get() - -const Eo_Class *elm_obj_bg_class_get(void) EINA_CONST; - -extern EAPI Eo_Op ELM_OBJ_BG_BASE_ID; - -enum -{ - ELM_OBJ_BG_SUB_ID_FILE_SET, - ELM_OBJ_BG_SUB_ID_FILE_GET, - ELM_OBJ_BG_SUB_ID_OPTION_SET, - ELM_OBJ_BG_SUB_ID_OPTION_GET, - ELM_OBJ_BG_SUB_ID_COLOR_SET, - ELM_OBJ_BG_SUB_ID_COLOR_GET, - ELM_OBJ_BG_SUB_ID_LOAD_SIZE_SET, - ELM_OBJ_BG_SUB_ID_LAST -}; - -#define ELM_OBJ_BG_ID(sub_id) (ELM_OBJ_BG_BASE_ID + sub_id) - - -/** - * @def elm_obj_bg_file_set - * @since 1.8 - * - * Set the file (image or edje collection) to give life for the - * background - * - * @param[in] file - * @param[in] group - * @param[out] ret - * - * @see elm_bg_file_set - */ -#define elm_obj_bg_file_set(file, group, ret) ELM_OBJ_BG_ID(ELM_OBJ_BG_SUB_ID_FILE_SET), EO_TYPECHECK(const char *, file), EO_TYPECHECK(const char *, group), EO_TYPECHECK(Eina_Bool *, ret) - -/** - * @def elm_obj_bg_file_get - * @since 1.8 - * - * Get the file (image or edje collection) set on a given background - * - * @param[out] file - * @param[out] group - * - * @see elm_bg_file_get - */ -#define elm_obj_bg_file_get(file, group) ELM_OBJ_BG_ID(ELM_OBJ_BG_SUB_ID_FILE_GET), EO_TYPECHECK(const char **, file), EO_TYPECHECK(const char **, group) - -/** - * @def elm_obj_bg_option_set - * @since 1.8 - * - * Set the mode of display for a given background widget's image - * - * @param[in] option - * - * @see elm_bg_option_set - */ -#define elm_obj_bg_option_set(option) ELM_OBJ_BG_ID(ELM_OBJ_BG_SUB_ID_OPTION_SET), EO_TYPECHECK(Elm_Bg_Option, option) - -/** - * @def elm_obj_bg_option_get - * @since 1.8 - * - * Get the mode of display for a given background widget's image - * - * @param[out] ret - * - * @see elm_bg_option_get - */ -#define elm_obj_bg_option_get(ret) ELM_OBJ_BG_ID(ELM_OBJ_BG_SUB_ID_OPTION_GET), EO_TYPECHECK(Elm_Bg_Option *, ret) - -/** - * @def elm_obj_bg_color_set - * @since 1.8 - * - * Set the color on a given background widget - * - * @param[in] r - * @param[in] g - * @param[in] b - * - * @see elm_bg_color_set - */ -#define elm_obj_bg_color_set(r, g, b) ELM_OBJ_BG_ID(ELM_OBJ_BG_SUB_ID_COLOR_SET), EO_TYPECHECK(int, r), EO_TYPECHECK(int, g), EO_TYPECHECK(int, b) - -/** - * @def elm_obj_bg_color_get - * @since 1.8 - * - * Get the color set on a given background widget - * - * @param[out] r - * @param[out] g - * @param[out] b - * - * @see elm_bg_color_get - */ -#define elm_obj_bg_color_get(r, g, b) ELM_OBJ_BG_ID(ELM_OBJ_BG_SUB_ID_COLOR_GET), EO_TYPECHECK(int *, r), EO_TYPECHECK(int *, g), EO_TYPECHECK(int *, b) - -/** - * @def elm_obj_bg_load_size_set - * @since 1.8 - * - * Set the size of the pixmap representation of the image set on a - * given background widget. - * - * @param[in] w - * @param[in] h - * - * @see elm_bg_load_size_set - */ -#define elm_obj_bg_load_size_set(w, h) ELM_OBJ_BG_ID(ELM_OBJ_BG_SUB_ID_LOAD_SIZE_SET), EO_TYPECHECK(Evas_Coord, w), EO_TYPECHECK(Evas_Coord, h) - -/** - * Identifiers on how a background widget is to display its image -- - * if it was set to use an image file. - * - * @see elm_bg_option_set() - * @see elm_bg_option_get() - * - * @ingroup Bg - */ -typedef enum -{ - ELM_BG_OPTION_CENTER, /**< center the background image */ - ELM_BG_OPTION_SCALE, /**< scale the background image, retaining aspect ratio */ - ELM_BG_OPTION_STRETCH, /**< stretch the background image to fill the widget's area */ - ELM_BG_OPTION_TILE, /**< tile background image at its original size */ - ELM_BG_OPTION_LAST /**< sentinel value, also used to indicate errors */ -} Elm_Bg_Option; - -/** - * Add a new background to the parent - * - * @param parent The parent object - * @return The new object or @c NULL if it cannot be created - * - * @ingroup Bg - */ -EAPI Evas_Object *elm_bg_add(Evas_Object *parent); - -/** - * Set the file (image or edje collection) to give life for the - * background - * - * @param obj The background object handle - * @param file The file path - * @param group Optional key (group in Edje) within the file - * @return @c EINA_TRUE on success, @c EINA_FALSE otherwise - * - * This sets the image file used in the background object. If the - * image comes from an Edje group, it will be stretched to completely - * fill the background object. If it comes from a traditional image file, it - * will by default be centered in this widget's are (thus retaining - * its aspect), what could lead to some parts being not visible. You - * may change the mode of exhibition for a real image file with - * elm_bg_option_set(). - * - * @note Once the image of @p obj is set, a previously set one will be - * deleted, even if @p file is @c NULL. - * - * @note This will only affect the contents of one of the background's - * swallow spots, namely @c "elm.swallow.background". If you want to - * achieve the @c Layout's file setting behavior, you'll have to call - * that method on this object. - * - * @ingroup Bg - */ -EAPI Eina_Bool elm_bg_file_set(Evas_Object *obj, const char *file, const char *group); - -/** - * Get the file (image or edje collection) set on a given background - * widget - * - * @param obj The background object handle - * @param file Where to store the requested file's path - * @param group Where to store the optional key within @a file, @b if - * it's an Edje file - * - * @note Use @c NULL pointers on the file components you're not - * interested in: they'll be ignored by the function. - * - * @ingroup Bg - */ -EAPI void elm_bg_file_get(const Evas_Object *obj, const char **file, const char **group); - -/** - * Set the mode of display for a given background widget's image - * - * @param obj The background object handle - * @param option The desired background option (see #Elm_Bg_Option) - * - * This sets how the background widget will display its image. This - * will only work if the elm_bg_file_set() was previously called with - * an image file on @a obj. The image can be display tiled, scaled, - * centered or stretched. - * - * @see elm_bg_option_get() - * - * @ingroup Bg - */ -EAPI void elm_bg_option_set(Evas_Object *obj, Elm_Bg_Option option); - -/** - * Get the mode of display for a given background widget's image - * - * @param obj The background object handle - * @return The image displaying mode in use for @a obj or #ELM_BG_OPTION_LAST, - * on errors. - * - * @see elm_bg_option_set() for more details - * - * @ingroup Bg - */ -EAPI Elm_Bg_Option elm_bg_option_get(const Evas_Object *obj); - -/** - * Set the color on a given background widget - * - * @param obj The background object handle - * @param r The red color component's value - * @param g The green color component's value - * @param b The blue color component's value - * - * This sets the color used for the background rectangle, in RGB - * format. Each color component's range is from 0 to 255. - * - * @note You probably only want to use this function if you haven't - * previously called elm_bg_file_set(), so that you just want a solid - * color background. - * - * @see elm_bg_color_get() - * - * @ingroup Bg - */ -EAPI void elm_bg_color_set(Evas_Object *obj, int r, int g, int b); - -/** - * Get the color set on a given background widget - * - * @param obj The background object handle - * @param r Where to store the red color component's value - * @param g Where to store the green color component's value - * @param b Where to store the blue color component's value - * - * @note Use @c NULL pointers on the file components you're not - * interested in: they'll be ignored by the function. - * - * @see elm_bg_color_get() for more details - * - * @ingroup Bg - */ -EAPI void elm_bg_color_get(const Evas_Object *obj, int *r, int *g, int *b); - -/** - * Set the size of the pixmap representation of the image set on a - * given background widget. - * - * @param obj The background object handle - * @param w The new width of the image pixmap representation. - * @param h The new height of the image pixmap representation. - * - * @warning This function just makes sense if an image file was set on - * @p obj, with elm_bg_file_set(). - * - * This function sets a new size for pixmap representation of the - * given bg image. It allows for the image to be loaded already in the - * specified size, reducing the memory usage and load time (for - * example, when loading a big image file with its load size set to a - * smaller size) - * - * @note This is just a hint for the underlying system. The real size - * of the pixmap may differ depending on the type of image being - * loaded, being bigger than requested. - * - * @ingroup Bg - */ -EAPI void elm_bg_load_size_set(Evas_Object *obj, Evas_Coord w, Evas_Coord h); - +#include "elm_bg_common.h" +#ifdef EFL_EO_API_SUPPORT +#include "elm_bg_eo.h" +#endif +#ifndef EFL_NOLEGACY_API_SUPPORT +#include "elm_bg_legacy.h" +#endif /** * @} */ diff --git a/legacy/elementary/src/lib/elm_bg_common.h b/legacy/elementary/src/lib/elm_bg_common.h new file mode 100644 index 0000000000..5a81d6acca --- /dev/null +++ b/legacy/elementary/src/lib/elm_bg_common.h @@ -0,0 +1,18 @@ +/** + * Identifiers on how a background widget is to display its image -- + * if it was set to use an image file. + * + * @see elm_bg_option_set() + * @see elm_bg_option_get() + * + * @ingroup Bg + */ +typedef enum +{ + ELM_BG_OPTION_CENTER, /**< center the background image */ + ELM_BG_OPTION_SCALE, /**< scale the background image, retaining aspect ratio */ + ELM_BG_OPTION_STRETCH, /**< stretch the background image to fill the widget's area */ + ELM_BG_OPTION_TILE, /**< tile background image at its original size */ + ELM_BG_OPTION_LAST /**< sentinel value, also used to indicate errors */ +} Elm_Bg_Option; + diff --git a/legacy/elementary/src/lib/elm_bg_eo.h b/legacy/elementary/src/lib/elm_bg_eo.h new file mode 100644 index 0000000000..b989a587fb --- /dev/null +++ b/legacy/elementary/src/lib/elm_bg_eo.h @@ -0,0 +1,128 @@ +#define ELM_OBJ_BG_CLASS elm_obj_bg_class_get() + +const Eo_Class *elm_obj_bg_class_get(void) EINA_CONST; + +extern EAPI Eo_Op ELM_OBJ_BG_BASE_ID; + +enum +{ + ELM_OBJ_BG_SUB_ID_FILE_SET, + ELM_OBJ_BG_SUB_ID_FILE_GET, + ELM_OBJ_BG_SUB_ID_OPTION_SET, + ELM_OBJ_BG_SUB_ID_OPTION_GET, + ELM_OBJ_BG_SUB_ID_COLOR_SET, + ELM_OBJ_BG_SUB_ID_COLOR_GET, + ELM_OBJ_BG_SUB_ID_LOAD_SIZE_SET, + ELM_OBJ_BG_SUB_ID_LAST +}; + +#define ELM_OBJ_BG_ID(sub_id) (ELM_OBJ_BG_BASE_ID + sub_id) + + +/** + * @def elm_obj_bg_file_set + * @since 1.8 + * + * Set the file (image or edje collection) to give life for the + * background + * + * @param[in] file + * @param[in] group + * @param[out] ret + * + * @see elm_bg_file_set + * + * @ingroup Bg + */ +#define elm_obj_bg_file_set(file, group, ret) ELM_OBJ_BG_ID(ELM_OBJ_BG_SUB_ID_FILE_SET), EO_TYPECHECK(const char *, file), EO_TYPECHECK(const char *, group), EO_TYPECHECK(Eina_Bool *, ret) + +/** + * @def elm_obj_bg_file_get + * @since 1.8 + * + * Get the file (image or edje collection) set on a given background + * + * @param[out] file + * @param[out] group + * + * @see elm_bg_file_get + * + * @ingroup Bg + */ +#define elm_obj_bg_file_get(file, group) ELM_OBJ_BG_ID(ELM_OBJ_BG_SUB_ID_FILE_GET), EO_TYPECHECK(const char **, file), EO_TYPECHECK(const char **, group) + +/** + * @def elm_obj_bg_option_set + * @since 1.8 + * + * Set the mode of display for a given background widget's image + * + * @param[in] option + * + * @see elm_bg_option_set + * + * @ingroup Bg + */ +#define elm_obj_bg_option_set(option) ELM_OBJ_BG_ID(ELM_OBJ_BG_SUB_ID_OPTION_SET), EO_TYPECHECK(Elm_Bg_Option, option) + +/** + * @def elm_obj_bg_option_get + * @since 1.8 + * + * Get the mode of display for a given background widget's image + * + * @param[out] ret + * + * @see elm_bg_option_get + * + * @ingroup Bg + */ +#define elm_obj_bg_option_get(ret) ELM_OBJ_BG_ID(ELM_OBJ_BG_SUB_ID_OPTION_GET), EO_TYPECHECK(Elm_Bg_Option *, ret) + +/** + * @def elm_obj_bg_color_set + * @since 1.8 + * + * Set the color on a given background widget + * + * @param[in] r + * @param[in] g + * @param[in] b + * + * @see elm_bg_color_set + * + * @ingroup Bg + */ +#define elm_obj_bg_color_set(r, g, b) ELM_OBJ_BG_ID(ELM_OBJ_BG_SUB_ID_COLOR_SET), EO_TYPECHECK(int, r), EO_TYPECHECK(int, g), EO_TYPECHECK(int, b) + +/** + * @def elm_obj_bg_color_get + * @since 1.8 + * + * Get the color set on a given background widget + * + * @param[out] r + * @param[out] g + * @param[out] b + * + * @see elm_bg_color_get + * + * @ingroup Bg + */ +#define elm_obj_bg_color_get(r, g, b) ELM_OBJ_BG_ID(ELM_OBJ_BG_SUB_ID_COLOR_GET), EO_TYPECHECK(int *, r), EO_TYPECHECK(int *, g), EO_TYPECHECK(int *, b) + +/** + * @def elm_obj_bg_load_size_set + * @since 1.8 + * + * Set the size of the pixmap representation of the image set on a + * given background widget. + * + * @param[in] w + * @param[in] h + * + * @see elm_bg_load_size_set + * + * @ingroup Bg + */ +#define elm_obj_bg_load_size_set(w, h) ELM_OBJ_BG_ID(ELM_OBJ_BG_SUB_ID_LOAD_SIZE_SET), EO_TYPECHECK(Evas_Coord, w), EO_TYPECHECK(Evas_Coord, h) diff --git a/legacy/elementary/src/lib/elm_bg_legacy.h b/legacy/elementary/src/lib/elm_bg_legacy.h new file mode 100644 index 0000000000..aac17c8470 --- /dev/null +++ b/legacy/elementary/src/lib/elm_bg_legacy.h @@ -0,0 +1,147 @@ +/** + * Add a new background to the parent + * + * @param parent The parent object + * @return The new object or @c NULL if it cannot be created + * + * @ingroup Bg + */ +EAPI Evas_Object *elm_bg_add(Evas_Object *parent); + +/** + * Set the file (image or edje collection) to give life for the + * background + * + * @param obj The background object handle + * @param file The file path + * @param group Optional key (group in Edje) within the file + * @return @c EINA_TRUE on success, @c EINA_FALSE otherwise + * + * This sets the image file used in the background object. If the + * image comes from an Edje group, it will be stretched to completely + * fill the background object. If it comes from a traditional image file, it + * will by default be centered in this widget's are (thus retaining + * its aspect), what could lead to some parts being not visible. You + * may change the mode of exhibition for a real image file with + * elm_bg_option_set(). + * + * @note Once the image of @p obj is set, a previously set one will be + * deleted, even if @p file is @c NULL. + * + * @note This will only affect the contents of one of the background's + * swallow spots, namely @c "elm.swallow.background". If you want to + * achieve the @c Layout's file setting behavior, you'll have to call + * that method on this object. + * + * @ingroup Bg + */ +EAPI Eina_Bool elm_bg_file_set(Evas_Object *obj, const char *file, const char *group); + +/** + * Get the file (image or edje collection) set on a given background + * widget + * + * @param obj The background object handle + * @param file Where to store the requested file's path + * @param group Where to store the optional key within @a file, @b if + * it's an Edje file + * + * @note Use @c NULL pointers on the file components you're not + * interested in: they'll be ignored by the function. + * + * @ingroup Bg + */ +EAPI void elm_bg_file_get(const Evas_Object *obj, const char **file, const char **group); + +/** + * Set the mode of display for a given background widget's image + * + * @param obj The background object handle + * @param option The desired background option (see #Elm_Bg_Option) + * + * This sets how the background widget will display its image. This + * will only work if the elm_bg_file_set() was previously called with + * an image file on @a obj. The image can be display tiled, scaled, + * centered or stretched. + * + * @see elm_bg_option_get() + * + * @ingroup Bg + */ +EAPI void elm_bg_option_set(Evas_Object *obj, Elm_Bg_Option option); + +/** + * Get the mode of display for a given background widget's image + * + * @param obj The background object handle + * @return The image displaying mode in use for @a obj or #ELM_BG_OPTION_LAST, + * on errors. + * + * @see elm_bg_option_set() for more details + * + * @ingroup Bg + */ +EAPI Elm_Bg_Option elm_bg_option_get(const Evas_Object *obj); + +/** + * Set the color on a given background widget + * + * @param obj The background object handle + * @param r The red color component's value + * @param g The green color component's value + * @param b The blue color component's value + * + * This sets the color used for the background rectangle, in RGB + * format. Each color component's range is from 0 to 255. + * + * @note You probably only want to use this function if you haven't + * previously called elm_bg_file_set(), so that you just want a solid + * color background. + * + * @see elm_bg_color_get() + * + * @ingroup Bg + */ +EAPI void elm_bg_color_set(Evas_Object *obj, int r, int g, int b); + +/** + * Get the color set on a given background widget + * + * @param obj The background object handle + * @param r Where to store the red color component's value + * @param g Where to store the green color component's value + * @param b Where to store the blue color component's value + * + * @note Use @c NULL pointers on the file components you're not + * interested in: they'll be ignored by the function. + * + * @see elm_bg_color_get() for more details + * + * @ingroup Bg + */ +EAPI void elm_bg_color_get(const Evas_Object *obj, int *r, int *g, int *b); + +/** + * Set the size of the pixmap representation of the image set on a + * given background widget. + * + * @param obj The background object handle + * @param w The new width of the image pixmap representation. + * @param h The new height of the image pixmap representation. + * + * @warning This function just makes sense if an image file was set on + * @p obj, with elm_bg_file_set(). + * + * This function sets a new size for pixmap representation of the + * given bg image. It allows for the image to be loaded already in the + * specified size, reducing the memory usage and load time (for + * example, when loading a big image file with its load size set to a + * smaller size) + * + * @note This is just a hint for the underlying system. The real size + * of the pixmap may differ depending on the type of image being + * loaded, being bigger than requested. + * + * @ingroup Bg + */ +EAPI void elm_bg_load_size_set(Evas_Object *obj, Evas_Coord w, Evas_Coord h);