Commit Graph

4689 Commits

Author SHA1 Message Date
Mike Blumenkrantz cc5f8c6852 edje_cc uses macros for some of its handler setup
this reduces code size, ensures consistency, and actually fixes bugs where the "filter" keyword was erroneously disallowed in some places

@fix
2014-03-21 22:09:54 -04:00
Mike Blumenkrantz 499020ce4d edje_cc no longer reads every character of a script during parsing 2014-03-21 22:08:19 -04:00
Mike Blumenkrantz 0681af5ca1 edje_cc group.remove should probably be group.part_remove
this allows things like group.program_remove to exist
2014-03-21 16:50:12 -04:00
Mike Blumenkrantz 68d8afac9d eeze_udev gets more helper functions
eeze_udev_syspath_get_parent_filtered, eeze_udev_syspath_check_property, eeze_udev_syspath_check_sysattr

@feature
2014-03-21 16:40:52 -04:00
Mike Blumenkrantz 4619c3de4e edje_cc now supports part.inherit for copying attributes of parts within a group more easily
@feature
2014-03-21 15:47:04 -04:00
Mike Blumenkrantz 79a6653f59 edje_cc error message for description with missing state is now useful 2014-03-21 15:40:40 -04:00
Mike Blumenkrantz fa14af1afb edje_cc no longer errors when inheriting a description before/when state is not set
anonymous states are allowed in other places, so having this check is inconsistent and breaks inheriting. an error will be triggered at a later point.
2014-03-21 15:25:15 -04:00
Mike Blumenkrantz 153e3b45b4 edje_cc now supports group.remove for removing parts from inherited groups
@feature
2014-03-21 15:12:38 -04:00
Mike Blumenkrantz cc6eed2f86 eio monitors no longer trigger a CRI error during free
@fix
2014-03-21 14:21:04 -04:00
Jean-Philippe Andre b027e58a96 Evas filters: fix potential memory leak
Unlikely use case trying to delete a source when there are no
sources yet.

@fix
2014-03-21 15:23:02 +09:00
Jean-Philippe Andre fc3472aae5 Evas filters: Fix Eo documentation of program.set
The generated header "looked" a bit broken and some bits of doc
were dropped during the transition. Not a very big deal. :)
2014-03-21 15:23:02 +09:00
Jean-Philippe Andre eee3c1c773 Evas filters: Allow BLUR and GROW with radius 0
Fallback to a standard blend instruction instead of failing
miserably just because the radius is 0.
2014-03-21 15:23:02 +09:00
Jean-Philippe Andre 91a471b4dc Evas filters: Add new instruction padding_set
This will allow forcing a specific value for the filter padding,
instead of relying on auto calculation.

Two advantages:
- Auto calculation can't be perfect, since it will add as much
  padding as required for the full blur effect
- This prepares the path for animations with effects, where the
  object size does not change over time
2014-03-21 15:23:02 +09:00
Jean-Philippe Andre c7616dd738 Evas filters: Fix blur corner cases with small images
If the buffer size is smaller than the blurring kernel, then
special precautions must be taken to properly read the source
pixels. Also, fix the corner cases near the left & right edges
(or top & bottom).
2014-03-21 15:23:02 +09:00
Jean-Philippe Andre 919b32be20 Evas filters: fix blur from rgba to output buffer
When blurring an RGBA buffer to the output buffer,
we don't need to convert the colorspace... but then we'll just
override what was already there.

Introduce a 'dirty' flag set to true whenever a command writes
to an output buffer.
2014-03-21 15:22:54 +09:00
Mike Blumenkrantz c4fc401d87 edje_cc now supports program.targets keyword for adding N targets in one line
@feature
2014-03-20 19:40:51 -04:00
Mike Blumenkrantz d025f89b2e edje_cc also checks min args correctly for STATE_SET actions
@fix
2014-03-20 19:27:48 -04:00
Mike Blumenkrantz 0f1ccdad09 edje_cc now correctly handles lack of state int in STATE_SET action
@fix
2014-03-20 19:20:50 -04:00
Mike Blumenkrantz edf825fd07 edje_cc no longer fails on collections.group{}
@fix
2014-03-20 14:59:58 -04:00
Daniel Zaoui bfbcc47d44 Eolian/Lexer: fix parsing of parameters direction.
strncmp bytes number was not correct. A problem in the generation was
occurring when the parameter is @inout, as it is considered as @in and
the type was "out ...".
2014-03-20 10:22:20 +02:00
Cedric BAIL 837391c5da evas: let's be more resistant even with things that should never happen.
Fix CID 1193212.
2014-03-20 16:53:13 +09:00
Cedric BAIL f26b370584 edje: let's be more careful with string.
Fix CID 1193213.
2014-03-20 16:51:48 +09:00
Cedric BAIL fe2948be08 evas: let's be to safe than sorry.
Fix CID 1193214.
2014-03-20 16:50:48 +09:00
Cedric BAIL 15654012a6 edje: let's be careful on the string content.
Fix CID 1193215.
2014-03-20 16:48:38 +09:00
Cedric BAIL 41a9e2149e eio: let's not divide by 0.
fix CID 1193208.
2014-03-20 16:47:25 +09:00
Jeff Grimshaw cf5192025f efl/eina: General cleanup of Eina documentation
Summary:
I've combed through the Eina source files and made enhancements to the
documentation, including:
- Document the undocumented
- Fixed some errors in Doxygen markup
- Moved some function documentation from implementation (.c or .x) to definition
  (.h)
- Edited some of the entries to improve clarity

Test Plan: Reviewers

Reviewers: cedric

Reviewed By: cedric

CC: cedric

Differential Revision: https://phab.enlightenment.org/D639
2014-03-20 16:35:42 +09:00
Chris Michael b87cbf8fe4 ecore-drm: Fix absolute motion coordinate calculation
@bugfix: When calculating center point for absolute motion, use the
proper min_y value for calculating Y axis

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-20 07:15:23 +00:00
Daniel Zaoui 56b4113668 Eolian: fix prototype for Eo_Base function.
The return type was defined as a out param. It creates issues in the
generation made by Eolian.
2014-03-20 07:14:56 +02:00
Tae-Hwan Kim 3061a706c4 Add new PLUGIN_RUN action type and new plugins.plugin handlers 1. If external library is commerical source and not opensource, we cannot include/build the library within edje. 2. If external library does not use general encodable sources, we...
Summary:
...cannot encode those things into edje.

In our case, we need vibration when longpressed. But those files are not
audio or image and cannot be encoded into edje. Also, this library is not
opensource so should not be linked directly with edje.
So we should call vibration API by using this plug-in.

Reviewers: raster, cedric, seoz, Hermet

CC: cedric

Differential Revision: https://phab.enlightenment.org/D588
2014-03-20 13:00:21 +09:00
Jean-Philippe Andre 079e5d3692 Evas image: Improve diagrams in comments
Purely non functional change, for readability :)
2014-03-20 11:13:32 +09:00
Jihoon Kim a9cfcf8dde Fix dereference null return value
CID 1193210
CID 1193211
2014-03-20 08:44:56 +09:00
Stefan Schmidt 3716e9b12c eo: Make sure we have a va_end matching the va_start before returning.
Was fien on the normal path but missing on the error path. Also remove
the spurious break after the return. Would never be reached. Looks like
a copy and paste bug to me.

CID 1187638
2014-03-19 16:46:36 +01:00
Stefan Schmidt 44a54caa16 eolian/eo1_generator: Fix leak in error path
We allocated tmpstr so we should free it before we return in the error case.

CID 1191926
2014-03-19 16:40:52 +01:00
Stefan Schmidt 897b70437f evas/engine/drm: Avoid shadow of a function parameter
Having the same name for a parameter as well as a local var name could
cause quite some problems. Better avoid it.
2014-03-19 16:16:55 +01:00
Stefan Schmidt 80497d75bc evas/gl_x11: Cast GLubyte to const char for strstr
The GLubyte we are getting back here are strings we want to search
in with strstr. Cast is only to avoid warnings.
2014-03-19 11:48:46 +01:00
Tom Hacohen 6a66af39cb Eolian helper: Depend on eolian_gen when building externally as well.
This means that eolian files will be regenerated when the generator is
updated.
2014-03-19 09:40:46 +00:00
Daniel Zaoui d5256d442d Eolian/Generator: Don't generate sub ids structure if not needed.
If no methods and properties are declared for a class, no base id and
sub_ids structure are generated.

@fix
2014-03-19 07:52:04 +02:00
Yossi Kantor de0c0f0fd8 Eolian: Added class constructor delegate to Evas Box 2014-03-19 07:04:28 +02:00
Daniel Zaoui 9b0a502562 Eolian/Lexer: increase buffer length for .eo files
@fix
2014-03-19 07:04:28 +02:00
Daniel Zaoui 6fd341a449 Eolian: Fix ctor/dtor generation 2014-03-19 07:04:28 +02:00
Daniel Zaoui 15f2bda474 Eolian/Generator: fix generation of events. 2014-03-19 07:04:28 +02:00
zmike beff8db14e ecore drm now semi-supports absolute motion (touchpads!)
this is a little bit sensitive. you have been warned
2014-03-18 17:53:32 -04:00
Mike Blumenkrantz 2aabdb8f48 ecore drm evdev probably shouldn't treat my touchpad as a keyboard (BTN_TOOL_FINGER)
this is pretty insane and likely needs more competent/reliable handling
2014-03-18 16:12:58 -04:00
Mike Blumenkrantz 34acd14563 ecore-drm fails with appropriate error message on failing to open input 2014-03-18 14:24:06 -04:00
Tom Hacohen aad13a286f Evas text: Make tests more lax so they'll work on Ubuntu.
It seems that a different version of freetype is causing some different
values to be calculated for some glyphs. Also, we consider the whole
font list when calculating max ascent/descent, so there will always be
differences there.

This commit just laxes the tests, requiring the values to be at least
the values we expect from our font.

Fixes T1079
2014-03-18 15:02:13 +00:00
Tom Hacohen 7fd1ffc8c1 Evas box: Use the correct include for the generated eo file. 2014-03-18 12:07:57 +00:00
Chris Michael 6f66369710 ecore-evas-drm: Add support for setting aspect of ecore_evas
@feature: This adds support for ecore_evas_aspect_set to the drm engine

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-18 11:23:49 +00:00
Chris Michael bd13b46e25 ecore-evas-drm: Add support for alpha & transparent setting
@feature: This adds (preliminary) support for ecore_evas_alpha_set and
ecore_evas_transparent_set

NB: This is just the function placeholders and does not actually
implement transparency yet

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-18 11:21:02 +00:00
Chris Michael c0e3f73391 ecore-evas-drm: Add support for maximized, fullscreen, withdrawn, and
ignore_events settings

@feature: This adds support for: ecore_evas_maximized_set,
ecore_evas_fullscreen_set, ecore_evas_withdrawn_set, and
ecore_evas_ignore_events_set functions to the drm engine

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-18 11:11:23 +00:00
Chris Michael b95174b21d ecore-evas-drm: Add support for ecore_evas_borderless_set
@feature: This adds support for setting the ecore_evas to borderless

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-18 11:00:32 +00:00
Chris Michael a6bf2e3535 ecore-evas-drm: Add support for ecore_evas_iconified_set
@feature: This adds support for ecore_evas_iconified_set in ecore_evas
drm engine.

NB: This does not actually iconify the ecore_evas yet tho

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-18 10:52:10 +00:00
Chris Michael 11de8bfae1 ecore-evas-drm: Add support for ecore_evas_layer_set
@feature: This adds support for ecore_evas_layer_set function used to
set the layer of the ecore_evas

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-18 10:50:26 +00:00
Chris Michael 2ed6452286 ecore-evas-drm: Add support for ecore_evas_object_cursor_set
@feature: This adds support for setting an Evas_Object as the cursor
to use on the ecore_evas

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-18 10:48:16 +00:00
Chris Michael 467ad3119e ecore-evas-drm: Add support for setting size hints
@feature: This adds support for ecore_evas_size_min_set (and other
size hint functions).

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-18 10:42:19 +00:00
Chris Michael de8b2e735a ecore-evas-drm: Add support for ecore_evas_name_class_set
@feature: This adds support for setting the name & class of the
ecore_evas

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-18 10:38:36 +00:00
Chris Michael 69adb7a44e ecore-evas-drm: Add support for setting the title of the ecore_evas
@feature: This adds support for setting the title of the ecore_evas
with ecore_evas_title_set

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-18 10:33:38 +00:00
Chris Michael d42f16a603 ecore-evas-drm: Add support for rotation set
@feature: This adds support for ecore_evas_rotation_set function and
updates the Evas rotation accordingly

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-18 10:30:44 +00:00
Chris Michael 5e8b33c1f3 ecore-evas-drm: Add support for ecore_evas_move_resize
@feature: This adds support for the ecore_evas_move_resize function
and calls the appropriate internal functions for this ecore_evas

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-18 10:27:02 +00:00
Chris Michael 34b6657b0e ecore-evas-drm: Add support for ecore_evas_move function
@feature: This adds support for updating the ecore_evas location when
ecore_evas_move is called, and also calling any "move" function of the
ecore_evas.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-18 10:23:55 +00:00
Chris Michael 2baf8c4d76 ecore-evas-drm: Add support for setting the mouse in & mouse out
callbacks of the ecore_evas

@feature: Add support for setting the callback functions to call when
the ecore_evas gets mouse in or mouse out events

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-18 10:20:43 +00:00
Chris Michael 2a5d168323 ecore-evas-drm: Add support for setting focus_in & focus_out callbacks
@feature: Add support for setting the focus in & focus out callbacks
of the ecore_evas.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-18 10:18:58 +00:00
Chris Michael d33d4c86a0 ecore-evas-drm: Add support for resize and move callbacks
@feature: Add support for setting the resize and move callbacks of the
ecore_evas

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-18 10:16:55 +00:00
Chris Michael c3ca3f07bc ecore-wayland: Fix ecore_wl_init 'stalling' when used in a server
@fix: If we are using the ecore_wl library in a "server", we cannot
sit and 'sync' during the init process as that just leaves the server
in a stalled state waiting for ecore_wl_init to complete (which never
does because the server has not finished it's work).

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-18 09:12:57 +00:00
Chris Michael 3ec7c4b517 evas-drm: Fix engine to use the output's framebuffer as window id
@fix: ecore_evas_window_get expects an Ecore_Window to be returned.
Because of this, we need to have a 'window' that can be returned via
ecore_evas. For this case, we will use the output's framebuffer id as
the 'window' so we need to set that into the engine info so that
ecore_evas can fetch it.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-18 09:12:57 +00:00
Chris Michael 18c40befc0 ecore-evas-drm: Fix setting of the ecore_evas property window and
register the prop.window for events.

@fix: ecore_evas_window_get expects an Ecore_Window to be returned so
we cannot use a void pointer in ecore_drm_device_window_get.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-18 09:12:57 +00:00
Chris Michael 0368c4e194 ecore-drm: Fix ecore_drm_device_window_set to use an unsigned int
@fix: The majority of ecore_evas code expects that the 'window' returned
from ecore_evas_window_get be an Ecore_Window. Previously, this was
not possible as this function was using a void pointer. This change
fixes that issue.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-18 09:12:57 +00:00
Yossi Kantor 0311cb6091 Eolian: Integration of Evas Box 2014-03-18 11:08:55 +02:00
Jean-Philippe Andre 7cbe636311 Evas gl: Fix clip in image_draw if it's not set
In evas_gl_common_image_draw, if an image is drawn with a fresh context,
containing no clip and no cutouts, then it will be wrongly clipped to
the source image size instead of the destination surface size.

This case seems to never happen, ever, since the contexts are always
fully set by the render functions.

@fix
2014-03-18 18:03:40 +09:00
Jean-Philippe Andre 8672f3176e Evas gl_x11: Do not premultiply pixels after reading FBO
The pixels are already premultiplied in such an FBO.

(cherry picked from commit 2b3e065ffeb9b587ca35909940beb59b25081e7f)
2014-03-18 15:44:15 +09:00
Jean-Philippe Andre 1a9b58f083 Evas gl: Fix buffer dump filenames
evas_gl_common_buffer_dump can be used to dump all frames into
a series of PNG files. But the filename contained some garbage
characters (and potential segv, too).

(cherry picked from commit a0f886138ed5a28d0d1596df3b805fca06d1ae31)
2014-03-18 15:44:13 +09:00
Jean-Philippe Andre 320a9f18c5 Evas cserve2: Fix client crashes when a file changed
Clients must ignore changed file entries as they are not valid
anymore. The server will also mark the entry as invalid in case
of file update.

@fix
2014-03-18 13:49:05 +09:00
zmike ff2d598b02 avahi shut up if you aren't compiling 2014-03-17 13:48:59 -04:00
Youngbok Shin af69be766c edje/util: set flag to all_part_change when edje class member is added.
Summary:
When edje class member is added, edje need to change member according to
the edje class.

@fix

Reviewers: raster, tasn, woohyun, seoz, Hermet, cedric

Reviewed By: raster

CC: cedric, herdsman

Differential Revision: https://phab.enlightenment.org/D637
2014-03-17 20:23:47 +09:00
Youngbok Shin 7a4b65c735 evas/text: fix the issue that size of evas text object be shorten repeatly when ellipsis is shown.
Summary:
When the text was shorten by ellipsis, object size was fit to the text width.
If new text was set to the object, the text calculated with the smaller size.
It made shorten the object size when the text is set repeatly.
If the text is cutted off with ellipsis, it means there is no need to
resize the object.

Test Plan: elementary_test -> FileSelector Entry -> Click "Toggle Folder Only mode" button repeatly.

Reviewers: woohyun, tasn, raster, so.penible.animation, Hermet

Reviewed By: raster

CC: cedric, herdsman

Differential Revision: https://phab.enlightenment.org/D636
2014-03-17 19:29:17 +09:00
Cedric BAIL 2b84495168 edje: check font change in edje text part cache infra.
@fix
2014-03-17 19:10:22 +09:00
Yakov Goldberg 8331f6e79f Eolian: fix initialization of Evas Clickable Interface 2014-03-16 18:25:57 +02:00
Daniel Zaoui 5d1b948508 Eolian/Generator: Retrieve the Eo prefix from the database instead of
guessing it.
2014-03-16 16:00:29 +02:00
Daniel Zaoui a94ea3a8b2 Eolian/Lexer: Fix warnings 2014-03-16 15:58:14 +02:00
Daniel Zaoui b467fa9cd6 Eolian/Lexer: fix Windows compilation.
strndup is not supported.
2014-03-16 09:40:06 +02:00
Yossi Kantor 5994846a34 Eolian: Integration of Evas Zoomable Interface 2014-03-16 09:24:05 +02:00
Yossi Kantor 2e9772b11c Eolian: Integration of Evas Selectable Interface 2014-03-16 09:24:05 +02:00
Yossi Kantor 730a403046 Eolian: Integration of Evas Scrollable Interface 2014-03-16 09:24:05 +02:00
Yossi Kantor 7c9ce7dcf1 Eolian: Integration of Evas Clickable Interface 2014-03-16 09:24:05 +02:00
Yossi Kantor 0a6cce196c Eolian: Integration of Evas Draggable Interface 2014-03-16 09:24:05 +02:00
Yossi Kantor 6862fa801b Eolian/Generator: Improved event generation
Line breaks in source files and extern definitions
of events in header files.
2014-03-16 09:23:49 +02:00
Yossi Kantor f82612e3f2 Eolian: Integration of Evas Common Interface 2014-03-16 09:23:00 +02:00
Daniel Zaoui c203df0b5d Eolian: Support default return values from .eo file.
Now, it is possible to assign a default return value for a
method/property.
It will be used in case the function invocation makes issues, e.g eo_do
failing to find the function...
2014-03-16 08:37:23 +02:00
ChunEon Park d200cf29f1 edje/edje_edit - fill up doc for edje_edit_parts_list_get() 2014-03-16 01:23:56 +09:00
ChunEon Park cb79aa9089 evas - add warning to evas_object_freeze_events_set() API doc. 2014-03-16 01:15:58 +09:00
Jeff Grimshaw d76fbe9067 evil: fix Doxygen markup to prevent warnings.
Summary:
The Doxygen header has an opening @\{ with no matching @\}, which
Doxygen will complain about.  There is no explicit grouping associated
with the @\{, so I just removed it.

Test Plan: make doc 2> doxyerr.log

CC: cedric

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

Signed-off-by: Cedric BAIL <cedric.bail@free.fr>
2014-03-15 20:05:24 +09:00
Jeff Grimshaw 9ff9faae70 ecore_drm: fix Doxygen markup to prevent warnings.
Summary:
These files are missing group titles on the @defgroup line.  Added the titles so Doxygen does not
complain.

Test Plan: make doc 2> doc/doxyerr.log

CC: cedric

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

Signed-off-by: Cedric BAIL <cedric.bail@free.fr>
2014-03-15 20:04:24 +09:00
Alex-P. Natsios fa2b1b3d30 evas: improve portability for BSD system.
configure: fix prerequisite header issue

Summary:
in some platforms like openBSD <sys/socket.h> must be included before
net/if.h

the canonical way to ensure that with autotools is by providing that
fourth directive.

evas: use MAP_ANON instead of MAP_ANONYMOUS

Stupid unpredictable standards (or not so standard).
MAP_ANON exists and is defined almost anywhere unlike MAP_ANONYMOUS

Let's use that for portability's sake (they are practically identical
anyway)

Reviewers: raster, cedric

Reviewed By: cedric

CC: cedric

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

Signed-off-by: Cedric BAIL <cedric.bail@free.fr>
2014-03-15 19:58:08 +09:00
Subhransu Sekhar Mohanty 4d8fbd623c evas: add NULL check to avoid crash when clipper dosen't have a layer.
Summary:
There is a crash in naviframe demo and the stack points to the clip set function where it tries to acess evas object
from a NULL layer , by going through the log found out raster has already added the NULL check in clip_unset function
so just added the check in clip_set.

Reviewers: seoz, raster

CC: cedric

Differential Revision: https://phab.enlightenment.org/D625
2014-03-15 19:55:59 +09:00
Tom Hacohen 2eaf9049b9 Evas textblock: Don't include right margin/padding twice when aligning lines.
This should fix enventor issues.

@fix
2014-03-14 12:54:09 +00:00
Daniel Zaoui 66e1cc29bc Eolian/Lexer: support of @own tag on parameter and return values.
This tag indicates that the ownership of the parameter/return
value changes.
It is needed by generators (C++/LUA...) to determine if it has to be
freed or not, if it can be used as is or need to be copied...
2014-03-14 13:21:51 +02:00
Daniel Zaoui 81c2a5d217 Eolian/Generator: return values set to 0.
Before eo_do invocation, generated legacy functions returning a value
initialize it to 0.
This change is needed in the case that eo_do fails to find some
function, which leads to an unitialized value and behavior.
2014-03-14 13:21:51 +02:00
Jean-Philippe Andre 571d7b6287 Evas filters: Fix invalid error check in mapped_blend()
Some filters would not render because I checked the wrong
value. image_draw can not fail, it only returns a bool
indicating asynchronous processing.
2014-03-14 17:00:06 +09:00
Cedric BAIL b0a4bf2808 evas: if the class is the wrong one, you should not do the check after accessing a NULL pointer.
Fix CID 1191978.
2014-03-14 11:51:49 +09:00
Cedric BAIL d8914689d4 evas: let's check NULL for destination object to.
Fix CID 1191976.
2014-03-14 11:44:49 +09:00
Gustavo Sverzut Barbieri f2a1f14abd eet: fix tokenizer's escape logic.
Tokenizer's approach of looking back is horrible and breaks the
following simple case (bug I had that lead to this patch):

          "string\\"

As the parser would get the end quote and check the previous character
if it was a backslash and it was, but it was not escaping the quote,
but being escaped by the previous backslash.

The best approach is to first check for escape and then go to
quote. Escape is simple and only the following byte, so we enter
escape, process the byte and then are back to regular mode (be it
quote or unquote).

Added testcase so we avoid breaking it again.

@bugfix cherry-pick
2014-03-13 22:08:44 -03:00
Tom Hacohen 6242271e74 Ecore x: Add back the two symbols removed in 1.9.
This fixes ABI that got broken in 1.9.

@fix.
2014-03-13 11:06:57 +00:00
Tom Hacohen d52faf7d31 Eolian: Set eolian_flags in .pc files and ship .eo files. 2014-03-13 09:55:29 +00:00
Chris Michael 05e4ba0027 ecore-drm: Set sprite output to NULL by default
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-13 08:15:13 +00:00
Chris Michael 5e7d52dfad ecore-drm: Remove dead commented line
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-13 08:15:13 +00:00
Chris Michael 722704c32c ecore-drm: Remove debug message for key repeat events
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-13 08:15:13 +00:00
Jean-Philippe Andre 7ad4a269e0 Evas gl_x11: Fix usage of glReadPixels
It is not necessary to dynamically link to glReadPixels since
this is not an extension. This code wouldn't even work on some
devices.

Also, the pixels returned are not premultiplied (yeah >_<)

And some devices (EGL) don't support GL_BGRA... so glReadPixels
would just fail and not fill in the pixels. Conversion is required.
2014-03-13 17:04:42 +09:00
Yossi Kantor 7e6c21c44b Eolian: Integration of Evas Out 2014-03-13 09:14:14 +02:00
Yossi Kantor 2219b5434c Eolian: Integration of Evas Image 2014-03-13 09:14:14 +02:00
Daniel Zaoui dcf94e9dd8 Eolian/Generator: fix generation of headers for const params.
When a parameter of a property is const for get but not for set, the
.eo file indicates it by setting a flag 'const' for this parameter.
The generation was checking this flag for C files generation but not for
H files.
2014-03-13 09:14:14 +02:00
Cedric BAIL d3bc06ae33 evas: simplify path logic and make backend code more robust.
Fix CID 1039665.
2014-03-13 10:57:38 +09:00
Cedric BAIL 522cb7756d evas: track modifier in the limited range of unsigned long long.
This fix CID 1191924, CID 1191923, CID 1191922 and CID 1191921.
2014-03-13 10:52:37 +09:00
Cedric BAIL 9b0127f102 evas: be consistent in our check for NULL layer.
Fix CID 1191913.
2014-03-13 10:46:05 +09:00
Cedric BAIL e9d86e8719 evas: protect correctly for object layer not being set.
FIX CID 1191914, CID 1191915, CID 1191916 and CID 1191917.
2014-03-13 10:44:15 +09:00
Cedric BAIL bd2152a1cc evas: protect against potential NULL access.
Fix CID 1191919.
2014-03-13 10:40:14 +09:00
Cedric BAIL 4dcf49c6e9 evas: let's not access a potential NULL object when looping on a corrupted object list.
This fix CID 1191920.
2014-03-13 10:40:14 +09:00
Cedric BAIL 34c836ec60 evas: the while guarantee that obj will be NULL, so let's not access it.
This will fix CID 1191918.
2014-03-13 10:40:14 +09:00
Cedric BAIL e9bd738dc4 evas: restore behavior of stack above and below when no rel is specified.
This will fix CID 1191907 and CID 1191906.

@fix
2014-03-13 10:40:09 +09:00
Cedric BAIL 48aca12d22 edje: external is already used directly before, so checking it is unnecessary.
CID 1191908.
2014-03-13 10:29:27 +09:00
perepelits.m a4d2e42042 edje_edit: adding of NULL-checks
Summary:
New NULL-checks have been added in:

edje_edit_state_color_class_set
edje_edit_state_external_param_get
edje_edit_state_external_param_int_get
edje_edit_state_external_param_bool_get
edje_edit_state_external_param_double_get
edje_edit_state_external_param_string_get
edje_edit_state_external_param_choice_get
edje_edit_state_external_param_set

Reviewers: cedric, seoz, raster

Reviewed By: cedric

CC: reutskiy.v.v, cedric

Differential Revision: https://phab.enlightenment.org/D629
2014-03-13 10:26:20 +09:00
Chris Michael 7d5600ffb4 ecore-evas-drm: Fix printing of device name error message
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-12 10:43:44 +00:00
Chris Michael 2f3082df66 ecore-drm: Quiet down ecore_drm_output rendering messages
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-12 10:41:57 +00:00
Chris Michael c48fc5155a ecore-drm: Fix doxygen group for sprites
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-12 10:30:33 +00:00
Chris Michael 33b475c74c ecore-evas-drm: Remove FIXME comment
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-12 10:29:34 +00:00
Chris Michael ca701a5ff2 ecore-evas-drm: Try to find a drm device with the given name
If we are given a drm device name, tell ecore_drm to try and find That
device. If it is not found, we fallback to the default drm device.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-12 10:25:36 +00:00
Chris Michael baedf0223a ecore-evas-drm: If not device name is passed in, use the device name
from drm.

This assigns a name to the ecore_evas. If no device name was passed
in, we will get the device name from the drm card.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-12 10:17:00 +00:00
Chris Michael bdf00c28b7 ecore-drm: Add API function to return the drm device name
@feature: Add new API function to return the drm device name

NB: This will be used in the ecore_evas_drm code to set the
ecore_evas->name.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-12 09:27:44 +00:00
Yossi Kantor 2a90b4f23d Eolian: Integration of Evas Grid 2014-03-12 10:57:28 +02:00
Daniel Zaoui 103e89a04a Eolian: Integration of Evas 2014-03-12 10:57:28 +02:00
Daniel Zaoui f22bd9e6ee Eolian: Integration of Evas Object.
const have been added in object parameter of two legacy APIs to fit
Eolian generated files.
Since these functions retrieve information from object, it is logic that
the object would be const.
2014-03-12 10:57:28 +02:00
Chris Michael cd28854fdf ecore-evas: Predefine Ecore_X_Atom and Ecore_X_Icon
@fix: Fix building Enlightenment without X support

These changes are needed so that we can build Enlightenment without X
support. Many places in the E code reference
Ecore_X_Atom/Ecore_X_Icon. If we build E without X support, these end
up being undefined, causing build to fail, so we need to predefine them.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-12 08:42:01 +00:00
Chris Michael 11d250e5fc ecore-x: Predefine Ecore_X_Atom and Ecore_X_Icon
@fix: Fix building Enlightenment without X support

These changes are needed so that we can build Enlightenment without X
support. Many places in the E code reference
Ecore_X_Atom/Ecore_X_Icon. If we build E without X support, these end
up being undefined, causing build to fail, so we need to predefine them.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-12 08:42:01 +00:00
Jean-Philippe Andre 96e58cebf7 Evas filters: Fix memory leak when destroying the object
The GL buffers set to be freed were released only the async case...
which doesn't make sense since GL is sync.

@fix
2014-03-12 14:08:02 +09:00
Jean-Philippe Andre 592204fe73 Evas filters: Optimize RGBA blur as well
Same as Alpha blur, use combination of box blurs,
and put all that code into optimizable functions.
2014-03-12 14:08:02 +09:00
Jean-Philippe Andre 4443ecfa8b Evas filters: Optimize alpha box blur
Use two optimizable functions for BOX blur: vertical and horizontal.
These functions will run as many times as requested (from 1 to 6 max).

The horizontal case is pretty straightforward as the source is already
contiguous (nice in terms of cache hits). The only catch is to swap
src and dst without ever writing to the input buffer.

In case of vertical blur, we apply the same method as above, after
rotating the column into a horizontal (contiguous) span, and rotating
it back afterwards.

Now, the same needs to be done for RGBA :)
2014-03-12 14:08:02 +09:00
Jean-Philippe Andre 2a1ba1b908 Evas filters: Use box blur by default
BOX blur is a lot faster (and easier to optimize, too)
than GAUSSIAN blur. Repeating 2x or 3x BOX blur will also
give similar results to GAUSSIAN blur (very smooth), but
in much less time.

Add a count parameter to the BOX blur instruction.
2014-03-12 14:08:02 +09:00
Jean-Philippe Andre 4e249143a5 Evas filters: Prepare optimization paths for BOX blur
Actually, there is a very nice trick with BOX blur.
Pass BOX blur 3 times and you can approximate a GAUSSIAN
blur with up to 3% accuracy. This is way more than enough
for just a simple graphical effect.

So, despite the crappy quality of BOX blur, we should
optimize it a lot so we can replace large GAUSSIAN blurs
with series of BOX blurs instead.

Source: Wikipedia's page on box blur :)

This commit also moves around some duplicated definitions.
2014-03-12 14:08:02 +09:00
Jean-Philippe Andre 0dace7721e Evas filters: Fix 1-D blurs on a single buffer
When a blur operation requires a copy-back to the source
buffer, then the render_op must be set to COPY instead of
BLEND. Otherwise the non blurred content will be visible.

@fix
2014-03-12 14:08:02 +09:00
Jean-Philippe Andre 6674ef5b35 Evas filters: Move DEBUG_TIME macro to be used in the main file
Optimization can happen at a higher level than the blur function
itself... so let's measure the whole filter running time.
2014-03-12 14:08:02 +09:00
Jean-Philippe Andre a37a1d458d Evas filters: Fix uninitialized variable warning 2014-03-12 14:08:02 +09:00
Jean-Philippe Andre 9c3a3373b3 Evas filters: Add basic optimization for RGBA gaussian blur 2014-03-12 14:08:01 +09:00
Jean-Philippe Andre cb69700389 Evas filters: Add optimizable blur function
Prepare optimization paths for blur operations, as they are VERY
costly. This simple change, when using gcc -O3 flag, boosts
horizontal blur performance by > 50%, because STEP is 1 (and
so, memory accesses, increments, etc... are all very simple)

The objective is to have support for NEON, MMX, SSE, too, with
runtime detection.
2014-03-12 14:08:01 +09:00
Jean-Philippe Andre 1960c97eb4 Evas filters: Add more time debug marks in blur 2014-03-12 14:08:01 +09:00
Jean-Philippe Andre 2ea3cb6414 Evas filters: Remove dead code
Remove true Gaussian kernel code, as it is not usable over 12px and
was disabled because it gives different visual results than the
fake Gaussian curve using sin().
2014-03-12 14:08:01 +09:00
Jean-Philippe Andre caa8789424 Evas filters: Improve debug logs
According to Gustavo's comment :)
2014-03-12 14:08:01 +09:00
Boris Faure e8c0e71f89 evas: @fix use the correct composite op on lines with pixman 2014-03-11 22:34:35 +01:00
Tom Hacohen e280f32c01 Eo: removed redundant macro. 2014-03-11 15:58:43 +00:00
Tom Hacohen 122a2f890e Eo: Made eo id for classes a bit more secure.
This patch sets the one before most significant bit on for classes. This
means that class ids are now very big, compared to the old ids which
were growing small integers (1, 2, 3...).
This makes accidental passing of integers (corrupted obj pointers) less
common.

@feature
2014-03-11 15:56:30 +00:00
Daniel Zaoui fd67c1692c Eolian/Generator: fix generation for return values.
- Remove space between type and variable if a star is present.
- Initialize return value to NULL before eo_do. It is needed in case the
eo_do invocation fails (NULL object...).
- Add const to the internal return value if needed.
2014-03-11 15:43:46 +02:00
Daniel Zaoui d3f343bdcc Eolian/Generator: fix type when no data type exists.
When data is set as "null", the generator was writing for this data
variable "void * *_pd" instead of "void *_pd".
2014-03-11 15:25:24 +02:00
Daniel Zaoui 6f2657c3fb Eolian/Lexer: support of legacy overriding for properties. 2014-03-11 15:20:54 +02:00
Daniel Zaoui 0d6fadcab9 Eolian/Generator: fix for virtual pure implementations 2014-03-11 15:20:54 +02:00
Jérémy Zurcher c69b28dac0 eolian: regroup buffer allocation and read checks 2014-03-11 14:00:32 +01:00
Jérémy Zurcher 1e2f00e654 eolian: silence uninitialized var warning 2014-03-11 14:00:32 +01:00
Youngbok Shin cb5026137b evas/font: Added evas_font_path_global_* APIs.
Summary:
These APIs will be used for adding font paths for the application.
The existing APIs for font path, such as evas_font_path_append,
are used for adding font paths to the given evas.
But, these APIs will affect to every evas in the process.

Reviewers: tasn, woohyun, Hermet, seoz

CC: cedric, herdsman

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

@feature
2014-03-11 11:21:56 +00:00
Daniel Zaoui 0f80ed9008 Eolian/Lexer: fix EOF issue.
When a new line was added before the last } in a .eo file, the parsing
was resulting in an error. It was due to the fact that some pointer
indicating the eof was not set when the parsing was done from memory.
2014-03-11 11:22:06 +02:00
Chris Michael 7d8059e4c5 ecore-drm: Add code to handle mouse input
@feature: Add support in ecore-drm for handling mouse movement, wheel,
and buttons.

This adds code to pass mouse events from linux input to ecore by
raising ecore_events (ecore_event_add).

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-11 08:44:46 +00:00
Chris Michael 8fe9adead1 ecore-drm: Add private structure to store mouse information in evdev
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-11 08:44:46 +00:00
WooHyun Jung 2791c3dc06 evas: Replace EINA_LIST_FOREACH_SAFE to while statement.
Clipees can be cleared before the loop is finished because
evas_object_clip_unset calls smart function of clip_unset.
So, if we use EINA_LIST_FOREACH_SAFE, invalid next list pointer
can be kept and read after obj->clip.clipees is freed.

Thanks to Davide Andreoli for reporting.

@fix
2014-03-11 16:34:56 +09:00
Yossi Kantor 1b2f732d2a Eolian: Integration of Evas Table 2014-03-11 07:37:48 +02:00
Daniel Zaoui e203ec008e Eolian: Integration of Evas Smart Clipped 2014-03-11 07:37:48 +02:00
Yossi Kantor b070981f8f Eolian: Support of unsigned short as int in va_arg 2014-03-11 07:37:47 +02:00
Daniel Zaoui 44f9da675c Eolian: Integration of Evas Smart 2014-03-11 07:37:47 +02:00
Felipe Magno de Almeida 9e364d6f4b eina-cxx: Fixes compilation errors and warnings in clang
Summary: @fix compilation errors with defining variable and type on the same statement on clang without a default-constructor. Also removed warnings with inconsistent uses of struct/class for forward declaration and unused parameters.

Reviewers: cedric, stefan_schmidt

CC: savio, cedric

Differential Revision: https://phab.enlightenment.org/D622
2014-03-11 10:07:18 +09:00
Jérémy Zurcher 995eac166a eolian: generate eo_lexer.c with ragel if available 2014-03-10 18:15:25 +01:00
Tom Hacohen c6589ffc19 Eina Log: Fixed ABI break introduce by the addition of 'color'.
ABI break was introduced here 5913ce7ec8

Always add new members at the end of public structures.
2014-03-10 16:50:13 +00:00
Tom Hacohen cb9a06f550 Evas font: Don't add canvas specific path to the global fontconfig path list.
This will come back when D621 gets in (which implements it correctly).
2014-03-10 16:17:21 +00:00
Daniel Zaoui c8dc39c9ae Eolian: fix for nightly make distcheck.
Hmm, I forgot to add some .eo files to the EXTRA_DIST so they have not been
added inside the archive.
Eolian couldn't generate C files because of these missing files.
2014-03-10 16:59:46 +02:00
Tom Hacohen d175b8aa69 Evas textblock: Fix clipping issues with some texts with width > advance.
This happens with many texts. The issue occurs when the width of the
last char is larger than it's advance. Before this patch, we didn't the
width into account when calculating width, thus causing clipping issues
in some cases.
2014-03-10 14:58:18 +00:00
Chris Michael 7fe34af84b ecore-evas-wayland: Remove unused function & declaration
Remove unused function and it's declaration. This function is not
being called from anywhere anymore, so it's no longer needed.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-10 13:58:20 +00:00
Chris Michael ee5caf9016 ecore-drm: Reset modifiers to zero before updating them on keypress
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-10 13:44:29 +00:00
Chris Michael c0894f4810 ecore-drm: Remove FIXME comment
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-10 13:38:01 +00:00
Chris Michael f667f70db9 ecore-drm: Add code to handle modifiers in a key event
@feature: Add handling of modifiers in a drm key event

This adds code to deal with modifiers being pressed/released during a
key event and pass those along to the ecore_event structure

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-10 13:33:23 +00:00
Chris Michael 71e3e63dfd ecore-drm: Add private xkb fields for depressed, latched, locked, and
group

This adds fields to the xkb structure for storing when modifiers are
pressed, released, etc so we can handle those in key events.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-10 13:33:22 +00:00
ChunEon Park 514cd15ccc edje - allow lager clipper space.
In acutal case, some application encounted that a proxy object is larger than a source clipper size.
So the proxy is clipped by the edje clipper.
We don't have to limit the clipper size to 10000x10000

@fix
2014-03-10 22:22:42 +09:00
Daniel Zaoui d96c429179 Eolian/Generator: support NULL pointers for return values.
When an Eo operation returns a value, this one is stored in the last
parameter as an out parameter.
In case the caller doesn't set a pointer there, the storing will be done
in a NULL pointer and will bring to a segfault.

The generator has been modified to handle this case. Now, if the ret
pointer is NULL, the value will not be returned.
2014-03-10 15:07:05 +02:00
Daniel Zaoui 4e33fd16e2 Eolian: add support of eo_prefix and data.
You can add in the .eo file the eo_prefix:... and data:... in case
you want to override respectively the Eo prefix and the data type.
If "data: null" is used, no data type will be added.
2014-03-10 15:07:05 +02:00
Chris Michael 456e6f20e0 ecore-evas-drm: Set window to receive input events
After we have setup ecore-drm, we need to tell it where to send any
input events, so call the ecore-drm API function to set the window.
Also feed mouse_in to the canvas after creation, so that it gets focus.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-10 12:40:31 +00:00
Chris Michael 2a36446402 ecore-drm: Set the window of the Ecore_Event_Key structure
@feature: Add keyboard event processing for ecore-drm

When we get a key event from evdev and create an Ecore_Event_Key to
pass along, we need to set the window where this event occured.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-10 12:40:31 +00:00
Chris Michael 42ed617302 ecore-drm: Add API function to set the window we should send events
too.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-10 12:40:31 +00:00
Chris Michael 5ffa7cd23f ecore-drm: Add private window field to drm device structure
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-10 12:40:31 +00:00
Chris Michael c4fb746e0c evas-drm: Remove private framebuffer
We don't need to store the framebuffer of the Outbuf as it's only used
once to set resolution.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-10 12:40:31 +00:00
Chris Michael 005169d775 evas-drm: Remove private framebuffer field from Outbuf structure
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-10 12:40:31 +00:00
Chris Michael c403035e1d ecore-evas-drm: Add initial code to make ecore_evas render using drm
NB: This is still a work-in-progress and not complete yet

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-10 12:40:31 +00:00
Chris Michael 90551ff49c ecore-drm: Add code pass along key events to ecore_event
@feature: Add keyboard input handling to ecore-drm library

This adds code to ecore_drm library to process keyboard events and
pass them to ecore_event so that ecore_evas can receive keyboard input

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-10 12:40:31 +00:00
Chris Michael 739da9956e ecore-drm: Create xkb context on device open
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-10 12:40:31 +00:00
Chris Michael 0b1cc3a17c ecore-drm: Add xkb fields to Evdev structure
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-10 12:40:31 +00:00
Chris Michael 2aa64616cb ecore-drm: Add xkbcontext to device structure
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-10 12:40:30 +00:00
Chris Michael 3b5b60be45 ecore-drm: Add xkbcommon header
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-10 12:40:30 +00:00
Chris Michael 337a18a5dd ecore-drm: Initialize ecore_event on ecore_drm_init
@bugfix: Initialize ecore_event on ecore_drm_init

We need to make sure ecore_event_init has been called so we can
process events for ecore_evas.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-10 12:40:30 +00:00
Chris Michael fe7206d334 ecore-drm: Add API function to return the vt fd
@feature: Added API function to return the file descriptor from the
opened virtual terminal.

This is needed for use in ecore_evas. When it sets up the canvas, we
pass this fd to the canvas for use in setting up the vt framebuffers

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-10 12:40:30 +00:00
Daniel Zaoui 2fe6c88cf0 Eolian: Integration of Evas Text Grid 2014-03-10 13:28:03 +02:00
Daniel Zaoui ee7541e202 Eolian: Integration of Evas Text Block 2014-03-10 13:28:03 +02:00
Daniel Zaoui a04e80e7f6 Eolian/Generator: fix for legacy function name overriding.
When legacy is specified in the .eo file, the generator was adding the
property/method name after the legacy name.
So if you have 'legacy evas_object_textblock_clear_all' for clear method,
it was adding the function evas_object_textblock_clear_all_clear.
2014-03-10 13:28:03 +02:00
Tom Hacohen 4b758f71c1 Evas map: fixed shadow warnings.
evas_map_image_loop is included from within code, so local variables
should not shadow other local variables. I just gave them a more
unique name.
2014-03-10 09:25:21 +00:00
Chris Michael 8a8924ba79 evas-fb: Fix broken build of efl
@bugfix: structure fb_var_screeninfo does not have a colorspace field
defined in linux/fb.h, so (for now) comment out code which was
referencing that field. Not sure what the intent was here, but build
was broken because of this.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-10 07:20:26 +00:00
Felipe Magno de Almeida 2ab6aac74d eina-cxx: Added malloc_clone_allocator to use with POD's when wrapping Eina C structures
Summary:
Added efl::eina::malloc_clone_allocator to be used with ptr_* data
structures for wrapping structures allocated by EFL in C.

This allows for example:

  void foo(Eina_List* l)
  {
    efl::eina::ptr_list<int, efl::eina::malloc_clone_allocator> list(l);
  }

If the standard efl::eina::heap_no_clone_allocator is used, the
deallocation code uses C++ delete operator, which causes undefined
behavior because the allocation was originally done with malloc.

Reviewers: cedric

CC: savio, cedric

Differential Revision: https://phab.enlightenment.org/D614
2014-03-10 12:35:00 +09:00
Felipe Magno de Almeida 416376e03c eina-cxx: Added eina_log support for C++, using IOStreams syntax
Summary:
Added eina_log support for C++ using the following macros:

For logging into a domain:

EINA_CXX_DOM_LOG
EINA_CXX_DOM_LOG_CRIT
EINA_CXX_DOM_LOG_ERR
EINA_CXX_DOM_LOG_INFO
EINA_CXX_DOM_LOG_DBG
EINA_CXX_DOM_LOG_WARN

And for logging into the default domain:

EINA_CXX_LOG
EINA_CXX_LOG_CRIT
EINA_CXX_LOG_ERR
EINA_CXX_LOG_INFO
EINA_CXX_LOG_DBG
EINA_CXX_LOG_WARN

The usage is simple as can be seen in the tests:

  efl::eina::log_domain domain("error_domain_name");
  domain.set_level(efl::eina::log_level::critical);
  EINA_CXX_DOM_LOG_CRIT(domain, "something went wrong with the following error: " << error);

@feature

Reviewers: cedric

CC: raster, savio, cedric, sanjeev

Differential Revision: https://phab.enlightenment.org/D605
2014-03-10 12:35:00 +09:00
Felipe Magno de Almeida 5942207b25 eina-cxx: Added range types for containers
Summary:
Added inarray, inlist, ptr_array and ptr_list's range types named: range_inarray, range_inlist, range_ptr_array and range_ptr_list.

Each has two "flavours": mutable and not mutable. The const versions are parameterized by a const parameter. For example: range_ptr_list<int const> and the mutable doesn't have the const, so: range_ptr_list<int>.

The difference between the two is that the const versions can't modify the elements from the sequence, while the mutable allows so. Also, the const receives a Eina_Array const* while the mutable must have a Eina_Array*.

Reviewers: cedric

CC: savio, cedric

Differential Revision: https://phab.enlightenment.org/D613
2014-03-10 12:35:00 +09:00
Daniel Zaoui 4be9526cc2 Eolian/Generator: more fixes related to stars to add to params. 2014-03-09 13:19:30 +02:00
Daniel Zaoui b013815bfd Eolian/Lexer: error handling
Print and return error if no class has been parsed in the given file.
2014-03-09 13:19:07 +02:00