#ifndef __EFL_EXTENSION_CIRCLE_OBJECT_H__
#define __EFL_EXTENSION_CIRCLE_OBJECT_H__
+
+typedef enum _Eext_Circle_Mirrored_State
+{
+ EEXT_CIRCLE_MIRRORED_OFF,
+ EEXT_CIRCLE_MIRRORED_ON,
+ EEXT_CIRCLE_MIRRORED_CONFIG
+} Eext_Circle_Mirrored_State;
+
#ifdef __cplusplus
extern "C" {
#endif
*/
EAPI double eext_circle_object_item_radius_get(const Evas_Object *obj, const char *item_name);
+/**
+ * @internal
+ * @WEARABLE_ONLY
+ * @brief Set mirrored state of a given circle object.
+ *
+ * @param[in] obj The circle object
+ * @param[in] mirrored The mirrored state
+ *
+ * @if WEARABLE @since_tizen 4.0
+ * @endif
+ */
+EAPI void eext_circle_object_mirrored_set(const Evas_Object *obj, Eext_Circle_Mirrored_State state);
+
+/**
+ * @internal
+ * @WEARABLE_ONLY
+ * @brief Get mirrored state of a given circle object.
+ *
+ * @param[in] obj The circle object
+ * @return The mirrored state
+ *
+ * @if WEARABLE @since_tizen 4.0
+ * @endif
+ */
+EAPI Eext_Circle_Mirrored_State eext_circle_object_mirrored_get(const Evas_Object *obj);
+
/**
* @}
*/
Evas_Object *widget_object;
void *widget_data;
const char *widget_type;
+ Eext_Circle_Mirrored_State mirrored_state;
Eina_List *bg_image_objs;
int bg_image_index;
return -1.0;
}
+
+EAPI void
+eext_circle_object_mirrored_set(const Evas_Object *obj, Eext_Circle_Mirrored_State state)
+{
+ EEXT_CIRCLE_OBJECT_GET(obj, circle_obj) return;
+
+ circle_obj->mirrored_state = state;
+}
+
+EAPI Eext_Circle_Mirrored_State
+eext_circle_object_mirrored_get(const Evas_Object *obj)
+{
+ EEXT_CIRCLE_OBJECT_GET(obj, circle_obj) return EEXT_CIRCLE_MIRRORED_OFF;
+
+ return circle_obj->mirrored_state;
+}
obj->del_func = _eext_circle_object_genlist_del_cb;
obj->disabled_func = _eext_circle_object_genlist_disabled_cb;
obj->color_changed_func = _eext_circle_object_genlist_color_changed_cb;
+ obj->mirrored_state = EEXT_CIRCLE_MIRRORED_CONFIG;
data = (Eext_Circle_Object_Genlist_Data *)calloc(1, sizeof(Eext_Circle_Object_Genlist_Data));
data->policy_v = ELM_SCROLLER_POLICY_AUTO;
obj->del_func = _eext_circle_object_scroller_del_cb;
obj->disabled_func = _eext_circle_object_scroller_disabled_cb;
obj->color_changed_func = _eext_circle_object_scroller_color_changed_cb;
+ obj->mirrored_state = EEXT_CIRCLE_MIRRORED_CONFIG;
data = (Eext_Circle_Object_Scroller_Data *)calloc(1, sizeof(Eext_Circle_Object_Scroller_Data));
data->policy_v = ELM_SCROLLER_POLICY_AUTO;
// Draw Arc
if (item->line_width)
{
+ double angle1, angle2;
+ Eina_Bool is_mirrored = EINA_FALSE;
+
cairo_save(surface->cairo);
+
+ if (render_obj->mirrored_state == EEXT_CIRCLE_MIRRORED_CONFIG)
+ is_mirrored = elm_config_mirrored_get();
+ else if (render_obj->mirrored_state == EEXT_CIRCLE_MIRRORED_ON)
+ is_mirrored = EINA_TRUE;
+
+ if (is_mirrored)
+ {
+ angle1 = (item->draw.angle_offset + item->draw.angle + 90.0) * -1;
+ angle2 = (item->draw.angle_offset + item->min_angle + 90.0) * -1;
+ }
+ else
+ {
+ angle1 = item->draw.angle_offset + item->min_angle - 90.0;
+ angle2 = item->draw.angle_offset + item->draw.angle - 90.0;
+ }
+
_eext_circle_surface_cairo_draw_arc(surface->cairo, item->line_width,
surface->center_x, surface->center_y, item->radius,
(double)item->draw.color.r / 255,
(double)item->draw.color.g / 255,
(double)item->draw.color.b / 255,
(double)item->draw.color.a / 255,
- item->draw.angle_offset + item->min_angle - 90.0,
- item->draw.angle_offset + item->draw.angle - 90.0,
+ angle1,
+ angle2,
item->round_cap);
cairo_restore(surface->cairo);
}