Commit Graph

581 Commits

Author SHA1 Message Date
Daniel Kolesa 4f5b72a3ed eo files: convert various to use @cref 2017-11-02 16:41:01 +01:00
Daniel Kolesa cf63573e73 eolian: only allow reference (ownable) types in containers 2017-11-02 13:51:02 +01:00
Daniel Kolesa b4705ea968 elementary: use @cref where possible 2017-11-01 12:50:36 +01:00
Jean-Philippe Andre b8ca1272ae evas: Add seat argument to 'pointer_inside' (EO)
This merges pointer_inside and pointer_inside_by_device.
Affects only EO.
2017-11-01 11:22:33 +09:00
Jean-Philippe Andre ebe945c8d8 evas: Remove specific pointer_inside API
This is a name clash. It doesn't matter too much since Evas.Canvas isn't
meant to be exposed to the EO API.
2017-11-01 11:22:33 +09:00
Amitesh Singh 5298cb59d2 Efl.Ui.Format: implement generic format_string function
This generic format_string would be used in slider,progressbar
and other widgets.This default function handles INT
and DOUBLE eina value types for now.

Ref T6204
2017-10-26 21:11:36 +09:00
Youngbok Shin 9906cd211f evas textblocke: add align=end for putting a text at the opposite side of LTR/RTL
Summary:
There is a requirement for putting text at right side for LTR and at left side for RTL.
It satisfies that reqirement easily.

It also add "start" keywork for "align" tag. "start" will be same with "auto".
Intuitionally, developer will try "align=start" if they once saw "align=end" in elsewhere.
On the other hand, it only add "END" as new enumeration value for efl interface.
@feature

Test Plan: N/A

Reviewers: herdsman, cedric, jpeg, raster

Reviewed By: raster

Subscribers: woohyun

Differential Revision: https://phab.enlightenment.org/D5342
2017-10-26 11:40:44 +09:00
Jean-Philippe Andre 24c0eced77 config: Simplify EO API
This is:
 - using a property (but terribly ugly due to the ownership on the
   returned value)
 - removing an unused function

Note: This interface Efl.Config covers only elm_config for now. But it's
very generic and could be used in the future for application specific
configuration.
2017-10-18 19:32:00 +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
Amitesh Singh 2d477f5672 efl_ui_format: change Eina.Strbug to @in type 2017-10-17 14:03:36 +09:00
Amitesh Singh 329dcfccd7 efl_ui_format: fix the namings and docs
it is based on review comments by Gustavo and JP.
2017-10-17 13:37:26 +09:00
Amitesh Singh 0088143ccb efl intf: Add format interface
Ref T6204
2017-10-16 21:26:25 +09:00
Cedric BAIL 1551f8b857 efl: properly initialize Eina_File.
CID 1381605.
2017-10-05 16:24:47 -07:00
Cedric Bail beb6bde166 efl: make Efl.File a mixin that implement file_set for everyone. 2017-10-04 20:58:06 -07:00
Carsten Haitzler 6867158eb3 efl text markup - fix hex check to be or not and - found by coverity
fix CID 1381491
2017-09-29 09:03:04 +09:00
Daniel Kolesa 7c7e5ec423 eolian: validate inner types of complex types
This makes sure the inner types are all correctly defined and
that freefuncs are actually correctly filled.
2017-09-28 23:22:05 +02:00
Daniel Hirt 69d0646b33 Efl text: add Efl.Text.Markup interface
Adds basic markup operations for text objects, and implements it in
Efl.Canvas.Text.

Also, this adds the Efl.Text.Markup_Util class.
This utility class allows basic text-markup conversions.

@feature
2017-09-28 19:32:02 +03:00
Jean-Philippe Andre 76ab8e3f54 efl: Remove @owned tag from pack/content APIs
Refer to the previous commits for more context.

When an evas object is given to a container, be it with a variant of
efl_pack() or efl_content_set(), its "ownership" is given to the new
parent container. But ownership here means that the new container may
delete the child when it sees fit (i.e. when the container itself dies,
for instance). This does not mean that a reference was passed from the
calling context to the container. The actual EO owner of the child is
always the canvas or another canvas object, even if it the object is
unpacked.

Note: This means that invalid calls to efl_pack or efl_content_set will
not automatically delete the child object. This is the same as legacy,
and results in floating objects. Just check the return value! :)

Hopefully this is correct for bindings.
2017-09-28 17:29:03 +09:00
Jean-Philippe Andre 96d94e0076 evas: Fix dangling references with input devices
This solves issues with efl_input_dup() which didn't properly give a
reference to the caller, resulting in dangling eo ids.

Note: This may trigger leaks (instead of invalid refs), but this now
actually reflects the meaning of @owned. This should work with bindings
and C API users should know to call efl_unref().

This patch is the reason for the previous improvements on eo_debug.

@fix
2017-09-28 12:30:36 +09:00
Jean-Philippe Andre 8557fe818f input: Move pointer props to Canvas
efl_input_pointer_position is defined by two classes... bad!

Fixes T6066
2017-09-26 17:58:07 +09:00
Youngbok Shin 1750410650 evas: Add scale feature for embedded bitmap fonts.
Summary:
When evas selects a strike of embedded bitmap font,
calculate ratio and use it for scaling embedded bitmap.
@feature

Reviewers: jpeg, tasn, woohyun, raster, herdsman

Reviewed By: raster

Subscribers: charlesmilette, Francesco149, cedric

Differential Revision: https://phab.enlightenment.org/D2713
2017-09-26 11:31:31 +09:00
Daniel Kolesa 9009d3dae4 eolian: add any_value_ptr
Because pointer Eina_Values and value Eina_Values have slightly
different semantics (when it comes to resource management) it's
better to split them.
2017-09-22 20:25:31 +02:00
Daniel Kolesa 3d8081d085 eolian: rename generic_value to any_value 2017-09-22 20:16:06 +02:00
Daniel Kolesa fdd27cadf8 eo: make more freefuncs implicit 2017-09-22 16:17:19 +02: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
Bryce Harrington c88aadb42a efl interfaces: Fix typo in doc
Reviewers: cedric

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D5209
2017-09-19 12:15:55 +09:00
Jean-Philippe Andre e4517b28d6 efl: Use Eina.Size2D for screen size
This API isn't so great when considering Wayland...
2017-09-19 10:51:48 +09:00
Jean-Philippe Andre 8bf06f95fe evas: Use Eina.Rect for load_region 2017-09-19 10:51:48 +09:00
Jean-Philippe Andre a3250f975a efl: Use Eina.Size2D for image load size 2017-09-19 10:51:48 +09:00
Jean-Philippe Andre 89a7d9ea8e efl: Use Eina.Size2D for image size 2017-09-19 10:51:48 +09:00
Jean-Philippe Andre b19ee757e5 efl: Use Eina.Size2D in Gfx.View 2017-09-19 10:51:48 +09:00
Jean-Philippe Andre 2df8ad36b4 evas: Use Eina.Slice on the stack (gfx.buffer) 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 686366a03b evas: Use Eina.Rect for object list functions
- objects_at_xy_get
- object_top_at_xy_get
- objects_in_rectangle_get
- object_top_in_rectangle_get
2017-09-19 10:51:48 +09:00
Jean-Philippe Andre bfd9487b94 efl: Use Eina.Size2D for Efl.Canvas.max_image_size
Rarely use
2017-09-19 10:51:48 +09:00
Bryce Harrington ea811a9174 efl interface: add Eo API documentation for path and shape interpolation
Subscribers: cedric, jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-09-18 11:18:43 -07:00
Jean-Philippe Andre d8eea084fb efl: Use Eina.Size2D for size hint aspect 2017-09-18 16:50:58 +09:00
Jean-Philippe Andre 6b5d155918 efl: Use Eina.Size2D for size hints base & step 2017-09-18 16:38:47 +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 7d2b4b6916 efl: Use Eina.Size2D for size hint restricted min
This is the "internal" or "intrinsic" minimum size, to be set by EFL and
not by applications.
2017-09-18 14:57:52 +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 994d32f2a8 gfx: Add comment about visibility 2017-09-18 13:55:59 +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
Daniel Kolesa 1afd3c215f eolian: correctness fixes in tests and eo files 2017-09-15 17:48:28 +02:00
Daniel Kolesa 9622511df0 efl interfaces: convert to new ownership 2017-09-15 16:57:44 +02:00
Jean-Philippe Andre 89733b22f6 efl_gfx_fill: Use Eina.Rectangle for fill (EO) 2017-09-13 18:09:19 +09:00
Jean-Philippe Andre 21c72948db efl_gfx: Remove color_part API (EO)
This API was introduced in commit:
  cd3f8db506

This was since limited to EO only APIs, and totally underexploited.
After that, efl_part() was introduced, which defines how all part APIs
should be designed.

Nothing uses this API, efl_vg had an implementation that provides no
extra value over the other APIs.
2017-09-13 18:03:34 +09:00
Jean-Philippe Andre 13da5e980e efl_gfx: Use Eina.Rectangle for geometry (EO)
This saves a few lines already (without even having the proper helpers
for stack rectangles).
2017-09-13 18:03:34 +09:00
Amitesh Singh 120d0673a9 efl.ui.range: remove interval_enable/set/get APIs from interface
Remove interval related apis from interface since interval slider
implements these features now. Although legacy range APIs would still
work on slider widget.
2017-09-12 18:08:42 +09:00
Felipe Magno de Almeida 743f52a05b efl: Make models 0-based index, not 1-based 2017-09-07 12:36:48 +09:00
Daniel Kolesa 0af3254020 eolian: fix float parsing with locales with ',' decpoint 2017-09-01 16:08:10 +02:00
Jean-Philippe Andre 4b74ca477d gfx_size_hint: Fix int vs. double (EO)
Thanks Sanghyeon for letting me know!
2017-09-01 10:09:37 +09:00
Stefan Schmidt 8b4ef410c3 docs: efl_text_annotate: fill in missing documentation 2017-08-31 17:33:01 +02:00
Stefan Schmidt 30b357bd1b docs: efl_inout_device: fill in missing docs 2017-08-31 17:32:21 +02:00
Stefan Schmidt f4fcb65bb4 docs: efl_text_cursor: add missing documentation for many parts 2017-08-31 16:15:32 +02:00
Stefan Schmidt 72f16b48ba docs: efl_text_font: fill in missing parts of documentation 2017-08-31 15:26:17 +02:00
Stefan Schmidt fedef597cf docs: efl_text_format: fill missing parts documentation 2017-08-31 15:16:17 +02:00
Stefan Schmidt 52d6cb7612 docs: efl_text_style: fill in missing documentation parts 2017-08-31 15:03:47 +02:00
Stefan Schmidt 6dd83b3034 docs: efl_text_style: document color components in styles
RGBA should be pretty clear for most cases but it does not cost us much
to document these values as well and make the documentation maybe easier
to understand for some people.
2017-08-31 14:42:26 +02:00
Daniel Kolesa af6713ebb4 efl interfaces: fix incorrect enum val 2017-08-30 15:34:49 +02:00
Jean-Philippe Andre 29bacf5988 gfx: Remove size hint request (EO)
This hint is simply not supported by any container.
Add the EO API back if the containers support it.

Ref T5487
2017-08-23 15:24:37 +09:00
Jean-Philippe Andre db4950ba2f efl: Remove Efl.Orientation horiz & vert (EO)
They are now replaced by Efl.Ui.Dir

NOTE: The name Efl.Ui.Dir is not satisfactory. Maybe we should use
Direction_Type or Direction_Value?

Ref T5870
2017-08-23 15:24:37 +09:00
Daniel Zaoui 2f53bdfe60 Move efl interfaces from evas to efl directory
You may need to remove your installed directory to avoid conflicts
2017-08-22 09:53:24 +03:00
Mike Blumenkrantz 595aa6bbb4 efl: add EFL_VERSION_1_21
indicate that features from this version can be used
2017-08-14 07:25:04 -04:00
Jean-Philippe Andre 6372dcdc2d grid: Switch to Efl.Ui.Dir (EO)
Ref T5870
2017-08-10 14:42:08 +09:00
Jean-Philippe Andre 43c07afbf1 flip: Switch to Efl.Ui.Dir (EO)
Ref T5870
2017-08-10 14:42:08 +09:00
Jean-Philippe Andre 4270cb032c efl: Introduce Efl.Ui.Direction interface
This introduces, but doesn't make any use of, two types:
 - EO interface Efl.Ui.Direction
 - Enum Efl.Ui.Dir

This is to clean up inconsistencies with Efl.Orient values when used
with widgets.

Ref T5870

@feature
2017-08-10 14:42:08 +09:00
Daniel Hirt 4923945f81 Text: move Annotation type to Efl.Text.Annotate namespace 2017-07-17 17:38:28 +03:00
Daniel Hirt d5f781da2b Efl text: replace all usages of cursor handle to same type
Changes cursor handle name from 'Efl.Text.Cursor.Cursor_Data' to
'Efl.Text.Cursor.Cursor'.
Also, replace all usages of Efl_Canvas_Text_Cursor
with Efl_Text_Cursor_Cursor as the handle for the cursor.
2017-07-17 16:51:45 +03:00
Sungtaek Hong 1ae77d0925 Efl.Observable: Free an iterator after use in observers_update()
Summary:
- In _efl_observable_observers_update() iterator is allocated but not freed.
- This frees the iterator.

@fix

Reviewers: conr2d, jpeg

Reviewed By: jpeg

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4994
2017-06-30 13:32:23 +09:00
smohanty cf927cdb34 efl/interface: emit path change event when stroke width change.
Reviewers: jpeg

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4991
2017-06-29 17:39:09 +09:00
Daniel Hirt 108bf99564 Efl text cursor: move around a few definitions
Need to handle this with special care as Efl.Text.Cursor is used in
some functions that are specific to Efl.Canvas.Text, was well as
functions in Efl.Text.Cursor interface.
2017-06-19 10:15:05 +03:00
Daniel Hirt d0da405620 Efl text format: change "halign" and "valign" to use enums
Value-based alignment (e.g. 0.5, 0.3 etc) isn't very practical.
Horizontal and vertical alignments will be assigned with enums
"left", "center", "right", "auto", "locale", for horizontal alignment,
and "top", "center" and "bottom" for vertical alignment.

This changes the previously added "halign" and "valign" properties.
2017-06-19 10:15:05 +03:00
Felipe Magno de Almeida 0fcee227aa eolian-cxx: Fix C++ generation errors with handle opaque types 2017-06-18 11:31:43 -03:00
Jean-Philippe Andre 6bfbeff47e widget: Move mirrored_automatic to Efl.Ui.Base
This is, unlike what some of the documentation says, a public
API on elm_object. Let's place it along mirrored for consistency,
even if edje object will not implement it.

Ref T5363
2017-06-15 17:35:44 +09:00
Amitesh Singh a7b49f2129 intf: range: rename unit_format to range_unit_format
ref T5361
2017-06-15 13:57:45 +09:00
Amitesh Singh 4e79dd0f02 slider: remove range APIs
move this api into range intf and rename it
to interval

ref T5361
2017-06-15 13:57:45 +09:00
Amitesh Singh 0911375d51 intf: rename progress to range
This is more appropriate name especially on slider widget.

ref T5361
2017-06-15 13:57:45 +09:00
Amitesh Singh 34b6d6d267 intf: Efl.Ui.Progress: Add progress_min_max property
We need this for slider and progressbar widgets

ref T5361
2017-06-13 18:05:06 +09:00
Jean-Philippe Andre e8b69bed83 efl.canvas: Add "seat" (by id) and "device" (by name) properties
See d47197e65b

@feature
2017-06-12 15:21:57 +09:00
Jean-Philippe Andre e8f9f109a6 evas: Rename device Class to Type, remove Sub_Class
1. The word "class" is a pain point with many languages where
   it's a keyword. Type is a little better. Also, the property
   was already named "device_type" and not "device_class".

2. Remove Efl.Input.Device.Sub_Class
   It's not used inside EFL upstream codebase, and unlikely to
   be used anywhere else (even in Tizen).

Hopefully no one used the Efl_ enum types. So far only the Evas_
types should be in used.

Ref T5540
2017-06-12 15:21:55 +09:00
Jean-Philippe Andre 83d18617b4 evas: Remove device "parent", "name" and "description" properties
Those are now merged with Efl.Object parent, name and comment.
The reasoning is that only seats can be parent devices; And name
and description are not only name clashes but also not extremely
useful anyway.

Tested with VNC.

Fixes T5540
2017-06-12 15:17:50 +09:00
Jean-Philippe Andre 2dc29cfbfd edje: Remove bool return from scale_set
It was always returning true. There is little point in returning
a bool here, an invalid scale value (eg. <= 0) wouuld lead to a
state where scale_get() != scale_set() and that's about it.
2017-06-12 11:50:30 +09:00
Jean-Philippe Andre 07a25fc88c edje: Move base_scale to Efl.Ui.Base
This API is used by elementary widgets like:
  edje_object_base_scale_get(elm_layout_edje_get(ly));

This means elm_layout in fact should also expose it directly.

Ref T5315
2017-06-12 11:50:30 +09:00
Daniel Hirt 616a60f041 Efl text: shorten naming of methods
eo_prefix are set to "efl_text".
Also, "Efl.Text.Format" is shortened to now include the "_format"
prefix.
"Efl.Text.Font" keeps the "_font" prefix, for better readability.
2017-06-12 00:32:34 +03:00
Daniel Hirt 3edf4985a4 gfx_filter: add efl_style_gfx_filter
Also, rename the format string to 'gfx_filterstr' to match the other
strings.

Update the filter test to use this property.
2017-06-12 00:10:05 +03:00
Daniel Hirt 869da955ec Text: enhance cursor_get to ask for a "get type" 2017-06-12 00:10:05 +03:00
Daniel Hirt 4a1b42aee8 Text: add annotate interface 2017-06-12 00:10:04 +03:00
Daniel Hirt 30f74a759d Text cursor: add interface and implement in Canvas.Text 2017-06-11 23:58:52 +03:00
Daniel Hirt 49b838c448 Canvas text cursor: move to Efl.Canvas.Text namespace
Originally it was its own object.
There are some valid claims that there is no justification for it to
remain an object.
Furthermore, it's apparent that it added little benefit: changes of
each cursors, in practice, triggered a query for all objects of the
same textblock. There wasn't real advantage to have a finer resolution
of controlling the cursors with their own events.

This ports back a lot of code, and changes a lot of other code in the
higher-up widgets, such as Efl.Ui.Text and co.

The usage was replaces from:
  efl_canvas_text_cursor_char_next(cur_obj)
to
  efl_canvas_text_cursor_char_next(text_obj, cur_obj)
that is, it is an operations on the TEXT OBJECT, rather than on the
(now removed) cursor object.

So, one less efl object to worry about now.
Hopefully, the port went smooth.
2017-06-11 23:58:52 +03:00
Mike Blumenkrantz 9572e9189d efl_input_device: add function for determining if a device has pointer caps
this is useful when attempting to manage devices

@feature
2017-06-09 19:14:59 -04:00
Mike Blumenkrantz 5b39bb5a3d efl: add EFL_VERSION_1_20
indicate that features from this version can be used
2017-06-09 19:14:58 -04:00
Mike Blumenkrantz bdadd3bac3 efl_input_device: do not free list when freeing children iterator
disappoint.jpg

@fix
2017-06-02 18:23:42 -04:00
Stefan Schmidt e3a073c0a8 docs: efl_text_style: add docs for various style related enums 2017-06-02 09:21:11 +02:00
Stefan Schmidt 6bc5e2ddfc docs: efl_font_format: add docs for Efl.Text.Format.Wrap enum 2017-06-02 09:21:11 +02:00
Stefan Schmidt c01052dafb docs: efl_text_font: add docs for font width and slant enums 2017-06-02 09:21:11 +02:00
Stefan Schmidt b0d056f291 docs: efl_text_font: add docs for font weight enum
Who comes up with font weight names like extrabold or black? :)
2017-06-02 09:21:11 +02:00