this was more or less just a wrapper around efl_gfx_entity_size_set
and resulted in unpredictable behavior depending on when it was called
instead, simply set the min size hint on the popup object
ref T7902
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9549
this is the basic work for getting radio group as a single_selection
interface, which can be a part of mutli_selection. Which will come both
later on.
ref T8057
Differential Revision: https://phab.enlightenment.org/D9504
Summary:
the behaviour here is that the next item according to the direction is
getting focused. This sounds easy but is quite complex given the fact
that the items might be hidden. This is the first draft for this, to see
how good it performes.
Reviewers: zmike, stefan_schmidt, cedric
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9496
Sorry to touch stable eo classes. there is name conflict issue between class and
property when binding language is generated from eo. for example in C#, compiler
error occurs.
```
src/bindings/mono/efl_input_hold.eo.cs(166,17): error CS0542:
`Efl.Input.Hold.Hold': member names cannot be the same as their enclosing type
```
This patch changes Efl.Input.Hold.GetHold/SetHold to
Efl.Input.Hold.GetInputHold/SetInputHold and generates Efl.Input.Hold.InputHold
property.
Note that CAPI is not changed.
ref T8093
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Lauro Neto <lauromauro_>
Differential Revision: https://phab.enlightenment.org/D9484
Summary:
`eolian_mono` now considers the implicit ownership of value types in arrays and
lists when generating ownership flags.
Also, update manual bindings for arrays and lists to no longer free elements
in the `Dispose` method when the container has ownership of the elements
but C# itself does not have ownership of the container; the elements will be
freed by whoever owns the container.
Modifying and removing elements will still free them though.
Re-enabled unit tests that required ownership of value type elements.
Reviewers: felipealmeida, q66, vitor.sousa
Reviewed By: felipealmeida
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9457
Summary:
Sorry to touch stable eo classes. there is name conflict issue between class and
property when binding language is generated from eo. for example in C#, compiler
error occurs.
```
src/bindings/mono/efl_input_key.eo.cs(272,26): error CS0542:
`Efl.Input.Key.Key': member names cannot be the same as their enclosing type
```
This patch changes Efl.Input.Key.GetKey/SetKey method to
Efl.Input.Key.GetKeySym/SetKeySym and generates Efl.Input.Key.KeySym
property.
Note that CAPI is not changed.
ref T8093
Test Plan: meson setup -Dbindings=mono,cxx -Dmono-beta=true
Reviewers: lauromoura, woohyun, zmike, segfaultxavi
Reviewed By: segfaultxavi
Subscribers: bu5hm4n, cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8093
Differential Revision: https://phab.enlightenment.org/D9483
zmike note: this class was not released at the point of this patch, the class
was only recently marked as stable
having efl_ui_spin implementing efl.ui.range_interactive does not make
sense. Efl.Ui.Spin is a not interactive widget, so it should not
implement that interface.
ref T7897
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D9475
For some reason DocFX does not generate links for templated event handlers:
event EventHandler<Efl.Input.IInterfacePointerOutEvt_Args> PointerOutEvt;
After unsuccessfully trying to find out why, this patch adds the link to the
event arguments in a <value> tag, so at least it shows in the documentation
and the reader has somewhere to click to find out what arguments an event
is sending.
Summary:
The repeated counter in Efl.Input.Clickable_Clicked can be used to
identify double click or triple click.
Previously, the repeated counter in Efl.Input.Clickable_Clicked was
calculated within the time interval 0.1 second.
Now, the time interval for the repeated counter is increased to 0.25
second. It seems that 0.25 second is more appropriate to identify if the
two consecutive clicks should be considered together.
(e.g. considered as double click or triple click)
Moreover, in ecore_event and edje, 0.25 second is already used as a time
interval for double click.
Test Plan:
1. Run Efl.Ui.Button in elementary_test
2. Do double click or triple click the buttons
Reviewers: segfaultxavi, bu5hm4n, YOhoho
Reviewed By: segfaultxavi, YOhoho
Subscribers: YOhoho, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9485
this event is not also in range_interactive, so better use this.
ref T8097
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D9459
Summary:
Escapes a single string, without leading `///`
Depends on D9481
Reviewers: segfaultxavi, felipealmeida
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9482
Summary:
Structs have a convenience constructor which was missing parameter documentation.
Struct fields need a <value> tag or there is a hole in the generated docs.
The documentation for the type of the field has been used, when available.
Test Plan: Build docs and look at generated pages for structs.
Reviewers: lauromoura, vitor.sousa, felipealmeida
Reviewed By: lauromoura
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9478
it does not work yet, but we at least have the chance of seeing it.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9194
Summary:
Eolian Type files were not being generated, which made some template
specialization to not be defined, for example for function_wrappers.
Reviewers: bu5hm4n, woohyun, lauromoura
Reviewed By: lauromoura
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9468
Previously, pop() does not unpack content if there is one content.
Now, pop() unpacks content without transition if there is one content.
Since there is no transition, NULL future is returned.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9450
we concluded min,reached and max,reached should be on every widget that
implements range_display. This here is the start of that work, the
events are moved, next commit fixes all widgets, the last commits
enables tests in the spec unit test.
ref T7897
ref T7895
Differential Revision: https://phab.enlightenment.org/D9371
To support blocking of scrolling movement, @property scroll_block has
been added to Manager_Scroll.
If scroll_block is set to be true, then scrolling movement by mouse
input is blocked.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9444
Summary:
It uses a custom marshaler and a helper boxing class to convert between
the managed enum values and the native Eina_Value_Type pointers.
To be used by future MVVM machinery.
Reviewers: vitor.sousa, felipealmeida
Reviewed By: vitor.sousa
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9443
this is just a little showcase to show the possible items
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9430
this is useful for doing quick testing when making invasive changes that
affect a large number of widgets, such as rewriting all sizing calc code
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9407
update font processing to handle variation sequences unicodes to select proper glypg in respect to variation seqences
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9053
when not using --test-win-only, allow opening new tests forward and
backward with alt+. and alt+,
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9406
this fixes handling of --help regardless of its position in the arg array
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9405
Summary:
this test is not runnable when it is not triggered directly from pressing
a button in the main window
Reviewers: devilhorns
Reviewed By: devilhorns
Subscribers: devilhorns, bu5hm4n, cedric, #reviewers, #committers
Tags: #efl_widgets
Differential Revision: https://phab.enlightenment.org/D9401
Summary:
this group name was wrongly changed by sed
ref d4526f44b8
Reviewers: segfaultxavi
Reviewed By: segfaultxavi
Subscribers: segfaultxavi, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9419
Summary:
if plug connection fails, a notification can't always be created because
there may be no object passed to this function to create a notify object on
@fix
Reviewers: devilhorns
Reviewed By: devilhorns
Subscribers: cedric, #reviewers, #committers
Tags: #efl_widgets
Differential Revision: https://phab.enlightenment.org/D9400
setting the parent here is usefull, as we can forgot about this object
then, and do not have to free the object by hand.
Differential Revision: https://phab.enlightenment.org/D9305
view_manager is a property that takes ownership of the view_manager
object. We are setting the parent in the setter which means, we should
actaully have one ref to the parent, and one from the caller, so we need
to unref one.
Differential Revision: https://phab.enlightenment.org/D9304
this is the first rename of the main widget, the renames of the test
suites will follow
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9408
This does the following rename as per T8058:
Efl.Ui.Item_Position_Manager -> Efl.Ui.Position_Manager.Entity
Efl.Ui.Grid_Position_Manager -> Efl.Ui.Position_Manager.Grid
Efl.Ui.List_Position_Manager -> Efl.Ui.Position_Manager.List
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9388
this is a new widget which aims to replace Efl.Ui.Grid / Efl.Ui.List.
The widget is split up in a widget and a interface for item placement.
Efl_Ui_Item_Position_Manager: The interface contains API which is used
by the Item_Container to place the items, there is also a set of common
tests which tests for the casual tripping wires, and ensures that the
events are emitted in the correct moments (the later part still can be
improved)
Efl_Ui_Item_Container: The widget itself, it contains the API for the
enduser to add Items to the widget, it handles the different modes for
selection type and emits the events for selection changes. The pack API
is conform with the spec unit test. An additional set of tests is
defined which should be able to be run on every widget with a specific
position_manager beeing set.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9285
Summary:
Previous commit added a <remarks> section to BETA classes.
Methods (and properties) cannot have <remarks> section so a bit
of bold text is added instead to their summary.
Depends on D9380
Test Plan: Generate docs and observe beta methods and properties have a note regarding their betaness in the summary.
Reviewers: lauromoura, vitor.sousa
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9382
Summary:
The mono generator adds a <remarks> section to all BETA classes with an explanatory text.
These tags are understood by DocFX and Monodevelop.
On top of this, this commit modifies the DocFX template to give the Remarks section a more
prominent place in the page.
Test Plan: Render docs, Beta classes should have a big blue box with a remark about the class being Beta and dangerous.
Reviewers: lauromoura, vitor.sousa
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9381
before @owned was not even expressed in the api definitions of the
generated APIs, this adds support for it.
@owned is now expressed with EFL_TRANSFER_OWNERSHIP in a arguments. And
that preprocessor directive is documented.
Reviewed-by: Daniel Kolesa <daniel@octaforge.org>
Differential Revision: https://phab.enlightenment.org/D9369
Summary:
Parse `binbuf` and `event` type names and generate the proper binding type.
In 288f645e3c tests for `Eina.Binbuf` were disabled in order to avoid the
usage of deprecated notations in eolian.
Since the new `binbuf` keyword works as a substitute for the old notation
`ptr(Eina.Binbuf)`, tests were updated and re-enabled using the new notation.
Test Plan: `meson test`
Reviewers: felipealmeida, lauromoura, q66
Reviewed By: q66
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9349
Summary:
After trying convert to split very large image and running out of
memory, this few line of code did seems like the best solution. Maybe
there is some benefit to try to make Ecore_Evas_Convert more useful.
Reviewers: zmike, raster, segfaultxavi
Reviewed By: segfaultxavi
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9337
Summary:
This patch revises efl_ui_textpath_circle_set() interface.
Current circle_set() behavior is wrongly working,
it makes object minimal size with (x * 2, y * 2).
Insanely, how big size if the object is far from the screen origin.
Secondly, current interface requires center position,
How this center position could be guranteed if user wants to put it into a container?
Third, actual textpath output could be out of the textpath boundary,
since the textpath is originated to middle of text height.
the display boundary can be outside of the textpath geometry by (half of text height).
All in all, put altogether in fix,
I confirmed there is no methods without any compatibility break.
This brings elm_textpath_circular_set() api introduced.
@feature
Reviewers: #committers, kimcinoo, jsuya
Subscribers: zmike, bu5hm4n, segfaultxavi, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9260
same as the simple efl.ui.scroller test but with a 2 column table
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9347
this should be roughly identical and can be more directly compared in
terms of performance (which is not good in either case)
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9334
Summary:
before the step property was used as a relative value. The value that
was added in the end was (max-min)*step. Which is quite confusing given
the fact that the other APIs in in efl_ui_range_display are also taking
values absolut. Other implementations also do so.
fix T4834
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T4834
Differential Revision: https://phab.enlightenment.org/D9327
Summary:
Current:
In edc, zoom is supposed to happen from object center, there is no way to
change the center of the zoom.
Changes:
Adding support to change the center of zooming just like map rotation by using
other part's center.
@feature
Reviewers: cedric, zmike
Reviewed By: zmike
Subscribers: zmike, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9115
Summary:
Remove almost all the compilation warnings from C++ code. Only explicit
warnings using the `#warning` preprocessor directive remain.
Some warnings had to be suppressed with `#pragma` directives because the
behavior they were warning about is intended in some specific places.
Code comments were added in such situations.
Added a generator that creates `#pragma` directives in order to suppress
warnings in all generated C++ headers.
Currently `-Wignored-qualifiers` is the only warning category being suppressed.
The innocuous const qualifiers that it points are inoffensive and have
no effect in compilation at all.
They are also hard to track in generation since they can emerge from different
types in many places.
To ease the generation of the warning suppressors an utility constructor was
added to `efl::eolian::grammar::attributes::unused_type`.
Add constructors to `eolian_mono::class_context` to default initialize its
internal string and avoid field initialization warnings.
Test Plan: `meson test`
Reviewers: lauromoura, felipealmeida, zmike, segfaultxavi
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl_language_bindings
Differential Revision: https://phab.enlightenment.org/D9275
Summary:
Attributes to be used by the API export tool. For end users, no changes
in the public API (except for a new attribute in generated classes).
Also simplifies constructor forwarding by not needing to pass the type
of the first "generated" class to compare.
Currently only automatically generated items are tagged.
Depends: D9259
Reviewers: vitor.sousa, felipealmeida
Reviewed By: vitor.sousa
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9270
Summary:
Build fix (remove warnings)
Instead of returning the beta functions in the vector and relying on
function generators to skip them, filter them out when filling the
implementable methods vector.
This will make the code return the actual number of implementable
function, skipping some unused fields in places like the NativeMethods
implementations.
Depends on D9258
Reviewers: vitor.sousa, felipealmeida, segfaultxavi
Reviewed By: vitor.sousa
Subscribers: cedric, #reviewers, #committers
Tags: #efl, #expertise_solutions
Differential Revision: https://phab.enlightenment.org/D9259
Summary:
When skipping beta items, make sure generated documentation does not try
to refer to beta stuff using `see` tags. Doing so would lead to warnings
when generating the xml doc file and as we now treat warnings as errors,
compilation would fail.
Instead of `see` tags, use a simple `span` with a suffix text explaining
said item is beta.
Reviewers: vitor.sousa, felipealmeida, segfaultxavi
Reviewed By: segfaultxavi
Subscribers: cedric, #reviewers, #committers
Tags: #efl, #expertise_solutions
Differential Revision: https://phab.enlightenment.org/D9258
If pointer is processed by a container in its POINTER_MOVE event
callback, then clickable calls efl_ui_clickable_button_state_reset not
to be clicked by efl_ui_clickable_unpress.
e.g. Efl.Ui.Active_View.View_Manager_Scroll sets pointer processed in
POINTER_MOVE event callback not to click button during scrolling.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9204
Summary:
Add support for `slice` and `rw_slice` keywords in eolian_mono.
Now it generates the proper manual binding type for these native types.
Make unit tests use these keywords instead of native names.
Remove some unnecessary `@beta` tags from eolian types in unit tests so now
tests correctly compile without the `mono-beta` compilation flag.
Also make tests that use `Eina.Binbuf` "beta only".
In a future update, the external type `Eina.Binbuf` will be marked as beta, so
we shield the binding in anticipation.
Test Plan: `meson -Dbindings=mono -Dmono-beta=true` and `meson -Dbindings=mono -Dmono-beta=false`
Reviewers: lauromoura, felipealmeida, q66, segfaultxavi, bu5hm4n
Reviewed By: lauromoura
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9238
before the spin event for changing the value was called twice if you
changed the value by the entry. Additionally, the changed,delay event is
not emitted when the value was changed via the arrow buttons.
This corrects this, additionally, this enables the delay timer when
focus is gone, this is expected and should be supported by the API.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9231
Summary:
Some parameter names, tag names and cref identifiers in the documentation were
incorrect and causing warnings during compilation.
There were also warnings related with missing documentation in publicly
visible elements in the manual binding.
This commit fixes these incorrections and adds documentation to the manual
binding in order to solve these compilation warnings.
Warnings related with missing documentation in `.eo` files are still present.
Test Plan: Just compile with mono binding.
Reviewers: lauromoura, felipealmeida, segfaultxavi
Reviewed By: segfaultxavi
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9243
View is something that is expected in the context of MVVM, so using it somewhere else is
going to lead to some confusion. Spotlight does descrive the objective of all of this
widget in actually a more explicit way as they all give the spotlight to one sub widget
at a time.
I have also renamed the View_Manager to be just Manager as the View there wasn't useful.
Summary:
Encapsulate some parts of EoWrapper making them less accessible to lib users.
This can avoid unnecessary and risky usage of code that is only intended for
internal usage.
`inherited` field was made private and renamed to `generated`. Now its value
can only be obtained through the `IsGeneratedBindingClass` property.
`handle` field was made private.
`eventLock` was renamed to `eflBindingEventLock`
`ConstructingHandle` property set was made private.
Constructors that are used to create new EFL# managed objects by wrapping a
preexisting eo handle now receive a specific struct wrapping the handle pointer.
This can avoid faulty interactions with the Reflection engine used only for
generated classes that implement this constructor.
Test Plan: meson test
Reviewers: lauromoura, felipealmeida, YOhoho
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9212
This class helps widgets which contain a numerical value and must display it,
like Progressbar (units label), Spin, Spin_Button, Slider (both units and popup
labels, in legacy), Tags (when in shrunk mode) or Calendar (year_month label).
Previously this was a mix of interface and mixin: widgets had to support setting a
formatting func, and the mixin offered support for formatting strings, by setting
an internal formatting func. On top of that, the spinner widget supported "special
values", a list of values that should be shown as certain strings instead.
This has now been simplified and unified:
Widgets including this mixin can use the formatted_value_get() method which accepts
an Eina_Value and returns a string. Thats's it.
The mixin adds three properties to the widget (format_values, format_func and
format_string) which users can use to tailor formatting. The widget does not need
to know which method has been used, it just retrieves the resulting string.
This removes a lot of duplicated widget code, and adds functionality which was
missing before. For example, all widgets support passing a list of values now.
Widgets must implement the apply_formatted_value() method so they are notified
of changes in the format and they can redraw anything they need.
Tests have been added to the Elementary Spec suite for all cases.
Legacy widgets behavior has not been modified, although a few needed some code
changes.
Summary:
Add a property (show_progress_label) to allow controlling whether the progress
label displaying the exact progress is shown or not.
This was possible in Legacy but the functionality was lost in Unified.
Updated elementary_test to showcase this property, and also the other label
formatting options, which where not tested anywhere.
Added a simple progressbar unit test. It only checks that retrieved value is the
same as the set value, so it is more of a placeholder for future tests.
**This is needed by a future patch which will introduce more formatting options that clash with the current implementation.**
The presence of a formatting function was used to decide if the progress label was shown or not. This explicit property simplifies things.
Test Plan:
Everything builds and passes tests.
`elementary_test -to Efl.Ui.Progressbar` should show a few more bars with different formatting labels, and a checkbox to toggle rendering of one of them.
Reviewers: bu5hm4n, zmike, cedric
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9202
Summary:
Both C strings and eina stringshares are bound as regular strings in EFL#, as
working directly with these types would demand unnecessary hassle from the user
viewpoint.
But for eina containers this distinction is important, and since C# generics
do not provide a convenient way of dealing with the same type requiring a
different management based on some other condition (at least not without
compromising the usability for other types), we added a simple `System.String`
wrapper named `Eina.Stringshare` that works as a placeholder for signaling
this distinction.
Working with this class should be transparent in most use cases because it
converts to and from `System.String` implicitly.
It also implements equality/inequality methods for easier comparison with
strings and other stringshare objects.
Add new methods and a new container element trait for dealing specifically
with `Eina_Stringshare` elements.
Adapt eolian_mono to identify and generate the proper placeholder in methods
that require stringshare containers.
Remove some direct uses of DllImport-ed functions in favor of more flexible
manual binding methods.
Move `Eina.Stringshare` DllImport directives to a static class named
`NativeMethods`, in accordance with the code design warning CA1060.
Also add a TODO comment to move all other DllImport directives to this class.
Change parameter of the method `Efl.Csharp.Application.OnInitialize` from
`Eina.Array<System.String>` to `string[]`.
This will make this API more similar with the default C# way of receiving
command line arguments.
Add tests for containers storing stringshare elements.
Reviewers: felipealmeida, lauromoura, segfaultxavi, bu5hm4n
Reviewed By: lauromoura
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9178
Summary:
With this commit it is now possible for a class that inherits from a C# binding
class to be instantiated from native C code. It only has to provide a
constructor that receives an `Efl.Eo.EoWrapper.ConstructingHandle` struct,
and which calls the base binding constructor passing it.
For example:
`private Type(ConstructingHandle ch) : base(ch) {}`.
Add some test files to validate the proper behavior of this feature.
Add some small fixes in generation contexts in order to properly
generate base constructors.
Depends on D9070
Test Plan: `meson test` and `make check`
Reviewers: lauromoura, felipealmeida, segfaultxavi, woohyun, YOhoho
Reviewed By: YOhoho
Subscribers: YOhoho, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9071
Summary:
Previously, if event info was not structure and it was a type defined in
eo, then the type value was not passed to the event info correctly.
e.g. if event info was Efl.Ui.AlertPopupButton enum type, then
default(Efl.Ui.AlertPopupButton) was always passed to event info.
Now, the given type value is passed to the event info correctly.
Reviewers: felipealmeida, lauromoura, vitor.sousa, bu5hm4n
Reviewed By: vitor.sousa
Subscribers: cedric, #reviewers, herb, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9159
Summary:
Iterator and Accessors are views only, not owning the data they point
to.
Also updated the tests by handling some test data that were leaking.
Fixes T8036
Reviewers: vitor.sousa, felipealmeida
Reviewed By: vitor.sousa
Subscribers: cedric, #reviewers, #committers, segfaultxavi, q66
Tags: #efl
Maniphest Tasks: T8036
Differential Revision: https://phab.enlightenment.org/D9189
Summary:
this doesn't seem to serve a purpose anymore and there's no point in
keeping it in tree
fix T7866
Reviewers: woohyun, Jaehyun_Cho
Reviewed By: Jaehyun_Cho
Subscribers: cedric, #reviewers, #committers
Tags: #efl_widgets
Maniphest Tasks: T7866
Differential Revision: https://phab.enlightenment.org/D9176
Summary:
efl user can now specify colors by there names ( not only Hex RGB/RGBA values), which is very convenient specially for first time users (where user may think it is supported by default)
<color=#FF0000> == <color=red> == <color==RED>
there are two main types of color names and values ( X11, web colors), here we are using X11 color.
============
Update for documentation pages should be added like:
https://www.enlightenment.org/_legacy_embed/evas_textblock_style_page.html#evas_textblock_style_color
I do not know how to update it :(
Test Plan:
```
#define EFL_EO_API_SUPPORT 1
#define EFL_BETA_API_SUPPORT 1
#include <Eina.h>
#include <Elementary.h>
#include <Efl_Ui.h>
static void
_gui_quit_cb(void *data EINA_UNUSED, const Efl_Event *event EINA_UNUSED)
{
efl_exit(0);
}
static void
_gui_setup()
{
Eo *win, *box;
win = efl_add(EFL_UI_WIN_CLASS, efl_main_loop_get(),
efl_ui_win_type_set(efl_added, EFL_UI_WIN_TYPE_BASIC),
efl_text_set(efl_added, "Hello World"),
efl_ui_win_autodel_set(efl_added, EINA_TRUE));
// when the user clicks "close" on a window there is a request to delete
efl_event_callback_add(win, EFL_UI_WIN_EVENT_DELETE_REQUEST, _gui_quit_cb, NULL);
box = efl_add(EFL_UI_BOX_CLASS, win,
efl_content_set(win, efl_added),
efl_gfx_hint_size_min_set(efl_added, EINA_SIZE2D(360, 240)));
efl_add(EFL_UI_TEXT_CLASS, box,
efl_text_markup_set(efl_added,
"<color=red>this is red color line(color = red)<color><br>"
"<color=#0000FF>this is blue color line (color = #0000FF)<color><br>"
"<color=gray>this is gray color line (color = gray)<color><br>"),
efl_gfx_hint_weight_set(efl_added, 1.0, 0.9),
efl_gfx_hint_align_set(efl_added, 0.5, 0.5),
efl_text_multiline_set(efl_added,EINA_TRUE),
efl_pack(box, efl_added));
efl_add(EFL_UI_BUTTON_CLASS, box,
efl_text_set(efl_added, "Quit"),
efl_gfx_hint_weight_set(efl_added, 1.0, 0.1),
efl_pack(box, efl_added),
efl_event_callback_add(efl_added, EFL_UI_EVENT_CLICKED,
_gui_quit_cb, efl_added));
}
EAPI_MAIN void
efl_main(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED)
{
_gui_setup();
}
EFL_MAIN()
```
Reviewers: woohyun, bowonryu, segfaultxavi, vtorri
Reviewed By: segfaultxavi, vtorri
Subscribers: vtorri, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9153
Summary:
Eo mixin is converted to C# interface and C# concrete class.
When the mixin's method is called, the delegate function of Eo mixin's
C# concrete class is called.
Now, the delegate function of Eo mixin's C# concrete class calls C#
method with casting to Eo mixin's C# concrete class type.
e.g. ((IClickableConcrete)ws.Target).Press(button);
If a user defined C# class implements Eo mixin's C# interface, the
implemented method cannot be called because the user defined C# class
type is not the same as Eo mixin's C# concrete class.
To resolve the above issue, the type casting code is fixed.
Reviewers: felipealmeida, lauromoura, vitor.sousa, YOhoho
Reviewed By: YOhoho
Subscribers: bu5hm4n, YOhoho, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9111
rename this property, as this name was considered better.
ref T7964
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D9141
This is a bit of a giant commit. However, the problem here is that
cleaning up the API went hand in hand with rewriting most of the usages.
In the process of renewing and removing old API the following was done:
- Legacy API testcases have been ported back to smart callbacks
- EO-API testcases have been ported to efl_add syntax
- weird event #defines have been removed
- Wrong constructor usage has been removed
- Ported to the new box object introduced before
- removed legacy API from efl_ui_radio
-> no more ptr(int) q66 will do jumps of happiness
-> no more ununderstandable group_add methods
-> Seperated code in blocks only for legacy, and blocks only for
non-legacy
To verify this commit, you can check all the tests that have been
touched here. Additionally, the cxx example has been adjusted
ref T7867
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9060
in previous versions of this widget, the calls that are available due to
inheritance did not work. efl_ui_check_selected_set did not work on a
radio button. However, the internal function _state_set did just exactly
that. So this commit refactors the activity emitting out of the
function, so the _state_set function can just be used as the
efl_ui_check_selected set function.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9059
Radio_Group is a interface that manages that radio groups can be grouped inside a
external object, the current API of radio was considered confusing in
that regard. It is implemented in the Radio_Group_Internal class which
is private to EFL, a instance of it can be found with get due to the
class function in efl_ui_radio.eo. This architecture was taken like
this, in order to have implementation and interface seperated. With
those two seperated we can inherit from regular widgets, implement the
interface, and composite attach the internal object to the regular
widget. This makes a lot of things easier.
Radio_Box is a class which is extending Efl.Ui.Box, which has an
internal Radio_Group. This is extremly usefull for cases where you just
want to have a list of radio buttons in your UI. The radio group is also
exposed using composition to the internal object. Simular things can be
done for the table.
For now i did not add API to find the group of a radio button. However,
this can be quickly added if requested.
ref T7867
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D9058
this can now be done with active_view. This is done in order to reduce
the LOC in elementary that basically do the same.
Differential Revision: https://phab.enlightenment.org/D8920
Get your seatbelt fastend! It is happening! AUTOTOOLS IS GONE NOW!
All praise to meson!
This time the final version, ci has been adjusted, and now does not try
anymore to build a removed buildsystem. However, the scripts in there
need cleaning up.
Differential Revision: https://phab.enlightenment.org/D9027
Summary:
check can only display 2 states, and is only designed to do so.
Additionally, nstate inherits from button, which
brings in autorepeat, which is hileriously broken on check and cannot
really work.
Right now there is not even support in the theme for clickable. So its a
good idea to get rid of this for now IMO.
ref T7865
Reviewers: stefan_schmidt, zmike, segfaultxavi, akanad, YOhoho
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7865, T7867
Differential Revision: https://phab.enlightenment.org/D9018
it seems with those two actions here in the commit, do use id in a
different way the other actions do. This is commit protects against
this.
Differential Revision: https://phab.enlightenment.org/D9078
Until the cause of these issues can be found exit and
print error messages to console. edje_cc is currently
not reliable on OpenBSD. Until then anyone wanting to
use EFL on this platform will need pre-compiled .edj
files.
Differential Revision: https://phab.enlightenment.org/D9077