this must be emitted automatically during finalize if theme_set is
not directly called during construction
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10741
ensure that this callback is emitted exactly one time if the theme is
set during construction
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10740
the group previously used (efl/win/background) no longer exists, and
this test never verified that the theme_set call succeeded so this has
been failing silently for a long time
now we check and verify that the call succeeds in addition to using a
valid group
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10739
before this commit the standard time was 0, which results in no
animation played at all. Now its 0.2 and a app that does not like it can
adjust it.
ref T8436
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D10796
before this commit, push would add before the current element, pop would
return to the next higher element.
after this commit, push would add after the current element, pop would
return to the previous element.
ref T7991
Differential Revision: https://phab.enlightenment.org/D10781
Small patch to fix issue where merge of patch did not go so well, and
thus caused Coverity to report an issue where window was not being
initialized.
ref T8016
fixes CID1408311
They are just helpers, so a user does not need to handcreate spotlight
managers. This also leaves us the possibility of letting
spotlight_managers beeing @beta.
ref T7991
Differential Revision: https://phab.enlightenment.org/D10773
this introduces the test requested in D10701. And checks that all
signals are correctly delivered even if animations are frozen
Differential Revision: https://phab.enlightenment.org/D10767
the spotlight now is setting the overall correct min and max size on
itself. Additionally, the page size is now clamped to the size of the
container.
Correct min size of the container is defined to the MAX min size of all
the content.
The correct max size of the container is defined to the MIN max size of
all the content.
ref T7991
Differential Revision: https://phab.enlightenment.org/D10766
Summary:
In simple words:
when we create efl_canvas_text object, efl_text_password_get will return TRUE.
which is wrong,
efl_text_password_get should return FALSE, unless user change the password using efl_text_password_set
Reviewers: woohyun, zmike, segfaultxavi, tasn
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10735
Summary:
Value types are already assumed to be stored by pointer (e.g.
`int val = *(node->data);`)
This commit just changes the current usage of the `ptr` modifier in the
ptr, not affecting the parser.
Reviewers: q66, segfaultxavi, bu5hm4n, felipealmeida
Reviewed By: q66
Subscribers: cedric, #reviewers, #committers, brunobelo
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10769
Summary:
Based on comments in D10607
Update code responsible for parsing "style=" :
-Update string parsing code
-Make the old and new code more readable
-Add tests
Reviewers: segfaultxavi, bu5hm4n, woohyun, ali.alzyod
Subscribers: zmike, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10715
Summary:
This patch defines the way style property will work at canvas_text object
1- Changing canvas_text style property using Font/Format/Style interfaces or with efl_canvas_text style property are the same.
Example:
```
efl_text_font_set(tb, "Arial", 30);
//is same as
efl_canvas_text_style_set(tb, "font=Arial font_size=30");
//which means calling
char * font;
int size;
int font_size;
efl_text_font_get(tb, &font, &size);
// calling this after any of the top two functions will return same result
```
2- style_get_property
Will return string that contains full details about all the current applied style at canvas_text level.
3- style_set_property
Will only override passed styles and leave everything else as it is
```
efl_canvas_text_style_set(tb, "font=Arial"); // overrider font name to Arial and leave everthing else
efl_canvas_text_style_set(tb, "font_size=30"); // overrider font size to 30 and leave everthing else (font name will stay arial)
```
Reviewers: ali.alzyod, woohyun, tasn, segfaultxavi, bu5hm4n, zmike
Reviewed By: woohyun
Subscribers: zmike, bu5hm4n, segfaultxavi, a.srour, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10607
this new API makes it possible to stop animations beeing executed in the
spotlight manager. (The logic in the spotlight managers itself are
already implemented).
The animation will also be frozen during construction time of the
spotlight.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D10701
Summary:
Implementation of new Efl.Text.Attribute_Factory class which replace the annotation interface.
Currently, we have two public methods:
```
void efl_text_attribute_factory_attribute_insert(const Efl_Text_Cursor *start, const Efl_Text_Cursor *end, const char *format)
unsigned int efl_text_attribute_factory_attribute_clear(const Efl_Text_Cursor *start, const Efl_Text_Cursor *end);
```
Other methods will be internal methods, for the time being, we will redesign internal methods
Reviewers: woohyun, tasn, segfaultxavi, bu5hm4n, zmike
Subscribers: zmike, q66, cedric, segfaultxavi, bu5hm4n, a.srour, #committers, #reviewers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10646
Summary:
The inheritance test depends on the objects being actively destroyed.
Currently this happens in a two step process, where first the C#
object is collected from the GC. As this happens in a separate thread,
we schedule a callback to run in the main loop to actually unref the
EO object.
This commit adds more iterations to make sure the EO of the parent is
unref'd and releases the child.
This should be the last C#-related CI test failure
Ref T8313
Reviewers: stefan_schmidt, brunobelo, felipealmeida
Reviewed By: felipealmeida
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8313
Differential Revision: https://phab.enlightenment.org/D10612
this commit merges common functions from efl_ui_multi_selectable and
efl_ui_multi_selectable_async. Additionally, the two different aspects
of accessing the elements in a multi_selectable widget (numerical or
object based) are now abstracted into interfaces called range_numeric and
range_object. numeric APIs are also prefixed with id's, so its possible
for one widget to implement both (if there will ever be the demand to do
that in future).
The main reason for this split is:
- there is no good common path between mvvm based multi_selectable and
object based multi_Selectable, so there is no way that both sides would
benefit, without the other one suffering.
- If we find later on the demand to implement both on one widget, we now
can fully do that
- Common API is available for both types, so its less API and less
confusion for the API user.
ref T7871
ref T8265
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10675
Summary: Was failing if the suffix were equal to the source string
Reviewers: felipealmeida, segfaultxavi, YOhoho, brunobelo
Reviewed By: brunobelo
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10708
Summary:
Implementation of new cursor text object.
This Patch Contains :
1- Remove Efl.Text.Cursor & Efl.Text_Markup_Interactive interfaces and replace them with one Class Efl.Text.Cursor
=> there are some modifications on cursor methods
2- Update all related classes to use Efl.Text.Cursor object instead of the old interfaces
3- If class uses Efl.Text_Cursor_Cursor (handle), mainly annotation it will stay as it is until we update other annotations into attribute_factory
4- Add main cursor property into efl.text.interactive
5- Add cursor_new method in efl.ui.text (I think we may move it into efl.text.interactive interface)
There still some parts that need discussion: especially cursor movement functionality, I prefer to move function with Enum, instead of special function for each movement.
```
enum @beta Efl.Text.Cursor_Move_Type
{
[[Text cursor movement types]]
char_next, [[Advances to the next character]]
char_prev, [[Advances to the previous character]]
cluster_next, [[Advances to the next grapheme cluster]]
cluster_prev, [[Advances to the previous grapheme cluster]]
paragraph_start, [[Advances to the first character in this paragraph]]
paragraph_end, [[Advances to the last character in this paragraph]]
word_start, [[Advance to current word start]]
word_end, [[Advance to current word end]]
line_start, [[Advance to current line first character]]
line_end, [[Advance to current line last character]]
paragraph_first, [[Advance to current paragraph first character]]
paragraph_last, [[Advance to current paragraph last character]]
paragraph_next, [[Advances to the start of the next text node]]
paragraph_prev [[Advances to the end of the previous text node]]
}
move {
[[Move the cursor]]
params {
@in type: Efl.Text.Cursor_Move_Type; [[The type of movement]]
}
return: bool; [[True if actually moved]]
}
```
or old way:
```
char_next {
[[Advances to the next character]]
// FIXME: Make the number of characters we moved by? Useful for all the other functions
return: bool; [[True if actually moved]]
}
char_prev {
[[Advances to the previous character]]
return: bool; [[True if actually moved]]
}
char_delete {
[[Deletes a single character from position pointed by given cursor.]]
}
cluster_next {
[[Advances to the next grapheme cluster]]
return: bool; [[True if actually moved]]
}
cluster_prev {
[[Advances to the previous grapheme cluster]]
return: bool; [[True if actually moved]]
}
// FIXME: paragraph_end is inconsistent with word_end. The one goes to the last character and the other after the last character.
paragraph_start {
[[Advances to the first character in this paragraph]]
return: bool; [[True if actually moved]]
}
paragraph_end {
[[Advances to the last character in this paragraph]]
return: bool; [[True if actually moved]]
}
word_start {
[[Advance to current word start]]
return: bool; [[True if actually moved]]
}
word_end {
[[Advance to current word end]]
return: bool; [[True if actually moved]]
}
line_start {
[[Advance to current line first character]]
return: bool; [[True if actually moved]]
}
line_end {
[[Advance to current line last character]]
return: bool; [[True if actually moved]]
}
paragraph_first {
[[Advance to current paragraph first character]]
return: bool; [[True if actually moved]]
}
paragraph_last {
[[Advance to current paragraph last character]]
return: bool; [[True if actually moved]]
}
paragraph_next {
[[Advances to the start of the next text node]]
return: bool; [[True if actually moved]]
}
paragraph_prev {
[[Advances to the end of the previous text node]]
return: bool; [[True if actually moved]]
}
```
Reviewers: woohyun, tasn, segfaultxavi
Reviewed By: woohyun
Subscribers: a.srour, bu5hm4n, segfaultxavi, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10542
Summary:
cos function is much much more accurate than cosf.
this patch replaces cosf by cos to gain more accuracy.
Reviewers: cedric, jsuya, vtorri
Subscribers: vtorri, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10695
this brings the animation to the canvas object. All the controls of the
animation now do now require a player object anymore, you can just use
the API that is directly on the Efl.Canvas.Object object.
wip animation player replacement
Differential Revision: https://phab.enlightenment.org/D10615
There exist several flags to indicate whether an object should be animated, with inconsistent names:
Efl.Canvas.Layout.animation: bool indicating if Edje animations should be played
Efl.Ui.Spotlight_Manager.animation_enabled: bool indicating if page transitions should be animated
Efl.Canvas.Animation_Player.animation: Efl.Canvas.Animation object
This commit unifies all of them: "animated" is now a flag, and "animation" is an object.
Note: Animation_Player is in the process of being replaced by an "animation" property in the
Efl.Canvas.Object, hence the need for non-clashing animation flags.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10645
The local cos and sin functions differ from
the math header cos and sin functions by result values
The 4th decimal place is different.
Computing large numbers can cause errors.
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10467
This has detected the bug that previous commit fix.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10634
Summary:
start_delay and duration both have to be > 0.0 otherwise there should be
an error. This also adds the neccessary checks, to ensure that.
For now this is only added to the normal evas test suite, maybe we eed
to refactor these efl_* API tests into theire own test suite. However,
not for now.
Reviewers: segfaultxavi
Reviewed By: segfaultxavi
Subscribers: segfaultxavi, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10617