efl/src/lib/elementary/elm_photocam_legacy.h

238 lines
7.6 KiB
C

typedef Eo Elm_Photocam;
/**
* @brief Add a new Photocam object
*
* @param parent The parent object
* @return The new object or NULL if it cannot be created
*
* @ingroup Elm_Photocam
*/
EAPI Evas_Object *elm_photocam_add(Evas_Object *parent);
/**
* @brief Bring in the viewed portion of the image
*
* @param obj The photocam object
* @param x X-coordinate of region in image original pixels
* @param y Y-coordinate of region in image original pixels
* @param w Width of region in image original pixels
* @param h Height of region in image original pixels
*
* This shows the region of the image using animation.
*
* @ingroup Elm_Photocam
*/
EAPI void elm_photocam_image_region_bring_in(Evas_Object *obj, int x, int y, int w, int h);
/**
*
* @brief Set the photo file to be shown
*
* @return The return error (see EVAS_LOAD_ERROR_NONE, EVAS_LOAD_ERROR_GENERIC etc.)
*
* This sets (and shows) the specified file (with a relative or absolute
* path) and will return a load error (same error that
* evas_object_image_load_error_get() will return). The image will change and
* adjust its size at this point and begin a background load process for this
* photo that at some time in the future will be displayed at the full
* quality needed.
*
* @ingroup Elm_Photocam
*
* @param[in] file The photo file
*/
EAPI Evas_Load_Error elm_photocam_file_set(Evas_Object *obj, const char *file);
/**
*
* @brief Returns the path of the current image file
*
* @return Returns the path
*
* @see elm_photocam_file_set()
*
* @ingroup Elm_Photocam
*
*/
EAPI const char *elm_photocam_file_get(const Evas_Object *obj);
/**
* @brief Set the photocam image orientation.
*
* This function allows to rotate or flip the photocam image.
*
* @param[in] orient The photocam image orientation @ref Evas_Image_Orient.
* Default is #EVAS_IMAGE_ORIENT_NONE.
*
* @since 1.14
*
* @ingroup Elm_Photocam
*/
EAPI void elm_photocam_image_orient_set(Evas_Object *obj, Evas_Image_Orient orient);
/**
* @brief Get the photocam image orientation.
*
* @return The photocam image orientation @ref Evas_Image_Orient. Default is
* #EVAS_IMAGE_ORIENT_NONE.
*
* @since 1.14
*
* @ingroup Elm_Photocam
*/
EAPI Evas_Image_Orient elm_photocam_image_orient_get(const Evas_Object *obj);
/**
* @brief Get the internal low-res image used for photocam
*
* This gets the internal image object inside photocam. Do not modify it. It is
* for inspection only, and hooking callbacks to. Nothing else. It may be
* deleted at any time as well.
*
* @return The internal image object handle or @c null
*
* @ingroup Elm_Photocam
*/
EAPI Evas_Object* elm_photocam_internal_image_get(const Evas_Object *obj);
/**
* @brief Set the viewed region of the image
*
* This shows the region of the image without using animation.
*
* @param[in] x X-coordinate of region in image original pixels
* @param[in] y Y-coordinate of region in image original pixels
* @param[in] w Width of region in image original pixels
* @param[in] h Height of region in image original pixels
*
* @ingroup Elm_Photocam
*/
EAPI void elm_photocam_image_region_show(Evas_Object *obj, int x, int y, int w, int h);
/**
* @brief Get the current image pixel width and height
*
* This gets the current photo pixel width and height (for the original). The
* size will be returned in the integers @c w and @c h that are pointed to.
*
* @param[out] w A pointer to the width return
* @param[out] h A pointer to the height return
*
* @ingroup Elm_Photocam
*/
EAPI void elm_photocam_image_size_get(const Evas_Object *obj, int *w, int *h);
/**
* @brief Get the paused state for photocam
*
* This gets the current paused state for the photocam object.
*
* @return The pause state.
*
* @ingroup Elm_Photocam
*/
EAPI Eina_Bool elm_photocam_paused_get(const Evas_Object *obj);
/**
* @brief Set the paused state for photocam
*
* This sets the paused state to on or off for photocam. The default is off.
* This will stop zooming using animation on zoom level changes and change
* instantly. This will stop any existing animations that are running.
*
* @param[in] paused The pause state.
*
* @ingroup Elm_Photocam
*/
EAPI void elm_photocam_paused_set(Evas_Object *obj, Eina_Bool paused);
/**
* @brief Set the zoom level of the photo
*
* This sets the zoom level. If @c zoom is 1, it means no zoom. If it's smaller
* than 1, it means zoom in. If it's bigger than 1, it means zoom out. For
* example, @c zoom 1 will be 1:1 pixel for pixel. @c zoom 2 will be 2:1 (that
* is 2x2 photo pixels will display as 1 on-screen pixel) which is a zoom out.
* 4:1 will be 4x4 photo pixels as 1 screen pixel, and so on. The @c zoom
* parameter must be greater than 0. It is suggested to stick to powers of 2.
* (1, 2, 4, 8, 16, 32, etc.).
*
* @param[in] zoom The zoom level to set
*
* @ingroup Elm_Photocam
*/
EAPI void elm_photocam_zoom_set(Evas_Object *obj, double zoom);
/**
* @brief Get the zoom level of the photo
*
* This returns the current zoom level of the photocam object. Note that if you
* set the fill mode to other than #ELM_PHOTOCAM_ZOOM_MODE_MANUAL (which is the
* default), the zoom level may be changed at any time by the photocam object
* itself to account for photo size and photocam viewport size.
*
* @return The zoom level to set
*
* @ingroup Elm_Photocam
*/
EAPI double elm_photocam_zoom_get(const Evas_Object *obj);
typedef enum
{
ELM_PHOTOCAM_ZOOM_MODE_MANUAL = 0, /**< Zoom controlled normally by elm_photocam_zoom_set */
ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT, /**< Zoom until photo fits in zoomable object */
ELM_PHOTOCAM_ZOOM_MODE_AUTO_FILL, /**< Zoom until photo fills zoomable object */
ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT_IN, /**< Zoom in until photo fits in zoomable object
*/
ELM_PHOTOCAM_ZOOM_MODE_LAST /**< Sentinel value to indicate last enum field during
* iteration */
} Elm_Photocam_Zoom_Mode;
/**
* @brief Set the zoom mode
*
* This sets the zoom mode to manual or one of several automatic levels. Manual
* (ELM_PHOTOCAM_ZOOM_MODE_MANUAL) means that zoom is set manually by
* @ref elm_photocam_zoom_mode_set and will stay at that level until changed by
* code or until zoom mode is changed. This is the default mode. The Automatic
* modes will allow the photocam object to automatically adjust zoom mode based
* on properties.
*
* #ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT) will adjust zoom so the photo fits EXACTLY
* inside the scroll frame with no pixels outside this region.
* #ELM_PHOTOCAM_ZOOM_MODE_AUTO_FILL will be similar but ensure no pixels
* within the frame are left unfilled.
*
* @param[in] mode The zoom mode.
*
* @ingroup Elm_Photocam
*/
EAPI void elm_photocam_zoom_mode_set(Evas_Object *obj, Elm_Photocam_Zoom_Mode mode);
/**
* @brief Get the zoom mode
*
* This gets the current zoom mode of the photocam object.
*
* @return The zoom mode.
*
* @ingroup Elm_Photocam
*/
EAPI Elm_Photocam_Zoom_Mode elm_photocam_zoom_mode_get(const Evas_Object *obj);
/**
* @brief Get the region of the image that is currently shown
*
* See also @ref Efl.Ui.Image_Zoomable.image_region.set.
*
* @param[out] x X-coordinate of region in image original pixels
* @param[out] y Y-coordinate of region in image original pixels
* @param[out] w Width of region in image original pixels
* @param[out] h Height of region in image original pixels
*/
EAPI void elm_photocam_image_region_get(const Evas_Object *obj, int *x, int *y, int *w, int *h);
#include "efl_ui_image_zoomable_eo.legacy.h"