Eina_Position2D pos;
//C# FIXME: Optimize the code
- if (!strcmp(efl_class_name_get(obj->widget_object), "Scroller"))
+ if (efl_isa(obj->widget_object, EFL_UI_LEGACY_INTERFACE))
{
- size = efl_ui_scrollable_content_size_get(obj->widget_object);
- rect = efl_ui_scrollable_viewport_geometry_get(obj->widget_object);
- pos = efl_ui_scrollable_content_pos_get(obj->widget_object);
-
- content_w = size.w;
- content_h = size.h;
-
- viewport_w = rect.w;
- viewport_h = rect.h;
-
- position_x = pos.x;
- position_y = pos.y;
+ elm_scroller_child_size_get(scroller, &content_w, &content_h);
+ elm_scroller_region_get(scroller, &position_x, &position_y, &viewport_w, &viewport_h);
}
else
{
- elm_scroller_child_size_get(scroller, &content_w, &content_h);
- elm_scroller_region_get(scroller, &position_x, &position_y, &viewport_w, &viewport_h);
+ size = efl_ui_scrollable_content_size_get(obj->widget_object);
+ rect = efl_ui_scrollable_viewport_geometry_get(obj->widget_object);
+ pos = efl_ui_scrollable_content_pos_get(obj->widget_object);
+
+ content_w = size.w;
+ content_h = size.h;
+
+ viewport_w = rect.w;
+ viewport_h = rect.h;
+
+ position_x = pos.x;
+ position_y = pos.y;
}
item = _eext_circle_object_item_get(obj, VERTICAL_BAR_NAME);
scroll_locked_y = elm_object_scroll_lock_y_get(scroller);
//C# FIXME: Apply center alignment
- if (!strcmp(efl_class_name_get(scroller), "Scroller"))
- {
- Eina_Position2D pos = efl_ui_scrollable_content_pos_get(scroller);
- Eina_Rect rect = efl_ui_scrollable_viewport_geometry_get(scroller);
- if (widget_data->policy_v == ELM_SCROLLER_POLICY_AUTO)
- rect.y = pos.y + (d * widget_data->step_y);
- else
- rect.x = pos.x + (d * widget_data->step_x);
-
- efl_ui_scrollable_scroll(scroller, rect, EINA_TRUE);
- }
- else if ((h_pagesize > 0) || (v_pagesize > 0))
+ if (efl_isa(scroller, EFL_UI_LEGACY_INTERFACE))
{
- int h_current_page, v_current_page;
-
- // Handle scroll per page
- elm_scroller_current_page_get(scroller, &h_current_page, &v_current_page);
-
- if (!scroll_locked_y &&
- !(scroller_block & ELM_SCROLLER_MOVEMENT_BLOCK_VERTICAL) &&
- (ch > h) && (v_pagesize > 0))
+ if ((h_pagesize > 0) || (v_pagesize > 0))
{
- v_current_page += d;
+ int h_current_page, v_current_page;
+
+ // Handle scroll per page
+ elm_scroller_current_page_get(scroller, &h_current_page, &v_current_page);
+
+ if (!scroll_locked_y &&
+ !(scroller_block & ELM_SCROLLER_MOVEMENT_BLOCK_VERTICAL) &&
+ (ch > h) && (v_pagesize > 0))
+ {
+ v_current_page += d;
+ }
+ else if (!scroll_locked_x &&
+ !(scroller_block & ELM_SCROLLER_MOVEMENT_BLOCK_HORIZONTAL) &&
+ (cw > w) && (h_pagesize > 0))
+ {
+ h_current_page += d;
+ }
+
+ if (v_current_page < 0) v_current_page = 0;
+ if (h_current_page < 0) h_current_page = 0;
+
+ elm_scroller_page_bring_in(scroller, h_current_page,v_current_page);
}
- else if (!scroll_locked_x &&
- !(scroller_block & ELM_SCROLLER_MOVEMENT_BLOCK_HORIZONTAL) &&
- (cw > w) && (h_pagesize > 0))
+ else
{
- h_current_page += d;
+ // Handle scroll
+ if (!scroll_locked_y &&
+ !(scroller_block & ELM_SCROLLER_MOVEMENT_BLOCK_VERTICAL) &&
+ (ch > h))
+ {
+ y += d * widget_data->step_y;
+ }
+ else if (!scroll_locked_x &&
+ !(scroller_block & ELM_SCROLLER_MOVEMENT_BLOCK_HORIZONTAL) &&
+ (cw > w))
+ {
+ if (circle_obj->mirrored_state == EEXT_CIRCLE_MIRRORED_CONFIG)
+ is_mirrored = elm_config_mirrored_get();
+ else if (circle_obj->mirrored_state == EEXT_CIRCLE_MIRRORED_ON)
+ is_mirrored = EINA_TRUE;
+
+ if (is_mirrored)
+ d *= -1;
+
+ x += d * widget_data->step_x;
+ }
+
+ if (y < 0) y = 0;
+ if (x < 0) x = 0;
+
+ elm_scroller_region_bring_in(scroller, x, y, w, h);
}
-
- if (v_current_page < 0) v_current_page = 0;
- if (h_current_page < 0) h_current_page = 0;
-
- elm_scroller_page_bring_in(scroller, h_current_page,v_current_page);
}
else
{
- // Handle scroll
- if (!scroll_locked_y &&
- !(scroller_block & ELM_SCROLLER_MOVEMENT_BLOCK_VERTICAL) &&
- (ch > h))
- {
- y += d * widget_data->step_y;
- }
- else if (!scroll_locked_x &&
- !(scroller_block & ELM_SCROLLER_MOVEMENT_BLOCK_HORIZONTAL) &&
- (cw > w))
- {
- if (circle_obj->mirrored_state == EEXT_CIRCLE_MIRRORED_CONFIG)
- is_mirrored = elm_config_mirrored_get();
- else if (circle_obj->mirrored_state == EEXT_CIRCLE_MIRRORED_ON)
- is_mirrored = EINA_TRUE;
-
- if (is_mirrored)
- d *= -1;
-
- x += d * widget_data->step_x;
- }
-
- if (y < 0) y = 0;
- if (x < 0) x = 0;
+ Eina_Position2D pos = efl_ui_scrollable_content_pos_get(scroller);
+ Eina_Rect rect = efl_ui_scrollable_viewport_geometry_get(scroller);
+ if (widget_data->policy_v == ELM_SCROLLER_POLICY_AUTO)
+ rect.y = pos.y + (d * widget_data->step_y);
+ else
+ rect.x = pos.x + (d * widget_data->step_x);
- elm_scroller_region_bring_in(scroller, x, y, w, h);
+ efl_ui_scrollable_scroll(scroller, rect, EINA_TRUE);
}
return EINA_TRUE;
_eext_circle_object_item_round_cap_enable_set(item, EINA_TRUE);
_eext_circle_object_item_append(obj, item);
- if (!strcmp(efl_class_name_get(obj->widget_object), "Scroller"))
+ if (efl_isa(obj->widget_object, EFL_UI_LEGACY_INTERFACE))
{
- efl_ui_scrollbar_bar_mode_set(obj->widget_object, EFL_UI_SCROLLBAR_MODE_OFF, EFL_UI_SCROLLBAR_MODE_OFF);
- efl_event_callback_add(scroller, EFL_UI_EVENT_SCROLL, _scroll_cb, obj);
+ elm_scroller_policy_set(scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
+ evas_object_smart_callback_add(scroller, "scroll", _eext_circle_object_scroller_scroll_cb, obj);
}
else
{
- elm_scroller_policy_set(scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
- evas_object_smart_callback_add(scroller, "scroll", _eext_circle_object_scroller_scroll_cb, obj);
+ efl_ui_scrollbar_bar_mode_set(obj->widget_object, EFL_UI_SCROLLBAR_MODE_OFF, EFL_UI_SCROLLBAR_MODE_OFF);
+ efl_event_callback_add(scroller, EFL_UI_EVENT_SCROLL, _scroll_cb, obj);
}
evas_object_event_callback_add(scroller, EVAS_CALLBACK_SHOW, _eext_circle_object_scroller_show_cb, obj);