Commit Graph

333 Commits

Author SHA1 Message Date
Daniel Juyung Seo 1d14a57a8b list: Fixed heavily broken list item focus/selection movement.
Item selection also sets the focus automatically so do not need to set
focus twice. This code needs to be changed later again when the
selection by key arrow becomes optional.
2014-03-22 18:37:45 +09:00
Daniel Juyung Seo 6d211692bb list: Select the first item when the list widget is just focused first time.
Select the first item if there is no last_focused_item,
 last_selected_item, and if this focus is done by key event.
2014-03-22 18:14:19 +09:00
Daniel Juyung Seo ec2d28fc32 list: Fixed formatting before fixing a bug. 2014-03-22 18:06:42 +09:00
Daniel Juyung Seo bb4a6d181d list: Fixed item focus logic correctly by checking mouse down instead
of highlighted_item.

highlighted_item will be NULL after the first click and it is not
useful. To avoid first item focus -> first item unfocus -> clicked
item focus on the first focus to list widget, this patch is needed.

Thanks for the report Ceolin.
2014-03-22 18:01:22 +09:00
Daniel Juyung Seo e1fbcd35fe list: Focus a selected item. 2014-03-20 14:54:54 +09:00
Flavio Ceolin b364f7d9ba list: Avoiding the same item receive focus twice
When the item was activated by double click it received the focus twice
and the second is after had emitted the activated signal.
2014-03-18 17:43:14 -03:00
Flavio Ceolin 6c996a057d list: Fixing the focus on keyboard movement
Problem introduced on: fb13ad2
2014-03-18 17:15:36 -03:00
Daniel Juyung Seo 1c5f5ade61 list/genlist: Fixed Home and End key event handling routine.
Move focus and selection when Home or End key is pressed.

@fix
This needs a partial backport to elementary-1.9
2014-03-18 19:14:39 +09:00
Carsten Haitzler 53e1698ab8 warning-- 2014-03-18 17:34:30 +09:00
Daniel Zaoui 7460467419 Eolian: Integration of Scrollable Interface 2014-03-18 08:14:44 +02:00
Daniel Zaoui 8c29f2a77b Focus: fix segfault due to bad call to Eo function.
Due to Eolian auto-generation, legacy parameters are directly
transferred to Eo functions without conversion.

In this case, is_next was Eina_Bool in legacy and Eina_Bool * in Eo.
The logic code was expecting a pointer but was receiving a Eina_Bool.

The fix consists in giving the logic code the Eina_Bool instead of the
pointer.

@fix
2014-03-18 08:14:44 +02:00
Flavio Ceolin 7eef2ca491 elm:list: Avoiding two items be focused at same action
On a list that have not received focus yet a mouse down gives the focus
for the list (that gives the focus for the first item) and the mouse
up the item is selected and receive the focus.

The problem:  if the list is scrolled the focus given for the
first item makes the list scroll to the top and not for the item
selected by the user.
2014-03-17 19:11:59 -03:00
Daniel Zaoui e2206a1a22 Eolian: Integration of Elm Widget 2014-03-17 09:03:56 +02:00
Davide Andreoli f5a4489a62 elm_list: check sd not being null before access its members.
If the list is deleted/recteated the _elm_list_item_focused/unfocused() is
called and the sd pointer is null.

This unbreak all my apps that use elm_list
2014-03-15 22:38:28 +01:00
Daniel Juyung Seo 7100cfea40 list: Reset prev_focused_item when prev_focused_item is deleted.
This is inspired by a2c680d684601d8df725e8293616c880f07d3ca2.
2014-03-16 02:39:09 +09:00
Guilherme Iscaro de Godoy c4cad315ae Bug fix: Elm_List was not correctly setting the highlight theme for its items.
With the introduction of the patch 3628a8c4ea2485ee7ee5a81cfd4e0f0fe62b10d6,
it is possible to highlight focused Elm_List and Elm_Genlistenlist items.
However, this feature does not work correctly if one wants to create a custom
highlight theme for Elm_List items.
The whole problem was happening, because the function
_elm_widget_item_highlight_in_theme() was being called in a incorrect
location. This function must be called at _items_fix(), because
there the Elm_List already set the item theme and then it's possible
to check if the one wants a custom highlight or not.
2014-03-12 11:06:49 -03:00
Daniel Juyung Seo e60e43f8f5 list/genlist/gengrid: Clear some internal variables when an item is deleted.
Set last_selected_item, last_focused_item, focused_item to NULL when the
item is deleted.
For genlist and gengrid, clear them in del_not_serious.
2014-03-09 02:57:09 +09:00
Daniel Juyung Seo d626f9278f genlist/list: Fixed wrong internal function name.
_list/genlist_item_focus_set --> _list/genlist_item_content_focus_set.
These internal functions set the focus to the item's content objects,
 not the item itself. So the name was wrong and very confusing.
2014-03-08 03:27:09 +09:00
Daniel Juyung Seo 80f077cbec list: Do not call unnecessary external API.
We already know the internals so make it optimized by using internal
data.
2014-03-04 00:33:13 +09:00
Daniel Juyung Seo ae324cfb36 list: Check NULL before calling _elm_list_item_unfocused.
unfocusing NULL item is nonsense. NULL needs to be checked before
calling item unfocus function.
2014-03-04 00:33:13 +09:00
Daniel Juyung Seo 8afae8de2e widget: removed unused widget item member 'focused'. 2014-03-02 01:24:23 +09:00
Daniel Juyung Seo 1a29ad5679 elm: removing trailing white space ceremony for 1.9 release. 2014-03-02 00:52:26 +09:00
Daniel Juyung Seo 3c23a57e2e list: Run focus set/unset routine only when the focus status is changed.
I didn't tag this as 'fix' because this feature was added after 1.9
release.
2014-03-02 00:26:08 +09:00
Gustavo Sverzut Barbieri 9f6a9a51e8 elm_list/focus: @bugfix crashes with empty lists and unfocused elements. 2014-02-28 01:57:23 -03:00
Amitesh Singh 38ac88d9d5 list: focus highlight is handled by item theme.
Summary:
Problem: list theme (elm/list/base/default) is an alias of scroller
base theme (elm/scroller/base/default) in which focus_highlight is set to "on".
Solution: Now focus highlight in_theme is set by list item theme.

Test Plan: elementary_test->"List Focus"

Reviewers: seoz, woohyun

Reviewed By: seoz

CC: nirajkr

Differential Revision: https://phab.enlightenment.org/D572
2014-02-26 01:27:05 +09:00
Amitesh Singh ff3521ba9e list: Code refractoring of _item_focused_next()
Summary:
  # Added code to handle the case of disabled items.
  #  Code refractoring of _item_focused_next().

Test Plan: elementary_test->"list focus"

Reviewers: seoz, woohyun

CC: nirajkr

Differential Revision: https://phab.enlightenment.org/D571
2014-02-26 01:26:57 +09:00
Amitesh Singh 069a3de27d list: implemented widget item focus feature.
@feature

Summary:

  #    Added "item,focused" and "item,unfocused" smart callbacks.
  # Added elm_object_focused_item_get() in elm_widget
  # Added elm_object_item_focus_set and elm_object_item_focus_get() APIs for
  # Added one argument in existing _focus_highlight_geometry_get(...,is_next)
  This is required to find out previous and current widget item.
  # Added a elm_win function _focus_highlight_start() which starts the focus

Test Plan: elementary_test->List Focus , List Horizontal Focus

Reviewers: seoz, woohyun

Reviewers Comments: SeoZ - there are some known bugs. we will actively
fix them in a near future.

CC: nirajkr

Differential Revision: https://phab.enlightenment.org/D532
2014-02-26 01:26:22 +09:00
Daniel Juyung Seo ff18fac8e7 list: fixed list to emit elm,state,list,single signal when there is only
one item.

This is a fix of a commit 44495f6431cdc5dbe6e8cb257cf73a69563ec67c.
2014-02-25 00:58:54 +09:00
Gustavo Lima Chaves c80868da12 Elm list, like genlist, should emit 1st/middle/last signals to its items.
So that one is able to theme these cases accordingly.
2014-02-20 14:10:10 -03:00
Carsten Haitzler c45fd8aff3 list - fix mode set to have override power over scroll limit api 2014-02-14 12:19:40 +09:00
Jaehwan Kim db23689614 access: Add smart signal "access,changed"
It occurs that access mode is changed.
Application can add this callback for each widget.
2014-02-08 14:05:14 +09:00
WooHyun Jung 0a1179dde4 elm_layout now supports focused/unfocused smart callback
by itself for widgets that inherit layout class.
If it uses elm_widget's, smart callback will be called at the
beginning or smart_on_focus function.
2014-02-06 16:18:57 +09:00
Daniel Juyung Seo b74c805a74 list: Used macro for list swipe time like genlist. 2014-01-23 23:11:12 +09:00
ChunEon Park f8d00ae0f2 elementary - override widget translation but work also the base widget's behavior.
Some widgets override the widget translation but it didn't inherit the base widget's function.
Becuase of it,The language changed won't be properly called in the widget tree.

Now it fixed it.
2014-01-23 20:20:43 +09:00
ChunEon Park dbacb2fef9 elementary - send signal "language,changed" with one way in the widget.
Call the smart callback in the widget infra so that each widget don't need to hook the smart_translate only for the smart call.

This makes reducing duplicated code and supporting language,chagned from all widgets.
2014-01-23 19:30:34 +09:00
ChunEon Park aebdcff513 elementary - use the focused/unfocused string in widget defined.
Now, it will share the strings so that reduce the binary size also user uses it in one way.
2014-01-23 17:27:17 +09:00
Daniel Juyung Seo db5fe2581d elm: Removed unnecessary null check for evas_object_del. 2014-01-22 10:54:52 +09:00
Daniel Juyung Seo a4f3074f9c elm: Removed unnecessary null check for ecore_timer_del,
ecore_animator_del, and ecore_job_del.

As all efl public free apis get null as valid parameter, we do not need
to check null. I also removed some null check for other free apis which
were right next to timer/animator/job del. After this job code got
cleaner.
2014-01-21 23:18:16 +09:00
Yakov Goldberg 3379c124df all widgets: change Eo API for "elm_widget_theme()" to "theme_apply"
There are elm_widget_theme/theme_set/theme_get functions.
    In Eolian these functions will be described as "theme" method and
    "theme" property. There is clash here.
    So add suffix "_apply" to Eo API for "elm_widget_theme".
2014-01-21 11:08:29 +02:00
Daniel Juyung Seo fd5c046dfe elm: Changed __UNUSED__ to EINA_UNUSED. 2014-01-06 23:33:57 +09:00
Daniel Juyung Seo e63dd3110a elm: Unified eina critical manro to CRI.
Being annoyed by different types of eina critical macros - CRI, CRIT,
 CRITICAL -, I concluded to unify them to one. Discussed on IRC and
 finally, CRI was chosen to meet the consistency with other macros -
 ERR, WRN, INF, DBG - in terms of the number of characters.
If there is any missing bits, please let me know.
2013-12-26 13:03:55 +09:00
Daniel Juyung Seo 6d71a23c3a elm lib: removed all the unnecessary empty lines.
being pedantic.
2013-12-15 06:18:35 +09:00
Daniel Juyung Seo 8a0159df4f elm: long waited seasonal trailing whitespaces removal!
This is a ceremony of elementary 1.8 release!
2013-12-02 19:43:46 +09:00
Carsten Haitzler e045d28cfc list - fix separators to be the correct direction 2013-11-17 09:40:17 +09:00
Carsten Haitzler 4f4982663c list - fix item disable and infinite loop on next select 2013-11-16 17:50:11 +09:00
Tom Hacohen 2f1e1554e5 Changed Eo class names to be consistent.
All the class names are now of the format: Elm_Type_Subtype_Extra
2013-11-07 11:44:22 +00:00
Daniel Juyung Seo 644a51f0fb elm_list.c: fixed a bug when any item is selected without control on multi select with control mode.
When any item is selected without control on multi select with control mode, already selected items should be unselected automatically.
2013-11-06 13:36:48 +09:00
Daniel Juyung Seo 827535158d elm_list.c: Added a real support for ELM_OBJECT_MULTI_SELECT_MODE_WITH_CONTROL for list.
This was missed in a8efd7676eb95378355f4d603ddff938279703af.
2013-11-05 14:18:54 +09:00
Daniel Juyung Seo e35de516b9 elm_list.c: Split _item_unselect() into _item_unhighlight() and _item_unselect(). 2013-11-05 14:18:53 +09:00
Daniel Juyung Seo d218676dd0 elm_list: Added missing elm_list_multi_select_mode_set/get API for list to fix the API consistency between multi selectable widgets.
This was omitted by genlist/gengrid multi select mode set/get() commit ae03d3cef36abd27ff530e350e39ae401f4f389e.
2013-11-05 09:22:25 +09:00
Daniel Juyung Seo d22076681b elm: Fixed formatting about smart_event check for code consistency.
- Made it look clearer.
- Removed unnecessary local variables.
- Keep the code sequence consistent.
2013-10-28 23:30:12 +09:00
Daniel Juyung Seo b10481fa0e elm_list.c: adopted ELM_WIDGET_DATA_GET_OR_RETURN macro. 2013-10-05 17:14:47 +09:00
Cedric Bail 29af5e1e43 elementary: update to new eo_parent_get/set API. 2013-09-25 13:34:27 +09:00
Michael Bouchaud 91848c5b43 elementary: add a way to add some custom part text and save it for Elm_Object_Item 2013-09-18 16:21:10 +02:00
Daniel Juyung Seo abcb183534 elm_list.c: disable edje_object_parts_extends_calc in _item_fix.
This fixed T179 but introduced T286. T286 is bigger and more important issue than T179.
So temporarily disable these lines until it gets fixed correctly.
2013-09-17 01:10:46 +09:00
Michaël Bouchaud (yoz) 62ce625dfc elementary: allow custom text part on item list 2013-09-16 12:19:46 +02:00
ChunEon Park d461a8be05 elementary/widgets - set parents before widget constructs their body.
This avoids unnecessary multiple setups when obj and subobj has connected.
2013-08-27 14:19:19 +09:00
Daniel Juyung Seo cafca533a4 elm_list.c: check null as well.
This fixes coverity CID 1049944 Dereference after null check (FORWARD_NULL).
2013-08-11 17:11:03 +09:00
Carsten Haitzler 59e8bc5a35 Fix elm to use key not keyname (so xmodmap works) 2013-07-31 15:16:41 +09:00
Shinwoo Kim c47ef1b7fe [access] use proper name _elm_access_info_get(); not _elm_access_object_get(); to get access information 2013-07-31 12:57:49 +09:00
Daniel Juyung Seo a0605b196c elm_list.c: fixed elm_object_item_part_content_set bug with 'end' part in elm_list. 2013-07-13 15:45:44 +09:00
Thiep Ha 7686648e12 Fix horizontal list size issue in desktop mode (T179)
Issue: horizontal list does not show correctly in desktop mode.
- The way to reproduce isssue is discribled in Task T179.
- We can also reproduce issue by runnin Ctxpopup at horizontal mode in elmentary test with standard profile.
2013-07-05 02:58:16 +09:00
Daniel Juyung Seo 6cf684f02a elm: added more "focused" and "unfocused" documentations.
genlist, hover, index, list, map, photocam, progressbar, radio, scroller, slider, slideshow, spinner, toolbar, win.
2013-06-10 14:13:55 +09:00
Daniel Juyung Seo 1c1da31da3 elm_list.c: ELM_SAFE_FREE adoption.
I splited ELM_SAFE_FREE refactoring patches. One commit per each file as recommended.
For the detail, please refer 3072dab12f12fe83fb5a628d15efd5cded11787f.
2013-05-29 21:00:12 +09:00
Tae-Hwan Kim 10a212a709 [list] Add signal emit hook.
Add signal emit hook same as genlist.
2013-05-27 13:25:18 +09:00
Daniel Juyung Seo 5f053bf79a elm: refactoring. use more ELM_FREE_FUNC. 2013-05-23 15:54:49 +09:00
Yossi Kantor 2e1eacd0ba elementary: Focus improvement for elm_genlist and elm_list
Summary:
This patch applies automatic focus feature to elm_genlist and elm_list
containers.
Currently (prior to this patch), focusable widgets inside list items of both
containers receive focus by an explicit mouse click over them, and lose focus
when focus goes to someone else in the window.
This change also adds the ability to:
- focus by default on the first-from-right focusable widget upon items selection
- lose the focus when another item is selected (focused or not)
- move focus between focusable widgets inside the same item by left and right
arrow keys accordingly (up and down keys when elm_list is in horizontal mode)

Focus is supported for horizontal and vertical lists.

Tests have been added for genlists and lists to check focus feature.
2013-05-12 15:32:33 +03:00
Daniel Zaoui ac01929f37 Elementary: Drag & Drop feature for items containers
New APIs have been added to facilitate DnD for genlist, gengrid and list
widgets.
Tests have been added in the new section DnD to play with that.
2013-05-09 13:57:31 +03:00
Cedric Bail c929b33052 elementary: properly sanitize headers order. 2013-05-03 16:07:06 +09:00
Daniel Zaoui 187d6bf8de Elementary: replace eo_data_get for objects data referencing. 2013-05-01 11:04:09 +03:00
ChunEon Park ff10726141 elementary/ctxpopup, hoversel, naviframe, multibuttonentry, popup, diskselector, list, menu, segment_control, toolbar - support widget item language change 2013-04-23 20:30:15 +09:00
Daniel Juyung Seo ba4dbce9d9 elm: enhance eina_list_free usages. use EINA_LIST_FREE if needed. 2013-04-10 20:28:35 +09:00
WooHyun Jung 2f3a41de31 elm_list.c : _elm_list_smart_focus_next_enable is for focus_next function. Not for focus_direction. 2013-04-09 22:22:37 +09:00
Daniel Juyung Seo 74b3eed5fd elm: print the error message inside elm_widget_sub_object_add().
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.
2013-04-03 11:28:53 +09:00
Tom Hacohen d75cb616da Change usage of eo_do_super to the new prototype. 2013-03-18 16:15:12 +00:00
WooHyun Jung 2542b16b01 elementary/list : Fixed a bug in elm_list. Focus_next is needed only when access mode is enabled. 2013-03-13 14:05:00 +09:00
Daniel Juyung Seo 78c042cdbe elm *.c: fixed formatting with EINA_LIST_FREE.
EINA_LIST_FREE (xxx) -> EINA_LIST_FREE(xxx)
2013-03-09 13:23:42 +09:00
Gustavo Lima Chaves 312d0217a0 An internal layout error, on a widget set, is a CRITICAL error. 2013-03-01 23:04:31 -03:00
Jaehwan Kim d58d971e6f Add the option about sending signals in content_pos_set.
When the scroller is resized, the signals("elm,action,scroll", "elm,edge,top" so on) shouldn't be sent,
because it's not a scroll-action. So in this case, the content_pos_set should be called without the signals.
2013-02-28 15:18:51 +09:00
Daniel Zaoui cdd1eea853 Replace supported_types
Signed-off-by: Daniel Zaoui <daniel.zaoui@samsung.com>

SVN revision: 83803
2013-02-10 07:52:31 +00:00
Shinwoo Kim 317920e3e3 [access] do not have to read out type infomation of genlist and list
the user would be visually impaired person or blind, so the type infomation
of genlist or list is not proper. there would be more proper type infomation.


SVN revision: 83005
2013-01-19 08:05:15 +00:00
Daniel Juyung Seo 84d251acc8 elm list, genlist, gengrid: Added highlighted and unhighlighted signal callbacks.
SVN revision: 82750
2013-01-14 10:12:50 +00:00
Shinwoo Kim 88dac18cf7 [access] export elm_access_activate_cb_set(); and add related documentation.
SVN revision: 82052
2013-01-03 09:31:33 +00:00
Daniel Juyung Seo f4e8c92f0d elm list: Fixed list separator size bug. Patch by Thiep Ha <thiep.ha@samsung.com>
On Sun, Dec 9, 2012 at 11:11 AM, thiep ha <thiep.ha@samsung.com> wrote:

    Dear All,

    In elementary list, the separator is not correctly set.
    I would like to send a patch to correct the list with separator.
    I also add an example named "List Separator" to test it.

    Please review this patch.

    Best Regards,
    Thiep Ha

SVN revision: 82040
2013-01-03 06:23:33 +00:00
Daniel Juyung Seo cf682c4214 elm list: Use EINA_FALSE instead of 0 for Eina_Bool type variable.
SVN revision: 82004
2013-01-02 18:36:22 +00:00
Shinwoo Kim f10fb3e115 [access] export some APIs,and remove unnecessary lines.
+ elm_access_object_register();
  + elm_access_object_unregister();
  + elm_access_text_set();
  + elm_access_text_get();
  + elm_access_cb_set();

These APIs are to use edje part, evas object as an accessible object.
and do not create access object, because access object would be created at run time.
This is different with internal API _elm_access_object_register();


SVN revision: 81659
2012-12-23 14:50:56 +00:00
Daniel Juyung Seo 10cb9bcf73 elm elm_list.c: fixed formatting.
SVN revision: 80262
2012-12-05 15:52:43 +00:00
Cedric BAIL d29d66e65e elementary: in some case it could be NULL, resulting in dereferencing a NULL pointer.
SVN revision: 80141
2012-12-04 10:26:31 +00:00
Yakov Goldberg 5c98343198 We have ported to Eo all the widgets of elementary. We didn't change the inheritance itself, only the mechanism, as done previously in Evas, Ecore and Edje. We removed totally the previous inheritance mechanism.
Signed-off-by: Yakov Goldberg <yakov.g@samsung.com>
Signed-off-by: Daniel Zaoui <daniel.zaoui@samsung.com>

SVN revision: 79668
2012-11-26 06:32:53 +00:00
Shinwoo Kim 3ff4a96fdc [list] enhance access feature - add access activate callback
*note: this commit - callback behavior - would be disputable as genlist becuase list has
       "clicked,double", "selected" and "activated" signal and smart callback also.
       but the access acitvate callback works as the item is selected.



SVN revision: 79451
2012-11-19 13:40:24 +00:00
Shinwoo Kim f81147a18e [access] enhance access feature
1. add _elm_access_object_unregister(); api.
  2. unregister access object properly when unregister widget item.
  3. modify improper access object check.
  4. [list] add smart_access(); lines to provide run time register, unregister.
  5. [genlist] unregister access object when genlist item is unrealized.



SVN revision: 79444
2012-11-19 13:08:54 +00:00
Daniel Juyung Seo 71d832404a elm access: Create access object only when access mode is enabled.
SVN revision: 78992
2012-11-08 08:02:12 +00:00
Daniel Juyung Seo 30dba54610 elm: Fixed indentations for EINA_LIST/INLIST_FOREACH(_SAFE).
SVN revision: 77244
2012-10-01 07:36:27 +00:00
Daniel Juyung Seo ac8ba87340 elm list: Do not process _size_hints_changed_cb when list is going to be deleted.
This fixes list self deletion bug when evas_object_del(list) is called inside item selected callback.

SVN revision: 75832
2012-08-29 23:38:58 +00:00
Carsten Haitzler 4f0c004519 fix selection handling in list if items disabled.
SVN revision: 75041
2012-08-09 11:54:37 +00:00
Gustavo Lima Chaves a0359a65c5 [elm] List now inheritable.
SVN revision: 74688
2012-07-31 22:06:36 +00:00
Gustavo Lima Chaves 7d1ffe6195 [elm] Some oopsies--.
SVN revision: 74405
2012-07-25 22:03:07 +00:00
Cedric BAIL 187462ec9d elementary: fix erroneous memory access.
One more pack of beer for the Valgrind developer !


SVN revision: 74202
2012-07-20 04:20:06 +00:00
Cedric BAIL 5ff2c0d78b elementary: prevent the hook to mess with the event object property.
SVN revision: 74175
2012-07-19 09:25:04 +00:00
Gustavo Lima Chaves 584c53c1be [elm] New elm_widget_add() usage spread.
SVN revision: 74148
2012-07-18 21:03:39 +00:00