Derek Foreman [Thu, 9 Nov 2017 22:08:30 +0000 (16:08 -0600)]
wayland_shm: Don't require dmabuf support to use wl_shm
Unintended side effect of my merging of the two code paths. We should
still try to use wl_shm if we can't use dmabuf here.
Derek Foreman [Thu, 9 Nov 2017 22:06:42 +0000 (16:06 -0600)]
ecore_wl2: Discard too-old dmabuf support
We need at least version 2 for create_immed, so don't even bind the
global if it's useless to us.
This will also stop us from trying to use dmabuf (and getting killed by
the compositor) on older compositors that don't support the version we
need - we'll just use wl_shm instead when this pointer is NULL.
Derek Foreman [Thu, 9 Nov 2017 18:41:22 +0000 (12:41 -0600)]
efl_wl: Add missing @since to new functions
These ones were introduced for 1.21.
Carsten Haitzler (Rasterman) [Thu, 9 Nov 2017 02:38:35 +0000 (11:38 +0900)]
elput - ref device that is in the event queue
Amitesh Singh [Thu, 9 Nov 2017 02:02:29 +0000 (11:02 +0900)]
Efl.Ui.Slider: fix documentations
Al Poole [Thu, 9 Nov 2017 00:38:51 +0000 (00:38 +0000)]
elm_code_widget: keep track of visibility.
Keep track of visibility and ensure the cursor can never be
filled when hidden. This should finally end any issue with the
cursor and visibility with the new focus system. Didn't see this
previously until working on Edi's bottom panes which caused redraw
on resize of the widgets.
@fix
Derek Foreman [Wed, 8 Nov 2017 20:33:31 +0000 (14:33 -0600)]
wayland_shm: Remove old shm code
The new shm code should be equally capable - minus one surface resize
optimization that probably didn't buy us much performance at the cost
of memory.
Derek Foreman [Wed, 8 Nov 2017 20:15:52 +0000 (14:15 -0600)]
wayland_shm: Return oldest buffer for new renders
This is what the old shm code has been doing, and it's probably better
than what the dmabuf code was doing.
We currently allocate 3 buffers. The usual case has us swapping between
two of those buffers and saving that third buffer for emergencies - if
we ever need that third buffer it'll require a full redraw.
If we return the oldest available buffer the usual case requires a little
more damage but we should never hit the full redraw case, which can cause
a frame drop on slow hardware.
Derek Foreman [Wed, 8 Nov 2017 19:58:07 +0000 (13:58 -0600)]
wayland_shm: Simplify surface commits
We no longer have the concept of a "pre" buffer (allocated but not yet
registered as a wayland buffer)
Derek Foreman [Wed, 8 Nov 2017 17:15:04 +0000 (11:15 -0600)]
wayland_shm: Remove useless function
This serves no purpose anymore.
Derek Foreman [Wed, 8 Nov 2017 19:57:20 +0000 (13:57 -0600)]
wayland_shm: Remove dmabuf fallback
Now that we're dependent on create_immed there's no possibility of falling
back to non dmabuf allocation.
The only failing case we really need to handle is failing the first
allocation, which is currently broken and I'll be adding an advance test
for it shortly.
Derek Foreman [Wed, 8 Nov 2017 16:37:06 +0000 (10:37 -0600)]
wayland_shm: Make EVAS_WAYLAND_SHM_DISABLE_DMABUF use new code
Use the new wl_shm allocation functions making the old wl_shm code
unreachable even with the use of the disable env var.
Derek Foreman [Mon, 6 Nov 2017 23:05:25 +0000 (17:05 -0600)]
wayland_shm: Add wl_shm to dmabuf
wl_shm and dmabuf only really need to differ in how they allocate a buffer,
but right now we've got them in separate files. This dramatically
reduces the complexity of the wl_shm code and shares much more
implementation with the dmabuf code.
This throws away at least one "optimization" wl_shm used - over-allocating
buffers so that window resizing doesn't always require a new buffer
allocation. If people feel that window resizing has become too slow now
this can be added to the dmabuf code to the benefit of both allocators.
Disabling dmabuf by env var still uses the old wl_shm implementation for
now, but soon that code will be removed entirely and the env var disable
will use this path.
Derek Foreman [Mon, 6 Nov 2017 23:01:16 +0000 (17:01 -0600)]
wayland_shm: Track size of buffer
Derek Foreman [Mon, 6 Nov 2017 23:00:46 +0000 (17:00 -0600)]
wayland_shm: move buffer release callback to top of file
Code motion with no functional changes.
Derek Foreman [Mon, 6 Nov 2017 19:31:25 +0000 (13:31 -0600)]
wayland_shm: make creating a wayland buffer back end specific
This way we can have shm and dmabuf share the same framework.
Derek Foreman [Mon, 6 Nov 2017 19:10:59 +0000 (13:10 -0600)]
wayland_shm: Factor out wl_buffer creation code
Mike Blumenkrantz [Wed, 8 Nov 2017 17:07:25 +0000 (12:07 -0500)]
build: improve configure accessibility
as decided by unanimous vote, the community does not want builds to pause or
stop when various features are disabled. warnings for disabling features have
been left intact
ref V30
@feature
Mike Blumenkrantz [Wed, 8 Nov 2017 16:48:39 +0000 (11:48 -0500)]
quicklaunch: add support for quicklaunch domains
this allows quicklaunch to be used independently of the DISPLAY value
Daniel Kolesa [Wed, 8 Nov 2017 15:46:14 +0000 (16:46 +0100)]
eolian: enable cyclic imports of eo files
Daniel Kolesa [Wed, 8 Nov 2017 15:12:40 +0000 (16:12 +0100)]
eolian: simplify dependency parsing and cut down on hash lookups
Carsten Haitzler (Rasterman) [Tue, 7 Nov 2017 02:04:03 +0000 (11:04 +0900)]
elput - re-enable switches (power buttons, lid etc.)
this is needed for devices that no longer produce aspi events for
these. otherwise good luck getting any event on lid open/close or on
pressing the power button. this also stops hiding switch events from
libinput and now you can get switch events to find lid or tablet mode
switching changes.
@fix
Jean-Philippe Andre [Wed, 8 Nov 2017 11:16:28 +0000 (20:16 +0900)]
edje: Oops. Remove edje_global include as well.
Jean-Philippe Andre [Wed, 8 Nov 2017 10:29:13 +0000 (19:29 +0900)]
edje: Hide edje_global from the rest of the world
Call provider_find on the loop (or basically any object) with the
color/text/size class interface instead, to find it. The main loop is
the main holder of those objects.
Note: This makes use of provider_find instead of direct access to the
variable, in order to self-test the code. In theory release builds will
not do this and user directly the variable.
Jee-Yong Um [Wed, 8 Nov 2017 10:04:26 +0000 (19:04 +0900)]
Efl: add class interfaces (color/text/size)
Summary: implement Efl.Gfx.Class interface
Reviewers: jpeg, cedric
Subscribers: taxi2se, herdsman
Differential Revision: https://phab.enlightenment.org/D4403
Andy Williams [Wed, 8 Nov 2017 09:30:42 +0000 (09:30 +0000)]
eo: Rename efl_ref_get to efl_ref_count
Carsten Haitzler (Rasterman) [Wed, 8 Nov 2017 06:42:28 +0000 (15:42 +0900)]
unbreak efl so e works again.... after cedric
we cant go iterating the mainloop before the current point. if someone
set up handlers but hasnt configured the things those handles use yet
as they dont expect them to be used until the mainloop is started...
thenthings break. we cant change this assumption without breaking
things.
Jean-Philippe Andre [Wed, 8 Nov 2017 07:17:29 +0000 (16:17 +0900)]
win: Fix alpha windows
Fixes T6334
subhransu mohanty [Wed, 8 Nov 2017 06:49:37 +0000 (15:49 +0900)]
evas/vg: changed the efl_vg_dup api signature.
Reviewers: jpeg, cedric
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D5440
Jean-Philippe Andre [Wed, 8 Nov 2017 05:18:05 +0000 (14:18 +0900)]
tests: Properly define access beta/protected
This solves warnings (and likely errors) in the make check test cases
for ATSPI, since most of efl_access APIs are now marked as beta.
Bryce Harrington [Wed, 8 Nov 2017 06:20:34 +0000 (15:20 +0900)]
eina: Fix spelling/punctuation errors in documentation (prefix..promise)
Reviewers: cedric, ajwillia.ms
Subscribers: jpeg, segfaultxavi
Differential Revision: https://phab.enlightenment.org/D5438
Pawel Aksiutowicz [Wed, 8 Nov 2017 06:14:53 +0000 (15:14 +0900)]
focus: Some typos for efl_ui_focus_manager fixed
Reviewers: stanluk, lukasz.stanislawski
Subscribers: lukasz.stanislawski, cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D5433
Carsten Haitzler (Rasterman) [Wed, 8 Nov 2017 06:05:11 +0000 (15:05 +0900)]
efl - fix build after cedric breakage
25b6a280c087d39f66e30c9c4d07f86b97c989d6 broke the build...
specifically building AGAINST efl.
Cedric BAIL [Tue, 7 Nov 2017 23:55:25 +0000 (15:55 -0800)]
elementary: fix quicklaunch support.
Cedric BAIL [Tue, 7 Nov 2017 23:53:44 +0000 (15:53 -0800)]
elementary: refactor and clean efl_quicklaunch_prepare.
Cedric BAIL [Tue, 7 Nov 2017 23:51:52 +0000 (15:51 -0800)]
elementary: fix ELM_MAIN macro to properly expose symbol.
Cedric BAIL [Tue, 7 Nov 2017 23:50:13 +0000 (15:50 -0800)]
elementary: add debugging information to quicklaunch binary.
Cedric BAIL [Tue, 7 Nov 2017 23:49:38 +0000 (15:49 -0800)]
elementary: use efl_exit to leave the mainloop instead of direct use of exit.
Cedric BAIL [Tue, 7 Nov 2017 23:47:28 +0000 (15:47 -0800)]
evas: rely on ecore to reset evas rendering thread on fork.
Cedric BAIL [Tue, 7 Nov 2017 23:47:09 +0000 (15:47 -0800)]
evas: rely on ecore to reset upscaler thread on fork.
Cedric BAIL [Tue, 7 Nov 2017 23:45:03 +0000 (15:45 -0800)]
evas: rely on ecore to reset ecore_pipe for evas_async_events.
Ecore being a dependency of evas, let's make our life easier and
rely on ecore to tell us when to reset pipe due to a fork instead
of trying to guess.
Cedric BAIL [Mon, 6 Nov 2017 21:49:18 +0000 (13:49 -0800)]
ecore: introduce ecore_init_ex/ecore_shutdown_ex to propagate argc,argv properly.
Cedric BAIL [Mon, 6 Nov 2017 19:06:21 +0000 (11:06 -0800)]
ecore: report startup time of the main loop with EFL_FIRST_LOOP environment variable.
Cedric BAIL [Mon, 6 Nov 2017 18:52:36 +0000 (10:52 -0800)]
ecore,elementary: move startup time accounting in ecore.
Cedric BAIL [Mon, 6 Nov 2017 18:28:15 +0000 (10:28 -0800)]
elementary: move Efl new general purpose API to efl_general.h
Carsten Haitzler (Rasterman) [Tue, 7 Nov 2017 13:41:20 +0000 (22:41 +0900)]
efl net - handle proxy helper fails better and abort proxy lookups
if proxy fails are too many then give up on queued lookups as they
likely will continue. i noticed a process continually spawning efl net
proxy helper because one queued lookup failed and could be looked up
so it kept trying again and again.
@fix
Jean-Philippe Andre [Tue, 7 Nov 2017 13:21:13 +0000 (22:21 +0900)]
cxx: Fix slider example
The fix is not complete. We need to make efl_part() work nicely in C++:
- Get the refs work properly (maybe without auto-del)
- Generate the parts from the EO file as methods on the object
Final form should be close to:
slider.indicator().format_string_set("%1.2f");
Where everything autocompletes nicely :)
Jean-Philippe Andre [Tue, 7 Nov 2017 13:17:04 +0000 (22:17 +0900)]
slider: Export the part class
It needs to be exposed for things like c++ and others to work.
Jean-Philippe Andre [Tue, 7 Nov 2017 13:00:32 +0000 (22:00 +0900)]
slider: Advertise indicator part in the EO file
There are 3 other indicator APIs that aren't in the part class... why?
Jean-Philippe Andre [Tue, 7 Nov 2017 12:53:45 +0000 (21:53 +0900)]
evas: Yet another OSX build fix...
Please tell me this is the last one
Lauro Moura [Tue, 7 Nov 2017 12:49:26 +0000 (21:49 +0900)]
example: Add elocation to elm build
Summary:
9d2dcd92 requires elocation to build.
cxx examples still broken due to elm cleanup
Test Plan: make examples
Reviewers: jpeg, felipealmeida
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D5426
Sungtaek Hong [Tue, 7 Nov 2017 12:08:40 +0000 (21:08 +0900)]
efl_ui_radio: keep radio state when theme is changed
Summary:
during elm_widget_theme_apply() state was set to off when state is on.
@fix
Test Plan: change locale/theme when a radio is on.
Reviewers: jpeg, cedric, woohyun
Differential Revision: https://phab.enlightenment.org/D5432
Jean-Philippe Andre [Tue, 7 Nov 2017 11:15:48 +0000 (20:15 +0900)]
evas: Another attempt at fixing OSX build
Build failed with LKI not found, as a symbol, but it's a macro.
Copy & pasted from evas_common_private.h
How can this work on one platform and not another? I don't get it...
Bryce Harrington [Tue, 7 Nov 2017 08:59:02 +0000 (08:59 +0000)]
eina: Fix spelling errors in documentation (matrixsparse..module)
Reviewers: cedric, ajwillia.ms
Subscribers: segfaultxavi, jpeg
Differential Revision: https://phab.enlightenment.org/D5425
Carsten Haitzler (Rasterman) [Tue, 7 Nov 2017 08:35:52 +0000 (17:35 +0900)]
eina freeq - make it clear that content is invalid on submission
and that the free function cannot access content of the pointer
(unless the pointer memory size is 0).
Carsten Haitzler (Rasterman) [Tue, 7 Nov 2017 08:34:30 +0000 (17:34 +0900)]
eo - fix freeq usage to not use freeq for a vtable cleaning
the freeq can't allow things to access the content of the pointer
because the content canbe written over by canary handling qhen
submitted to the freeq. clear it inline then just submit the final
pointer to the freeq.
@fix
Carsten Haitzler (Rasterman) [Tue, 7 Nov 2017 07:39:26 +0000 (16:39 +0900)]
elm win - note need for other display system code...
Amitesh Singh [Tue, 7 Nov 2017 04:28:01 +0000 (13:28 +0900)]
Efl.Ui.Slider: implement Slider.part & Ui.format functions
indicator_format_set/get & indicator_format_function_set are
now legacy APIs.
indicator format can be set by using generic Ui.Format function
e.g.
efl_ui_format_string_set(efl_part(sliderObj, "indicator"), "1.0%f");
Jean-Philippe Andre [Tue, 7 Nov 2017 05:59:01 +0000 (14:59 +0900)]
elm: Fix make check (code_widget)
elm_code_widget is causing a lot of trouble as it's relying on internal
access to elementary, without being built as part of elementary.so. Many
EAPI symbols are exported that shouldn't need to be, as they are only
internals of elm.
Jean-Philippe Andre [Tue, 7 Nov 2017 05:56:00 +0000 (14:56 +0900)]
evas: Fix make check
Because of this I couldn't test my previous patches properly and now
realized that I also broke make check... >_<
See D5419
Jean-Philippe Andre [Tue, 7 Nov 2017 05:51:12 +0000 (14:51 +0900)]
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.
Jean-Philippe Andre [Tue, 7 Nov 2017 05:00:43 +0000 (14:00 +0900)]
elm: Create legacy widgets with elm_legacy_add
This will be used to solve issues around style_set:
if the widget is legacy or pure eo we may need to select a different
style. So in the constructor we need to know whether we are legacy or
eo. Note that calling style_set in finalize only is too late as we would
lose information such as efl_text_set() called inside efl_add().
Jean-Philippe Andre [Tue, 7 Nov 2017 05:26:37 +0000 (14:26 +0900)]
elm: Don't do anything before construction
Obviously ui.win is still the ugly exception.
Jean-Philippe Andre [Tue, 7 Nov 2017 05:03:19 +0000 (14:03 +0900)]
elm: Call efl_access_type_set after construction
I don't think it is necessary to call this before construction, and that
could instead lead to issues. It's just weird overall.
Carsten Haitzler (Rasterman) [Tue, 7 Nov 2017 04:52:31 +0000 (13:52 +0900)]
efl ui win - make win centering work with multiple screens
this should fix T6323
@fix
Vitalii Vorobiov [Tue, 7 Nov 2017 02:41:36 +0000 (11:41 +0900)]
evas_vg_load_svg: get rid of static Evas_SVG_Parsing
Summary:
Refactoring.
It is good to store values from that struct in a parsing/loading context
static variable is a big NO NO:
1. Ugly code design,
2. Might not work when trying to load more than one SVG file.
@fix
Reviewers: jpeg, smohanty
Subscribers: jenkins, cedric
Differential Revision: https://phab.enlightenment.org/D5399
Vitalii Vorobiov [Thu, 16 Mar 2017 15:55:26 +0000 (17:55 +0200)]
evas_vg_load_svg: default stop opacity color should be 255, not 0
@fix
Vitalii Vorobiov [Thu, 16 Mar 2017 12:53:49 +0000 (14:53 +0200)]
vg_common: property apply "objectBoundingBox" morphings to radial gradient
When objectBoundingBox flag is set up, all gradients should morphed into
multiple gradients for every entity that has gradient to be applied on
Vitalii Vorobiov [Wed, 22 Feb 2017 11:02:31 +0000 (13:02 +0200)]
svg_parse: parse correct values for radialGradient
Especially Radius calculation which was a huge pain to find formula
within SVG documentations!
Vitalii Vorobiov [Tue, 21 Feb 2017 15:40:15 +0000 (17:40 +0200)]
vg_common: apply related coordinates for linear gradient
multiply it with object size or with view box sizes depending on
gradientUnits value
Vitalii Vorobiov [Fri, 17 Feb 2017 15:00:01 +0000 (17:00 +0200)]
svg_parse: parse linear gradient variables accroding to gradientUnits
There are difficult cases according to
https://www.w3.org/TR/2000/CR-SVG-
20000802/pservers.html
Vitalii Vorobiov [Fri, 17 Feb 2017 11:00:54 +0000 (13:00 +0200)]
svg_parse: implement <length> parse
Accodring to https://www.w3.org/TR/SVG/types.html#Length
length ::= number ("em" | "ex" | "px" | "in" | "cm" | "mm" | "pt" | "pc" | "%")
This is still work in progress since some of lengths should be treated
differently, for example gradient lengths
Vitalii Vorobiov [Tue, 14 Feb 2017 15:51:13 +0000 (17:51 +0200)]
svg_parse: save global size variable to use when gradient size recalc
For example while userSpaceOnUse it uses not figure's x,y,w,h
but entire canvas, so we need to save it publically and recalc while
parsing (or after)
Vitalii Vorobiov [Tue, 14 Feb 2017 15:37:27 +0000 (17:37 +0200)]
vg_common: parse and store userSpaceOnUse (for gradient) when it is set
So it can be calculated during the draw later on
Vitalii Vorobiov [Mon, 13 Feb 2017 14:27:55 +0000 (16:27 +0200)]
efl_gfx_path: fix typo in _path_bounds_get
Wrong position was used while going through the array of
points
@fix
Vitalii Vorobiov [Tue, 7 Feb 2017 16:59:03 +0000 (18:59 +0200)]
vg_loaders/svg: set up default focal values for radialGradient
Since when not specified, focal values same as center points
fx = cx, fy = cy by default
@fix
Vitalii Vorobiov [Tue, 7 Feb 2017 15:05:02 +0000 (17:05 +0200)]
ector: use cairo_pattern_add_color_stop_rgba in gradient_radial
It actually invoked SIGSEGV when trying to load SVG file with Radial
Gradient
@fix
Vitalii Vorobiov [Tue, 31 Jan 2017 16:06:36 +0000 (18:06 +0200)]
saver/svg: parse loaded tree data into svg XML file and save it
Just base source code which will parse all structures of svg tree into
xml text to save current vector image into file
@feature
Vitalii Vorobiov [Fri, 27 Jan 2017 11:54:47 +0000 (13:54 +0200)]
vg_savers/svg: empty (for now) module that will save svg in original file
Just as a starter to make a working background that, later on, will go
through Svg_Node's and build a certain source code to be saved in SVG
picture as a file
Vitalii Vorobiov [Tue, 24 Jan 2017 12:12:29 +0000 (14:12 +0200)]
evas_vg_cache: load svg from any file, not from defined only
so it doesn't only load from eet or edj only
but also from those any extensions who is ACTUALLY eet, but named as,
for example, like, "file_with_svg.dev"
@fix
Jean-Philippe Andre [Tue, 7 Nov 2017 02:52:54 +0000 (11:52 +0900)]
evas: Fix invalid header protector
clang is smart enough to warn about this.
I've mentioned it multiple times...
subhransu mohanty [Tue, 7 Nov 2017 02:22:09 +0000 (11:22 +0900)]
Remove evas internal dependency from the evas_font module
Summary:
dev branch : devs/subhransu/font
The Final goal is to move the evas_font module to ector so that both ector and evas can reuse the code.
make the api simple so that sam eapi can be used by evas_textblock and ector text.
This is the 1st stage to achive that gola, first remove the evas internal dependancy as much as possible before moving to ector library.
Reviewers: jpeg, raster, herdsman, cedric, id213sin
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D5419
Jean-Philippe Andre [Tue, 7 Nov 2017 01:39:28 +0000 (10:39 +0900)]
elm: Try to fix compilation (link) for OSX
Jean-Philippe Andre [Mon, 6 Nov 2017 07:36:23 +0000 (16:36 +0900)]
evas: Add some crash prevention checks
This could happen if objects still have references while evas is being
shut down (a bad situation).
Jean-Philippe Andre [Mon, 6 Nov 2017 07:18:42 +0000 (16:18 +0900)]
tests: Fix make check for atspi beta APIs
See
5c997b3aaac6277b8c4965ee8e90d05e1959ac05
Ref D5365
Jean-Philippe Andre [Mon, 6 Nov 2017 06:55:54 +0000 (15:55 +0900)]
cxx: (Temporary) fix for make check
This fixes the C++ compilation tests.
list<int> is not allowed by eolian anymore, as the semantics were
unclear whether a pointer to int was passed, or if the int was stuffed
inside the list by casting.
ptr(string) is also not allowed as it's a pointer to a pointer type.
Both of the above types are strange when it comes to bindings. While C++
could probably be made to work, it's not clear we could have such types
in other bindings. Those types are in fact likely not so useful, as most
APIs can be designed around those restrictions.
Jean-Philippe Andre [Mon, 6 Nov 2017 06:23:20 +0000 (15:23 +0900)]
cxx: Fix log color in eina_log.hh
Changed from invalid "black" to arbitrary choice of green.
Jean-Philippe Andre [Mon, 6 Nov 2017 06:12:21 +0000 (15:12 +0900)]
elm: Fix examples/tests using elementary_config
elementary_config.h should not even exist. It's been hijacked as a
private header for elementary, but all "real" configuration is stored in
efl's main config.h now.
Jean-Philippe Andre [Mon, 6 Nov 2017 05:25:22 +0000 (14:25 +0900)]
cxx: Fix some examples, disable or remove others
make examples now builds all c++ examples but some of them are in fact
empty skeletons. Those either need some c++ love or the final eo api to
be ready (eg. menu, popup, ...).
I removed some examples that don't have an exact equivalent in EO since
the widget is legacy only.
Jean-Philippe Andre [Mon, 6 Nov 2017 05:23:57 +0000 (14:23 +0900)]
cxx: Add beta define to Evas.hh
This is probably temporary as well, but it's necessary to make examples
compile (with rectangle).
Jean-Philippe Andre [Mon, 6 Nov 2017 05:22:33 +0000 (14:22 +0900)]
cxx: Fix binding temporarily (efl/interfaces)
This uses the new cref keyword instead of inout, as the c++ code has no
access to the internals of struct Efl.Text.Cursor.Cursor
Something tells me cref may not be the perfect solution here (we lose
information on whether this is in, out or inout).
Jean-Philippe Andre [Mon, 6 Nov 2017 04:37:18 +0000 (13:37 +0900)]
cxx: Fix ifdef protections in function impl
Mote: for protected we should use "protected:" if that is somehow
possible.
Jean-Philippe Andre [Mon, 6 Nov 2017 03:26:05 +0000 (12:26 +0900)]
cxx: Add support for operator == with objects
Jean-Philippe Andre [Thu, 2 Nov 2017 09:42:09 +0000 (18:42 +0900)]
cxx: Modify button example with wref
This is more of an experiment than anything else.
@felipealmeida I would like to know what you think.
Notes:
- events still need a better API (event_add isn't part of the object
definition...).
- references are an issue, when you want to actually delete an object.
Jean-Philippe Andre [Thu, 2 Nov 2017 09:39:47 +0000 (18:39 +0900)]
cxx: Add experimental "easy" way to use wref
I hid it behind ifdef for now as I'm very much unsure of what I'm doing.
This whole modern C++ thing is still weird to me :)
Prerequisite:
#define EFL_CXX_WREF_EASY
This allows constructs such as:
auto wobj = obj._get_wref();
std::cout << wobj->text_get() << std::endl;
Jean-Philippe Andre [Thu, 2 Nov 2017 09:14:59 +0000 (18:14 +0900)]
cxx: Add _get_wref() convenience to all classes
This allows constructs like:
auto w_obj = obj._get_wref();
auto cb = std::bind([w_obj]() {
auto o = w_obj.lock();
if (!o) return;
o->call();
});
event_add(..., obj, cb);
Note: I don't like how those wref work. Close to c++ wref but far from
EFL wref.
Jean-Philippe Andre [Thu, 2 Nov 2017 08:59:17 +0000 (17:59 +0900)]
cxx: Mark wref::lock as const
This allows passing in wref to a lambda.
If we passed normal refs, we would end up with dangling references and
many ERR messages.
Jean-Philippe Andre [Thu, 2 Nov 2017 05:26:59 +0000 (14:26 +0900)]
cxx: Add nullptr constructor for weak refs
This allows constructs such as:
wref_obj = obj;
...
wref_obj = nullptr;
Jean-Philippe Andre [Thu, 2 Nov 2017 03:13:53 +0000 (12:13 +0900)]
cxx: Completely rewrite box example
This was showing off box transitions, which don't exist in EO API.
Jean-Philippe Andre [Wed, 1 Nov 2017 13:42:04 +0000 (22:42 +0900)]
cxx: Fix a few examples
- Calendar: Some examples can't be ported. Not good.
- Toolbar: Needs the new API to be completed.
- Clock: Crashes at runtime.
Ping @felipealmeida