From f3eff6eb3ee6e9b56c0be5cd7f8905f14b388e4f Mon Sep 17 00:00:00 2001 From: Jean-Philippe Andre Date: Thu, 14 Sep 2017 11:59:44 +0900 Subject: [PATCH] efl: Introduce Eina.Rect and switch EO APIs to it It's a complex struct but defined in EO as a simple struct. ABI-wise it's equivalent to Eina_Rectangle. Some macros that use Eina_Rectangle also work on Eina_Rect out of the box, most of the code dealing with x,y,w,h will require no modifications either. But Eina_Rect provides direct access to a size or position 2d component, as well as the usual x,y,w,h. The field "rect" is provided as a convenience for code dealing with both Eina_Rectangle and Eina_Rect. We may or may not require it. Note: Size2D could use unsigned values but I have spotted a few places in the code that actually use -1 to indicate invalid size (as opposed to 0x0). @feature --- src/bin/elementary/test_photocam.c | 2 +- src/bin/elementary/test_ui_box.c | 4 +-- src/bin/eolian/sources.c | 5 +++- src/examples/evas/evas-3d-cube-rotate.c | 2 +- src/examples/evas/evas-map-utils-eo.c | 2 +- src/lib/ecore_evas/ecore_evas.c | 4 +-- .../cairo/ector_renderer_cairo_gradient_linear.c | 4 +-- .../cairo/ector_renderer_cairo_gradient_radial.c | 4 +-- src/lib/ector/cairo/ector_renderer_cairo_shape.c | 2 +- src/lib/ector/ector_renderer.eo | 4 +-- src/lib/ector/gl/ector_gl_surface.eo | 2 +- .../ector/gl/ector_renderer_gl_gradient_linear.c | 4 +-- .../ector/gl/ector_renderer_gl_gradient_radial.c | 4 +-- src/lib/ector/gl/ector_renderer_gl_shape.c | 4 +-- src/lib/edje/edje_calc.c | 4 +-- src/lib/edje/edje_legacy.c | 2 +- src/lib/edje/edje_part.c | 6 ++--- src/lib/edje/efl_canvas_layout_calc.eo | 2 +- src/lib/efl/interfaces/efl_animator.eo | 2 +- src/lib/efl/interfaces/efl_gfx.eo | 2 +- src/lib/efl/interfaces/efl_gfx_fill.eo | 2 +- src/lib/efl/interfaces/efl_gfx_path.c | 4 +-- src/lib/efl/interfaces/efl_gfx_path.eo | 2 +- src/lib/efl/interfaces/efl_gfx_types.eot | 2 +- src/lib/eina/eina_rectangle.h | 30 ++++++++++++++++++++++ src/lib/elementary/efl_access_component.c | 18 ++++++------- src/lib/elementary/efl_access_component.eo | 2 +- src/lib/elementary/efl_ui_focus_manager_calc.c | 18 ++++++------- src/lib/elementary/efl_ui_focus_object.eo | 2 +- src/lib/elementary/efl_ui_text.c | 16 +++++------- src/lib/elementary/efl_ui_textpath.c | 2 +- src/lib/elementary/efl_ui_win.c | 8 +++--- src/lib/elementary/elc_multibuttonentry.c | 7 +---- src/lib/elementary/elm_atspi_bridge.c | 11 ++++---- src/lib/elementary/elm_colorselector.c | 12 +++------ src/lib/elementary/elm_conform.c | 2 +- src/lib/elementary/elm_ctxpopup.eo | 2 +- src/lib/elementary/elm_entry.c | 16 ++++++------ src/lib/elementary/elm_gengrid.c | 8 +++--- src/lib/elementary/elm_genlist.c | 6 ++--- src/lib/elementary/elm_interface_atspi_text.eo | 6 ++--- src/lib/elementary/elm_list.c | 10 ++++---- src/lib/elementary/elm_menu.c | 4 +-- src/lib/elementary/elm_panel.c | 4 +-- src/lib/elementary/elm_scroller.c | 2 +- src/lib/elementary/elm_toolbar.c | 14 +++++----- src/lib/elementary/elm_transit.c | 4 +-- src/lib/elementary/elm_widget.c | 28 ++++++++++---------- src/lib/elementary/elm_widget.eo | 10 ++++---- src/lib/elementary/elm_widget.h | 12 ++++----- src/lib/eo/eina_types.eot | 24 ++++++++++++----- src/lib/evas/canvas/efl_canvas_text.eo | 4 +-- src/lib/evas/canvas/efl_gfx_map.c | 2 +- src/lib/evas/canvas/efl_vg.eo | 2 +- src/lib/evas/canvas/evas_canvas.eo | 8 +++--- src/lib/evas/canvas/evas_image_legacy.c | 2 +- src/lib/evas/canvas/evas_object_image.c | 6 ++--- src/lib/evas/canvas/evas_object_main.c | 10 ++++---- src/lib/evas/canvas/evas_object_vg.c | 4 +-- src/lib/evas/canvas/evas_vg_container.c | 10 ++++---- src/lib/evas/canvas/evas_vg_gradient_linear.c | 2 +- src/lib/evas/canvas/evas_vg_gradient_radial.c | 2 +- src/lib/evas/canvas/evas_vg_node.c | 18 ++++++------- src/lib/evas/canvas/evas_vg_private.h | 2 +- src/lib/evas/canvas/evas_vg_shape.c | 4 +-- src/tests/elementary/elm_test_focus_common.c | 12 ++++----- src/tests/elementary/elm_test_focus_sub.c | 7 ++--- src/tests/elementary/focus_test.eo | 2 +- 68 files changed, 237 insertions(+), 213 deletions(-) diff --git a/src/bin/elementary/test_photocam.c b/src/bin/elementary/test_photocam.c index c7a8ea2..4e25fdd 100644 --- a/src/bin/elementary/test_photocam.c +++ b/src/bin/elementary/test_photocam.c @@ -763,7 +763,7 @@ _zoomable_clicked_cb(void *data EINA_UNUSED, const Efl_Event *ev) static void _zoomable_move_resize_cb(void *data, const Efl_Event *ev) { - Eina_Rectangle r; + Eina_Rect r; r = efl_gfx_geometry_get(ev->object); efl_gfx_size_set(data, r.w, r.h); diff --git a/src/bin/elementary/test_ui_box.c b/src/bin/elementary/test_ui_box.c index 7d8d33b..b170b82 100644 --- a/src/bin/elementary/test_ui_box.c +++ b/src/bin/elementary/test_ui_box.c @@ -170,7 +170,7 @@ _custom_layout_update(Eo *pack, const void *data EINA_UNUSED) { Eina_Iterator *it = efl_content_iterate(pack); int count = efl_content_count(pack), i = 0; - Eina_Rectangle rp; + Eina_Rect rp; Eo *sobj; // Note: This is a TERRIBLE layout. Just an example of the API, not showing @@ -181,7 +181,7 @@ _custom_layout_update(Eo *pack, const void *data EINA_UNUSED) rp = efl_gfx_geometry_get(pack); EINA_ITERATOR_FOREACH(it, sobj) { - Eina_Rectangle r; + Eina_Rect r; int mw, mh; efl_gfx_size_hint_combined_min_get(sobj, &mw, &mh); diff --git a/src/bin/eolian/sources.c b/src/bin/eolian/sources.c index 65957e8..e2458fe 100644 --- a/src/bin/eolian/sources.c +++ b/src/bin/eolian/sources.c @@ -133,7 +133,10 @@ _append_defval(const Eolian_Unit *src, Eina_Strbuf *buf, if (tdcl && (eolian_typedecl_type_get(tdcl) == EOLIAN_TYPEDECL_STRUCT)) { char *sn = eo_gen_c_full_name_get(eolian_typedecl_full_name_get(tdcl)); - eina_strbuf_append_printf(buf, "((%s){0})", sn); + if (eina_streq(sn, "Eina_Rect")) + eina_strbuf_append(buf, "(EINA_RECT_EMPTY())"); + else + eina_strbuf_append_printf(buf, "((%s){0})", sn); free(sn); return; } diff --git a/src/examples/evas/evas-3d-cube-rotate.c b/src/examples/evas/evas-3d-cube-rotate.c index 8ddd326..16efb7c 100644 --- a/src/examples/evas/evas-3d-cube-rotate.c +++ b/src/examples/evas/evas-3d-cube-rotate.c @@ -262,7 +262,7 @@ main(void) /* Add an image object for 3D scene rendering. */ image = efl_add(EFL_CANVAS_SCENE3D_CLASS, evas); - efl_gfx_geometry_set(image, (Eina_Rectangle) { 0, 0, WIDTH, HEIGHT }); + efl_gfx_geometry_set(image, EINA_RECT(0, 0, WIDTH, HEIGHT)); evas_object_show(image); /* Set the image object as render target for 3D scene. */ diff --git a/src/examples/evas/evas-map-utils-eo.c b/src/examples/evas/evas-map-utils-eo.c index 005358b..f6e321f 100644 --- a/src/examples/evas/evas-map-utils-eo.c +++ b/src/examples/evas/evas-map-utils-eo.c @@ -70,7 +70,7 @@ _anim_cb(void *data) { App_Data *ad = data; Evas_Object *o; - Eina_Rectangle rect; + Eina_Rect rect; int r, g, b, a, f, h, w; int win_w, win_h, mx, my; diff --git a/src/lib/ecore_evas/ecore_evas.c b/src/lib/ecore_evas/ecore_evas.c index d95e3bd..8874c34 100644 --- a/src/lib/ecore_evas/ecore_evas.c +++ b/src/lib/ecore_evas/ecore_evas.c @@ -3061,7 +3061,7 @@ ecore_evas_animator_tick(Ecore_Evas *ee, Eina_Rectangle *viewport, double loop_t { Ecore_Evas *subee; Eina_List *l; - Efl_Event_Animator_Tick a = { { 0, 0, 0, 0 } }; + Efl_Event_Animator_Tick a = { EINA_RECT_ZERO() }; if (!viewport) { @@ -3069,7 +3069,7 @@ ecore_evas_animator_tick(Ecore_Evas *ee, Eina_Rectangle *viewport, double loop_t } else { - a.update_area = *viewport; + a.update_area.rect = *viewport; } ecore_loop_time_set(loop_time); diff --git a/src/lib/ector/cairo/ector_renderer_cairo_gradient_linear.c b/src/lib/ector/cairo/ector_renderer_cairo_gradient_linear.c index ceccc57..95b4243 100644 --- a/src/lib/ector/cairo/ector_renderer_cairo_gradient_linear.c +++ b/src/lib/ector/cairo/ector_renderer_cairo_gradient_linear.c @@ -114,8 +114,8 @@ _ector_renderer_cairo_gradient_linear_ector_renderer_cairo_fill(Eo *obj, static void _ector_renderer_cairo_gradient_linear_ector_renderer_bounds_get(Eo *obj, - Ector_Renderer_Cairo_Gradient_Linear_Data *pd EINA_UNUSED, - Eina_Rectangle *r) + Ector_Renderer_Cairo_Gradient_Linear_Data *pd EINA_UNUSED, + Eina_Rect *r) { Ector_Renderer_Gradient_Linear_Data *gld; Ector_Renderer_Cairo_Data *bd; diff --git a/src/lib/ector/cairo/ector_renderer_cairo_gradient_radial.c b/src/lib/ector/cairo/ector_renderer_cairo_gradient_radial.c index 94225b6..0011968 100644 --- a/src/lib/ector/cairo/ector_renderer_cairo_gradient_radial.c +++ b/src/lib/ector/cairo/ector_renderer_cairo_gradient_radial.c @@ -120,8 +120,8 @@ _ector_renderer_cairo_gradient_radial_ector_renderer_cairo_fill(Eo *obj, static void _ector_renderer_cairo_gradient_radial_ector_renderer_bounds_get(Eo *obj EINA_UNUSED, - Ector_Renderer_Cairo_Gradient_Radial_Data *pd EINA_UNUSED, - Eina_Rectangle *r) + Ector_Renderer_Cairo_Gradient_Radial_Data *pd EINA_UNUSED, + Eina_Rect *r) { Ector_Renderer_Gradient_Radial_Data *gld; Ector_Renderer_Cairo_Data *bd; diff --git a/src/lib/ector/cairo/ector_renderer_cairo_shape.c b/src/lib/ector/cairo/ector_renderer_cairo_shape.c index fb08cec..00bc3d4 100644 --- a/src/lib/ector/cairo/ector_renderer_cairo_shape.c +++ b/src/lib/ector/cairo/ector_renderer_cairo_shape.c @@ -233,7 +233,7 @@ _ector_renderer_cairo_shape_ector_renderer_cairo_fill(Eo *obj EINA_UNUSED, static void _ector_renderer_cairo_shape_ector_renderer_bounds_get(Eo *obj, Ector_Renderer_Cairo_Shape_Data *pd EINA_UNUSED, - Eina_Rectangle *r) + Eina_Rect *r) { Ector_Renderer_Cairo_Data *bd; diff --git a/src/lib/ector/ector_renderer.eo b/src/lib/ector/ector_renderer.eo index 67e4f76..0d33f1e 100644 --- a/src/lib/ector/ector_renderer.eo +++ b/src/lib/ector/ector_renderer.eo @@ -110,7 +110,7 @@ abstract Ector.Renderer (Efl.Object) bounds_get @pure_virtual { [[Retrieves the bounds of the renderer]] params { - @out r: Eina.Rectangle; [[Bounds as @Eina.Rectangle]] + @out r: Eina.Rect; [[Bounds as @Eina.Rect]] } } draw @pure_virtual { @@ -118,7 +118,7 @@ abstract Ector.Renderer (Efl.Object) return: bool; [[$true on success, $false otherwise]] params { @in op: Efl.Gfx.Render_Op; [[Renderer operation]] - @in clips: array; [[Array of @Eina.Rectangle clip]] + @in clips: array; [[Array of @Eina.Rect clip]] @in mul_col: uint; [[Premultiplied color]] } } diff --git a/src/lib/ector/gl/ector_gl_surface.eo b/src/lib/ector/gl/ector_gl_surface.eo index 5052571..798befa 100644 --- a/src/lib/ector/gl/ector_gl_surface.eo +++ b/src/lib/ector/gl/ector_gl_surface.eo @@ -27,7 +27,7 @@ class Ector.GL.Surface (Ector.GL.Buffer, Ector.Surface) return: bool; [[$true on success, $false otherwise]] params { @in op: Efl.Gfx.Render_Op; [[Render operation]] - @in clips: array; [[Array of @Eina.Rectangle clip]] + @in clips: array; [[Array of @Eina.Rect clip]] } } } diff --git a/src/lib/ector/gl/ector_renderer_gl_gradient_linear.c b/src/lib/ector/gl/ector_renderer_gl_gradient_linear.c index 69e1c6d..87c5594 100644 --- a/src/lib/ector/gl/ector_renderer_gl_gradient_linear.c +++ b/src/lib/ector/gl/ector_renderer_gl_gradient_linear.c @@ -41,8 +41,8 @@ _ector_renderer_gl_gradient_linear_ector_renderer_draw(Eo *obj, Ector_Renderer_G static void _ector_renderer_gl_gradient_linear_ector_renderer_bounds_get(Eo *obj EINA_UNUSED, - Ector_Renderer_GL_Gradient_Linear_Data *pd, - Eina_Rectangle *r) + Ector_Renderer_GL_Gradient_Linear_Data *pd, + Eina_Rect *r) { EINA_RECTANGLE_SET(r, pd->base->origin.x + pd->linear->start.x, diff --git a/src/lib/ector/gl/ector_renderer_gl_gradient_radial.c b/src/lib/ector/gl/ector_renderer_gl_gradient_radial.c index 8760bad..827b120 100644 --- a/src/lib/ector/gl/ector_renderer_gl_gradient_radial.c +++ b/src/lib/ector/gl/ector_renderer_gl_gradient_radial.c @@ -55,8 +55,8 @@ _ector_renderer_gl_gradient_radial_ector_renderer_gl_fill(Eo *obj, Ector_Rendere static void _ector_renderer_gl_gradient_radial_ector_renderer_bounds_get(Eo *obj EINA_UNUSED, - Ector_Renderer_GL_Gradient_Radial_Data *pd, - Eina_Rectangle *r) + Ector_Renderer_GL_Gradient_Radial_Data *pd, + Eina_Rect *r) { EINA_RECTANGLE_SET(r, pd->base->origin.x + pd->radial->radial.x - pd->radial->radius, diff --git a/src/lib/ector/gl/ector_renderer_gl_shape.c b/src/lib/ector/gl/ector_renderer_gl_shape.c index 1329a78..b279129 100644 --- a/src/lib/ector/gl/ector_renderer_gl_shape.c +++ b/src/lib/ector/gl/ector_renderer_gl_shape.c @@ -32,7 +32,7 @@ _ector_renderer_gl_shape_path_changed(void *data, const Efl_Event *event EINA_UN static Eina_Bool _ector_renderer_gl_shape_ector_renderer_prepare(Eo *obj, Ector_Renderer_GL_Shape_Data *pd) { - Eina_Rectangle bounding_box; + Eina_Rect bounding_box; Eina_Bool r; if (pd->vertex) return EINA_TRUE; @@ -105,7 +105,7 @@ _ector_renderer_gl_shape_ector_renderer_gl_fill(Eo *obj EINA_UNUSED, } static void -_ector_renderer_gl_shape_ector_renderer_bounds_get(Eo *obj, Ector_Renderer_GL_Shape_Data *pd, Eina_Rectangle *r) +_ector_renderer_gl_shape_ector_renderer_bounds_get(Eo *obj, Ector_Renderer_GL_Shape_Data *pd, Eina_Rect *r) { efl_gfx_path_bounds_get(obj, r); diff --git a/src/lib/edje/edje_calc.c b/src/lib/edje/edje_calc.c index 9bdedca..54aca19 100644 --- a/src/lib/edje/edje_calc.c +++ b/src/lib/edje/edje_calc.c @@ -3616,7 +3616,7 @@ _edje_proxy_recalc_apply(Edje *ed, Edje_Real_Part *ep, Edje_Calc_Params *p3, Edj } } - efl_gfx_fill_set(ep->object, p3->type.common->fill); + efl_gfx_fill_set(ep->object, (Eina_Rect) p3->type.common->fill); efl_image_smooth_scale_set(ep->object, p3->smooth); evas_object_image_source_visible_set(ep->object, chosen_desc->proxy.source_visible); evas_object_image_source_clip_set(ep->object, chosen_desc->proxy.source_clip); @@ -3656,7 +3656,7 @@ _edje_image_recalc_apply(Edje *ed, Edje_Real_Part *ep, Edje_Calc_Params *p3, Edj set->entry->border.scale_by : p3->type.common->spec.image.border_scale_by; } - efl_gfx_fill_set(ep->object, p3->type.common->fill); + efl_gfx_fill_set(ep->object, (Eina_Rect) p3->type.common->fill); efl_image_smooth_scale_set(ep->object, p3->smooth); if (chosen_desc->image.border.scale) { diff --git a/src/lib/edje/edje_legacy.c b/src/lib/edje/edje_legacy.c index 520f9f0..0756122 100644 --- a/src/lib/edje/edje_legacy.c +++ b/src/lib/edje/edje_legacy.c @@ -1101,7 +1101,7 @@ edje_object_size_min_restricted_calc(Edje_Object *obj, int *minw, int *minh, int EAPI Eina_Bool edje_object_parts_extends_calc(Edje_Object *obj, int *x, int *y, int *w, int *h) { - Eina_Rectangle r = { 0, }; + Eina_Rect r = EINA_RECT_ZERO(); Edje *ed; ed = _edje_fetch(obj); diff --git a/src/lib/edje/edje_part.c b/src/lib/edje/edje_part.c index b9790d8..f5a496d 100644 --- a/src/lib/edje/edje_part.c +++ b/src/lib/edje/edje_part.c @@ -100,17 +100,17 @@ _efl_canvas_layout_part_efl_object_finalize(Eo *obj, Efl_Canvas_Layout_Part_Data return efl_finalize(efl_super(obj, MY_CLASS)); } -EOLIAN Eina_Rectangle +EOLIAN Eina_Rect _efl_canvas_layout_part_efl_gfx_geometry_get(Eo *obj, Efl_Canvas_Layout_Part_Data *pd) { Edje_Real_Part *rp = pd->rp; - Eina_Rectangle r = { 0, }; + Eina_Rect r = EINA_RECT_ZERO(); PROXY_CALL_BEGIN(pd); _edje_recalc_do(pd->ed); if (!rp) RETURN_VAL(r); - RETURN_VAL(rp->rect); + RETURN_VAL((Eina_Rect) rp->rect); } EOLIAN static void diff --git a/src/lib/edje/efl_canvas_layout_calc.eo b/src/lib/edje/efl_canvas_layout_calc.eo index 6e89d9f..0874056 100644 --- a/src/lib/edje/efl_canvas_layout_calc.eo +++ b/src/lib/edje/efl_canvas_layout_calc.eo @@ -88,7 +88,7 @@ interface Efl.Canvas.Layout_Calc Note: On failure, this function will make all non-$null geometry pointers' pointed variables be set to zero. ]] - return: Eina.Rectangle; [[The calculated region.]] + return: Eina.Rect; [[The calculated region.]] } calc_freeze { [[Freezes the layout object. diff --git a/src/lib/efl/interfaces/efl_animator.eo b/src/lib/efl/interfaces/efl_animator.eo index dd1322a..ac7e86b 100644 --- a/src/lib/efl/interfaces/efl_animator.eo +++ b/src/lib/efl/interfaces/efl_animator.eo @@ -2,7 +2,7 @@ import eina_types; struct Efl.Event.Animator_Tick { [[EFL event animator tick data structure]] - update_area: Eina.Rectangle; [[Area of the canvas that will be pushed to screen.]] + update_area: Eina.Rect; [[Area of the canvas that will be pushed to screen.]] } interface Efl.Animator { diff --git a/src/lib/efl/interfaces/efl_gfx.eo b/src/lib/efl/interfaces/efl_gfx.eo index bea1ca6..eccc2a0 100644 --- a/src/lib/efl/interfaces/efl_gfx.eo +++ b/src/lib/efl/interfaces/efl_gfx.eo @@ -46,7 +46,7 @@ interface Efl.Gfx { @property geometry { [[Rectangular geometry that combines both position and size.]] values { - rect: Eina.Rectangle; [[The X,Y position and W,H size, in pixels.]] + rect: Eina.Rect; [[The X,Y position and W,H size, in pixels.]] } } @property color { diff --git a/src/lib/efl/interfaces/efl_gfx_fill.eo b/src/lib/efl/interfaces/efl_gfx_fill.eo index 385f79f..566f26d 100644 --- a/src/lib/efl/interfaces/efl_gfx_fill.eo +++ b/src/lib/efl/interfaces/efl_gfx_fill.eo @@ -38,7 +38,7 @@ interface Efl.Gfx.Fill { set {} get {} values { - fill: Eina.Rectangle; [[The top-left corner to start drawing from + fill: Eina.Rect; [[The top-left corner to start drawing from as well as the size at which the bound image will be displayed.]] } } diff --git a/src/lib/efl/interfaces/efl_gfx_path.c b/src/lib/efl/interfaces/efl_gfx_path.c index 5c3aa64..3501379 100644 --- a/src/lib/efl/interfaces/efl_gfx_path.c +++ b/src/lib/efl/interfaces/efl_gfx_path.c @@ -207,9 +207,7 @@ _efl_gfx_path_length_get(Eo *obj EINA_UNUSED, Efl_Gfx_Path_Data *pd, } static void -_efl_gfx_path_bounds_get(Eo *obj EINA_UNUSED, - Efl_Gfx_Path_Data *pd, - Eina_Rectangle *r) +_efl_gfx_path_bounds_get(Eo *obj EINA_UNUSED, Efl_Gfx_Path_Data *pd, Eina_Rect *r) { double minx, miny, maxx, maxy; unsigned int i; diff --git a/src/lib/efl/interfaces/efl_gfx_path.eo b/src/lib/efl/interfaces/efl_gfx_path.eo index ca0c3b4..c4d15d8 100644 --- a/src/lib/efl/interfaces/efl_gfx_path.eo +++ b/src/lib/efl/interfaces/efl_gfx_path.eo @@ -64,7 +64,7 @@ mixin Efl.Gfx.Path @since 1.18 ]] params { - @out r: Eina.Rectangle; [[Contain the bounding box of the currently set path]] + @out r: Eina.Rect; [[Contain the bounding box of the currently set path]] } } reset { diff --git a/src/lib/efl/interfaces/efl_gfx_types.eot b/src/lib/efl/interfaces/efl_gfx_types.eot index bd156ba..20ddeea 100644 --- a/src/lib/efl/interfaces/efl_gfx_types.eot +++ b/src/lib/efl/interfaces/efl_gfx_types.eot @@ -158,7 +158,7 @@ enum Efl.Gfx.Change.Flag struct Efl.Gfx.Event.Render_Post { [[Data sent along a "render,post" event, after a frame has been rendered.]] - updated_area: list ; [[A list of rectangles that were + updated_area: list ; [[A list of rectangles that were updated in the canvas.]] } diff --git a/src/lib/eina/eina_rectangle.h b/src/lib/eina/eina_rectangle.h index e32dfcb..ba3e78f 100644 --- a/src/lib/eina/eina_rectangle.h +++ b/src/lib/eina/eina_rectangle.h @@ -43,6 +43,22 @@ #define EINA_RECTANGLE_FORMAT "dx%d - %dx%d" #define EINA_RECTANGLE_ARGS(r) (r)->x, (r)->y, (r)->w, (r)->h +#define EINA_RECT(x, y, w, h) ((Eina_Rect) { { x, y, w, h } }) +#define EINA_RECT_ZERO() { EINA_RECTANGLE_INIT } +#define EINA_RECT_EMPTY() ((Eina_Rect) EINA_RECT_ZERO()) + +/** @brief A 2D position in pixels coordinates */ +typedef struct _Eina_Position2D +{ + int x, y; +} Eina_Position2D; + +/** @brief A 2D size in pixels coordinates */ +typedef struct _Eina_Size2D +{ + int w, h; +} Eina_Size2D; + /** * @typedef Eina_Rectangle * Simple rectangle structure. @@ -55,6 +71,18 @@ typedef struct _Eina_Rectangle int h; /**< height of rectangle */ } Eina_Rectangle; +typedef union _Eina_Rect +{ + Eina_Rectangle rect; + struct { + Eina_Position2D pos; + Eina_Size2D size; + }; + struct { + int x, y, w, h; + }; +} Eina_Rect; + /** * @typedef Eina_Rectangle_Pool * Type for an opaque pool of rectangle. @@ -483,6 +511,8 @@ EAPI void eina_rectangle_pool_release(Eina_Rectangle *rect) EINA (Rectangle)->h = H; \ } +#define EINA_RECT_SET(r, x, y, w, h) do { EINA_RECTANGLE_SET((&r), x, y, w, h) } while (0) + /** * @brief Creates a new rectangle. diff --git a/src/lib/elementary/efl_access_component.c b/src/lib/elementary/efl_access_component.c index 9bf2bfc..5b4ddd3 100644 --- a/src/lib/elementary/efl_access_component.c +++ b/src/lib/elementary/efl_access_component.c @@ -13,7 +13,7 @@ EOLIAN static void _efl_access_component_position_get(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, Eina_Bool type, int *x, int *y) { - Eina_Rectangle r; + Eina_Rect r; r = efl_access_component_extents_get(obj, type); if (x) *x = r.x; @@ -23,7 +23,7 @@ _efl_access_component_position_get(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, E EOLIAN static Eina_Bool _efl_access_component_position_set(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, Eina_Bool type, int x, int y) { - Eina_Rectangle r; + Eina_Rect r; r = efl_access_component_extents_get(obj, type); r.x = x; @@ -34,7 +34,7 @@ _efl_access_component_position_set(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, E EOLIAN static Eina_Bool _efl_access_component_size_set(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, int w, int h) { - Eina_Rectangle r; + Eina_Rect r; r = efl_access_component_extents_get(obj, EINA_FALSE); r.w = w; @@ -45,7 +45,7 @@ _efl_access_component_size_set(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, int w EOLIAN static void _efl_access_component_size_get(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, int *w, int *h) { - Eina_Rectangle r; + Eina_Rect r; r = efl_access_component_extents_get(obj, EINA_FALSE); if (w) *w = r.w; @@ -55,10 +55,10 @@ _efl_access_component_size_get(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, int * EOLIAN static Eina_Bool _efl_access_component_contains(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, Eina_Bool type, int x, int y) { - Eina_Rectangle r; + Eina_Rect r; r = efl_access_component_extents_get(obj, type); - return eina_rectangle_coords_inside(&r, x, y); + return eina_rectangle_coords_inside(&r.rect, x, y); } EOLIAN static double @@ -96,10 +96,10 @@ _efl_access_component_accessible_at_point_get(Eo *obj, void *_pd EINA_UNUSED, Ei return ret; } -EOLIAN static Eina_Rectangle +EOLIAN static Eina_Rect _efl_access_component_extents_get(Eo *obj, void *_pd EINA_UNUSED, Eina_Bool screen_coords) { - Eina_Rectangle r; + Eina_Rect r; r = efl_gfx_geometry_get(obj); if (screen_coords) @@ -117,7 +117,7 @@ _efl_access_component_extents_get(Eo *obj, void *_pd EINA_UNUSED, Eina_Bool scre } EOLIAN static Eina_Bool -_efl_access_component_extents_set(Eo *obj, void *_pd EINA_UNUSED, Eina_Bool screen_coords, Eina_Rectangle r) +_efl_access_component_extents_set(Eo *obj, void *_pd EINA_UNUSED, Eina_Bool screen_coords, Eina_Rect r) { int wx, wy; diff --git a/src/lib/elementary/efl_access_component.eo b/src/lib/elementary/efl_access_component.eo index f69c7b4..dd4d5e4 100644 --- a/src/lib/elementary/efl_access_component.eo +++ b/src/lib/elementary/efl_access_component.eo @@ -54,7 +54,7 @@ mixin Efl.Access.Component () screen origin, otherwise relative to canvas]] } values { - rect: Eina.Rectangle; [[The geometry.]] + rect: Eina.Rect; [[The geometry.]] } } @property position @protected { diff --git a/src/lib/elementary/efl_ui_focus_manager_calc.c b/src/lib/elementary/efl_ui_focus_manager_calc.c index 21c07ae..9f5b36d 100644 --- a/src/lib/elementary/efl_ui_focus_manager_calc.c +++ b/src/lib/elementary/efl_ui_focus_manager_calc.c @@ -206,7 +206,7 @@ node_item_free(Node *item) //CALCULATING STUFF static inline int -_distance(Eina_Rectangle node, Eina_Rectangle op, Dimension dim) +_distance(Eina_Rect node, Eina_Rect op, Dimension dim) { int min, max, point; int v1, v2; @@ -214,13 +214,13 @@ _distance(Eina_Rectangle node, Eina_Rectangle op, Dimension dim) if (dim == DIMENSION_X) { min = op.x; - max = eina_rectangle_max_x(&op); + max = eina_rectangle_max_x(&op.rect); point = node.x + node.w/2; } else { min = op.y; - max = eina_rectangle_max_y(&op); + max = eina_rectangle_max_y(&op.rect); point = node.y + node.h/2; } @@ -236,7 +236,7 @@ _distance(Eina_Rectangle node, Eina_Rectangle op, Dimension dim) static inline void _calculate_node(Efl_Ui_Focus_Manager_Calc_Data *pd, Efl_Ui_Focus_Object *node, Dimension dim, Eina_List **pos, Eina_List **neg) { - Eina_Rectangle rect = EINA_RECTANGLE_INIT; + Eina_Rect rect; Efl_Ui_Focus_Object *op; int dim_min, dim_max; Eina_Iterator *nodes; @@ -262,7 +262,7 @@ _calculate_node(Efl_Ui_Focus_Manager_Calc_Data *pd, Efl_Ui_Focus_Object *node, D EINA_ITERATOR_FOREACH(nodes, n) { - Eina_Rectangle op_rect = EINA_RECTANGLE_INIT; + Eina_Rect op_rect; int min, max; op = n->focusable; @@ -275,12 +275,12 @@ _calculate_node(Efl_Ui_Focus_Manager_Calc_Data *pd, Efl_Ui_Focus_Object *node, D if (dim == DIMENSION_X) { min = op_rect.y; - max = eina_rectangle_max_y(&op_rect); + max = eina_rectangle_max_y(&op_rect.rect); } else { min = op_rect.x; - max = eina_rectangle_max_x(&op_rect); + max = eina_rectangle_max_x(&op_rect.rect); } @@ -290,7 +290,7 @@ _calculate_node(Efl_Ui_Focus_Manager_Calc_Data *pd, Efl_Ui_Focus_Object *node, D */ if (!((min <= max && max <= dim_min && dim_min <= dim_max) || (dim_min <= dim_max && dim_max <= min && min <= max)) && - !eina_rectangle_intersection(&op_rect, &rect)) + !eina_rectangle_intersection(&op_rect.rect, &rect.rect)) { //this thing hits horizontal int tmp_dis; @@ -959,7 +959,7 @@ _no_history_element(Eina_Hash *node_hash) static void _get_middle(Evas_Object *obj, Eina_Vector2 *elem) { - Eina_Rectangle geom; + Eina_Rect geom; geom = efl_ui_focus_object_focus_geometry_get(obj); elem->x = geom.x + geom.w/2; diff --git a/src/lib/elementary/efl_ui_focus_object.eo b/src/lib/elementary/efl_ui_focus_object.eo index 78ba257..69aadb9 100644 --- a/src/lib/elementary/efl_ui_focus_object.eo +++ b/src/lib/elementary/efl_ui_focus_object.eo @@ -13,7 +13,7 @@ mixin Efl.Ui.Focus.Object } values { - rect : Eina.Rectangle; [[The geometry to use.]] + rect : Eina.Rect; [[The geometry to use.]] } } @property focus { diff --git a/src/lib/elementary/efl_ui_text.c b/src/lib/elementary/efl_ui_text.c index 24aa926..a589e59 100644 --- a/src/lib/elementary/efl_ui_text.c +++ b/src/lib/elementary/efl_ui_text.c @@ -1041,7 +1041,6 @@ _cursor_geometry_recalc(Evas_Object *obj) Evas_Coord x, y, w, h; Evas_Coord x2, y2, w2, h2; Evas_Coord cx, cy, cw, ch; - Eina_Rectangle sr; cx = cy = cw = ch = 0; x2 = y2 = w2 = h2 = 0; @@ -1063,8 +1062,7 @@ _cursor_geometry_recalc(Evas_Object *obj) &x2, &y2, &w2, &h2); cx = cx + x - x2; cy = cy + y - y2; - sr = (Eina_Rectangle) { cx, cy, cw, ch }; - elm_widget_show_region_set(obj, sr, EINA_FALSE); + elm_widget_show_region_set(obj, EINA_RECT(cx, cy, cw, ch), EINA_FALSE); } EOLIAN static void @@ -1207,11 +1205,11 @@ _efl_ui_text_elm_widget_on_focus_update(Eo *obj, Efl_Ui_Text_Data *sd, Elm_Objec return EINA_TRUE; } -EOLIAN static Eina_Rectangle +EOLIAN static Eina_Rect _efl_ui_text_elm_widget_focus_region_get(Eo *obj EINA_UNUSED, Efl_Ui_Text_Data *sd) { Evas_Coord edje_x, edje_y, elm_x, elm_y; - Eina_Rectangle r = {}; + Eina_Rect r = {}; efl_text_cursor_geometry_get(obj, efl_text_cursor_get(obj, EFL_TEXT_CURSOR_GET_MAIN), @@ -1237,7 +1235,7 @@ _efl_ui_text_elm_widget_focus_region_get(Eo *obj EINA_UNUSED, Efl_Ui_Text_Data * } static void -_show_region_hook(void *data EINA_UNUSED, Evas_Object *obj, Eina_Rectangle r) +_show_region_hook(void *data EINA_UNUSED, Evas_Object *obj, Eina_Rect r) { elm_interface_scrollable_content_region_show(obj, r.x, r.y, r.w, r.h); } @@ -4247,7 +4245,7 @@ _efl_ui_text_elm_interface_atspi_text_selection_add(Eo *obj, Efl_Ui_Text_Data *p } EOLIAN static Eina_List* -_efl_ui_text_elm_interface_atspi_text_bounded_ranges_get(Eo *obj EINA_UNUSED, Efl_Ui_Text_Data *_pd EINA_UNUSED, Eina_Bool screen_coods EINA_UNUSED, Eina_Rectangle rect EINA_UNUSED, Elm_Atspi_Text_Clip_Type xclip EINA_UNUSED, Elm_Atspi_Text_Clip_Type yclip EINA_UNUSED) +_efl_ui_text_elm_interface_atspi_text_bounded_ranges_get(Eo *obj EINA_UNUSED, Efl_Ui_Text_Data *_pd EINA_UNUSED, Eina_Bool screen_coods EINA_UNUSED, Eina_Rect rect EINA_UNUSED, Elm_Atspi_Text_Clip_Type xclip EINA_UNUSED, Elm_Atspi_Text_Clip_Type yclip EINA_UNUSED) { return NULL; } @@ -4286,7 +4284,7 @@ _efl_ui_text_elm_interface_atspi_text_offset_at_point_get(Eo *obj, Efl_Ui_Text_D } EOLIAN static Eina_Bool -_efl_ui_text_elm_interface_atspi_text_character_extents_get(Eo *obj, Efl_Ui_Text_Data *pd EINA_UNUSED, int offset, Eina_Bool screen_coods, Eina_Rectangle *rect) +_efl_ui_text_elm_interface_atspi_text_character_extents_get(Eo *obj, Efl_Ui_Text_Data *pd EINA_UNUSED, int offset, Eina_Bool screen_coods, Eina_Rect *rect) { Evas_Textblock_Cursor *cur; int ret; @@ -4317,7 +4315,7 @@ _efl_ui_text_elm_interface_atspi_text_character_extents_get(Eo *obj, Efl_Ui_Text } EOLIAN static Eina_Bool -_efl_ui_text_elm_interface_atspi_text_range_extents_get(Eo *obj, Efl_Ui_Text_Data *pd EINA_UNUSED, Eina_Bool screen_coods, int start_offset, int end_offset, Eina_Rectangle *rect) +_efl_ui_text_elm_interface_atspi_text_range_extents_get(Eo *obj, Efl_Ui_Text_Data *pd EINA_UNUSED, Eina_Bool screen_coods, int start_offset, int end_offset, Eina_Rect *rect) { Evas_Textblock_Cursor *cur1, *cur2; int ret; diff --git a/src/lib/elementary/efl_ui_textpath.c b/src/lib/elementary/efl_ui_textpath.c index b92331c..f4ac2a8 100644 --- a/src/lib/elementary/efl_ui_textpath.c +++ b/src/lib/elementary/efl_ui_textpath.c @@ -164,7 +164,7 @@ _text_on_line_draw(Efl_Ui_Textpath_Data *pd, int w1, int w2, int cmp, Evas_Map * { double x1, x2, y1, y2; double line_len, len, sina, cosa; - Eina_Rectangle r; + Eina_Rect r; x1 = line.start.x; y1 = line.start.y; diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c index e1e6b6c..7258c5f 100644 --- a/src/lib/elementary/efl_ui_win.c +++ b/src/lib/elementary/efl_ui_win.c @@ -1037,7 +1037,7 @@ static void _elm_win_focus_highlight_anim_setup(Efl_Ui_Win_Data *sd, Evas_Object *obj) { - Eina_Rectangle rt, rp; + Eina_Rect rt, rp; Edje_Message_Int_Set *m; Evas_Object *target = sd->focus_highlight.cur.target; @@ -1045,7 +1045,7 @@ _elm_win_focus_highlight_anim_setup(Efl_Ui_Win_Data *sd, rt = elm_widget_focus_highlight_geometry_get(target); efl_gfx_geometry_set(obj, rt); - if (eina_rectangle_equal(&rp, &rt)) return; + if (eina_rectangle_equal(&rp.rect, &rt.rect)) return; if (!_elm_config->focus_highlight_clip_disable) evas_object_clip_unset(obj); @@ -6713,10 +6713,10 @@ _efl_ui_win_elm_interface_atspi_accessible_name_get(Eo *obj, Efl_Ui_Win_Data *sd return name; } -EOLIAN static Eina_Rectangle +EOLIAN static Eina_Rect _efl_ui_win_efl_access_component_extents_get(Eo *obj, Efl_Ui_Win_Data *_pd EINA_UNUSED, Eina_Bool screen_coords) { - Eina_Rectangle r; + Eina_Rect r; int ee_x, ee_y; r = efl_gfx_geometry_get(obj); diff --git a/src/lib/elementary/elc_multibuttonentry.c b/src/lib/elementary/elc_multibuttonentry.c index e156bfa..580d1c1 100644 --- a/src/lib/elementary/elc_multibuttonentry.c +++ b/src/lib/elementary/elc_multibuttonentry.c @@ -1080,12 +1080,7 @@ _entry_resize_cb(void *data, ELM_MULTIBUTTONENTRY_DATA_GET_OR_RETURN(data, sd); if (elm_widget_focus_get(sd->parent)) - { - Eina_Rectangle sr = {}; - - evas_object_geometry_get(sd->entry, &sr.x, &sr.y, &sr.w, &sr.h); - elm_widget_show_region_set(sd->entry, sr, EINA_TRUE); - } + elm_widget_show_region_set(sd->entry, efl_gfx_geometry_get(sd->entry), EINA_TRUE); } static void diff --git a/src/lib/elementary/elm_atspi_bridge.c b/src/lib/elementary/elm_atspi_bridge.c index 70fa916..bbb70c7 100644 --- a/src/lib/elementary/elm_atspi_bridge.c +++ b/src/lib/elementary/elm_atspi_bridge.c @@ -1507,7 +1507,7 @@ _text_character_extents_get(const Eldbus_Service_Interface *iface, const Eldbus_ Eo *bridge = eldbus_service_object_data_get(iface, ELM_ATSPI_BRIDGE_CLASS_NAME); Eo *obj = _bridge_object_from_path(bridge, obj_path); int offset; - Eina_Rectangle rect; + Eina_Rect rect; AtspiCoordType type; Eina_Bool screen_coords, res; Eldbus_Message *ret; @@ -1690,7 +1690,7 @@ _text_range_extents_get(const Eldbus_Service_Interface *iface, const Eldbus_Mess Eo *bridge = eldbus_service_object_data_get(iface, ELM_ATSPI_BRIDGE_CLASS_NAME); Eo *obj = _bridge_object_from_path(bridge, obj_path); int start, end; - Eina_Rectangle rect; + Eina_Rect rect; Eina_Bool screen_coords, res; AtspiCoordType type; Eldbus_Message *ret; @@ -1722,7 +1722,7 @@ _text_bounded_ranges_get(const Eldbus_Service_Interface *iface, const Eldbus_Mes const char *obj_path = eldbus_message_path_get(msg); Eo *bridge = eldbus_service_object_data_get(iface, ELM_ATSPI_BRIDGE_CLASS_NAME); Eo *obj = _bridge_object_from_path(bridge, obj_path); - Eina_Rectangle rect; + Eina_Rect rect; Eina_Bool screen_coords; AtspiCoordType type; Elm_Atspi_Text_Clip_Type xclip, yclip; @@ -3351,7 +3351,7 @@ _component_get_extents(const Eldbus_Service_Interface *iface EINA_UNUSED, const AtspiCoordType coord_type; Eldbus_Message *ret; Eldbus_Message_Iter *iter, *iter_struct; - Eina_Rectangle r; + Eina_Rect r; ELM_ATSPI_OBJ_CHECK_OR_RETURN_DBUS_ERROR(obj, EFL_ACCESS_COMPONENT_MIXIN, msg); @@ -3523,8 +3523,7 @@ _component_set_extends(const Eldbus_Service_Interface *iface EINA_UNUSED, const return eldbus_message_error_new(msg, "org.freedesktop.DBus.Error.InvalidArgs", "Invalid index type."); Eina_Bool type = coord_type == ATSPI_COORD_TYPE_SCREEN ? EINA_TRUE : EINA_FALSE; - Eina_Rectangle r = (Eina_Rectangle) { x, y, w, h }; - result = efl_access_component_extents_set(obj, type, r); + result = efl_access_component_extents_set(obj, type, EINA_RECT(x, y, w, h)); ret = eldbus_message_method_return_new(msg); EINA_SAFETY_ON_NULL_RETURN_VAL(ret, NULL); diff --git a/src/lib/elementary/elm_colorselector.c b/src/lib/elementary/elm_colorselector.c index 75ac9c5..957cfc9 100644 --- a/src/lib/elementary/elm_colorselector.c +++ b/src/lib/elementary/elm_colorselector.c @@ -2258,22 +2258,18 @@ _access_obj_process(Evas_Object *obj, Eina_Bool is_access) } } -EOLIAN static Eina_Rectangle +EOLIAN static Eina_Rect _elm_colorselector_elm_widget_focus_highlight_geometry_get(Eo *obj EINA_UNUSED, Elm_Colorselector_Data *sd) { - Eina_Rectangle r = {}; - if (sd->focused_item && (sd->focused == ELM_COLORSELECTOR_PALETTE)) { ELM_COLOR_ITEM_DATA_GET(sd->focused_item, focus_it); - evas_object_geometry_get(VIEW(focus_it), &r.x, &r.y, &r.w, &r.h); + return efl_gfx_geometry_get(VIEW(focus_it)); } else if(sd->focused == ELM_COLORSELECTOR_COMPONENTS) - evas_object_geometry_get(sd->cb_data[sd->sel_color_type]->colorbar, &r.x, &r.y, &r.w, &r.h); - else - evas_object_geometry_get(obj, &r.x, &r.y, &r.w, &r.h); + return efl_gfx_geometry_get(sd->cb_data[sd->sel_color_type]->colorbar); - return r; + return efl_gfx_geometry_get(obj); } EOLIAN static void diff --git a/src/lib/elementary/elm_conform.c b/src/lib/elementary/elm_conform.c index d4d3e2f..004e52e 100644 --- a/src/lib/elementary/elm_conform.c +++ b/src/lib/elementary/elm_conform.c @@ -663,7 +663,7 @@ _show_region_job(void *data) focus_obj = elm_obj_widget_focused_object_get(data); if (focus_obj) { - Eina_Rectangle r = elm_widget_focus_region_get(focus_obj); + Eina_Rect r = elm_widget_focus_region_get(focus_obj); if (r.h < _elm_config->finger_size) r.h = _elm_config->finger_size; diff --git a/src/lib/elementary/elm_ctxpopup.eo b/src/lib/elementary/elm_ctxpopup.eo index db3dce3..4829b74 100644 --- a/src/lib/elementary/elm_ctxpopup.eo +++ b/src/lib/elementary/elm_ctxpopup.eo @@ -221,6 +221,6 @@ class Elm.Ctxpopup (Efl.Ui.Layout, Elm.Interface.Atspi_Widget_Action, } events { dismissed; [[Called when context popup was dismissed]] - geometry,update: const(ptr(Eina.Rectangle)); [[Called when context popup geometry was updated]] + geometry,update: const(ptr(Eina.Rect)); [[Called when context popup geometry was updated]] } } diff --git a/src/lib/elementary/elm_entry.c b/src/lib/elementary/elm_entry.c index 7d9f461..02fec56 100644 --- a/src/lib/elementary/elm_entry.c +++ b/src/lib/elementary/elm_entry.c @@ -1010,7 +1010,7 @@ _cursor_geometry_recalc(Evas_Object *obj) { if (sd->cur_changed) { - Eina_Rectangle sr = {}; + Eina_Rect sr = {}; sd->cur_changed = EINA_FALSE; edje_object_part_text_cursor_geometry_get @@ -1084,7 +1084,7 @@ _deferred_recalc_job(void *data) { if (sd->cur_changed) { - Eina_Rectangle sr = {}; + Eina_Rect sr = {}; sd->cur_changed = EINA_FALSE; edje_object_part_text_cursor_geometry_get @@ -1307,13 +1307,13 @@ _elm_entry_elm_widget_on_focus_update(Eo *obj, Elm_Entry_Data *sd, Elm_Object_It return EINA_TRUE; } -EOLIAN static Eina_Rectangle +EOLIAN static Eina_Rect _elm_entry_elm_widget_focus_region_get(Eo *obj, Elm_Entry_Data *sd) { Evas_Coord cx, cy, cw, ch; Evas_Coord edx, edy; Evas_Coord elx, ely, elw, elh; - Eina_Rectangle r; + Eina_Rect r; edje_object_part_text_cursor_geometry_get (sd->entry_edje, "elm.text", &cx, &cy, &cw, &ch); @@ -1340,7 +1340,7 @@ _elm_entry_elm_widget_focus_region_get(Eo *obj, Elm_Entry_Data *sd) } static void -_show_region_hook(void *data EINA_UNUSED, Evas_Object *obj, Eina_Rectangle r) +_show_region_hook(void *data EINA_UNUSED, Evas_Object *obj, Eina_Rect r) { elm_interface_scrollable_content_region_show(obj, r.x, r.y, r.w, r.h); } @@ -5683,7 +5683,7 @@ _elm_entry_elm_interface_atspi_text_selection_add(Eo *obj, Elm_Entry_Data *pd EI } EOLIAN static Eina_List* -_elm_entry_elm_interface_atspi_text_bounded_ranges_get(Eo *obj EINA_UNUSED, Elm_Entry_Data *_pd EINA_UNUSED, Eina_Bool screen_coods EINA_UNUSED, Eina_Rectangle rect EINA_UNUSED, Elm_Atspi_Text_Clip_Type xclip EINA_UNUSED, Elm_Atspi_Text_Clip_Type yclip EINA_UNUSED) +_elm_entry_elm_interface_atspi_text_bounded_ranges_get(Eo *obj EINA_UNUSED, Elm_Entry_Data *_pd EINA_UNUSED, Eina_Bool screen_coods EINA_UNUSED, Eina_Rect rect EINA_UNUSED, Elm_Atspi_Text_Clip_Type xclip EINA_UNUSED, Elm_Atspi_Text_Clip_Type yclip EINA_UNUSED) { return NULL; } @@ -5723,7 +5723,7 @@ _elm_entry_elm_interface_atspi_text_offset_at_point_get(Eo *obj, Elm_Entry_Data } EOLIAN static Eina_Bool -_elm_entry_elm_interface_atspi_text_character_extents_get(Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED, int offset, Eina_Bool screen_coods, Eina_Rectangle *rect) +_elm_entry_elm_interface_atspi_text_character_extents_get(Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED, int offset, Eina_Bool screen_coods, Eina_Rect *rect) { Evas_Object *txtblk; Evas_Textblock_Cursor *cur; @@ -5755,7 +5755,7 @@ _elm_entry_elm_interface_atspi_text_character_extents_get(Eo *obj, Elm_Entry_Dat } EOLIAN static Eina_Bool -_elm_entry_elm_interface_atspi_text_range_extents_get(Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED, Eina_Bool screen_coods, int start_offset, int end_offset, Eina_Rectangle *rect) +_elm_entry_elm_interface_atspi_text_range_extents_get(Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED, Eina_Bool screen_coods, int start_offset, int end_offset, Eina_Rect *rect) { Evas_Object *txtblk; Evas_Textblock_Cursor *cur1, *cur2; diff --git a/src/lib/elementary/elm_gengrid.c b/src/lib/elementary/elm_gengrid.c index 64c14be..b700e67 100644 --- a/src/lib/elementary/elm_gengrid.c +++ b/src/lib/elementary/elm_gengrid.c @@ -3538,10 +3538,10 @@ _elm_gengrid_elm_widget_on_focus_update(Eo *obj, Elm_Gengrid_Data *sd, Elm_Objec return EINA_TRUE; } -EOLIAN static Eina_Rectangle +EOLIAN static Eina_Rect _elm_gengrid_elm_widget_focus_region_get(Eo *obj, Elm_Gengrid_Data *sd) { - Eina_Rectangle r = {}; + Eina_Rect r = {}; if (!sd->focused_item) goto end; if (elm_object_focus_region_show_mode_get(obj) == ELM_FOCUS_REGION_SHOW_ITEM) @@ -5482,11 +5482,11 @@ elm_gengrid_nth_item_get(const Evas_Object *obj, unsigned int nth) return EO_OBJ(it); } -EOLIAN static Eina_Rectangle +EOLIAN static Eina_Rect _elm_gengrid_elm_widget_focus_highlight_geometry_get(Eo *obj, Elm_Gengrid_Data *sd) { Evas_Coord ox, oy, oh, ow, item_x = 0, item_y = 0, item_w = 0, item_h = 0; - Eina_Rectangle r = {}; + Eina_Rect r = {}; evas_object_geometry_get(sd->pan_obj, &ox, &oy, &ow, &oh); diff --git a/src/lib/elementary/elm_genlist.c b/src/lib/elementary/elm_genlist.c index 912cbb6..a8800be 100644 --- a/src/lib/elementary/elm_genlist.c +++ b/src/lib/elementary/elm_genlist.c @@ -3465,7 +3465,7 @@ _elm_genlist_elm_widget_theme_apply(Eo *obj, Elm_Genlist_Data *sd) /* FIXME: take off later. maybe this show region coords belong in the * interface (new api functions, set/get)? */ static void -_show_region_hook(void *data EINA_UNUSED, Evas_Object *obj, Eina_Rectangle r) +_show_region_hook(void *data EINA_UNUSED, Evas_Object *obj, Eina_Rect r) { ELM_GENLIST_DATA_GET_OR_RETURN(obj, sd); @@ -8446,11 +8446,11 @@ elm_genlist_nth_item_get(const Evas_Object *obj, unsigned int nth) return EO_OBJ(it); } -EOLIAN static Eina_Rectangle +EOLIAN static Eina_Rect _elm_genlist_elm_widget_focus_highlight_geometry_get(Eo *obj, Elm_Genlist_Data *sd) { Evas_Coord ox, oy, oh, ow, item_x = 0, item_y = 0, item_w = 0, item_h = 0; - Eina_Rectangle r = {}; + Eina_Rect r = {}; evas_object_geometry_get(sd->pan_obj, &ox, &oy, &ow, &oh); diff --git a/src/lib/elementary/elm_interface_atspi_text.eo b/src/lib/elementary/elm_interface_atspi_text.eo index 4cad503..8485d08 100644 --- a/src/lib/elementary/elm_interface_atspi_text.eo +++ b/src/lib/elementary/elm_interface_atspi_text.eo @@ -141,7 +141,7 @@ interface Elm.Interface.Atspi.Text () screen_coords: bool; [[If $true, x and y values will be relative to screen origin, otherwise relative to canvas]] } values { - rect: Eina.Rectangle; [[Extents rectangle]] + rect: Eina.Rect; [[Extents rectangle]] } } @property character_count @protected { @@ -171,7 +171,7 @@ interface Elm.Interface.Atspi.Text () } keys { screen_coords: bool; [[If $true, x and y values will be relative to screen origin, otherwise relative to canvas]] - rect: Eina.Rectangle; [[Bounding box]] + rect: Eina.Rect; [[Bounding box]] xclip: Elm.Atspi_Text.Clip_Type; [[AT-SPI xclip]] yclip: Elm.Atspi_Text.Clip_Type; [[AT-SPI yclip]] } @@ -190,7 +190,7 @@ interface Elm.Interface.Atspi.Text () end_offset: int; [[End offset]] } values { - rect: Eina.Rectangle; [[Range rectangle]] + rect: Eina.Rect; [[Range rectangle]] } } @property selections_count @protected { diff --git a/src/lib/elementary/elm_list.c b/src/lib/elementary/elm_list.c index 1a52dec..2d115a0 100644 --- a/src/lib/elementary/elm_list.c +++ b/src/lib/elementary/elm_list.c @@ -1025,7 +1025,7 @@ _size_hints_changed_cb(void *data, /* FIXME: take off later. maybe this show region coords belong in the * interface (new api functions, set/get)? */ static void -_show_region_hook(void *data EINA_UNUSED, Evas_Object *obj, Eina_Rectangle r) +_show_region_hook(void *data EINA_UNUSED, Evas_Object *obj, Eina_Rect r) { elm_interface_scrollable_content_region_set(obj, r.x, r.y, r.w, r.h); } @@ -3086,7 +3086,7 @@ _elm_list_focus_on_selection_get(Eo *obj EINA_UNUSED, Elm_List_Data *sd) return sd->focus_on_selection_enabled; } -static Eina_Rectangle +static Eina_Rect _elm_list_item_coordinates_adjust(Elm_List_Item_Data *it) { Evas_Coord ix, iy, iw, ih, vx, vy, vw, vh; @@ -3106,13 +3106,13 @@ _elm_list_item_coordinates_adjust(Elm_List_Item_Data *it) if ((ix + iw) > (vx + vw)) iw = (vx + vw - ix); - return (Eina_Rectangle) { ix, iy, iw, ih }; + return EINA_RECT(ix, iy, iw, ih); } -EOLIAN static Eina_Rectangle +EOLIAN static Eina_Rect _elm_list_elm_widget_focus_highlight_geometry_get(Eo *obj EINA_UNUSED, Elm_List_Data *sd) { - Eina_Rectangle r = {}; + Eina_Rect r = {}; if (sd->focused_item) { diff --git a/src/lib/elementary/elm_menu.c b/src/lib/elementary/elm_menu.c index 76e7ba9..c32e7a8 100644 --- a/src/lib/elementary/elm_menu.c +++ b/src/lib/elementary/elm_menu.c @@ -184,7 +184,6 @@ _sizing_eval(Evas_Object *obj) Elm_Object_Item *eo_item; Evas_Coord x_p, y_p, w_p, h_p, x2, y2, w2, h2, bw, bh; Elm_Widget_Smart_Data *hover; - Eina_Rectangle r; ELM_MENU_DATA_GET(obj, sd); @@ -211,8 +210,7 @@ _sizing_eval(Evas_Object *obj) if (y_p + h_p + bh > y2 + h2) y_p -= y_p + h_p + bh - (y2 + h2); if (y_p < y2) y_p = y2; - r = (Eina_Rectangle) { x_p, y_p, bw, h_p }; - efl_gfx_geometry_set(sd->location, r); + efl_gfx_geometry_set(sd->location, EINA_RECT(x_p, y_p, bw, h_p)); evas_object_size_hint_min_set(sd->location, bw, h_p); evas_object_size_hint_max_set(sd->location, bw, h_p); elm_hover_target_set(sd->hv, sd->location); diff --git a/src/lib/elementary/elm_panel.c b/src/lib/elementary/elm_panel.c index 011fe9a..219315f 100644 --- a/src/lib/elementary/elm_panel.c +++ b/src/lib/elementary/elm_panel.c @@ -1107,10 +1107,10 @@ _elm_panel_toggle(Eo *obj, Elm_Panel_Data *_pd EINA_UNUSED) _panel_toggle(NULL, obj, NULL, NULL); } -EOLIAN static Eina_Rectangle +EOLIAN static Eina_Rect _elm_panel_elm_widget_focus_region_get(Eo *obj, Elm_Panel_Data *sd) { - Eina_Rectangle r = {}; + Eina_Rect r = {}; elm_interface_scrollable_content_pos_get(obj, &r.x, &r.y); evas_object_geometry_get(obj, NULL, NULL, &r.w, &r.h); diff --git a/src/lib/elementary/elm_scroller.c b/src/lib/elementary/elm_scroller.c index 40983e7..95f2694 100644 --- a/src/lib/elementary/elm_scroller.c +++ b/src/lib/elementary/elm_scroller.c @@ -536,7 +536,7 @@ _elm_scroller_elm_widget_focus_direction(Eo *obj, Elm_Scroller_Data *sd, const E } static void -_show_region_hook(void *data, Evas_Object *content_obj EINA_UNUSED, Eina_Rectangle r) +_show_region_hook(void *data, Evas_Object *content_obj EINA_UNUSED, Eina_Rect r) { elm_interface_scrollable_content_region_show(data, r.x, r.y, r.w, r.h); } diff --git a/src/lib/elementary/elm_toolbar.c b/src/lib/elementary/elm_toolbar.c index cf9bc72..91f126c 100644 --- a/src/lib/elementary/elm_toolbar.c +++ b/src/lib/elementary/elm_toolbar.c @@ -2414,10 +2414,10 @@ _access_widget_item_register(Elm_Toolbar_Item_Data *it) _elm_access_activate_callback_set(ai, _access_activate_cb, NULL); } -EOLIAN static Eina_Rectangle +EOLIAN static Eina_Rect _elm_toolbar_item_efl_ui_focus_object_focus_geometry_get(Eo *obj EINA_UNUSED, Elm_Toolbar_Item_Data *pd) { - Eina_Rectangle rect; + Eina_Rect rect; evas_object_geometry_get(VIEW(pd), &rect.x, &rect.y, &rect.w, &rect.h); @@ -3010,17 +3010,17 @@ _elm_toolbar_elm_widget_on_access_update(Eo *obj EINA_UNUSED, Elm_Toolbar_Data * _access_obj_process(sd, _elm_toolbar_smart_focus_next_enable); } -static Eina_Rectangle +static Eina_Rect _elm_toolbar_coordinates_adjust(Elm_Toolbar_Item_Data *it) { ELM_TOOLBAR_DATA_GET(WIDGET(it), sd); Evas_Coord ix, iy, iw, ih, vx, vy, vw, vh; - Eina_Rectangle r; + Eina_Rect r; evas_object_geometry_get(sd->hit_rect, &vx, &vy, &vw, &vh); evas_object_geometry_get(VIEW(it), &ix, &iy, &iw, &ih); - r = (Eina_Rectangle) { ix, iy, iw, ih }; + r = EINA_RECT(ix, iy, iw, ih); if (!efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE)) { @@ -3049,10 +3049,10 @@ _elm_toolbar_item_efl_ui_focus_object_focus_set(Eo *obj, Elm_Toolbar_Item_Data * elm_wdg_item_focus_set(obj, focus); } -EOLIAN static Eina_Rectangle +EOLIAN static Eina_Rect _elm_toolbar_elm_widget_focus_highlight_geometry_get(Eo *obj, Elm_Toolbar_Data *sd) { - Eina_Rectangle r = {}; + Eina_Rect r = {}; if (sd->focused_item) { diff --git a/src/lib/elementary/elm_transit.c b/src/lib/elementary/elm_transit.c index 69c9604..0da1781 100644 --- a/src/lib/elementary/elm_transit.c +++ b/src/lib/elementary/elm_transit.c @@ -506,12 +506,12 @@ _recover_image_uv(Evas_Object *obj, Evas_Map *map, Eina_Bool revert, Eina_Bool b //Zooming image fill area. else { - Eina_Rectangle fill; + Eina_Rect fill; fill = efl_gfx_fill_get(obj); efl_gfx_size_get(obj, &w, &h); - EINA_SAFETY_ON_FALSE_RETURN_VAL(eina_rectangle_is_valid(&fill), EINA_FALSE); + EINA_SAFETY_ON_FALSE_RETURN_VAL(eina_rectangle_is_valid(&fill.rect), EINA_FALSE); double rate_x = (double) w / (double) fill.w; double rate_y = (double) h / (double) fill.h; double rate_x2 = (double) iw / (double) fill.w; diff --git a/src/lib/elementary/elm_widget.c b/src/lib/elementary/elm_widget.c index 1494350..4c02e6f 100644 --- a/src/lib/elementary/elm_widget.c +++ b/src/lib/elementary/elm_widget.c @@ -1122,14 +1122,14 @@ EOLIAN static void _elm_widget_focus_region_show(Eo *obj, Elm_Widget_Smart_Data *_pd EINA_UNUSED) { Evas_Coord ox, oy; - Eina_Rectangle r; + Eina_Rect r; Evas_Object *o; o = elm_widget_parent_get(obj); if (!o) return; r = elm_widget_focus_region_get(obj); - if (eina_rectangle_is_empty(&r)) return; + if (eina_rectangle_is_empty(&r.rect)) return; evas_object_geometry_get(obj, &ox, &oy, NULL, NULL); @@ -3467,14 +3467,14 @@ _elm_widget_disabled_get(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data *sd) } EOLIAN static void -_elm_widget_show_region_set(Eo *obj, Elm_Widget_Smart_Data *sd, Eina_Rectangle sr, Eina_Bool forceshow) +_elm_widget_show_region_set(Eo *obj, Elm_Widget_Smart_Data *sd, Eina_Rect sr, Eina_Bool forceshow) { Evas_Object *parent_obj, *child_obj; Evas_Coord px, py, cx, cy, nx = 0, ny = 0; evas_smart_objects_calculate(evas_object_evas_get(obj)); - if (!forceshow && eina_rectangle_equal(&sr, &sd->show_region)) return; + if (!forceshow && eina_rectangle_equal(&sr.rect, &sd->show_region.rect)) return; sd->show_region = sr; if (sd->on_show_region) @@ -3510,10 +3510,10 @@ _elm_widget_show_region_set(Eo *obj, Elm_Widget_Smart_Data *sd, Eina_Rectangle s while (parent_obj); } -EOLIAN static Eina_Rectangle +EOLIAN static Eina_Rect _elm_widget_show_region_get(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data *sd) { - return sd->show_region; + return (Eina_Rect) sd->show_region; } /** @@ -3534,10 +3534,10 @@ _elm_widget_show_region_get(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data *sd) * * @ingroup Widget */ -EOLIAN static Eina_Rectangle +EOLIAN static Eina_Rect _elm_widget_focus_region_get(Eo *obj, Elm_Widget_Smart_Data *_pd EINA_UNUSED) { - Eina_Rectangle r = {}; + Eina_Rect r = {}; efl_gfx_size_get(obj, &r.w, &r.h); return r; } @@ -4516,12 +4516,12 @@ elm_widget_focus_highlight_focus_part_geometry_get(const Evas_Object *obj, if (th != *h) *h = th; } -EOLIAN static Eina_Rectangle +EOLIAN static Eina_Rect _elm_widget_focus_highlight_geometry_get(Eo *obj, Elm_Widget_Smart_Data *sd) { Evas_Coord ox = 0, oy = 0, ow = 0, oh = 0; Evas_Object *scroller = (Evas_Object *)obj; - Eina_Rectangle r = {}; + Eina_Rect r = {}; evas_object_geometry_get(obj, &r.x, &r.y, &r.w, &r.h); elm_widget_focus_highlight_focus_part_geometry_get(sd->resize_obj, &r.x, &r.y, &r.w, &r.h); @@ -6425,10 +6425,10 @@ _elm_widget_elm_interface_atspi_accessible_attributes_get(Eo *obj, Elm_Widget_Sm return ret; } -EOLIAN static Eina_Rectangle +EOLIAN static Eina_Rect _elm_widget_item_efl_access_component_extents_get(Eo *obj EINA_UNUSED, Elm_Widget_Item_Data *sd EINA_UNUSED, Eina_Bool screen_coords) { - Eina_Rectangle r = { -1, -1, -1, -1 }; + Eina_Rect r = EINA_RECT(-1, -1, -1, -1); int ee_x, ee_y; if (!sd->view) return r; @@ -6448,7 +6448,7 @@ _elm_widget_item_efl_access_component_extents_get(Eo *obj EINA_UNUSED, Elm_Widge } EOLIAN static Eina_Bool -_elm_widget_item_efl_access_component_extents_set(Eo *obj EINA_UNUSED, Elm_Widget_Item_Data *sd EINA_UNUSED, Eina_Bool screen_coords EINA_UNUSED, Eina_Rectangle r EINA_UNUSED) +_elm_widget_item_efl_access_component_extents_set(Eo *obj EINA_UNUSED, Elm_Widget_Item_Data *sd EINA_UNUSED, Eina_Bool screen_coords EINA_UNUSED, Eina_Rect r EINA_UNUSED) { return EINA_FALSE; } @@ -6509,7 +6509,7 @@ _elm_widget_efl_ui_focus_user_manager_get(Eo *obj EINA_UNUSED, Elm_Widget_Smart_ return pd->focus.manager; } -EOLIAN static Eina_Rectangle +EOLIAN static Eina_Rect _elm_widget_efl_ui_focus_object_focus_geometry_get(Eo *obj, Elm_Widget_Smart_Data *pd EINA_UNUSED) { return efl_gfx_geometry_get(obj); diff --git a/src/lib/elementary/elm_widget.eo b/src/lib/elementary/elm_widget.eo index 5dab902..babe00c 100644 --- a/src/lib/elementary/elm_widget.eo +++ b/src/lib/elementary/elm_widget.eo @@ -4,7 +4,7 @@ function Efl.Ui.Scrollable_On_Show_Region { [[Function pointer for on show region hook]] params { @in obj: Efl.Canvas.Object; [[Canvas object]] - @in region: Eina.Rectangle; [[Showed region]] + @in region: Eina.Rect; [[Showed region]] } }; @@ -435,14 +435,14 @@ abstract Elm.Widget (Efl.Canvas.Group, Elm.Interface.Atspi_Accessible, unchanged. ]] values { - region: Eina.Rectangle; [[The region of interest.]] + region: Eina.Rect; [[The region of interest.]] force: bool; [[Set to $true to force show even if unchanged.]] } } get { [[Returns the current region of interest.]] values { - region: Eina.Rectangle; [[The region of interest.]] + region: Eina.Rect; [[The region of interest.]] } } } @@ -484,7 +484,7 @@ abstract Elm.Widget (Efl.Canvas.Group, Elm.Interface.Atspi_Accessible, get { } values { - region: Eina.Rectangle; + region: Eina.Rect; [[The relative region to show. If width or height is <= 0 it will be ignored, and no action will be taken.]] } @@ -512,7 +512,7 @@ abstract Elm.Widget (Efl.Canvas.Group, Elm.Interface.Atspi_Accessible, [[This is a read-only property.]] } values { - region: Eina.Rectangle; [[The rectangle area.]] + region: Eina.Rect; [[The rectangle area.]] } } @property focus_highlight_enabled { diff --git a/src/lib/elementary/elm_widget.h b/src/lib/elementary/elm_widget.h index 0e51f61..799ec11 100644 --- a/src/lib/elementary/elm_widget.h +++ b/src/lib/elementary/elm_widget.h @@ -312,8 +312,6 @@ typedef void (*Elm_Widget_Focus_Set_Cb)(void *data, Eina_Bool f typedef Eina_Bool (*Elm_Widget_Focus_Get_Cb)(const void *data); typedef void (*Elm_Access_On_Highlight_Cb)(void *data); - -typedef void (*region_hook_func_type)(void *data, Evas_Object *obj, Eina_Rectangle region); typedef void * (*list_data_get_func_type)(const Eina_List * l); #include "elm_widget.eo.h" @@ -396,7 +394,7 @@ typedef struct _Elm_Widget_Smart_Data /* "show region" coordinates. all widgets got those because this * info may be set and queried recursively through the widget * parenting tree */ - Eina_Rectangle show_region; + Eina_Rect show_region; /* scrolling hold/freeze hints. all widgets got those because this * info may be set and queried recursively through the widget @@ -697,9 +695,9 @@ EAPI const Elm_Widget_Smart_Class *elm_widget_smart_class_get(void); EAPI void elm_widget_disabled_set(Evas_Object *obj, Eina_Bool disabled); EAPI Eina_Bool elm_widget_disabled_get(const Evas_Object *obj); -EAPI void elm_widget_show_region_set(Evas_Object *obj, Eina_Rectangle sr, Eina_Bool forceshow); -EAPI Eina_Rectangle elm_widget_show_region_get(const Evas_Object *obj); -EAPI Eina_Rectangle elm_widget_focus_region_get(const Evas_Object *obj); +EAPI void elm_widget_show_region_set(Evas_Object *obj, Eina_Rect sr, Eina_Bool forceshow); +EAPI Eina_Rect elm_widget_show_region_get(const Evas_Object *obj); +EAPI Eina_Rect elm_widget_focus_region_get(const Evas_Object *obj); EAPI void elm_widget_focus_region_show(Evas_Object *obj); EAPI void elm_widget_scroll_hold_push(Evas_Object *obj); EAPI void elm_widget_scroll_hold_pop(Evas_Object *obj); @@ -741,7 +739,7 @@ EAPI void elm_widget_access_info_set(Evas_Object *obj, const char *t EAPI const char *elm_widget_access_info_get(const Evas_Object *obj); EAPI void elm_widget_orientation_mode_disabled_set(Evas_Object *obj, Eina_Bool disabled); EAPI Eina_Bool elm_widget_orientation_mode_disabled_get(const Evas_Object *obj); -EAPI Eina_Rectangle elm_widget_focus_highlight_geometry_get(const Evas_Object *obj); +EAPI Eina_Rect elm_widget_focus_highlight_geometry_get(const Evas_Object *obj); void _elm_widget_item_highlight_in_theme(Evas_Object *obj, Elm_Object_Item *it); EAPI void elm_widget_focus_region_show_mode_set(Evas_Object *obj, Elm_Focus_Region_Show_Mode mode); EAPI Elm_Focus_Region_Show_Mode elm_widget_focus_region_show_mode_get(const Evas_Object *obj); diff --git a/src/lib/eo/eina_types.eot b/src/lib/eo/eina_types.eot index 83be600..f340ef3 100644 --- a/src/lib/eo/eina_types.eot +++ b/src/lib/eo/eina_types.eot @@ -1,10 +1,22 @@ /* FIXME: Move to Eina when we decide they are handled properly. */ -struct @extern Eina.Rectangle { - [[Eina Rectangle]] - x: int; [[X coordinate of the rectangle]] - y: int; [[Y coordinate of the rectangle]] - w: int; [[Width of the rectangle]] - h: int; [[Height of the rectangle]] +struct @extern Eina.Rect { + [[A rectangle in pixel dimensions.]] + x: int; [[X coordinate of the rectangle, from the top-left corner.]] + y: int; [[Y coordinate of the rectangle, from the top-left corner.]] + w: int; [[Width of the rectangle in pixels.]] + h: int; [[Height of the rectangle in pixels.]] +} + +struct @extern Eina.Position2D { + [[A 2D location in pixels.]] + x: int; [[X position in pixels, from the top-left corner.]] + y: int; [[Y position in pixels, from the top-left corner.]] +} + +struct @extern Eina.Size2D { + [[A 2D size in pixels.]] + w: int; [[X position in pixels, from the top-left corner.]] + h: int; [[Y position in pixels, from the top-left corner.]] } struct @extern Eina.File; [[Eina file data structure]] diff --git a/src/lib/evas/canvas/efl_canvas_text.eo b/src/lib/evas/canvas/efl_canvas_text.eo index 6600e7a..0cbe8e1 100644 --- a/src/lib/evas/canvas/efl_canvas_text.eo +++ b/src/lib/evas/canvas/efl_canvas_text.eo @@ -178,7 +178,7 @@ Efl.Text.Font, Efl.Text.Style, Efl.Text.Format, Efl.Text.Cursor, Efl.Text.Annota @in cur1: const(ptr(Efl.Text.Cursor.Cursor)); [[Start of range]] @in cur2: const(ptr(Efl.Text.Cursor.Cursor)); [[End of range]] } - return: iterator @owned; [[ + return: iterator @owned; [[ Iterator on all geoemtries of the given range ]] } @@ -196,7 +196,7 @@ Efl.Text.Font, Efl.Text.Style, Efl.Text.Format, Efl.Text.Cursor, Efl.Text.Annota @in cur1: ptr(const(Efl.Text.Cursor.Cursor)); [[Start of range]] @in cur2: ptr(const(Efl.Text.Cursor.Cursor)); [[End of range]] } - return: iterator @owned; [[ + return: iterator @owned; [[ Iterator on all simple geometries of the given range ]] } diff --git a/src/lib/evas/canvas/efl_gfx_map.c b/src/lib/evas/canvas/efl_gfx_map.c index 5f434b7..f44d1b4 100644 --- a/src/lib/evas/canvas/efl_gfx_map.c +++ b/src/lib/evas/canvas/efl_gfx_map.c @@ -78,7 +78,7 @@ struct _Gfx_Map_Pivot Evas_Object_Protected_Data *map_obj; Eo *eo_obj; // strong or weak ref? - Eina_Rectangle geometry; + Eina_Rect geometry; Eina_Bool event_cbs; Eina_Bool is_evas; Eina_Bool is_canvas; diff --git a/src/lib/evas/canvas/efl_vg.eo b/src/lib/evas/canvas/efl_vg.eo index beb1328..e44a852 100644 --- a/src/lib/evas/canvas/efl_vg.eo +++ b/src/lib/evas/canvas/efl_vg.eo @@ -90,7 +90,7 @@ abstract Efl.VG (Efl.Object, Efl.Gfx, Efl.Gfx.Stack) @since 1.14]] params { - @out r: Eina.Rectangle; [[Bounding box to be returned.]] + @out r: Eina.Rect; [[Bounding box to be returned.]] } } interpolate { diff --git a/src/lib/evas/canvas/evas_canvas.eo b/src/lib/evas/canvas/evas_canvas.eo index a00e5f2..65a5a22 100644 --- a/src/lib/evas/canvas/evas_canvas.eo +++ b/src/lib/evas/canvas/evas_canvas.eo @@ -571,10 +571,10 @@ class Evas.Canvas (Efl.Object, Efl.Canvas, Efl.Animator, Efl.Input.Interface, @since 1.15 ]] - return: free(list, evas_render_updates_free) + return: free(list, evas_render_updates_free) @owned @warn_unused; [[ A newly allocated list of updated rectangles of the canvas - ($Eina.Rectangle structs). Free this list with + ($Eina.Rect structs). Free this list with \@ref evas_render_updates_free. ]] } @@ -866,10 +866,10 @@ class Evas.Canvas (Efl.Object, Efl.Canvas, Efl.Animator, Efl.Input.Interface, See the full @ref Example_Evas_Events "example". */ - return: free(list, evas_render_updates_free) + return: free(list, evas_render_updates_free) @owned @warn_unused; [[ A newly allocated list of updated rectangles of the canvas - ($Eina.Rectangle structs). Free this list with + ($Eina.Rect structs). Free this list with \@ref evas_render_updates_free. ]] } diff --git a/src/lib/evas/canvas/evas_image_legacy.c b/src/lib/evas/canvas/evas_image_legacy.c index 9b75571..c78c97d 100644 --- a/src/lib/evas/canvas/evas_image_legacy.c +++ b/src/lib/evas/canvas/evas_image_legacy.c @@ -90,7 +90,7 @@ evas_object_image_fill_get(const Evas_Object *obj, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h) { - Eina_Rectangle r; + Eina_Rect r; EVAS_IMAGE_API(obj); r = efl_gfx_fill_get(obj); diff --git a/src/lib/evas/canvas/evas_object_image.c b/src/lib/evas/canvas/evas_object_image.c index 452311e..05b7ca0 100644 --- a/src/lib/evas/canvas/evas_object_image.c +++ b/src/lib/evas/canvas/evas_object_image.c @@ -668,7 +668,7 @@ _evas_image_fill_set(Eo *eo_obj, Evas_Image_Data *o, int x, int y, int w, int h) } EOLIAN static void -_efl_canvas_image_internal_efl_gfx_fill_fill_set(Eo *eo_obj, Evas_Image_Data *o, Eina_Rectangle fill) +_efl_canvas_image_internal_efl_gfx_fill_fill_set(Eo *eo_obj, Evas_Image_Data *o, Eina_Rect fill) { // Should (0,0,0,0) reset the filled flag to true? o->filled = EINA_FALSE; @@ -676,10 +676,10 @@ _efl_canvas_image_internal_efl_gfx_fill_fill_set(Eo *eo_obj, Evas_Image_Data *o, _evas_image_fill_set(eo_obj, o, fill.x, fill.y, fill.w, fill.h); } -EOLIAN static Eina_Rectangle +EOLIAN static Eina_Rect _efl_canvas_image_internal_efl_gfx_fill_fill_get(Eo *eo_obj EINA_UNUSED, Evas_Image_Data *o) { - return o->cur->fill; + return (Eina_Rect) o->cur->fill; } EOLIAN static void diff --git a/src/lib/evas/canvas/evas_object_main.c b/src/lib/evas/canvas/evas_object_main.c index 8ad0e78..4fc7a13 100644 --- a/src/lib/evas/canvas/evas_object_main.c +++ b/src/lib/evas/canvas/evas_object_main.c @@ -1156,7 +1156,7 @@ end: } EOLIAN static void -_efl_canvas_object_efl_gfx_geometry_set(Eo *obj, Evas_Object_Protected_Data *pd EINA_UNUSED, Eina_Rectangle r) +_efl_canvas_object_efl_gfx_geometry_set(Eo *obj, Evas_Object_Protected_Data *pd EINA_UNUSED, Eina_Rect r) { efl_gfx_position_set(obj, r.x, r.y); efl_gfx_size_set(obj, r.w, r.h); @@ -1168,7 +1168,7 @@ evas_object_geometry_set(Evas_Object *eo_obj, Evas_Coord x, Evas_Coord y, Evas_C MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ); return; MAGIC_CHECK_END(); - efl_gfx_geometry_set(eo_obj, (Eina_Rectangle) { x, y, w, h }); + efl_gfx_geometry_set(eo_obj, EINA_RECT(x, y, w, h)); } EAPI void @@ -1316,16 +1316,16 @@ _efl_canvas_object_efl_gfx_size_set(Eo *eo_obj, Evas_Object_Protected_Data *obj, evas_object_inform_call_resize(eo_obj); } -EOLIAN Eina_Rectangle +EOLIAN Eina_Rect _efl_canvas_object_efl_gfx_geometry_get(Eo *eo_obj EINA_UNUSED, Evas_Object_Protected_Data *obj) { - return obj->cur->geometry; + return (Eina_Rect) obj->cur->geometry; } EAPI void evas_object_geometry_get(const Evas_Object *eo_obj, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h) { - Eina_Rectangle r = efl_gfx_geometry_get(eo_obj); + Eina_Rect r = efl_gfx_geometry_get(eo_obj); if (x) *x = r.x; if (y) *y = r.y; if (w) *w = r.w; diff --git a/src/lib/evas/canvas/evas_object_vg.c b/src/lib/evas/canvas/evas_object_vg.c index 19a4b45..006f070 100644 --- a/src/lib/evas/canvas/evas_object_vg.c +++ b/src/lib/evas/canvas/evas_object_vg.c @@ -418,12 +418,12 @@ _evas_vg_efl_gfx_view_view_size_set(Eo *obj EINA_UNUSED, Evas_VG_Data *pd, } void -_evas_vg_efl_gfx_fill_fill_set(Eo *obj EINA_UNUSED, Evas_VG_Data *pd, Eina_Rectangle fill) +_evas_vg_efl_gfx_fill_fill_set(Eo *obj EINA_UNUSED, Evas_VG_Data *pd, Eina_Rect fill) { pd->fill = fill; } -Eina_Rectangle +Eina_Rect _evas_vg_efl_gfx_fill_fill_get(Eo *obj EINA_UNUSED, Evas_VG_Data *pd) { return pd->fill; diff --git a/src/lib/evas/canvas/evas_vg_container.c b/src/lib/evas/canvas/evas_vg_container.c index 7534150..704d6c1 100644 --- a/src/lib/evas/canvas/evas_vg_container.c +++ b/src/lib/evas/canvas/evas_vg_container.c @@ -66,15 +66,15 @@ _efl_vg_container_efl_object_destructor(Eo *obj, static void _efl_vg_container_efl_vg_bounds_get(Eo *obj EINA_UNUSED, - Efl_VG_Container_Data *pd, - Eina_Rectangle *r) + Efl_VG_Container_Data *pd, + Eina_Rect *r) { - Eina_Rectangle s; + Eina_Rect s; Eina_Bool first = EINA_TRUE; Eina_List *l; Eo *child; - EINA_RECTANGLE_SET(&s, -1, -1, 0, 0); + EINA_RECT_SET(s, -1, -1, 0, 0); EINA_LIST_FOREACH(pd->children, l, child) { @@ -86,7 +86,7 @@ _efl_vg_container_efl_vg_bounds_get(Eo *obj EINA_UNUSED, else { efl_vg_bounds_get(child, &s); - eina_rectangle_union(r, &s); + eina_rectangle_union(&r->rect, &s.rect); } } } diff --git a/src/lib/evas/canvas/evas_vg_gradient_linear.c b/src/lib/evas/canvas/evas_vg_gradient_linear.c index a1e9046..fcefa55 100644 --- a/src/lib/evas/canvas/evas_vg_gradient_linear.c +++ b/src/lib/evas/canvas/evas_vg_gradient_linear.c @@ -112,7 +112,7 @@ _efl_vg_gradient_linear_efl_object_destructor(Eo *obj, Efl_VG_Gradient_Linear_Da } static void -_efl_vg_gradient_linear_efl_vg_bounds_get(Eo *obj, Efl_VG_Gradient_Linear_Data *pd, Eina_Rectangle *r) +_efl_vg_gradient_linear_efl_vg_bounds_get(Eo *obj, Efl_VG_Gradient_Linear_Data *pd, Eina_Rect *r) { Efl_VG_Data *nd; diff --git a/src/lib/evas/canvas/evas_vg_gradient_radial.c b/src/lib/evas/canvas/evas_vg_gradient_radial.c index a464e2a..3436df2 100644 --- a/src/lib/evas/canvas/evas_vg_gradient_radial.c +++ b/src/lib/evas/canvas/evas_vg_gradient_radial.c @@ -129,7 +129,7 @@ _efl_vg_gradient_radial_efl_object_destructor(Eo *obj, } static void -_efl_vg_gradient_radial_efl_vg_bounds_get(Eo *obj, Efl_VG_Gradient_Radial_Data *pd, Eina_Rectangle *r) +_efl_vg_gradient_radial_efl_vg_bounds_get(Eo *obj, Efl_VG_Gradient_Radial_Data *pd, Eina_Rect *r) { Efl_VG_Data *nd; diff --git a/src/lib/evas/canvas/evas_vg_node.c b/src/lib/evas/canvas/evas_vg_node.c index 3267f76..dd32a50 100644 --- a/src/lib/evas/canvas/evas_vg_node.c +++ b/src/lib/evas/canvas/evas_vg_node.c @@ -194,17 +194,17 @@ _efl_vg_efl_gfx_size_get(Eo *obj, Efl_VG_Data *pd EINA_UNUSED, int *w, int *h) { - Eina_Rectangle r = { 0, 0, 0, 0 }; + Eina_Rect r; efl_vg_bounds_get(obj, &r); if (w) *w = r.w; if (h) *h = r.h; } -EOLIAN static Eina_Rectangle +EOLIAN static Eina_Rect _efl_vg_efl_gfx_geometry_get(Eo *obj, Efl_VG_Data *pd EINA_UNUSED) { - Eina_Rectangle r = { 0, }; + Eina_Rect r = EINA_RECT_ZERO(); efl_gfx_position_get(obj, &r.x, &r.y); efl_gfx_size_get(obj, &r.w, &r.h); return r; @@ -522,10 +522,10 @@ _efl_vg_root_parent_get(Eo *obj) static void _efl_vg_walk_down_at(Eo *root, Eina_Array *a, Eina_Rectangle *r) { - Eina_Rectangle bounds; + Eina_Rect bounds; efl_vg_bounds_get(root, &bounds); - if (!eina_rectangles_intersect(&bounds, r)) return ; + if (!eina_rectangles_intersect(&bounds.rect, r)) return ; eina_array_push(a, root); @@ -555,7 +555,7 @@ _efl_vg_object_at(Eo *obj, Eina_Array *a, Eina_Rectangle *r) static Efl_Gfx_Stack * _efl_vg_efl_gfx_stack_below_get(Eo *obj, Efl_VG_Data *pd EINA_UNUSED) { - Eina_Rectangle r; + Eina_Rect r; Eina_Array a; Eo *current; Eo *below = NULL; @@ -566,7 +566,7 @@ _efl_vg_efl_gfx_stack_below_get(Eo *obj, Efl_VG_Data *pd EINA_UNUSED) eina_array_step_set(&a, sizeof (Eina_Array), 8); - _efl_vg_object_at(obj, &a, &r); + _efl_vg_object_at(obj, &a, &r.rect); EINA_ARRAY_ITER_NEXT(&a, i, current, iterator) if (current == obj) @@ -585,7 +585,7 @@ _efl_vg_efl_gfx_stack_below_get(Eo *obj, Efl_VG_Data *pd EINA_UNUSED) static Efl_Gfx_Stack * _efl_vg_efl_gfx_stack_above_get(Eo *obj, Efl_VG_Data *pd EINA_UNUSED) { - Eina_Rectangle r; + Eina_Rect r; Eina_Array a; Eo *current; Eo *above = NULL; @@ -596,7 +596,7 @@ _efl_vg_efl_gfx_stack_above_get(Eo *obj, Efl_VG_Data *pd EINA_UNUSED) eina_array_step_set(&a, sizeof (Eina_Array), 8); - _efl_vg_object_at(obj, &a, &r); + _efl_vg_object_at(obj, &a, &r.rect); EINA_ARRAY_ITER_NEXT(&a, i, current, iterator) if (current == obj) diff --git a/src/lib/evas/canvas/evas_vg_private.h b/src/lib/evas/canvas/evas_vg_private.h index 4598e4f..ac945bc 100644 --- a/src/lib/evas/canvas/evas_vg_private.h +++ b/src/lib/evas/canvas/evas_vg_private.h @@ -15,7 +15,7 @@ struct _Evas_VG_Data void *engine_data; Efl_VG *root; - Eina_Rectangle fill; + Eina_Rect fill; unsigned int width, height; diff --git a/src/lib/evas/canvas/evas_vg_shape.c b/src/lib/evas/canvas/evas_vg_shape.c index a53eb98..a5f0d29 100644 --- a/src/lib/evas/canvas/evas_vg_shape.c +++ b/src/lib/evas/canvas/evas_vg_shape.c @@ -18,8 +18,8 @@ struct _Efl_VG_Shape_Data static void _efl_vg_shape_efl_vg_bounds_get(Eo *obj, - Efl_VG_Shape_Data *pd EINA_UNUSED, - Eina_Rectangle *r) + Efl_VG_Shape_Data *pd EINA_UNUSED, + Eina_Rect *r) { // FIXME: Use the renderer bounding box when it has been created instead of an estimation efl_gfx_path_bounds_get(obj, r); diff --git a/src/tests/elementary/elm_test_focus_common.c b/src/tests/elementary/elm_test_focus_common.c index f75730b..896d86d 100644 --- a/src/tests/elementary/elm_test_focus_common.c +++ b/src/tests/elementary/elm_test_focus_common.c @@ -2,7 +2,7 @@ #define Q(o,_x,_y,_w,_h) \ do {\ - Eina_Rectangle rect = EINA_RECTANGLE_INIT; \ + Eina_Rect rect; \ rect.x = _x; \ rect.y = _y; \ rect.w = _w; \ @@ -58,7 +58,7 @@ elm_focus_test_manager_new(Efl_Ui_Focus_Object **middle) //Test class implementation typedef struct { - Eina_Rectangle rect; + Eina_Rect rect; Eina_Bool focus; } Focus_Test_Data; @@ -68,7 +68,7 @@ _focus_test_efl_object_constructor(Eo *obj, Focus_Test_Data *pd) Eo *eo; eo = efl_constructor(efl_super(obj, FOCUS_TEST_CLASS)); - eina_rectangle_coords_from(&pd->rect, 0, 0, 0, 0); + eina_rectangle_coords_from(&pd->rect.rect, 0, 0, 0, 0); return eo; } @@ -79,19 +79,19 @@ _focus_test_efl_ui_focus_object_focus_set(Eo *obj, Focus_Test_Data *pd, Eina_Boo printf("Object %p now focused\n", obj); } -EOLIAN static Eina_Rectangle +EOLIAN static Eina_Rect _focus_test_efl_ui_focus_object_focus_geometry_get(Eo *obj EINA_UNUSED, Focus_Test_Data *pd) { return pd->rect; } EOLIAN static void -_focus_test_size(Eo *obj EINA_UNUSED, Focus_Test_Data *pd, Eina_Rectangle rect) +_focus_test_size(Eo *obj EINA_UNUSED, Focus_Test_Data *pd, Eina_Rect rect) { pd->rect = rect; } -EOLIAN static Eina_Rectangle +EOLIAN static Eina_Rect _focus_test_efl_gfx_geometry_get(Eo *obj EINA_UNUSED, Focus_Test_Data *pd) { return pd->rect; diff --git a/src/tests/elementary/elm_test_focus_sub.c b/src/tests/elementary/elm_test_focus_sub.c index 18042cb..32487de 100644 --- a/src/tests/elementary/elm_test_focus_sub.c +++ b/src/tests/elementary/elm_test_focus_sub.c @@ -6,13 +6,10 @@ typedef struct { } Focus_Test_Sub_Main_Data; -EOLIAN static Eina_Rectangle +EOLIAN static Eina_Rect _focus_test_sub_main_efl_ui_focus_object_focus_geometry_get(Eo *obj EINA_UNUSED, Focus_Test_Sub_Main_Data *pd EINA_UNUSED) { - Eina_Rectangle result; - EINA_RECTANGLE_SET(&result, 0, 0, 20, 20); - - return result; + return EINA_RECT(0, 0, 20, 20); } EOLIAN static Efl_Ui_Focus_Manager* diff --git a/src/tests/elementary/focus_test.eo b/src/tests/elementary/focus_test.eo index 1ec326b..5227241 100644 --- a/src/tests/elementary/focus_test.eo +++ b/src/tests/elementary/focus_test.eo @@ -2,7 +2,7 @@ class Focus.Test(Efl.Object, Efl.Ui.Focus.Object, Efl.Gfx) { methods { size { params { - rect : Eina.Rectangle; + rect : Eina.Rect; } } } -- 2.7.4