Commit Graph

2311 Commits

Author SHA1 Message Date
Jean-Philippe Andre 6ecf3fd6b7 elm: Fix ui.win "bg" test case
elm_colorselector is legacy only (for now, unfortunately).
This means that elm_colorselector_class_get() crashes with weak linking.
Strong linking would make the compilation fail.
2017-11-07 14:52:48 +09:00
Jeeyong Um 7811b0e5b7 edje_pick: Fix segfault due to wrong memory free 2017-11-07 00:50:38 +09:00
Sungtaek Hong 70b23b5fc7 edje_cc_script: remove build warning
Summary: initiate pointer var with NULL to remove build warning

Reviewers: conr2d

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5423
2017-11-04 14:41:44 +09:00
Derek Foreman 376be13f46 edje_recc: don't use negative exit code in a /bin/sh script
Apparently this isn't well supported by dash, which will print an
error and return a 2, where zsh and bash will return 255.

Explicitly returning 255 seems least surprising.

see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=772322

 #IHaveNoIdeaWhatThisScriptDoes
2017-11-03 15:46:11 -05:00
Amitesh Singh efa6fb70e6 elm test: panes - revert the code
test_panes.c code was added into previous patch by accident.
2017-11-02 17:40:02 +09:00
Amitesh Singh 225b704651 Efl.Ui.Radio: remove value{} api
Efl.Ui.Nstate already implements value{}.

@fix
2017-11-02 17:28:48 +09:00
Jean-Philippe Andre 824792f09d elm: Major cleanup of EO files
This prevents legacy EO classes from being exposed through .eo.h headers
or .eo in share/eolian/includes. Also removes a slew of useless xxx_eo.h
intermediate headers.

Notes:
 - elm_systray has no proper API: it's not clear if the EO API should be
   released (in which case it needs to be renamed to efl_something) and
   there is no legacy API to create a systray object.
 - Some files have been placed in a "FIXME" section, as I believe they
   are necessary within EO land, but at the same time still don't
   conform to the interfaces (eg. name starts with elm_).
 - elm_interface_scrollable is required by photocam. This means photocam
   needs to be adapted to fit the EO scroller API (still to be
   completed, I believe).

Bugs:
 - This breaks most C++ examples. I KNOW. And I'm working on it.

Ref T5301
2017-11-01 21:23:31 +09:00
Godly T.Alias 0496b7988a Genlist Item Pin Feature
Summary:
**@feature** T6241

This feature enables genlist to pin an item to viewport which will
be available always for user to view/select.

**Use Case**:
In a big list of music, most times when user finds a song which they
like, before playing that they may want to go through the entire list
to check whether there is some other good songs, but
after seeing the entire list user have to again scroll back to the
position of item which they liked to play it then.
In this case item pinning can be used, so that the item
which they want to keep for future selection can be pinned
and then it will remain in viewport, finally when user want to do
operation on item, it will be readily available in viewport.

Signed-off-by: Godly T.Alias <godlytalias@yahoo.co.in>

Test Plan: Elementary Test -> Genlist -> Double click on items to enable/disable pinning

Reviewers: raster, cedric, prince.dubey, SanghyeonLee

Subscribers: rajeshps, jpeg, shilpasingh

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D5340
2017-11-01 16:11:30 +09:00
Jean-Philippe Andre daa1547586 edje_cc: Fix shadow warning (global scope) 2017-11-01 11:22:33 +09:00
Andrii Kroitor 130052f275 edje_cc: move offset_scale to correct place and fix doc 2017-10-31 10:34:28 +02:00
Amitesh Singh 02206f252f elm test: calender - use eina_strbuf_append_strftime instead 2017-10-31 14:27:27 +09:00
WooHyun Jung 02f179628c efl_ui_calendar: apply new format_cb 2017-10-31 11:21:15 +09:00
Andrii Kroitor b836576d2a edje_cc: fix item.max parsing
It is now possible to set item.max back to default value (-1 -1).

@fix
2017-10-30 16:44:32 +02:00
Andrii Kroitor d582b87ba3 edje_cc: make box/table item.spread minimum 1 1
Minimum value was 0 0, but it has same effect as 1 1.
2017-10-30 16:44:32 +02:00
Andrii Kroitor 2b70897e0f edje_cc: fix program.filter description
@fix
2017-10-30 16:44:32 +02:00
Andrii Kroitor b0761cdfa1 edje_cc: fix text.align description
@fix
2017-10-30 16:44:32 +02:00
Andrii Kroitor 939d16bdbf edje_cc: limit map.zoom to non-negative values
@fix
2017-10-30 16:44:31 +02:00
Andrii Kroitor a7769e806a edje_cc: move box and table properties documentation
Documentation comments for properties should be near parser
implementation.

@fix
2017-10-30 16:44:31 +02:00
Andrii Kroitor 8a23f30291 edje_cc: make color parsing consistent
All colors now accept 4 ints or hex string.

@fix
2017-10-30 16:44:31 +02:00
Andrii Kroitor e379397093 edje_cc: make bool parsing consistent
@fix
2017-10-30 16:44:31 +02:00
Andrii Kroitor c8edb208dd edje_cc: fix spelling
@fix
2017-10-30 16:44:31 +02:00
Andrii Kroitor d83ebb6980 edje_cc: fix default color_class colors
If you have undefined color_class, edje will use solid white for its
colors. If you define color_class name without colors edje_cc now has
same defaults instead of 0 0 0 0.

@fix
2017-10-30 16:44:30 +02:00
Andrii Kroitor 6888645598 edje_cc: move part_remove and program_remove to group
These properties belong to group, but were in part's block in edcref.

@fix
2017-10-30 16:44:30 +02:00
Andrii Kroitor a18e7f5242 edje_cc: fix color_class description
It can't be overridden by color values in state. Colors can only be
modified.

@fix
2017-10-30 16:44:30 +02:00
Andrii Kroitor 63e97098f0 edje_cc: fix incorrect type in minmul defaults
@fix
2017-10-30 16:44:30 +02:00
Andrii Kroitor 1df6fc19f1 edje_cc: parse "fixed" as bool
@fix
2017-10-30 16:44:30 +02:00
Andrii Kroitor 5e46c01001 edje_cc: fix state.no_render description
@fix
2017-10-30 16:44:29 +02:00
Andrii Kroitor b297387f5c edje_cc: fix color2 and color3 descriptions
color2 is used for outline
color3 is used for shadow

@fix
2017-10-30 16:44:29 +02:00
Andrii Kroitor ed9aa79344 edje_cc: add missing default values to documentation
@fix
2017-10-30 16:44:29 +02:00
Andrii Kroitor 0aedfdb538 edje_cc: fix errors in documentation
@fix
2017-10-30 16:44:29 +02:00
Carsten Haitzler cda9532f44 edje_cc - add offset_scale/offscale per desc to allow offsets to scale
there already was this flag but only set implicitly with anchor stuff.
allow to be able to set this flag explicitly to allow offsets to be
scaled if part is marked to scale

@feature
2017-10-30 17:51:30 +09:00
Cedric Bail a14b657399 elementary: use the new exit infrastructure to print help message. 2017-10-27 15:44:21 -07:00
Jeeyong Um 64fb807b63 edje_cc: support script inheritance
Summary:
When inherit_script is set to 1, script of current group contains
variables and funtions from script of parent groups. If there is same
name variable or function, newly defined one will replace that of
parents.

Reviewers: cedric, jpeg

Subscribers: taxi2se

Differential Revision: https://phab.enlightenment.org/D5062

Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
2017-10-27 13:34:01 -07:00
Amitesh Singh 710d3e2f72 Revert "elm test: mbe - make mbe focusable"
This reverts commit b6567ab1f6.
2017-10-27 16:44:06 +09:00
Amitesh Singh b6567ab1f6 elm test: mbe - make mbe focusable
After 53fcc4bb7d, mbe is no more a focusable widget by
default. This test rely on focus property of mbe.
2017-10-27 16:09:12 +09:00
Jean-Philippe Andre ec1acca74d evas vg: Add FIXME and fix strbuf use
This is the result of a really quick review of the new VG code. Most of
it was moved around, but this merge includes the following:
 - Move logic from edje to evas
 - Create static lib for common VG handling
 - Add file_set() API
 - Add a basic VG cache in evas side
 - Add savers modules, implement loaders and savers.
2017-10-27 14:58:38 +09:00
subhransu mohanty 4c47200c49 edje: cleanup old implementation of handling svg file. 2017-10-27 14:58:38 +09:00
subhransu mohanty d5c8822107 edje: use the file_set api from vg canvas to load and parse svg file. 2017-10-27 14:58:38 +09:00
Daniel Kolesa 4f8a9b50f4 eolian: make inherits_get return a list of classes, not strings
Most of the time you need to retrieve the class from the string
anyway, so remove this relic of old Eolian and gain some small
performance benefits and extra convenience.

Subtly breaks API but everything should be updated.
2017-10-25 16:25:41 +02:00
WooHyun Jung 9442f4687c efl_ui_calendar: create new efl_ui_calendar
Summary:
This calendar widget will support basic functionality of calendar.
I've separated this widget from elm_calendar since elm_calendar had
lots of unuseful things inside.

Reviewers: jpeg, singh.amitesh, cedric, CHAN, Jaehyun_Cho

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5346
2017-10-25 16:50:01 +09:00
WooHyun Jung c1094da0f4 efl_ui_clock: changed property name from value to time 2017-10-25 16:44:25 +09:00
Woochan Lee 6c3bc915df elm: rename elm_multibuttonentry to Efl.Ui.Multibuttonentry
Summary: @ref T5358

Reviewers: woohyun, jpeg, cedric, Jaehyun_Cho

Reviewed By: Jaehyun_Cho

Subscribers: Jaehyun, bu5hm4n, cedric, jpeg

Maniphest Tasks: T5358

Differential Revision: https://phab.enlightenment.org/D5169

JP's note:
MBE currently has quite a few issues, probably related to focus
handling. This needs to be fixed.
2017-10-24 16:20:09 +09:00
Jean-Philippe Andre 0a13e15c7d evas/gesture: Fix up a couple of APIs, add some FIXME
Some things have clearly not been tested. Some APIs have not been
modified after repeated review comments. C++ failed to build due to
"long" being used as a namespace.

Remaining issues:
 - The original finger_list API was broken by design. I didn't try to
   replace it yet.
 - Long tap is also broken by design: if no move happens the recognizer
   gets no event, and doesn't trigger anything when the timeout is
   reached. An API or event is lacking here.
 - Only 2 very basic gestures have been implemented. All the gestures
   from elm_gesture_layer need to be covered. None of the multi touch
   support has been really implemented, except for a single bool flag.
 - The configuration must be loaded from elm_config, passed on to the
   recognizers.
 - Some micro optimization may be required, especially if the input
   device is high frequency (eg. 1KHz gaming mouse).
2017-10-19 12:25:57 +09:00
smohanty 023d9a403c elementary_test: Added test case for log_tap gesture 2017-10-19 10:33:12 +09:00
smohanty ba3afc74a8 elementary_test: Added gesture_framework test to the elementary test suit. 2017-10-19 10:33:12 +09:00
Cedric Bail 6998134669 elementary: add an exit_code to efl_exit as originally planned.
T6228
2017-10-17 10:39:05 -07:00
Jean-Philippe Andre b5c241ca08 frame: Implement content set/get/unset
Not a huge fan of my macro as it uses efl_part() where a direct call
could be possible, depending on the widget (win can, frame can't).

See D5241
2017-10-17 17:31:38 +09:00
Amitesh Singh 85d4a618a7 slider/progressbar: implement format_string of Efl.Ui.Format
remove the unit_format from Efl.Ui.Range.
2017-10-17 17:16:45 +09:00
Daniel Kolesa b88132932a eolian: fix setter generation for @auto functions
Because of a typo in generator source (and overlooked error in
tests) we were previously generating incorrect code for setters
with the @auto qualifier. This was brought up in D5306 and is
now fixed.
2017-10-13 23:49:57 +02:00
Cedric Bail 352637d8b0 evas: as we do not use the size, we should set it either. 2017-10-13 12:58:01 -07:00
Prince Kumar Dubey 71e62840e4 evas: parameter length is not used, so removing it. to fix static analyzer tool warning.
Reviewers: raster, cedric

Subscribers: jpeg, rajeshps

Differential Revision: https://phab.enlightenment.org/D5301

Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
2017-10-13 12:08:27 -07:00
Prince Kumar Dubey 41197981ab efl: unsigned int/long never be less than zero. Fixed.
Reviewers: raster, cedric

Subscribers: rajeshps, jpeg

Differential Revision: https://phab.enlightenment.org/D5300

Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
2017-10-13 12:07:28 -07:00
Youngbok Shin 5a24f1404a edje_cc: fix a memory leak issue when edje_cc writes images
Summary:
If there is no given pathes for image files as parameter of edje_cc,
"img_dirs" will be NULL. Then, a local variable "load_err" is always
EVAS_LOAD_ERROR_NONE. Because of this, the "if" condition just after
EINA_LIST_FOREACH() will fail. It causes memory leak from "iw".
@fix

Test Plan: N/A

Reviewers: raster, cedric, jpeg, woohyun

Differential Revision: https://phab.enlightenment.org/D5285

Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
2017-10-13 11:55:06 -07:00
Jaehyun Cho 4dae43e4d1 efl_animation: Fix to set Efl_Event_Description for event animation
Any event represented by Efl_Event_Description can be registered for
event animation. (e.g. EFL_GFX_EVENT_SHOW, EFL_GFX_EVENT_HIDE, etc.)
2017-10-13 22:56:33 +09:00
Daniel Kolesa 5699466dba eolian gen: generate documentation for first object param if present
This prevents doxygen from emitting warnings.

Fixes T6186.
2017-10-13 15:18:18 +02:00
Jaehyun Cho 39cc542d7f efl_animation: Add interpolator property
Interpolator property is added to apply interpolation function.
2017-10-12 21:03:49 +09:00
Jaehyun Cho e83facfb37 efl_animation: Add repeat_mode property
To not display original state when the reverse repeat starts, the
animators in group parallel and group sequential are deleted.
2017-10-12 21:03:49 +09:00
Jaehyun Cho 595f47e202 efl_animation: Add start_delay property
Add start_delay property to delay the given amount of time in seconds
from when the animation starts until the animation is animated.
2017-10-12 21:03:49 +09:00
Jaehyun Cho 108994d383 efl_animation: Add repeat_count property 2017-10-12 21:03:49 +09:00
Jaehyun Cho 87a14507b2 efl_animation: Add pause and resume methods
Add target_map_reset method to fix flicking issue when animation is
paused and resumed.
2017-10-12 21:03:49 +09:00
Jaehyun Cho a6e03da5f0 efl_animation: Support event animation
Register an animation for an event.
Start the animation when the event happens.
2017-10-12 21:03:49 +09:00
Jaehyun Cho 4112a68e32 efl_animation: Add sequential group animation and object
Efl.Animation.Group.Sequential is a class for animations started in
sequence.
Efl.Animation.Object.Group.Sequential is a class which provides
methods for an object of Efl.Animation.Group.Sequential.
The objects added into the sequential group animation object start
in sequence.
2017-10-12 21:03:49 +09:00
Jaehyun Cho 923a5b02eb efl_animation: Add parallel group animation and object
Efl.Animation.Group.Parallel is a class for animations started in
parallel.
Efl.Animation.Object.Group.Parallel is a class which provides methods
for an object of Efl.Animation.Group.Parallel.
The objects added into the parallel group animation object start in
parallel.
2017-10-12 21:03:49 +09:00
Jaehyun Cho 5a1147d643 efl_animation: Add translate animation object 2017-10-12 21:03:49 +09:00
Jaehyun Cho 5540520846 efl_animation: Add scale animation object 2017-10-12 21:03:49 +09:00
Jaehyun Cho c3865609c9 efl_animation: Add scale animation 2017-10-12 21:03:49 +09:00
Jaehyun Cho 29917e4e91 efl_animation: Add rotate animation object 2017-10-12 21:03:49 +09:00
Jaehyun Cho 58dd0bebaa efl_animation: Add alpha animation object 2017-10-12 21:03:49 +09:00
Cedric BAIL 49779d26c4 elementary: update elementary binary to use efl_exit(). 2017-10-11 14:21:12 -07:00
Chris Michael 81d76776be eolian-bin: Free previously allocated eina_strbuf
Coverity reports that the eina_strbuf 'param_call' leaks when it goes
out of scope here, so fix the leak by freeing the strbuf

Fixes CID1381502

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-10-05 09:46:18 -04:00
Daniel Kolesa f73d794132 eolian gen: simplify generate_normal_free a bit 2017-09-29 13:00:07 +02:00
Marcel Hollerbach fc071d5aa9 eolian: generate free function for owned parameters
With this commit owned parameters are freed if the object function
cannot be called, this means bla(NULL,param) will not leak anymore
2017-09-29 11:28:15 +02:00
Amitesh Singh 92eb5d1962 elm test: rename test_slider_interval.c to test_ui_slider_interval.c 2017-09-29 13:37:56 +09:00
Carsten Haitzler cc9a8a7dfe evas cserve - fix validation of cserve mesg size field
fix coverity CID 1039567
2017-09-29 12:26:57 +09:00
Carsten Haitzler eb57415a7a evas cseve - check msgsize before using - coverity
fix CID 1039568
2017-09-29 12:26:57 +09:00
Carsten Haitzler d4fd5b0287 efl debugd - check return of write func and report errors
makes coverity happy and reports write errors... fix CID 1377525
2017-09-29 12:26:57 +09:00
Daniel Hirt 7915cc3e1d Ui text: add test for Efl.Text.Markup 2017-09-28 19:32:02 +03:00
Jean-Philippe Andre ce84604068 tests: Use efl_unref() on duplicated event objects
efl_del() is valid but bindings such as C++ should be using efl_unref()
and not efl_del() in this situation: a reference was given, so it should
be released.
2017-09-28 16:50:53 +09:00
Jean-Philippe Andre 6bed255fc4 tests: Fix leak of input event & devices
After the previous patch, the caller of efl_input_dup() clearly owns the
reference on the returned object, which means she must absolutely delete
or unref if manually.

Note that the previous patch changed the bug from use of invalid eo
pointer to leaking of objects. But the only way to support bindings with
something like dup() is to ensure we give a ref to the caller, and thus
the parent should be null.

Note: eo_debug was used extensively to reach this point.
2017-09-28 12:30:36 +09:00
Jean-Philippe Andre fcdb37dd3e tests: Improve test case for win/evas event refeed 2017-09-28 12:30:36 +09:00
Cedric BAIL 448244360f elementary: remove useless fprintf. 2017-09-26 10:15:07 -07:00
Sungtaek Hong ebff5e8639 elm_bg: rename elm_bg to Efl.Ui.Bg
Summary:
elm_bg was supposed to be used only in legacy,
but since we need a common object to be used as a background of widgets,
it is now renamed as efl_ui_bg and supports EO APIs.

Reviewers: cedric, jpeg, woohyun

Differential Revision: https://phab.enlightenment.org/D5147
2017-09-26 17:58:07 +09:00
Cedric BAIL 39318789a8 elementary: migrate elementary_config to use the new macro with lifecycle support. 2017-09-25 15:52:36 -07:00
Daniel Kolesa 1577c576e6 eolian: remove static_array and terminated_array
These types are of questionable value and the API was not entirely
thought out - remove for now, and if a legitimate use is found
later, they may be readded (with a better API), but typically it
seems best to redesign the bad APIs around safe containers...
2017-09-22 18:01:15 +02:00
Vincent Torri 0cdd501246 EFL For WIN32: Replace HAVE_EVIL define with _WIN32 2017-09-22 05:06:10 -05:00
Jean-Philippe Andre 112edeeea8 elm: Remove range "span_size" API in EO
Reasons:
 - This API has been confused with the min size of the widget, resulting
   in badly laid out applications.
 - The EO API was not very nice (Range is about numbers, the Gfx size
   hint in a part is really ugly).

While I understand the value of this API and how it can be used in
scalable applications, it is in fact not absolutely necessary.
Alternatively to that span size, the widget min size can already be
defined from the application side, or the widget can simply be expanded
to fill in its parent.

This can obviously be reinstated later if the need arises for EO. For
now, keep this feature as legacy-only.
2017-09-21 12:27:34 +09:00
Daniel Hirt 1a854d892f Ui text: add Efl.Ui.Text_Async object
Adds "Efl.Ui.Text_Async" object.
This new widget uses the "async_layout" functionality of the underlying
Efl.Canvas.Text object.

Currently, if "editable" mode is enabled, there is no asynchronous
layout, as interactive operations (e.g. typing) should get processed
immediately. Thus, only "non-editable" instructs the text object to do
asynchronous layout.

@feature
2017-09-20 14:50:09 +03:00
Daniel Hirt acd1c409a0 Ui text: add null checks for anchor update
Add null checks in case item was not found.
Also use one more emoticon to test the provider.
2017-09-20 09:19:33 +03:00
Sungtaek Hong 40e23ca459 efl_ui_image: add new scale type: EFL_UI_IMAGE_SCALE_TYPE_TILE
Summary:
Tile is common type which can be used eg: background.
This is added to scale type which can be set/get by
efl_ui_image_scale_type_set/get()
@feature

Test Plan:
Run elementary test
           Run Image Scale Type
           Check radio "Tile".

Reviewers: jpeg, cedric, woohyun

Differential Revision: https://phab.enlightenment.org/D5119
2017-09-19 18:18:07 +09:00
Jeonghyun Yun cc691776f3 els_tooltip: Fix to use some functions before tooltip_test_set or tooltip_content_cb_set
Summary:
If user call tooltip_orient_set or tooltip_style_set or tooltip_window_mode_set
before tooltip_test_set or tooltip_content_cb_set, those functions doesn't work.
Because elm_tooltip will be created when tooltip_content_cb_set is called.
I fixed logic to use some functions before tooltip_test_set or tooltip_content_cb_set.

Test Plan: elementary_test -> Popups -> Tooltip

Reviewers: jpeg, Jaehyun

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5183
2017-09-19 17:05:15 +09:00
Sungtaek Hong 40be6c9582 elm_map: keep overlays list when showing overlays
Summary:
In elm_map_overlay_show and elm_map_overlays_show,
it frees overlays list members. This lists are used
in elm_map_overlay functions, so should remain.

Test Plan:
1. Run elementary_test -> Geographic -> Map
2. Click group overlay (whose text is "3") -> bubble appears
3. Click "Show" button -> observe no more Eina Magic Check Failure appear.

Reviewers: jpeg, cedric, woohyun

Differential Revision: https://phab.enlightenment.org/D5191
2017-09-19 16:37:00 +09:00
Jean-Philippe Andre e28aba0542 efl: Use Eina.Position2D for input events 2017-09-19 10:51:48 +09:00
Jean-Philippe Andre 1f242afdef evas: Use Eina.Size2D for gfx.buffer
For consistency.
2017-09-19 10:51:48 +09:00
Jean-Philippe Andre d8eea084fb efl: Use Eina.Size2D for size hint aspect 2017-09-18 16:50:58 +09:00
Jean-Philippe Andre a72f3ec64e efl: Use Eina.Size2D for size hint combined min
For this patch I decided to add a pseudo legacy wrapper as the function
is called in a very large number of places. Fixing all those calls to
use the size2d form is a lot of work and a greater risk of b0rking
something.
2017-09-18 16:33:33 +09:00
Jean-Philippe Andre 3bff7363b5 efl: Use Eina.Size2D for size hint min 2017-09-18 14:42:52 +09:00
Jean-Philippe Andre d24dcb3c24 efl: Use Eina.Size2D for size hint max 2017-09-18 14:20:03 +09:00
Jean-Philippe Andre 4c634ed78e efl: Use Eina.Size2D for Efl.Gfx.size
Big patch as a lot of things call or reimplement size_set. Hopefully I
got it right... fingers crossed.
2017-09-18 13:34:50 +09:00
Jean-Philippe Andre 8fb194d969 efl: Use Eina.Position2D for Efl.Gfx.position
Note: This is a little bit more cumbersome in some places but in most
it's more convenient than (x,y).
2017-09-18 13:22:54 +09:00
Jean-Philippe Andre f3eff6eb3e 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
2017-09-18 13:22:52 +09:00