Commit Graph

1047 Commits

Author SHA1 Message Date
Jean-Philippe Andre 425d8db90f cxx: Showcase function pointer in calendar example
This is just a work-in-progress example.
2017-12-05 10:14:03 +09:00
Jean-Philippe Andre 1997e1b3d0 cxx: Some code style in examples
Use the common form
  Class a(instantiate);
instead of
  auto a = Class(instantiate);

Also modify bg example to not use an policy.
2017-12-05 10:09:58 +09:00
Lauro Moura b97d3438eb efl_mono: Add buildystem integration.
The C# bindings are built using the --enable-csharp-bindings (disabled
by default).
2017-12-04 15:47:51 -03:00
Lauro Moura 41c073b2e6 efl_mono: Add examples code.
Buildsystem support will be enabled in a future commit
2017-12-04 15:47:51 -03:00
Jaehyun Cho 59788cc9d0 examples: Add popup cxx example 2017-11-28 17:15:42 +09:00
Lauro Moura 3ca7d95321 elementary: fix compilation of cxx examples
Summary: Missing ecore_con library

Reviewers: felipealmeida, jpeg

Subscribers: cedric

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

Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
2017-11-23 15:34:54 -08:00
Jean-Philippe Andre 3a9aa6b93a cxx: Fix slider example (bad downcast) 2017-11-20 20:42:39 +09:00
Jean-Philippe Andre e3e9749795 cxx: Disable spinner example (broken)
A new API for spinner is coming soon. This example code is now broken
since my change on Efl.Content vs. Efl.Container.
2017-11-20 20:31:07 +09:00
Jean-Philippe Andre dda18948ae efl: Split Efl.Container and Efl.Content
When I first implemented the Efl.Container interface I made a mistake of
mixing "single slot" content API's with "multiple children" content
API's.  This should fix that, by separating API's that are for a single
part and those that deal with a list of children.

  Efl.Content: Single slot. This will be used a lot by efl_part()
objects, and for the default content of widgets (eg. the window
content).

  Efl.Container: Multiple children. Used by lists, boxes, layouts
(edje/elm), etc...

I didn't see any class that implemented both interfaces (note: Layout
implements Container and Button implements Content, so technically
Button implements both through inheritance).

For now the eo_prefix is not changed in Efl.Container. I wonder if it
should be reset (to efl_container) or not. This would only affect the C
API.

Ref T5328
2017-11-20 19:02:09 +09:00
Jean-Philippe Andre 313eb563b5 win: Rename specific APIs to avoid clashes
This renames 3 basic APIs specific to Win:
 - name
 - type
 - role

Ref T5322
2017-11-16 19:11:51 +09:00
Daniel Kolesa 2f81b26367 eolian: scan system dir by default
The '-S' option lets you reverse that. But by default, most
people will want the prefix to be scanned for eo files.
2017-11-14 13:47:09 +01:00
Jean-Philippe Andre 0c142462a1 win: Move autodel to C only
Note: this is C only, not legacy only.
The problem is that bindings will hold a strong reference to the window,
which will then die "under the rug" if autodel is enabled. This then
leads to at least ERR if not crashes.

Note:
elm_policy needs to support autodel and quit on last del only for C
applications. Bindings will require some other mechanism that doesn't
break all assumptions wrt. references.
2017-11-14 12:18:39 +09:00
Jean-Philippe Andre 247d25aa99 cxx: Fix example for GCC
clang has no problem, but GCC complains with "support not implemented"
Discovered with distcheck
2017-11-10 12:20:27 +09:00
Jean-Philippe Andre a0dc0eb516 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 :)
2017-11-07 22:21:13 +09:00
Lauro Moura 7ab444acbc 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
2017-11-07 21:49:26 +09:00
Jean-Philippe Andre 778c5afb3f 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.
2017-11-07 09:57:24 +09:00
Jean-Philippe Andre d4c92b39df 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.
2017-11-07 09:57:24 +09:00
Jean-Philippe Andre 0d1a2db617 cxx: Completely rewrite box example
This was showing off box transitions, which don't exist in EO API.
2017-11-07 09:57:24 +09:00
Jean-Philippe Andre 9c9278cd45 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
2017-11-07 09:57:24 +09:00
Jean-Philippe Andre 9cec14918c evas: Move evas_canvas.eo to legacy-only
This isn't meant to be installed. The canvas API in EO is based around
the interfaces Efl.Canvas and the widget Efl.Ui.Win. Anything else is
not EO (eg: ecore_evas, evas, ...)

Note: evas_canvas3d is the last remaining thing that is installed along
EO files, but those are all beta APIs.
2017-11-01 11:22:33 +09:00
Amitesh Singh 855959f24d eina example: fix eina_value examples 2017-10-30 16:17:16 +09:00
Amitesh Singh 04fe5e10a2 eina: eina_value - Add "struct tm" support
Ref T6204

@feature
2017-10-30 16:04:53 +09:00
Jean-Philippe Andre c78b4dbd00 cxx: Fix examples compilation 2017-10-27 10:17:14 +09:00
Amitesh Singh f983bfc277 examples: eina strbuf - fix the example 2017-10-24 22:48:01 +09:00
Prince Kumar Dubey 9d2dcd92f7 example: improve location example, fix crash
Summary: Printing Address detail with Position. Label added to show the
detail of address.

Test Plan:
Compiled with cmd:
  gcc -o location_example_01 \
  location_example_01.c -g `pkg-config --cflags --libs elementary \
  elocation`

Reviewers: raster, cedric

Subscribers: rajeshps, jpeg

Differential Revision: https://phab.enlightenment.org/D5356
2017-10-24 15:44:16 +09:00
subhransu mohanty d267595557 evas: add set function for root_node property.
Summary:
Currently user ask for the root_node from the evas_vg object and then attach its tree by setting the root node as parent.
With this change this process will be explicit. user has to set the root node to the evas_vg object and the object will take the ownership
of the tree. User can query the current vg_tree by root_node_get api.

Test Plan:
        Fixed the test app to reflects this change.

Reviewers: jpeg, cedric

Reviewed By: jpeg, cedric

Subscribers: cedric

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

Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
2017-10-23 11:05:38 -07:00
Prince Kumar Dubey 2866358a5d example: print format correction to avoid warning.
Reviewers: raster, cedric, jpeg

Subscribers: rajeshps, jpeg

Differential Revision: https://phab.enlightenment.org/D5312
2017-10-17 17:31:38 +09:00
Prince Kumar Dubey 41197981ab efl: unsigned int/long never be less than zero. Fixed.
Reviewers: raster, cedric

Subscribers: rajeshps, jpeg

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

Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
2017-10-13 12:07:28 -07:00
Prince Kumar Dubey 3935607483 eina: uninitialization of array leads to unwanted outcome of "eina_strlcat"
Reviewers: raster, cedric, rajeshps

Subscribers: cedric, jpeg

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

Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
2017-10-13 12:03:55 -07:00
Amitesh Singh 2cf24eb304 eina: strbuf - Add strftime related functions
eina_strbuf_append_strftime()
eina_strbuf_insert_strftime()
eina_strbuf_prepend_strftime() - macro

We need these functions for implementing generic format function
interface especially for calander.

Ref T6204
2017-10-13 16:04:24 +09:00
Cedric Bail 35a3b3ca4c eio: fix multiple open/close chain example. 2017-10-09 18:27:56 -07:00
Cedric Bail 044acdf1d2 eio: update example for openning and closing file asynchronously using a chain. 2017-10-09 17:44:33 -07:00
Subodh Kumar 3991f40cb9 eina: same expression on both statement.
Summary:
Comparing with same expression is avoided.
@fix

Reviewers: cedric

Subscribers: jpeg

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

Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
2017-10-09 16:36:57 -07:00
Cedric BAIL 16b0733a52 build: fix make examples on Windows
Summary: We should define the windows version before including evil.

Test Plan: Run make examples on windows newer than XP.

Reviewers: vtorri

Subscribers: jenkins, cedric, jpeg

Tags: #efl, #windows

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-10-05 16:23:52 -07:00
Cedric BAIL 8f3e860e8e eio: migrate example to use Eina_Future. 2017-10-05 14:21:23 -07:00
Cedric BAIL 91957a4119 evas: remove evas_canvas3d_texture_file_set and efl_file_set instead. 2017-10-05 11:36:23 -07:00
Cedric BAIL 871b6ac0ad ecore_con: simplify Efl.Net.Server.Ssl by inheriting from Efl.Net.Server.Tcp. 2017-09-29 16:01:02 -07:00
Cedric BAIL b7049e8c43 ecore_con: add an intermediate Efl.Net.Server.Ip 2017-09-29 14:12:03 -07:00
Jean-Philippe Andre a742edb486 examples: Fix C++ bg example
This is not nice yet... part API needs to be improved in C++.
2017-09-26 22:00:02 +09: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
Jean-Philippe Andre 706cf9c488 elm: Fix invalid uses of Efl.Orientation
I think this closes the orientation vs. direction problem.
RTL vs. AnyRTL is not fully handled yet but this becomes a
widget-per-widget issue (eg. should a box in a RTL locale be mirrored if
set to horizontal?).

Fixes T5870
2017-09-19 18:53:35 +09:00
Jean-Philippe Andre d3cf6093aa animation2: fix compile instruction
Summary:
without it, it was failing with following error
/usr/bin/ld: /tmp/ccnjRcVr.o: undefined reference to symbol 'evas_object_move'
//usr/lib64/libevas.so.1: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

Test Plan: just try to compile it with and without.

Reviewers: jpeg

Reviewed By: jpeg

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5182
2017-09-19 17:00:35 +09:00
Stefan Schmidt ca6a1e25f5 examples: cxx: fix examples for new size_set function signature
This no longer takes two parameters. Update to the new signature.
2017-09-19 08:32:43 +02: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
Bryce Harrington 93d339b5ed examples: document the evas-vg-simple example
Summary:
Fill in the intro section and the first test mode.  (Docs for second
mode will be forthcoming.)

Also drop some of the generic comments that are already explained better
in some of the basic examples.

Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>

Reviewers: cedric

Subscribers: jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-09-18 11:18:43 -07: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 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
Felipe Magno de Almeida 761e6a304c eolian-cxx: Fix example after disambiguation patch of C++ binding 2017-09-14 15:06:33 -03:00
Stefan Schmidt b737d4fea7 examples/evas: fix recent build break from rectangle change
Introduced with commit 13da5e980e

A compile before pushing would have been great, again.
Having the same name for two variables is something no compiler likes.

evas-map-utils-eo.c:74:8: error: conflicting types for ‘r’
    int r, g, b, a, f;
        ^
evas-map-utils-eo.c:73:19: note: previous declaration of ‘r’ was here
    Eina_Rectangle r;
                   ^
evas-map-utils-eo.c:93:31: error: ‘h’ undeclared (first use in this function)
    efl_gfx_size_get(o, NULL, &h);
                               ^
evas-map-utils-eo.c:93:31: note: each undeclared identifier is reported only once for each function it appears in
evas-map-utils-eo.c:108:25: error: ‘w’ undeclared (first use in this function)
    efl_gfx_size_get(o, &w, &h);
2017-09-13 14:42:34 +02:00
Stefan Schmidt cca312d42c gitignore: add some new example binaries to the ignore list 2017-09-13 11:25:13 +02: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
Daniel Zaoui a8f86b2c34 Examples: fix C++ examples
The examples have not been updated after the last C++ changes.
2017-09-11 21:13:15 +03:00
Felipe Magno de Almeida 48b3c127f7 eo-cxx: Require instantiate keyword for constructors calling efl_add to avoid ambiguity 2017-09-08 11:47:29 +09:00
Guilherme Iscaro 3ba9f25cf7 Eina_Promise/Eina_Future: Add example and tests. 2017-09-04 10:24:00 -03:00
Jean-Philippe Andre cec45f616a js: Fix some js examples usage of orient API
This was not tested. How to test js?
2017-08-23 15:24:37 +09:00
Bryce Harrington 4202c29996 examples: Improve error message text from Evas examples
Reviewers: cedric, devilhorns

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D5103
2017-08-18 09:47:45 -04:00
Bryce Harrington 73c02f0b2c examples/evas: Fix sp. of 'Coult' in warning
Reviewers: cedric

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D5102
2017-08-18 09:46:48 -04:00
Guilherme Iscaro 0309981eba Elm Examples: Fix undefined function references.
They were renamed by 599bb616ec

Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>
2017-08-17 10:33:53 +09:00
Jean-Philippe Andre d4b4ee867b evas: Modify wheel events direction to bool (EO)
The orientation was overkill here. We only want a bool.

Ref T5870
2017-08-10 14:42:08 +09:00
Bryce Harrington be5b16850b examples: Correct the comments for key handling
Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5076
2017-08-09 12:21:42 +09:00
Bryce Harrington 09d8ff787b examples: Fix sp. exemple_data
Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5075
2017-08-09 12:21:42 +09:00
Bryce Harrington 57fdaae824 examples: Fix grammar - 'forcely' is not a word
Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5077
2017-08-08 15:28:20 +09:00
Jean-Philippe Andre 9a2d4928f0 elm: Rename elm_layout to Efl.Ui.Layout
Some names have not been changed, hopefully making a distinction
between legacy APIs and internal code (elm_layout_blah) and valid EO
usages.

This means many internal functions are still elm_layout_ as their
sole purpose is to support the legacy API.

Ref T5315
2017-08-08 13:25:58 +09:00
Stefan Schmidt 3adf2ebddf examples: fix build break after efl_ui_panes change
In commit 40945d9859 it was renamed but
the examples not updated.
2017-08-07 12:39:10 +02:00
Jean-Philippe Andre efac7d523a edje: Move signal APIs to an interface
This interface will be used by elm_layout as well.

Ref T5315
2017-08-04 11:52:16 +09:00
Guilherme Iscaro 45a767632d Ecore_Conn: Enable CLOEXEC by default.
This flag should be enabled by default in order to avoid socket leaks.
2017-07-27 16:54:34 +02:00
Stefan Schmidt 02bbcabd3f examples: elm_icon: remove no-op deprecated function call for icon lookup
The function is deprecated and actually a no-op already. Better make
sure we do not promote deprecated functions in our won examples.
2017-07-14 14:06:34 +02:00
Bryce Harrington 0e19bde33c examples: Move introduction to Ecore-Evas to evas-transparent.c
Summary:
The evas-transparent.c example is quite short, and so will allow for
more detailed explanation of setting up Ecore-Evas.  Then
evas-object-manipulation.c can focus more on the explanation of objects
in Ecore-Evas.

Reviewers: cedric

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D5011
2017-07-11 11:29:07 +09:00
Bryce Harrington 824df3d37b examples: Flesh out the evas-object-manipulation example
Summary:
This is one of the basic examples that introduces Ecore-Evas, so needs
to be more detailed in commentary than other examples.  It also points
out the use of the legacy API and directs the reader to the Eo example
where appropriate.

Reviewers: cedric

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D5008
2017-07-10 17:02:20 +09:00
smohanty 4650a62e85 evas/vg: rewrite the vg example with more test cases
basic shape, stroke, transformation, interpolation test cases added

Reviewers: jpeg

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D4992
2017-06-29 17:39:11 +09:00
Vincent Torri fb6530ca2e examples/elm: Use POSIX threads on Windows 2017-06-20 14:34:52 +09:00
Vincent Torri aa17e28e5a examples/net: Fix compilation on Windows 2017-06-20 14:34:52 +09:00
Vincent Torri d03780fdf9 examples/net: Fix compilation on Windows (no getline)
Thnaks @vtorri who authored this patch
2017-06-20 14:18:36 +09:00
Jean-Philippe Andre 6e33145332 examples/net: Use PRIi64 where appropriate
Fixes a warning on Windows. Thanks @vtorri
2017-06-20 14:16:40 +09:00
Jean-Philippe Andre 98b1309c6f cxx examples: Fix button example 00
Text part API has changed.
2017-06-20 14:09:57 +09:00
Cedric BAIL 5c16d4e15b evas: batman use legacy API only. 2017-06-19 14:08:54 -07:00
smohanty d6bd5d52fc evas/vg: Fixed the build issue in evas_vg_simple example
Reviewers: jpeg, vtorri

Subscribers: cedric, jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-06-19 14:08:54 -07:00
Lauro Moura c4558e2910 js: Update after many elm/efl.ui changes
- Win.Standard
- Photocam to Image.Zoomable rename
- Widget namespace changes (elm -> efl.ui)
- setText/setPartText changes (see 3eb649b18)
2017-06-19 17:36:41 -03:00
Jeeyong Um 864e854fa9 example: Add missing definition to invoke EO API 2017-06-19 13:19:30 +09:00
Andrii Kroitor c099ede159 examples: fix ecore_exe_child example to work properly on Windows
Summary: ecore_main_fd_handler_add is not working on Windows

Reviewers: vtorri, raster

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4470
2017-06-15 12:18:42 +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
Bryce Harrington 7e552977a6 examples: Flesh out the evas-buffer-simple example
Summary:
This serves as an early example for new Evas programmers to introduce
the buffer engine as well as very basic canvas usage, so we're going
into a lot more detail for both of those than we'll do in subsequent
examples.

Reviewers: cedric

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D4950
2017-06-09 12:09:54 +09:00
Bryce Harrington 3d46c390f7 evas/examples: add intro for evas-event-filter.c example
Reviewers: cedric

Reviewed By: cedric

Subscribers: jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-06-05 12:07:57 -07:00
Bryce Harrington 8834ea1927 evas/examples: fix minor typo 'whe'
Reviewers: cedric

Subscribers: jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-06-05 12:07:57 -07:00
Bryce Harrington 2f74d75a39 examples/evas: add tutorial commentary for evas-init-shutdown
Summary:
This is the most basic of the Evas examples and serves as the starting
point for new Evas users.  Since this targets neophytes, we can afford
to be much more detailed in commentary.

Reviewers: cedric

Subscribers: jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-06-05 12:07:57 -07:00
Bryce Harrington c618dee0f7 examples/evas: add a README
Summary:
Categorize the examples by topic, and identify certain examples as
introductory; these can be commented more verbosely than the other
examples.

Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>

Reviewers: cedric

Reviewed By: cedric

Subscribers: jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-06-05 12:07:56 -07:00
Al Poole de156c66ed examples: fix efl_net_control_example.c on BSD.
Reviewers: cedric, stefan_schmidt

Subscribers: stefan_schmidt, jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-06-05 12:04:43 -07:00
Stefan Schmidt 4d13211116 examples: edje: make sure we use the edje_object_language_set legacy API
The EO based edje_obj_language_set API is now longer available since a
rework of this API. Also make sure a used parameter is not marked as
unused.
2017-06-02 09:21:49 +02:00
Jean-Philippe Andre 81eb7a3f0b examples: Test API efl_input_device_children_iterate
While the API seems to work fine, I am not 100% sure the device
names are properly assigned.

Run ecore_evas_cursor_example or ecore_evas_vnc_example and
then connect to the VNC server locally or remotely.
2017-05-24 16:06:18 +09:00
Amitesh Singh 850498e977 rename elm_button to Efl.Ui.Button
ref T5323

Signed-off-by: Amitesh Singh <amitesh.sh@samsung.com>
2017-05-22 17:28:47 +09:00
Jean-Philippe Andre 7c5808f451 c++: Fix examples as Win.Standard was removed 2017-05-17 15:43:58 +09:00
Stefan Schmidt 75727592df examples: evas: fix else block by adding needed parenthesis
This was broken since over a year. Happened during the automatic eo4
migration in f21ade6123.

Thanks goes to the gcc warning misleading-indentation:

evas-3d-shadows.c:163:4: warning: this ‘else’ clause does not guard... [-Wmisleading-indentation]
    else
    ^~~~
evas-3d-shadows.c:165:6: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘else’
      evas_canvas3d_node_look_at_set(scene->mediator, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 3.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 5.0, 0.0);
2017-05-16 21:58:35 +02:00
Bryce Harrington 9f9d2177bf examples/evas: Fix weird use of word synchrony in comment
Summary: 'keep in sync' is more familiar programmer jargon.

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4876
2017-05-12 14:42:29 +09:00
Jean-Philippe Andre c6d6e13060 evas map: Rename raw_coord to coord_absolute
This is more in line with the other "absolute" APIs.
2017-05-12 12:02:24 +09:00
Jean-Philippe Andre 0a224da86f evas map: Introduce new API for maps (Efl.Gfx.Map)
This implements an entirely new API model for Evas Map by relying
on high-level transformations on the object rather than an external
Evas_Map structure that needs to be constantly updated manually.

The implementation relies on Evas_Map.

To rotate an object all you need to do now is
  efl_gfx_map_rotate(obj, 45.0, NULL, 0.5, 0.5);

Or with a C++ syntax:
  obj.rotate(45.0, NULL, 0.5, 0.5);

Or even simply (with default arguments):
  obj.rotate(45.0);

The map transformation functions are:
 - rotate
 - rotate_3d
 - rotate_quat
 - zoom
 - translate (new!)
 - perspective_3d
 - lightning_3d

@feature
2017-05-11 17:54:00 +09:00
Jean-Philippe Andre 70821182ff evas examples: Fix invalid assumption about proxy
In the map examples, the map image UV size was based on the image
source geometry, rather than the image geometry itself.

In the example, this affects how the glass is mirrored. Before this
patch, the reflection is a single line stretched. EFL 1.18 and 1.19
seem to have the same issue, while 1.17 simply fails to show any
reflection. 1.16 fails miserably and the entire window is black.

If the original code was correct, then I believe that map and/or
proxy rendering have been modified in a way that affects the meaning
of those image UV parameters. But this seems like the regression (if
it is one) is in fact quite old.

@fix
2017-05-11 17:53:51 +09:00
Bryce Harrington c6212e6e67 examples/evas: Improve linespacing consistency
Summary:
Also fixes a handful of obvious indentation irregularities,
including some reformatting of some printf() multi-line indents that
commit a71b770b did not properly adjust.

No functional code changes.

Reviewers: cedric

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D4864
2017-05-10 11:03:38 +02:00
Bryce Harrington cee4d928cf examples/evas: streamline the intro description statement for examples
Summary:
For people browing through the examples, having the opening statement be
concise and consistent will help them more quickly find what they're
looking for.

Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>

Test Plan:
Some of the examples had identical opening statements (e.g. the image
object examples).  I've tried to give each a unique description defining
what they are demonstrating, but you may want to doublecheck I got these
correct.  Of particular note, to me evas-images5.c looks like just a
fixup to evas-images4.c, so I'm not sure what makes these two distinct.

Subscribers: cedric, jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-05-08 15:26:07 -07:00
Bryce Harrington 77e19c7194 examples: use printf instead of fprintf(stdout, ...)
Summary:
Applies same change as e8355c93 for evas, to the remaining examples.
This uses the shell command-line:

    src/examples/evas$ grep -sr 'fprintf(stdout' . | cut -d: -f1 \
        | uniq | xargs sed -i "s/fprintf(stdout/printf(/"

Note that use of the "fprintf(stdout" construct can generate warnings
when -Wformat-security is enabled, if the fprintf statement has no
format arguments, so in addition to the stylistic simplification this
also helps quell those spurious warnings.

Subscribers: cedric, jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-05-08 15:14:29 -07:00
Bryce Harrington ccd78c7708 examples/evas: Fix missing space before -lm in compilation directions
Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4835
2017-05-03 12:03:40 +02:00
Bryce Harrington 9a9dcd5e44 examples/evas: fix spelling
Subscribers: cedric, jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-04-25 16:28:44 -07:00
Jeeyong Um e105646041 edje_cc: introduce "Anchors" - easy way to set parts relationship
Test Plan: compile src/examples/edc-anchors.c and run

Reviewers: zmike, raster, cedric, jpeg

Reviewed By: raster, jpeg

Subscribers: raster, barbieri, zmike, SanghyeonLee, taxi2se, Jaehyun_Cho

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-04-25 16:25:15 -07:00
Jean-Philippe Andre bcf3ce8428 examples: Fix most trivial warnings
This fixes all warnings for "make examples" for:
 -Wunused-parameter
 -Wshadow
 -Wformat-security
 -Wenum-conversion

Some remaining warnings include:
 -Wdeprecated-delcarations
2017-04-20 17:44:57 +09:00
Bryce Harrington a71b770bbc examples/evas: Use printf instead of fprintf(stdout, ...)
Summary:
Applies the correction purely mechanically using the following shell
command-line:

    src/examples/evas$ grep -sr 'fprintf(stdout' . | cut -d: -f1 | uniq | \
        xargs sed -i "s/fprintf(stdout/printf(/"

This fixes a few warnings about lack of a format string:

    warning: format not a string literal and no format arguments [-Wformat-security]
        fprintf(stdout, commands);

Reviewers: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D4691
2017-04-20 17:31:58 +09:00
Cedric BAIL 91e87c5f05 ecore: use new API eina_file_close_on_exec in example too. 2017-04-18 16:57:36 -07:00
Shinwoo Kim 4f6873905b ecore_input: add API to get name of joystick.
Summary:
The Ecore_Event_Joystick would be not enough information on user side.
Because the button index such as ECORE_EVENT_JOYSTICK_BUTTON_SELECT/START/META,
etc could be mapped to different button for different named joystick.

Test Plan: Using example

Reviewers: raster, cedric, jpeg

Reviewed By: raster

Differential Revision: https://phab.enlightenment.org/D4669
2017-04-13 14:53:48 +09:00
Cedric BAIL bb83ff9094 ecore_evas: fix use of new VNC API in example. 2017-04-12 15:13:19 -07:00
Gustavo Sverzut Barbieri fa0e2865a1 implement efl_net_{socket,dialer,server}_windows
This is the local socket for windows, analogous to AF_UNIX.

`Efl_Net_Socket_Windows` is the base class doing `ReadFile()` and
`WriteFile()` using overlapped I/O, as well as the close procedure
(`FlushFileBuffers()`, `DisconnectNamedPipe()` and
`CloseHandle()`). These are done on top of an existing HANDLE that is
set by `Efl_Net_Dialer_Windows` (from `CreateFile()`) or
`Efl_Net_Server_Windows` (from `CreateNamedPipe()`).

The overlapped I/O will return immediately, either with operation
completed or `ERROR_IO_PENDING`, which means the kernel will execute
that asynchronously and will later `SetEvent(overlapped.hEvent)` which
is an event we wait on our main loop. That `overlapped` handle must
exist during the call lifetime, thus cannot be bound to `pd`, as we
may call `CancelIo()` but there is no guarantee the memory won't be
touched, in that case we keep the overlapped around, but without an
associated object.

Windows provides no notification "can read without blocking" or
non-blocking calls that returns partial data. The way to go is to use
these overlapped I/O, with an initial `ReadFile()` to an internal
buffer, once that operation finishes, we callback the user to says
there is something to read (`efl_io_reader_can_read_set()`) and wait
until `efl_io_reader_read()` is called to consume the available data,
then `ReadFile()` is called again to read more data to the same
internal buffer.

Likewise, there is no "can write without blocking" or non-blocking
calls that sends only partial data. The way to go is to get user bytes
in `efl_io_writer_write()` and copy them in an internal buffer, then
call `WriteFile()` on that and inform the user nothing else can be
written until that operation completes
(`efl_io_writer_can_write_set()`).

This is cumbersome since we say we "sent" stuff when we actually
didn't, it's still in our internal buffer (`pd->send.bytes`), but
nonetheless the kernel and the other peer may be adding even more
buffers, in this case we need to do a best effort to get it
delivery. A particular case is troublesome: `write() -> close()`, this
may result in `WriteFile()` pending, in this case we wait using
`GetOverlappedResult()`, *this is nasty and may block*, but it's the
only way I see to cope with such common use case.

Other operations, like ongoing `ReadFile()` or `ConnectNamedPipe()`
will be canceled using `CancelIo()`.

Q: Why no I/O Completion Port (IOCP) was used? Why no
   CreateThreadpoolIo()? These perform much better!

A: These will call back from secondary threads, but in EFL we must
   report back to the user in order to process incoming data or get
   more data to send. That is, we serialize everything to the main
   thread, making it impossible to use the benefits of IOCP and
   similar such as CreateThreadpoolIo(). Since we'd need to wakeup the
   main thread anyways, using `OVERLAPPED.hEvent` with
   `ecore_main_win32_handler_add()` does the job as we expect.

Thanks to Vincent Torri (vtorri) for his help getting this code done
with an example on how to do the NamedPipe handling on Windows.
2017-03-29 12:44:19 -03:00
Gustavo Sverzut Barbieri 17444557de ecore_con_*_example: compile on win32.
- win32 doesn't provide getline().
 - _write() exists, use _write_() instead
2017-03-29 12:44:19 -03:00
Gustavo Sverzut Barbieri 8f6e3265b6 ecore_ipc_client_example: win32 doesn't provide getline(). 2017-03-29 12:44:19 -03:00
Gustavo Sverzut Barbieri bfe2988f4d efl_net_dialer_unix_example: read in loop while "can_read".
While in UNIX we use 'select()/poll()' to query for read fds and this
will eventually callback with "can_read" event, use the loop to match
other implementations where can_read keeps true if not all data was
read.
2017-03-29 12:44:19 -03:00
Carsten Haitzler eac53691f9 fix ecore con client exmaple to match cmdline help output for options 2017-03-29 16:49:03 +09:00
Carsten Haitzler feeff68401 fix ecore con server exmaple to match cmdline help output for options 2017-03-29 16:28:21 +09:00
Jean Guyomarc'h c57daa030d edje/examples: don't alter source directory
We would have removed files from the source directory before... oops...
2017-03-11 00:04:48 +01:00
Jean Guyomarc'h 7ef27a4669 eldbus: don't abs() an unsigned value
clang complained about abs() being used on an unsigned integer.
Calling abs() is actually unnecessary.
2017-03-09 23:16:16 +01:00
Jean Guyomarc'h 660259b46d eio: fix printf format error 2017-03-09 23:16:16 +01:00
Jean Guyomarc'h a0a957bb7d edje: make sure the po files are well-copied once 2017-03-09 23:16:16 +01:00
Jean Guyomarc'h 8d2c6189fa edje: use portable cp options
The -u option is GNU-specific.
2017-03-09 23:16:16 +01:00
Lauro Moura eb041fb6a0 js: Update examples, including window api changes.
Window now inherits from Container instead of Pack.

Also removed some deprecated stuff.
2017-02-22 18:56:30 -03:00
Bryce Harrington 2ea9e7010c examples: Use printf instead of fprintf(stdout, ...)
Summary:
Also fix warning about lack of a format string:

    warning: format not a string literal and no format arguments [-Wformat-security]
         fprintf(stdout, commands);

Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>

Reviewers: cedric, jpeg

Reviewed By: jpeg

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4673
2017-02-21 10:46:28 +09:00
Shinwoo Kim 32fbf64d28 ecore_input: add API to set/get deadzone of joystick event for an axis.
Summary:
The axis type joystick event could occur without user's control if joystick is too sensitive.
The deadzone prevents this unnecessary event. The default value is 200.
The event value for an axis is a signed integer between -32767 and +32767.

Test Plan: Using example

Reviewers: raster, cedric, jpeg

Reviewed By: jpeg

Subscribers: stefan_schmidt

Differential Revision: https://phab.enlightenment.org/D4654
2017-02-15 13:03:02 +09:00
Stefan Schmidt 3f50c73031 elm: examples: add new layout_model_connect binary to gitignore 2017-02-09 14:47:22 +01:00
Larry Jr 093c592188 efl: add efl_model and efl_ui_view classes
Efl.Model.Container and Efl.Model.Item to efl/interfaces are used
to create Efl.Model objects with predefined property values.
This is useful to any situation where we want an Efl.Model with
explicit defined property values.

Efl.Ui.View and Efl.Ui.Factory are used to connect Efl.Models with
Widgets, Elm.Layout and Efl.Ui.Image has changed to use news interfaces

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-02-06 15:26:21 -08:00
Jerome Pinot 1fd5c941b9 edje_example: fix compile instruction 2017-02-05 21:56:18 +09:00
Bruno Dilly b251e1a4ac edje: change seat signals
Use seat names as prefix, not as suffix, following
a top-down approach and avoiding issues
with applications that may be receiving
doubled signals (legacy + suffixed).

So instead of "mouse,in,seat1" signal will be
"seat,seat1,mouse,in".
2017-02-01 17:19:32 -02:00
Felipe Magno de Almeida a1f2db255b cxx: Modify how to generate C++ headers and allow cyclic dependencies
Allow cyclic dependencies in generated C++ headers by changing order
of includes and creating forward declarations.
2017-01-18 22:47:04 -02:00
Cedric BAIL 78bd2ea6f5 ecore_con: use the right type for prototype. 2017-01-06 15:58:46 -08:00
Cedric BAIL cf501ee7eb cxx: fix example with recent change. 2017-01-06 15:58:46 -08:00
Bruno Dilly de183e16a3 examples/edje: add seat filtering example
4 widgets:
 * seat1 only
 * seat2 only
 * seat1 + seat2
 * any seat
2016-12-21 23:03:33 -02:00
Guilherme Iscaro 87e458838d Ecore Evas: Add a new cursor example.
This example sets the cursor image of each available mouse and
report its position every one second.
2016-12-20 18:34:39 -02:00
Gustavo Sverzut Barbieri c2aedc117a efl_io_buffer: adopt read-only and read-write buffers.
todo--, allow buffer backing store to be provided by Eina_Slice
(rdonly) or Eina_Rw_Slice (rdwr).
2016-12-19 16:50:58 -02:00
Gustavo Sverzut Barbieri dd5cdda64b more eo simplified to use Eina_Slice instead of pointer to.
Working directly with Eina_Slice is easier than a pointer to it,
requires no validation of the pointers and is cheap since it's just
putting together size_t + void*.

However we can't hint the user of 'const(Eina.Slice)' properties as
Eolian is incorrectly generating getters as:

   const Eina_Slice class_property_get(...)

which is makes compilers complain about ignored qualifiers:

   ../src/lib/ecore/efl_io_copier.eo.h:329:7: warning: 'const' type qualifier on return type has no effect [-Wignored-qualifiers]

Leave some TODO so @q66 can fix those.
2016-12-19 15:30:56 -02:00
Gustavo Sverzut Barbieri 25a9e1d886 Efl.Io.{Queue,Buffer,Buffered_Stream}: slice_get is now a property.
Previously we couldn't return a slice, instead required the user to
pass a slice and we'd fill it since Eolian couldn't generate fallbacks
for structures.

Since @q66 fixed eolian, we can now return the structure itself as
initially wanted, ditching some TODO from the code.
2016-12-19 15:30:56 -02:00
Bruno Dilly 4449ec8698 edje/examples: add example of use_custom_seat_names flag
Since seat names defined on evas will depend on evas backends,
maybe udev rules, etc, we aren't able to demonstrate it
without manually setting another name for such seats
with efl_input_devices_name_set(). Otherwise
we wouldn't have guarantees it would match
names on EDC.
2016-12-19 14:58:35 -02:00
Bruno Dilly 60b160f47c edje/examples: add example for focus actions
Just a regular (non multiseat) focus example for
actions FOCUS_SET and FOCUS_OBJECT
2016-12-19 14:58:35 -02:00
Bruno Dilly f34220f089 examples/edje: add dynamic seats example
It's an example of how themes can be implemented even if the number
of seats using the UI is unknown, and how it can be done
using scripts or C code.
2016-12-19 14:58:35 -02:00
Bruno Dilly c6399665dd edje: support action seats on edje_edit 2016-12-19 14:58:35 -02:00
Bruno Dilly 0ab6567b3e edje: accept optional seat parameter on FOCUS_OBJECT
If not provided, FOCUS_OBJECT action will keep acting
over default seat.

Also include a usage on edje-multiseat test
(actually no example was exercising this action).
2016-12-19 14:58:35 -02:00
Bruno Dilly 7ef5f6c3a0 examples/edje: add multiseat example 2016-12-19 14:58:35 -02:00
Guilherme Iscaro 200ee1869b Evas: Add event filter example.
This example exercises the new seat event filter API.
2016-12-12 14:59:22 -02:00
Gustavo Sverzut Barbieri 633ec445b8 efl_net: add Efl.Net.Ip_Address
This is a string parser, serializer and asynchronous resolver.

It's purpose is to convert to and from the strings we use in our
dialers and servers, such as "127.0.0.1:1234" or "[::1]:1234",
properties allow to check the family, port, address bytes (slice) and
even get a struct sockaddr pointer to use with bind()/connect() in
outside code.

It will also offer some utilities present in netinet/in.h in an easy
to use way, after all IN6_IS_ADDR_LOOPBACK() works one way, while
there is no IN_LOOPBACK and comparing with INADDR_LOOPBACK will lead
to errors since it's in network order.

Last but not least, it will do asynchronous resolve of host and port
names using an internal thread and getaddrinfo(). The results are
delivered using a Future with an array of objects.
2016-12-12 02:30:33 -02:00
Gustavo Sverzut Barbieri 21759f713a yoda-style inactivity timeout.
s/inactivity_timeout/timeout_inactivity/g so it matches the EFL names
with scope first, like timeout_connect, etc.
2016-12-12 02:30:33 -02:00
Gustavo Sverzut Barbieri e9a72ea8f4 efl_net: spell check s/revogation/revocation/g
Sorry, in pt_BR it's revoGar... so I did misspell :-)
2016-12-12 02:30:33 -02:00
Gustavo Sverzut Barbieri 72ad2c5eb7 ecore_con_server_example: add --socket-activated 2016-12-10 08:44:06 -02:00
Gustavo Sverzut Barbieri 2fab8462ce ecore_con_server_example: add tcp+ssl, upgrades a live client.
add a new -t/--type=tcp+ssl, there you can send "Upgrade: SSL\n" to
request the server to start the handshake.

This can be paired with the ecore_con_client_example, there you can
type:

   Upgrade: SSL\n
   STARTTLS\n

The second is a dialer local command to upgrade it to SSL, matching
what the server expects.
2016-12-10 08:44:06 -02:00
Gustavo Sverzut Barbieri f4f782eb20 ecore_con_client_example: allow tcp->ssl upgrades.
The example now offers --type=tcp+ssl, in this case it won't send a
"hello!" message to avoid messing with the handshake. Once the client
(dialer) receives the user command STARTTLS
(--starttls-local-command), then it will upgrade the connection.

Usually in real life you need to send some command to server, such as
upgrade, STARTTLS and then upgrade... unless you connect to a SSL-only
server (ie: ecore_con_server_example --type=ssl).
2016-12-10 08:44:06 -02:00
Gustavo Sverzut Barbieri 7d1c7cff21 ecore_con_server_example: show client errors. 2016-12-08 16:00:01 -02:00
Gustavo Sverzut Barbieri a5dd6aa113 ecore_con_client_example: allow no-ssl verify and print errors.
allow to not verify server certificate or hostname, so we can test
with local, self-signed certificates.

Also print errors, so we can say that the server handshake failed.
2016-12-08 16:00:01 -02:00
Gustavo Sverzut Barbieri 2d2dc4de4b ecore_con_server_example: allow more features and protocols to be used.
Instead of a single SSL connection, allow for local, tcp and udp,
optional flush and delete-after-write (--single-message) and echo
mode.

Very similar to ecore_ipc_server_example.c
2016-12-08 11:40:45 -02:00
Gustavo Sverzut Barbieri b38681f725 ecore_con_client_example: allow more features and protocols to be used.
Instead of a single SSL connection, allow for local, tcp and udp,
optional flush and delete-after-write (--single-message).

Very similar to ecore_ipc_client_example.c
2016-12-08 11:40:45 -02:00
Bruno Dilly 9941fbc044 examples/evas: use new API for key modifiers per seat 2016-12-06 17:09:03 -02:00
Bruno Dilly adb95630ef eina: remove tests, examples and docs for eina_model
Summary:
Since eina_model was dropped some years ago.
Also a few other points where related stuff is just commented out.

Reviewers: iscaro, barbieri

Reviewed By: barbieri

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4442
2016-11-30 18:37:34 -02:00
Bruno Dilly 887be4d4e5 evas: add example for multiseat events
Also useful to make some tests / debugging.
2016-11-30 16:49:25 -02:00
Bruno Dilly 639e0eeaf5 examples/evas: sort gitignore 2016-11-30 16:49:25 -02:00
Gustavo Sverzut Barbieri d07e0c3072 examples/ecore: build ecore_con_url_ftp_example 2016-11-29 16:03:13 -02:00
Gustavo Sverzut Barbieri a4931f4fb0 ecore_con_url_headers_example: allow POST data. 2016-11-29 16:03:13 -02:00
Bruno Dilly e190173338 elementary: fix make examples
After commit
54abdad6e0 elementary-cxx: Fix filemvc wrong usage of Efl_Future
it's required to add libethumb_client.la to ELEMENTARY_LDFLAGS
2016-11-28 17:21:42 -02:00
Vitalii Vorobiov a5ce6200a2 example: update edje-edit-part-box to use not deprecated functions
since box/table item API is deprecated and replaced with new API, it is important
to use them in example as well

Fixes T4931
2016-11-28 17:00:24 +02:00
Felipe Magno de Almeida 54abdad6e0 elementary-cxx: Fix filemvc wrong usage of Efl_Future 2016-11-28 12:32:18 -02:00
Gustavo Sverzut Barbieri 167ff29ea0 efl_net_{socket,dialer,server}_simple: easy to use, buffered network sockets.
The low level I/O primitives are powerful but adds some complexity to
use, for bi-directional streaming communication one ends creating two
Efl.Io.Queue and two Efl.Io.Copier to pipe data to socket when it can
operate.

Then encapsulate the socket using the new Efl.Io.Buffered_Stream, this
will allow the socket, be a dialer or a server client, to be operated
as a single handle that internally carries about the buffering for
you.

As one can see in the examples, compared to their "manual"
alternatives they are very easy to use, ressembling
Ecore_Con_Server/Ecore_Con_Client, but also offers line-based
delimiters and the possibility to let the socket to handle queueing
for you in case you received partial messages (just do not
read/clear/discard the received data).
2016-11-25 17:27:32 -02:00
Gustavo Sverzut Barbieri 46341b329d efl_io_buffered_stream: wraps an I/O object and make it easy to use.
Since all other efl.io objects are low-level, the recommended approach
is to use an efl.io.copier. However when dealing with in-memory,
bi-directional comms like talking to a socket, we always end with 2
queues, 2 copiers and the annoying setup that is being replicated in
ecore_ipc, efl_debug and so on.

This class is the base to make it simpler. Other classes such as
Efl.Net.Socket.Simple, Efl.Net.Dialer.Simple and Efl.Net.Server.Simple
will use it to provide simpler code to users.

I guess we can call EFL+EO Java now?
2016-11-25 17:27:32 -02:00
Gustavo Sverzut Barbieri 3bc7c502db ecore_ipc_server_example: test "write & del" using -m/--single-message
An use case is to send some message and delete the handle, all data
should be sent to client.
2016-11-23 12:57:10 -02:00
Gustavo Sverzut Barbieri f7f6847b5a ecore_ipc_client_example: test "write & del" using -m/--single-message
An use case is to send some message and delete the handle, all data
should be sent to server.
2016-11-23 12:57:10 -02:00
Gustavo Sverzut Barbieri 7b2faeadb1 ecore_ipc_server_example: delete clients when they disconnect.
if a client disconnect we must delete them explicitly.
2016-11-22 21:58:14 -02:00
Gustavo Sverzut Barbieri b52a0151b7 ecore_ipc_client_example: better lifecycle management.
If the server is gone, immediately delete it, this exercises deleting
the server from inside its event.

Then, if the server was already deleted, do not do it again.

Also remove the shadow variable, keep only the global scope.
2016-11-22 21:56:41 -02:00
Gustavo Sverzut Barbieri 06263c9eb3 add ecore_ipc_{client,server}_example.
Ecore_Ipc lacked examples so we can explore its API (and check if it
work :-P)
2016-11-22 19:50:11 -02:00
Cedric Bail a0d9354be1 elementary_cxx: fix examples to use the new API. 2016-11-21 16:03:27 -08:00
Gustavo Sverzut Barbieri 2e3aa2cf6c ecore_file_download_example: allow cancel.
If we ^C to cancel the main loop, then abort the download, this allows
using one more API in the example and provides more correct code.
2016-11-21 19:47:35 -02:00
Gustavo Sverzut Barbieri 0c8c7ffacf ecore_file_download_example: check the correct file size.
when downloading DST_MIME, check its size, not DST's.
2016-11-21 19:47:35 -02:00
Gustavo Sverzut Barbieri cc703b619d ecore_file_download_example: also unlink DST_MIME.
ecore_file_download() will refuse to download if file already exists,
then we must unlink DST_MIME as done with DST before we try to
download, otherwise it won't work on the second time.
2016-11-21 19:47:35 -02:00
Stefan Schmidt 60bb5621d1 examples/elementary: bring back datetime_example target
In commit 5929f0311d this was removed. While
the commits intend was to remove the cxx variant of this example only.

Bring this back so examples are building again.
2016-11-15 17:45:32 +01:00
Felipe Magno de Almeida 5929f0311d elementary-cxx: Removed example from datetime 2016-11-11 18:07:24 -02:00
Bruno Dilly ed48b8d93e efl: add getter for input device's seat
Since this code will be required in many use cases
of the multiseat feature, including examples.

Reviewers: iscaro, barbieri, cedric

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D4385
2016-11-09 11:02:38 -02:00
Gustavo Sverzut Barbieri 98fe627ca4 efl_net_session and efl_net_control for ConnMan
These are objects to allow control of networking devices
(efl_net_control) as well as an application to request for
connectivity (efl_net_session).

They are loosely based on ConnMan.org, which we already use in
Enlightenment Window Manager via DBus access with Eldbus. However they
do not map 1:1 as the goal was to expose a viable subset of controls
but in a simple and general way, thus nome strings were converted to
enums, some arrays of strings were converted to bitwise flags, some
names were made more general, such as "service" was turned into
"access point" so it doesn't generate confusion with other "network
services" (ie: http server), or "favorite" that was renamed to
"remembered". Some behavior are slightly different (yet able to be
implemented on top), such as "Service.MoveBefore" and "MoveAfter" were
converted to a numeric "priority", calculated from service's list
index, changing the priority will reoder the list and thus generate
the MoveBefore and MoveAfter DBus commands.

ConnMan was chosen not only because we already use it, but because its
DBus API is sane and simple, with the server doing almost all that we
need. This is visible in the efl_net_session, which is completely done
in the server and do not require any extra work on our side -- aside
from talking DBus and converting to Eo, which is a major work :-D

   NOTE: ConnMan doesn't use FreeDesktop.Org DBus interfaces such as
         Properties and ObjectManager, thus we cannot use
         eldbus_model_object.

There are two examples added:

 - efl_net_session_example: monitors the connection available for an
   application and try to connect. You need a connman compiled with
   session_policy_local and a configuration file explained in
   https://github.com/aldebaran/connman/blob/master/doc/session-policy-format.txt
   to get a connection if nothing is connected. Otherwise it will just
   monitor the connectivity state.

 - efl_net_control_example: monitors, plays the agent and configure
   the network details. It can enable/disable technologies, connect to
   access points (services) and configure them. It's quite extensive
   as allows testing all of ConnMan's DBus API except P2P (Peers).
2016-11-08 22:40:34 -02:00
Guilherme Iscaro 8687a23820 Ecore Evas VNC: add client disconnected callback.
Summary:
Ecore Evas VNC: Properly unregister the region push hook callback.

This callback must be unregistered when the VNC server is deleted.

Reviewers: bdilly, barbieri, cedric

Subscribers: cedric, jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-11-07 14:44:40 -08:00
Cedric BAIL 5038f2551a elementary: update example to use Efl_Future. 2016-11-07 11:10:49 -08:00
Guilherme Iscaro fc2a3052b4 VNC Example: Add support to Ecore_Evas FB engine. 2016-11-04 18:29:42 -02:00
Bruno Dilly 96995032ea examples/edje: add example of entry - editable text
Not trivial to be done imo, so it deserves an example.
2016-11-04 18:01:57 -02:00
Bruno Dilly 24f4d14004 examples/edje: Fix build instructions and titles
Fix a few c&p errors
2016-11-04 18:01:57 -02:00
Bruno Dilly f8a0515b71 examples/edje: sort makefile lists 2016-11-04 18:01:57 -02:00
Gustavo Sverzut Barbieri 218403dc19 examples/eldbus/dbusmodel.c improve situation, far from correct.
it was using old API, updated, but still doesn't work as expected,
lots of warnings from children being left alive, all proxies are
reporting no properties...

when model dies, all children proxies should die as well, otherwise we
get on console:

```
CRI:eldbus lib/eldbus/eldbus_core.c:215 eldbus_shutdown() Alive TYPE_SYSTEM connection
ERR:eldbus lib/eldbus/eldbus_core.c:175 print_live_connection() conn=0x8219230 alive object=0x8276d50 net.connman of bus=net.connman
...
```

Also, all proxies are reporting no properties "(no properties yet)",
likely they are missing to fetch such... even if "--wait" to let it
run, no asynchronous properties are delivered, at least not triggering
EFL_MODEL_EVENT_PROPERTIES_CHANGED.
2016-11-04 13:19:57 -02:00
Bruno Dilly fcf9f55150 examples/edje: cosmetic fixes in a couple examples
Fix usage messages, remove unused defines
2016-11-03 18:47:32 -02:00
Gustavo Sverzut Barbieri c2630c829f efl_net_server support systemd socket activation.
It includes extensive verifications to avoid mistakes and usage of
incorrect sockets.
2016-11-01 16:37:04 -02:00
Bruno Dilly 3bc2793588 examples/ecore: add example / test for wayland multiseat 2016-11-01 16:06:19 -02:00
Gustavo Sverzut Barbieri 15a0ca0fb9 examples/ecore: command to generate OpenSSL PEM files.
it's cumbersome to remember these commands and without them it's hard
to test the SSL server examples, so add a make rule for that.
2016-11-01 11:52:21 -02:00
Gustavo Sverzut Barbieri 83457a52e2 efl_net_server_example: oops, do not assume all servers are Efl.Net.Server.Fd
SSL server is not an Fd, it contains one internally, but that's
hidden. So call proper methods.
2016-11-01 10:46:38 -02:00
Gustavo Sverzut Barbieri a5ebf67a83 efl_net_{server,dialer}_ssl: TCP + SSL easy to use.
in the previous commit we're manually upgrading an existing TCP socket
to SSL. It is desired since some protocols need to negotiate, like
STARTTLS and the likes

Now we offer 2 classes that does autostart SSL once the socket is
ready.
2016-11-01 01:31:56 -02:00
Gustavo Sverzut Barbieri f4198f022a efl_net_socket_ssl: initial SSL wrapper.
This is the first step towards SSL connections on top of sockets, with
an example on how to upgrade a dialer and a server client using TCP.
2016-10-31 19:39:33 -02:00
Stefan Schmidt c3d1cb9116 examples: ecore: add ecore_evas_vnc example binary to .gitignore 2016-10-27 18:22:42 +02:00
Gustavo Sverzut Barbieri 84ec16cfa8 efl_io_copier_example: add AF_UNIX support. 2016-10-26 19:16:29 -02:00
Gustavo Sverzut Barbieri 651ff13616 addded efl_net_{socket,dialer,server}_unix
This introduces AF_UNIX server and dialer, these are not available on
Windows as in that platform we'll create a custom class for native
'local' communication.

In the future we can add a wrapper class Efl.Net.Local that will use
the class for each platform, but won't expose its details.

For instance, if we ever expose 'credentials' (which I didn't because
they are not portable), then it doesn't make sense to try to match
that on Windows. The 'Efl.Net.Local' would just stick to the basics:
Reader, Writer and Closer APIs.
2016-10-26 19:01:03 -02:00
Gustavo Sverzut Barbieri 06608f632e efl_io_copier_example: allow udp as input/source.
now that we have a 'bind', let's use the given address as bind and
dial to `0.0.0.0` or `::`. This allows the dialer to receive data at
the given address and make the example useful.
2016-10-26 12:46:09 -02:00
Gustavo Sverzut Barbieri 6e6d43878b efl_net_dialer_udp_example: add missing print of groups. 2016-10-26 12:24:48 -02:00
Jean-Philippe Andre 34e6c834ce examples: Remove now broken cxx elm examples
Bubble, thumb and separator cxx examples rely on APIs we don't
want to expose in EO, so not available in C++ either. Those
are legacy only.
2016-10-26 13:42:54 +09:00
Lauro Moura 4f52588b3c efl_js: Update JS examples
Changing imports, functions, etc.

Also export "cast" function for all eolian_js generated classes.
2016-10-25 12:23:34 -02:00
Gustavo Sverzut Barbieri cd53f9bad2 efl_net_*_udp: make UDP usable, including multicast.
This was a huge work, but now UDP is usable as seen in the examples.

Instead of relying on 'connect()', just do 'sendto()' and 'recvfrom()'
as they are universal. Multicast address can only be connected in
IPv4, IPv6 wasn't working and I'm not sure the IPv4 is portable to
other platforms.

Dialer will auto-join multicast groups is the dialed address is
one. Multicast properties such as time to live (hops) and loopback can
be configured. When joining multicast groups, the local
address/interface can be configured by 'IP@IFACE' format, with
'@IFACE' being optional.

Dialers will now auto-bind, so it can receive data as dialers are
expected to be bi-directional. One can manually specify the binding
address if there is such need.

Since datagrams must be read in their full size, otherwise the
remaining bits are dropped, expose next_datagram_size_query() in both
Efl.Net.Socket.Udp and Efl.Net.Server.Udp.Client.

To finalize UDP for real we need to introduce an 'Efl_Net_Ip_Address'
structure to serve as both IPv4 and IPv6 and expose 'sendto()' and
'recvfrom()'. These will come later as this commit is already too big.
2016-10-25 10:11:48 -02:00