Inform that the item was disabled, highlighted or selected.
If a toolbar icon is an edje it can receive this signal and change the
icon image to a disabled image.
By: Otavio Pontes <otavio@profusion.mobi>
SVN revision: 54006
When functions to change icon or labels are called a signal is sent to
edje that can perform an animation.
By: Otavio Pontes <otavio@profusion.mobi>
SVN revision: 54005
And fix the docs related to shrink mode:
SHRINK_HIDE -> hide excess items
SHRINK_NONE -> set toolbar minimun size to fit all the items
SVN revision: 53895
BIG FAT WARNING: lots of changes on toolbar API
Trying to get a lib with easy to use API, I'm changing toolbar API
to be consistent with genlist / gengrid widgets and to be more concise.
Functions select_next, select_first, select_last, unselect, unselect_all
get all are gone.
You can do this calling a combination of the others functions.
This commit changes toolbar to use inlist, and previous items can be
get.
So now we have:
Elm_Toolbar_Item *elm_toolbar_first_item_get(const Evas_Object *obj)
Elm_Toolbar_Item *elm_toolbar_last_item_get(const Evas_Object *obj)
Elm_Toolbar_Item *elm_toolbar_item_next_get(const Elm_Toolbar_Item *it)
Elm_Toolbar_Item *elm_toolbar_item_prev_get(const Elm_Toolbar_Item *it)
Eina_Bool elm_toolbar_item_selected_get(const Elm_Toolbar_Item)
void elm_toolbar_item_selected_set(Elm_Toolbar_Item *item, Eina_Bool selected)
Elm_Toolbar_Item *elm_toolbar_selected_item_get(const Evas_Object *obj)
With these functions you can iterate over the items list getting /
selecting the item you need.
Another big change is that elm_toolbar_item_add is gone. Now you can
insert items in the position you want, with the functions append,
prepend, insert after, insert before (a relative item).
If you don't like any changes or have a case of use for something
that should be different, please ping me.
At last, includes ELM_TOOLBAR_ITEM_CHECK_OR_RETURN on EAPI that
receives items.
SVN revision: 53894
Only two getters continue without const:
* elm_theme_get
Need name review, or comportament.
* elm_toolbar_item_menu_get
Need comportament review, but will be fixed by bdilly.
SVN revision: 53874
Instead of just setting the bounce property to its scroller, each widget now
first checks in the profile used whether bounce is enabled or not.
SVN revision: 53730
Previously, if there were buttons with menus in the toolbar, they would be
added but not its menu items. Even though this is working fine, this is a
hack, since Elm_Menu should really offer reparenting or something like that
-- and this will destroy and recreate the whole menu structure on every
toolbar resize.
SVN revision: 53695
This breaks the API *and* the ABI, but this should be consistent with
Elm_Toolbar. We'll probably need a tweak here and there, but I really
think Elm_Menu should be rewritten.
SVN revision: 53694
With these changes, Elm_Icon will also look up icons from the chosen
Freedesktop (fd.o) icon theme. Since this might incur in some performance
penalties if you're sure only theme icons will be used, icon lookup order
may be specified with the elm_icon_order_lookup_set() function call; using
the lookup parameter as follows:
- ELM_ICON_ORDER_FDO_THEME (default) will look up first fd.o, then the theme;
- ELM_ICON_ORDER_THEME_FDO will look up first the theme, then fd.o;
- ELM_ICON_ORDER_FDO will look up only fd.o; and
- ELM_ICON_ORDER_THEME (old behaviour) will lookup only from the theme.
Elm_Icon will also try to use a different resolution image if the widget is
resized and the image source is fd.o.
fd.o support requires Efreet, but it should work nicely (falling back to the
old behaviour) if it isn't available.
SVN revision: 53433
This allows having themeable icons for toolbar items -- inclusing lower
resolution ones for the More menu button. Changes to Elm_Menu_Item in the
same spirit will follow.
SVN revision: 53407
Toolbars can now be scrollable, non-scrollable, or hide icons selectively
according to a priority. This changed the API slightly, thus
elm_toolbar_scrollable_set(obj, 1)
Should be
elm_toolbar_mode_expand_set(obj, ELM_TOOLBAR_EXPAND_SCROLL)
Values for non-scrollable and scrollable remain the same, so if constants
aren't being used, just the function name should be changed.
The new mode, ELM_TOOLBAR_EXPAND_MENU, will create a menu of items when the
space isn't large enough to hold all the items. Which items will be kept on
the toolbar or which items will be added to the menu is controlled by the
priority of each item: higher ones will be kept if possible, lower ones will
be tratored on the first opportunity.
SVN revision: 53406
With this commit is now possible to not use theme's cursor (default behevior)
that could be overriding cursors defined by the engine.
SVN revision: 52761
Basically, get the group from widget theme, using the string passed to
elm_object_cursor_set, get hot spots x and y from the theme (keeps the object
and these two integers on cursor struct).
Cursor is set with ecore_evas_object_cursor_set()
Some functions to change style were added to the api.
SVN revision: 52760
Widgets can have customized cursors setting it with elm_object_cursor_set.
Widget's item can use elm_X_item_cursor_set to set a different cursor
for each item.
It will work only if HAVE_ELEMENTARY_X for now, but support for themeable
cursors is planned.
SVN revision: 52382
Now owner widget (elm_widget) is just used to listen for theme changes
and create/destroy the tooltip data. The actual mouse events operates
on all Evas_Object and is the one where tooltip data is actually
stored.
The public API is basically the same, just the event_info is now NULL
to avoid confusion.
The internal API introduces elm_object_sub_tooltip_content_cb_set()
and as the first parameter the eventarea. While this may be confusing,
as the second parameter is the actual elementary object, it is the one
that all other calls receive, like elm_object_tooltip_hide() or
elm_object_tooltip_unset(), thus it does make sense to have such order.
Also internal API, elm_widget_item_tooltip_* functions were
added. They are a variation of the widget API to handle its items, as
such the func() gets one more parameter: item, and the del_cb() gets
the item as event_info (that's why the public widget version got
event_info always NULL, to not confuse with this one!)
Widgets with items that makes sense to have tooltips got extra API:
* toolbar
* list
* gengrid
* genlist
SVN revision: 52173
This patch changes all Elm_*_Item to use new infrastructure of
Elm_Widget_Item. This patch is basically a find-and-replace, but even
that was a bit tricky since every code had different names for the
same things, particularly for "view" and "widget" the names ranged
from "o"/"obj" to "base"/"o", quite confusing!
It is worth noting that Genlist and variants that adopted its "item
class" style such as Gengrid and Slideshow already provide a "del()"
callback there and I'm keeping them, however we should reconsider if
it is good to remove them and use elm_widget_item_del_cb_set()
instead. The drawback is that onde would have to set it, while the
other is done automatically when you create the object with the
class. Nonetheless this patch already introduces support to use
elm_widget_item_pre_notify_del(), but it will be void in such code as
nobody ever sets it.
Some new setters and getters were introduced to normalize code... and
they would be required once people write python-bindings for them,
like index and carousel.
SVN revision: 52118
* Remove vim modelines:
find . -name '*.[chx]' -exec sed -i '/\/\*$/ {N;N;/ \* vim:ts/d}' \{\} \;
find . -name '*.[chx]' -exec sed -i '/\/[\*\/] *vim:/d' \{\} \;
* Remove leading blank lines:
find . -name '*.[cxh]' -exec sed -i '/./,$!d'
If you use vim, use this in your .vimrc:
set ts=8 sw=3 sts=8 expandtab cino=>5n-3f0^-2{2(0W1st0
SVN revision: 50816
elm.diff is a patch which implements a number of convenience functions
for various widgets, as well as some new features for toolbar and panel.
With the panel widget, I've written a number of calls related to
toolbar items and the selected item in particular, allowing
manipulation of the selection and toolbar items more easily. These
functions are as follows:
+elm_toolbar_item_get_all() returns a Eina_List* of all the toolbar
items
+elm_toolbar_item_get_first() returns the first toolbar item
+elm_toolbar_item_get_last() returns the last toolbar item
+elm_toolbar_item_get_next() returns the item after the
currently selected item
+elm_toolbar_item_select_next() moves the selection to the next valid
item
+elm_toolbar_item_select_first() selects the first valid item
+elm_toolbar_item_select_last() selects the last valid item
+elm_toolbar_item_find_by_label() returns the first Elm_Toolbar_Item
matching "label"
The new panel functions I have written allow for control of the panel's
state from code, and are as follows:
+elm_panel_hidden_set() sets the panel's toggle state to a bool value
and runs the animation
+elm_panel_hidden_get() returns whether the panel is hidden
+elm_panel_toggle() toggles the panel to its other state
The remainder of the functions are just general wd->data returns which
were missing, the functionality of which may be of use to people.
SVN revision: 48355
GENERAL WARNING:
do NOT delete sub-objects (elm_widget_sub_object_add) or resize object
(elm_widget_resize_object_set) from del_hook()!! These are deleted
automatically before this function is called, thus you might double
free.
Fixed all occurrences I've spotted with valgrind. Please do not add more :-)
SVN revision: 43682
Evas_Box layouts don't get along with what elm expects,
so for now, it's using the old els_box calculate functions
as a custom layout.
SVN revision: 42863
* putting policy into modules
* multitouch handling being able to be farmed off to modules
* farming off things that are not compatible with license/code of elm into a
3rd party piece of code via a clean defined interface API
2. fix doc image - dont need it
3. fix toolbar bounce settings. was wrong
SVN revision: 42793
that the toolbar box sets everything homogenous.
Fix some formatting.
Reduce register use in certain places.
Reduce number of calculations to get scale in certain places.
SVN revision: 42109
Add trap for a max icon size (currently hard-coded to 48 as anything greater
causes issues with the buttons).
Add trap to check if the toolbar's icon size is already set to what is
requested. This trap added, because without it the toolbar goes into a
"disabled" look.
SVN revision: 42000
Add a couple of blank lines in elm_toolbar.c to separate variables from code
in certain functions.
Set first button in Toolbar Test to be disabled (just so Elm develops can
see how it looks & acts)
NB: The theme/colors for disabled text may need/warrant work. Not sure how
Elementary people want the disabled text to look, so I used the disabled
text colors from elm_button for now.
(Hopefully the code here is acceptable ;) If not, please let me know what
needs fixing)
SVN revision: 41990
2. add bouncing at ends for scroller and config for it
3. fix quicklaunch to be cserver-freidnly thanks to its fork tricks
4. add signals to scroller when scrolling and hitting edges
5. pants.
SVN revision: 40549
* casts: remove internal "Item" and use "Elm_XXXX_Item" for carousel,
list, genlist and toolbar.
* warning: fix const on lots of getter apis, the object should be
const, and not the return! Of course lists that are returned and
are not supposed to be modified are still returned as const, but
maybe we should return iterators!
* list/genlist: fix selected_set() to be a bit (marginally)
faster. Do not operate if state has not changed and if it did
changed we're sure we're not in the object->selected list.
SVN revision: 39208
fix some theme size calc issues
make all widgets able to... do finger size! this way a ui can be tweaked with
1 value (finger size) if it is to be finger or mouse/stylus driven. and it
was so simple to add in.
work on genlist - beginning to display items and scroll.
SVN revision: 38995
2. make elementary be able to determine theme from
PREFIX/share/elementary/themes or ~/.elementary/themes (~/ takes preference)
currently using a delimited list of theme names in order to check like:
mytheme/fallback/morestuff/default
(if the last theme entry is on default it is added explicitly).
this allows multiple theme files bascially to work a bit like a fontset - try
the first one - if not there, try the next and so on. set $ELM_THEME to your
theme setting
3. determine prefix and thus data dir - where system themes go. if it can't
rely on dladdr, or the compiled-in prefix/data dir, you can set $ELM_PREFIX
and/or $ELM_DATA_DIR accordingly.
SVN revision: 38568