It prevents applying themes more strictly if it tries to apply same theme.
This increases the performance hugely in case that user applies a specific theme to the window object.
1. Do not need to print the same error message from all the widget codes.
2. Even though elm_widget_sub_object_add() can be used internally, there should be no error message at all.
Elm devs should fix it beforehand.
So it looks ok to print the error message in elm_widget_sub_object_add() to force elm devs to fix it.
3. Got additional code cleanups.
now if applying the orientation style is failed, it tries to apply the original style. if it fails again then default theme.
also it fixed a logic error when theme changed is happened.
It will try to apply the original style if the orientation style is invalid on theme changing.
SVN revision: 84082
let elm_wdg_orientation_set() have return value and call the elm_wdg_theme() inside.
since every widgets tend to do same task with smart_theme() when it's orient mode is changed.
SVN revision: 83981
Orientation Mode is used for widgets to change it's styles or to send signals
whenever it's window degree is changed. If the orientation mode is enabled
and the widget has different looks and styles for the window degree(0, 90,
180, 270), it will apply a style that is readied for the current degree,
otherwise, it will send signals to it's own edje to change it's any states if
the style doesn't be readied.
SVN revision: 83880
the Eo function with id EO_BASE_SUB_ID_DBG_INFO_GET will be able to show
in Clouseau their own specific information.
Information contents handling is controlled by the class itself and
no more by Clouseau. Basic types are supported, as couple of ints,
couple of doubles, colors and lists.
Signed-off-by: Aharon Hillel <a.hillel@samsung.com>
SVN revision: 83411
Smart data is already initialized so we do not need to re-initialize them if the value equals to 0, NULL, or EINA_FALSE.
Sometimes re-initializing smart data explicitly is needed for readability. So there are left overs.
SVN revision: 82228
1. _elm_access_item_register(); please use _elm_access_widget_item_register();
2. _elm_access_item_unregister(); please use _elm_access_widget_item_unregister();
3. Elm_Access_Info of Elm_Widget_Item, because Elm_Widget_Item uses elm_access object which has Elm_Access_Info.
SVN revision: 80063
Subject: [E-devel] [patch][elementary] access - activate widget
Subject: [E-devel] [Patch][elementary] scroller, slider - access
activate feature
the previous activate function just get object only. to activate scroller
or slider etc.. it needs more information. so the patch changed previous
activate(Evas_Object *obj) to activate(Evas_Object *obj, Elm_Activate act);
the Elm_Activate can be one of ELM_ACTIVATE_DEFAULT, UP, DOWN, RIGHT, and
LEFT.. you can add more if it is necessary.
I have attached two patches. one is for the slider and the other is for the
scoller.
this patch would support those who wants change value of slider or content
position of scroller on remote side.
this would be useful to the access side or voice control side also.
SVN revision: 76717
hooks.
The former is now issued for all scrollables, with the behavior it had
before, and the latter is a new virtual base function, with a default
implementation leading to values matching the old case where one
didn't implement the hook.
Please help me test if everything is OK -- it seems so, here.
SVN revision: 75904
and "focus-out"."
This reverts commit 1bb12050b9785d47e102b4a3633210316d408f0d.
Conflicts:
ChangeLog
NEWS
Cedric, this is just wrong. The *on_focus* smart function of the base
widget is now the central place to handle focus in/out events.
I'll fix the spinner in sequence.
SVN revision: 74853
widgets.
Some of them have initting code using the parent ptr for some logic.
Now there's a new idiom on instantiating widgets which adresses
that. It'll be used for all widgets from now on.
SVN revision: 74147
This is meant to be used for all widgets implementing scrolling views.
An Elementary interface adds a given behaviour to whichever widget,
from any class.
SVN revision: 73307
last to be evaluated.
Porting of the basic scrolling infra to an interface will happenfirst, as well as the scrolling widgets porting.
Patch by: Gustavo Lima Chaves <glima@profusion.mobi>
SVN revision: 73306
Subject: [E-devel] [Patch][elm_widget] access hook
Real time setting would be necessary in case of running applications
which
have elm_layout or elm_widget_item.
If the access mode does not care of this, running applications should
restart. The attached for this. Please review the patch and give any
feedbacks. Thanks.
SVN revision: 73229
Removes the event callback list within _smart_del. The current
implementation does not care about the node data resulting on
memory leaks.
Here follows the valgrind log:
16 bytes in 1 blocks are definitely lost in loss record 11 of 168
at 0x4C29DB4: calloc (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
by 0x522EC34: elm_widget_event_callback_add (elm_widget.c:1996)
by 0x5A7AA2B: _edje_emit_handle (edje_program.c:1322)
by 0x5A766B6: _edje_message_queue_process (edje_message_queue.c:764)
by 0x5A76856: _edje_job (edje_message_queue.c:160)
by 0x628C02A: _ecore_job_event_handler (ecore_job.c:115)
by 0x6288C1F: _ecore_event_call (ecore_private.h:319)
by 0x628D09B: _ecore_main_loop_iterate_internal (ecore_main.c:1814)
by 0x628D566: ecore_main_loop_begin (ecore_main.c:931)
by 0x4023B0: elm_main (test.c:198)
Patch by Leandro Dorileo <dorileo@profusion.mobi>
SVN revision: 72498
new schema.
els_icon smart object was brought to be the base of the image widget,
in the form of an image class.
An elm icon is now a elm image, with a little more on top of it.
An elm photo is a now base widget aggregating an icon.
Toolbar's internal usage of the former els_icon is now changed to
icons, instead.
Some naviframe instantiations were set to enable events during
transitions, because this code is buggy and my chages exposed the
problem. It will be fixed as soon as I get to port Naviframe.
SVN revision: 71429
widget hierarchy.
Win inherits directly from Elm_Widget_Smart_Class, while inwin is now
an elm layout.
Note that elm_widget_sub_object_list_get(), which was an unecessary
hack only used on win, was killed.
SVN revision: 70717
class: elm_layout.
This will be, besides the codebase for the elm_layout widget, a common
base for all other widgets which got an edje layout as a basis for
their decoration.
From now on, all elm_layout_* namespaced fuctions will function
on objects inheriting from this base:
- elm_layout_content_set
- elm_layout_content_get
- elm_layout_content_unset
- elm_layout_text_set
- elm_layout_text_get
(recovered from deprecated header -> not anymore)
- elm_layout_sizing_eval
- elm_layout_data_get
- elm_layout_edje_get
- elm_layout_file_set
- elm_layout_theme_set
- elm_layout_box_append
- elm_layout_box_prepend
- elm_layout_box_insert_before
- elm_layout_box_insert_at
- elm_layout_box_remove
- elm_layout_box_remove_all
- elm_layout_table_pack
- elm_layout_table_unpack
- elm_layout_table_clear
Three missing functions on layouts were added, then:
- elm_layout_signal_emit
- elm_layout_signal_callback_add
- elm_layout_signal_callback_del
Naturally, the elm_object_ namespaced counterparts of those will also
function (they will be deprecated on the future).
SVN revision: 70708
resize objects to new schema.
sub-object-{add,del} new class functions got their bodies in. One by
one, the old elm_widget_ namespaced calls to them got to be migrated
to the class calls.
A resize object is now a sub-object, too. This should be like that
from the start -- we share code and avoid callback duplication -- what
leaded to a plethora of bugs.
SVN revision: 70705
properly by real widgets.
I'm also creating a *compatibility* class on top of it, which extends
the old (unique) one to its old components, so that everything goes
unnoticed for the widgets.
Next, we'll be accessing class functions for widget hooks *on the base
class*, which will be proxied back to the instance ones.
Then, one by one the widgets will be translated to a proper
hierarchical smart class parentage, making extensibility and reuse
much better.
Last, but not least, since we'll be moving these hooks to the class,
where (almost) everything is a function, let's adapt to the future --
take away the "_func" suffix from them.
NB: there is ONE hook and associated data which was kept on the base,
for now: "show_region" stuff. I did that because scrollers need that
in order to work, right now. Keep in mind, though, the scrollers will
be reworked, so that fields ought to be changed soon, too.
SVN revision: 70704
using elm_widget_focus_direction_go function, focus will be moved from
the current focused object to the near object in one direction.
Direction can be set by degree(for easy usability). Degree changes
clockwise, i.e. 0 means UP, 90 means RIGHT, 180 means DOWN, and 270
means LEFT. You can select any direction by changing this degree.
SVN revision: 70681
widget hierarchy.
Win inherits directly from Elm_Widget_Smart_Class, while inwin is now
an elm layout.
Note that elm_widget_sub_object_list_get(), which was an unecessary
hack only used on win, was killed.
SVN revision: 70640
class: elm_layout.
This will be, besides the codebase for the elm_layout widget, a common
base for all other widgets which got an edje layout as a basis for
their decoration.
From now on, all elm_layout_* namespaced fuctions will function
on objects inheriting from this base:
- elm_layout_content_set
- elm_layout_content_get
- elm_layout_content_unset
- elm_layout_text_set
- elm_layout_text_get
(recovered from deprecated header -> not anymore)
- elm_layout_sizing_eval
- elm_layout_data_get
- elm_layout_edje_get
- elm_layout_file_set
- elm_layout_theme_set
- elm_layout_box_append
- elm_layout_box_prepend
- elm_layout_box_insert_before
- elm_layout_box_insert_at
- elm_layout_box_remove
- elm_layout_box_remove_all
- elm_layout_table_pack
- elm_layout_table_unpack
- elm_layout_table_clear
Three missing functions on layouts were added, then:
- elm_layout_signal_emit
- elm_layout_signal_callback_add
- elm_layout_signal_callback_del
Naturally, the elm_object_ namespaced counterparts of those will also
function (they will be deprecated on the future).
SVN revision: 70631
resize objects to new schema.
sub-object-{add,del} new class functions got their bodies in. One by
one, the old elm_widget_ namespaced calls to them got to be migrated
to the class calls.
A resize object is now a sub-object, too. This should be like that
from the start -- we share code and avoid callback duplication -- what
leaded to a plethora of bugs.
SVN revision: 70628
properly by real widgets.
I'm also creating a *compatibility* class on top of it, which extends
the old (unique) one to its old components, so that everything goes
unnoticed for the widgets.
Next, we'll be accessing class functions for widget hooks *on the base
class*, which will be proxied back to the instance ones.
Then, one by one the widgets will be translated to a proper
hierarchical smart class parentage, making extensibility and reuse
much better.
Last, but not least, since we'll be moving these hooks to the class,
where (almost) everything is a function, let's adapt to the future --
take away the "_func" suffix from them.
NB: there is ONE hook and associated data which was kept on the base,
for now: "show_region" stuff. I did that because scrollers need that
in order to work, right now. Keep in mind, though, the scrollers will
be reworked, so that fields ought to be changed soon, too.
SVN revision: 70627
verification. Patch by Taehwan Kim <ohpowel@gmail.com>
On Tue, Apr 10, 2012 at 5:37 PM, Bluezery <ohpowel@gmail.com> wrote:
> Hello,
>
> Currently, elm_widget_sub_object_add() does not check if obj and sobj
> are same object.
> Actually it is a user problem if user add object itself as it's sub
object.
> But I think that this checking is needed and it is better to give
> error logs to users. Because it causes infinite loop and it is hart
> to debugging. :(
>
> Thanks.
SVN revision: 69995
Current Issue:
Currently when we add a widget to window as a sub-object, e.g.
elm_notify_add(win) which internally calls elm_widget_sub_object_add
then the focus chain using <TAB> includes only
the first focusable subitem of the widget, not all.
Whereas with elm_win_resize_object_add, it works fine and cycles to
all focusable sub-items of the widget.
Reason:
The reason is that we are appending sub-object to the list in
elm_win which is used for focus chain, only in case of
elm_win_resize_object_add.
Change Description:
Added a new API: EAPI Eina_List
*elm_widget_sub_object_list_get(const Evas_Object *obj);
This API returns the list of sub-objects of an elementary widget
(sd->subobjs) where sd is Smart_Data pointer obtainted using
elm_widget_smart_data_get(obj).
We have used this API in elm_win for focus_next_hook implementation.
Signed-Off-By: RAJEEV RANJAN<rajeev.r>@samsumg.com>
SVN revision: 69943
Now it returns the bool value to free the widget item.
Some widget items(i,e genlist) should not be deleted directly when elm_object_item_del is called.
So, if the pre_hook function returns EINA_FALSE, then the widget item will not be deleted.
SVN revision: 67565
win_resize_object_add(win, subobj);
object_content_set(otherobj, subobj);
object_del(win);
ERR<21326>:elm-externals elm_widget.c:978 elm_widget_sub_object_del() removing sub object 0xdeadbeef (some_stupid_widget) from parent 0xRRRRRRRR (win), but elm-parent is different 0xFUCKTHIS (NOT EVEN A WIDGET)!
SVN revision: 65884
Firstly, for efficiency, we add a Job to calculate the whole canvas. Jobs implicitly coallate work per event loop.
Calcuation of object can be a reasonably intensive set of work.
In the job callback we calculate the whole canvas with evas_smart_objects_calculate() to ensure that all objects have the correct geometry at this point.
Reviewed by Raster.
SVN revision: 65509
Besides we free the object pointed by esd, we NEED the right pointer's
value to unregister the signal with
edje_object_signal_callback_del_full().
SVN revision: 64415