2017-08-30 10:49 GMT+09:00 Jean-Philippe André <j...@videolan.org>: > > > 2017-08-29 22:04 GMT+09:00 Gustavo Sverzut Barbieri <barbi...@gmail.com>: > >> On Tue, Aug 29, 2017 at 4:29 AM, Jean-Philippe ANDRÉ <j...@videolan.org> >> wrote: >> > jpeg pushed a commit to branch master. >> > >> > http://git.enlightenment.org/core/efl.git/commit/?id=233068c >> 30c90c7cafbdcd7108f78ea0d353d26ad >> > >> > commit 233068c30c90c7cafbdcd7108f78ea0d353d26ad >> > Author: Jean-Philippe Andre <jp.an...@samsung.com> >> > Date: Tue Aug 29 14:29:45 2017 +0900 >> > >> > widget: Simplify code with rectangle (EO) >> > >> > This replaces x,y,w,h with a rectangle in parts of the focus_region >> > code. >> > >> > Ref T5363 >> > --- >> > src/lib/elementary/efl_ui_text.c | 14 +++++++------- >> > src/lib/elementary/elm_conform.c | 10 +++++----- >> > src/lib/elementary/elm_entry.c | 22 ++++++++-------------- >> > src/lib/elementary/elm_gengrid.c | 11 ++++++----- >> > src/lib/elementary/elm_panel.c | 15 +++++---------- >> > src/lib/elementary/elm_widget.c | 30 ++++++++++++++++-------------- >> > src/lib/elementary/elm_widget.eo | 8 +++----- >> > src/lib/elementary/elm_widget.h | 2 +- >> > 8 files changed, 51 insertions(+), 61 deletions(-) >> > >> > diff --git a/src/lib/elementary/efl_ui_text.c >> b/src/lib/elementary/efl_ui_text.c >> > index dc3fadb605..46da72ea5e 100644 >> > --- a/src/lib/elementary/efl_ui_text.c >> > +++ b/src/lib/elementary/efl_ui_text.c >> > @@ -1203,28 +1203,28 @@ _efl_ui_text_elm_widget_on_focus(Eo *obj, >> Efl_Ui_Text_Data *sd, Elm_Object_Item >> > } >> > >> > EOLIAN static Eina_Bool >> > -_efl_ui_text_elm_widget_focus_region_get(Eo *obj EINA_UNUSED, >> Efl_Ui_Text_Data *sd, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, >> Evas_Coord *h) >> > +_efl_ui_text_elm_widget_focus_region_get(Eo *obj EINA_UNUSED, >> Efl_Ui_Text_Data *sd, Eina_Rectangle *r) >> > { >> > Evas_Coord edje_x, edje_y, elm_x, elm_y; >> > >> > + EINA_SAFETY_ON_NULL_RETURN_VAL(r, EINA_FALSE); >> > efl_text_cursor_geometry_get(obj, >> > efl_text_cursor_get(obj, EFL_TEXT_CURSOR_GET_MAIN), >> > EFL_TEXT_CURSOR_TYPE_BEFORE, >> > - x, y, w, h, >> > + &r->x, &r->y, &r->w, &r->h, >> >> these API should change to return a Eina_Rectangle on the stack, much >> simpler... also set could receive it as parameter: >> >> Eina_Rectanle r = efl_text_cursor_geometry_get(o, ...); >> r = eina_rectangle_move(r, +10, -10); >> efl_text_..._geometry_set(o, ..., r); > > > In this case there is a bool return value as well. That bool is required > for the logic. > I considered returning on the stack and using w<=0 or h<=0 as equivalent > to "false" return, but didn't do it to make sure the logic remains the > same. This might still be doable in a later patch. >
Actually I will do and test just that. Besides that, I think we need an int 2d vector type. Right now we have: Eina_Rectangle { int x,y,w,h; } Eina_Vector2 { double x,y; } Evas_Coord_Size { int w,h; } Evas_Coord_Point { int x,y; } Any idea for a clear name? What comes to mind are: Eina_Vector2i { int x,y; } Eina_Size { int w,h; } Eina_Position { int x,y; } Anything with unions would be confusing I think. Anyway if we agree on a good 2d int type we can add a few convenience functions to eina_rectangle (move does not exist) and that new type, and then swicth all size, position and geometry APIs to those structs. I believe having those structs on the stack would be nicer than pointers to x,y,w,h (less likely to crash, all values initialized, less code, etc...) -- Jean-Philippe André ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel