efl/legacy/elementary/src/lib/elm_bg.h

144 lines
4.2 KiB
C

/**
* @defgroup Bg Bg
*
* @image html img/widget/bg/preview-00.png
* @image latex img/widget/bg/preview-00.eps
*
* @brief Background object, used for setting a solid color, image or Edje
* group as background to a window or any container object.
*
* The bg object is used for setting a solid background to a window or
* packing into any container object. It works just like an image, but has
* some properties useful to a background, like setting it to tiled,
* centered, scaled or stretched.
*
* Default contents parts of the bg widget that you can use for are:
* @li "overlay" - overlay of the bg
*
* Here is some sample code using it:
* @li @ref bg_01_example_page
* @li @ref bg_02_example_page
* @li @ref bg_03_example_page
*/
/* bg */
typedef enum
{
ELM_BG_OPTION_CENTER, /**< center the background */
ELM_BG_OPTION_SCALE, /**< scale the background retaining aspect ratio */
ELM_BG_OPTION_STRETCH, /**< stretch the background to fill */
ELM_BG_OPTION_TILE /**< tile background at its original size */
} Elm_Bg_Option;
/**
* Add a new background to the parent
*
* @param parent The parent object
* @return The new object or NULL if it cannot be created
*
* @ingroup Bg
*/
EAPI Evas_Object *elm_bg_add(Evas_Object *parent);
/**
* Set the file (image or edje) used for the background
*
* @param obj The bg object
* @param file The file path
* @param group Optional key (group in Edje) within the file
*
* This sets the image file used in the background object. The image (or edje)
* will be stretched (retaining aspect if its an image file) to completely fill
* the bg object. This may mean some parts are not visible.
*
* @note Once the image of @p obj is set, a previously set one will be deleted,
* even if @p file is NULL.
*
* @ingroup Bg
*/
EAPI void elm_bg_file_set(Evas_Object *obj, const char *file, const char *group);
/**
* Get the file (image or edje) used for the background
*
* @param obj The bg object
* @param file The file path
* @param group Optional key (group in Edje) within the file
*
* @ingroup Bg
*/
EAPI void elm_bg_file_get(const Evas_Object *obj, const char **file, const char **group);
/**
* Set the option used for the background image
*
* @param obj The bg object
* @param option The desired background option (TILE, SCALE)
*
* This sets the option used for manipulating the display of the background
* image. The image can be tiled or scaled.
*
* @ingroup Bg
*/
EAPI void elm_bg_option_set(Evas_Object *obj, Elm_Bg_Option option);
/**
* Get the option used for the background image
*
* @param obj The bg object
* @return The desired background option (CENTER, SCALE, STRETCH or TILE)
*
* @ingroup Bg
*/
EAPI Elm_Bg_Option elm_bg_option_get(const Evas_Object *obj);
/**
* Set the option used for the background color
*
* @param obj The bg object
* @param r
* @param g
* @param b
*
* This sets the color used for the background rectangle. Its range goes
* from 0 to 255.
*
* @ingroup Bg
*/
EAPI void elm_bg_color_set(Evas_Object *obj, int r, int g, int b);
/**
* Get the option used for the background color
*
* @param obj The bg object
* @param r
* @param g
* @param b
*
* @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.
*
* This option just makes sense if an image is going to be set in the bg.
*
* @param obj The bg object
* @param w The new width of the image pixmap representation.
* @param h The new height of the image pixmap representation.
*
* This function sets a new size for pixmap representation of the given bg
* image. It allows the image to be loaded already in the specified size,
* reducing the memory usage and load time when loading a big image with load
* size set to a smaller size.
*
* NOTE: this is just a hint, 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);
/**
* @}
*/