Author: Helen Fornazier <helen.fornazier@profusion.mobi>
If no item is selected, pressing up it will select the first and down
will select the last item
SVN revision: 53924
Setters can't receive const pointers.
All setter need corresponding getter.
In this patch, i adjust getter in: Bg, Box, Icon, Image, Win and Main.
SVN revision: 53917
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
There's still a little bugger that can be noticed with the Scroller 2 test
and elm_conform still needs to handle this as scroller does.
SVN revision: 53778
* Add UNUSED to arguments no used
* Add functions recently created to private.h
Patch by: "Fabiano Fidêncio" <fidencio@profusion.mobi>
SVN revision: 53763
Create a param 'style' that can be used in edje external
to change the style of one object.
Patch by: Otavio Pontes <otavio@profusion.mobi>
SVN revision: 53754
In Window show, the focus is given to first focusable object, or to
window if no exist focusable object. So, suggest create the widgets
before show the window.
If pager is focused, it give the focus to top page in each promote.
SVN revision: 53733
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
The profile now defines the default value for expand and inwin modes. The
fileselectors tests were changed to reflect that.
Note that the default for desktops is expand mode enabled and inwin disabled
and for mobiles is the opposite.
SVN revision: 53728
This is still a work in progress. The idea is to have two different profiles:
one to be used on desktops and another for mobiles. To make it possible, I've
added some fields to the config struct and in the following commits the widgets
will start using that configuration so when they are created the default
configuration of the profile is applied.
SVN revision: 53726
Now that toolbar has 3 shrink modes I've added one test for each one. The first
one shows the menu mode which is responsible for adding a More button when the
toolbar size is not large enough to hold all items. The second one is scroll
mode in which the items can be scrolled when the length is not enough. The last
one, none mode, does nothing.
SVN revision: 53718
Subject: elementary patch
In this elementary patch. type casting is used in elm_colorpicker.
In addition, Elementary.h.in is modified for indentation.
SVN revision: 53708
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
Description of changes / revisions (not all of them, I just picked some to
explain the names inclusions)
bdilly
Bruno Dilly <bdilly@profusion.mobi>
edbus -> r42081, r39884, r44581, r40463
python-elementary -> r52765, r52389
edje -> r46548, r49242
editje -> r52520
fidencio
Fabiano Fidêncio fidencio@profusion.mobi
elementary / python-elementary -> fix elm_<widget>_{icon,content}_set - r49706;
add externals - r{47649,47647,47645}
edje / python-edje -> lot of work on edje_edit
glima
Gustavo Lima Chaves <glima@profusion.mobi>
elementary -> added widgets
edje -> lot of work on edje_edit
helen
Helen Fornazier <helen.fornazier@profusion.mobi>
elementary -> elementary key events on widgets
editje -> undo / redo
jprvita
João Paulo Rechi Vita <jprvita@profusion.mobi>
e_dbus-> r47399 , r47398, r47397, r47336, r47330
padovan
Gustavo F. Padovan <padovan@profusion.mobi>
e_dbus-> r46365-r46373, r47114-r47119
SVN revision: 53682
This is one more widget whose idea came from Samsung Electronics. Its
first name was "context popup". There was no common agreement on a
name for it, so... Trator mode, for now (using hoversel as a pattern).
If you have a better name suggestion for it, just change it -- but
soon, due to releasing plans (in a mailbox near in a jiffy).
While for hoversels you populate slots with thingies to later choose
one of them, which will hover up for you, with hoverlists you get a
single hovering list. It will smartly place this -- unique -- list
onto a fitting place inside its parent widget view. Just call
evas_object_show() on it, anytime you want (like for notifies).
SVN revision: 53644
This injects some inteligence into hovers which can then be shared
between other composed hover widgets. Also introducing four new
swallow slots one can place content at: the diagonal corners. Just
gotta fill all the styles with those, but no time right now.
SVN revision: 53642
I'm not implementing the default list themes WRT to it right now,
though, I get back to it soon (just implementing it for a new widget).
SVN revision: 53641
Now one can set lists to dispose its items horizontally, too.
elm_list_horizontal_mode_set(), whose name was bogus and would
conflict with the new methods, got renamed to elm_mode_set(), along
with the getters.
This is coming along to help a widget using lists which has a
horizontal mode. The default theme for horizontal items is kinda ugly
for default lists, but one can always improve it :) (in a hurry
now).
Also, I'm introducing a new mode for Elementary lists: expand.
SVN revision: 53640
The swipe cancel timer isn't deleted in elm_genlist_clear right now. That will
cause invalid access later on.
Patch by: Brian Wang <brian.wang.0721@gmail.com>
SVN revision: 53589
* Remove warnings caused by comparison between signed and unsigned values
* Remove a comparison of unsigned expression < 0 that is always false
SVN revision: 53588
The problem was that when you toggle show/hide overlay in
ELM_BG_CENTER mode, the 'image' itself would not retain it's proper
size (it would fill the whole swallow and thus not be 'centered'
anymore). Solved by setting hint_min/max on the image when in centered
mode.
NB: Raster this fixes that elm_bg issue I mentioned the other day so
all is well now ;)
SVN revision: 53476
Do not allow adding more than one separator in a row, or adding a separator
as the first element of the menu (separators are for separating stuff, not
to decorate).
SVN revision: 53466
exist. Comment out function call until this gets sorted, so @ least
elm will build. Did nobody compile this before commit again ??? :(
SVN revision: 53439
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
Revised the parent, icon, end and content setter and getters of
elementary objects.
Review to smart objects and widgets items will be the next steps.
SVN revision: 53425
Right now I'm abusing style, setting fileselector_entry/$style on
items, however if it's not found the fallback will be 'default' and
not 'fileselector_entry/default' as it should be.
I'm wondering if this should be implemented in elm_theme.c by
replacing the last '/$component' with '/default', the remove it and
try again, like:
{{{
input = a/b/c
pass1 = a/b/default
pass2 = a/b
pass3 = a/default
pass4 = a
pass5 = default
}}}
SVN revision: 53423
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
rememebr... if your5 name is MISSING here... and you contributed...
and you WANT your name here.. provide it IN your patch... OR remember
to remind us that you are missing...
REMIND US!!!!!!!!!!!!!!!!
SVN revision: 53389
toolbar-content-back got and elm.swallow.end, on the opposite side of
"back".
removed "fixed: 1 1" errors.
checked with elementary_config changing finger size and scale, works nice!
SVN revision: 53383
would cause the computation to be needed every time the widget
(colorpicker) gets moved/resized....just do the math and set the values.
SVN revision: 53315
Don't need Ecore.h here, Elementary.h already includes it
Fix formatting.
Use #define for signal name rather than const char
Initialize integer's with a value.
Add 'changed' signal to Elementary.h so people know it emits changed
also.
SVN revision: 53314
Add a new Test for BG Options.
Add a new 'bg_overlay' in objects/test.edc for testing bg overlay stuff.
NB: There is an issue here that I cannot seem to get straight (perhaps
pebkac, not sure)...but basically it seems that showing/hiding the
overlay causes the other swallows of the edc to get recalc'd and makes
the 'image' not work well w/ Center.
SVN revision: 53307
Add ability for elm_bg to have 'overlays' such as animated fog, etc.
Normalize elm_bg internal object names:
Rename wd->img to the more generic wd->base.
Remove erroneous evas_object_resize(wd->base, 0, 0) (not needed).
Fix typo in doxy comment.
Add doxy for new functions (color_set, overlay_set)
Add swallow part in edc for bg color rectangle.
Fix overlay swallow part offsets.
SVN revision: 53299
Now alignment works no matter whether the item is smaller than the grid or not.
Also added a spinner to Gengrid 2 test so we can see the alignment in action
for different item sizes.
SVN revision: 53252
Before changing gengrid internal to use inlist, passing a NULL item to
insert_before and insert_after functions would make them behave as prepend and
append respectively but now one would just get a SEGV. So test for a selected
item before doing anything ;)
SVN revision: 53251
use inlist so we don't have to find stuff to operate on.
export more methods, like elm_gengrid_item_next_get(),
elm_gengrid_item_prev_get() and elm_gengrid_first_item_get() and elm_gengrid_last_item_get()... so we don't expose elm_gengrid_items_get().
People using the old elm_gengrid_items_get() should move to
elm_gengrid_first_item_get() and then next variant.
SVN revision: 53248
Gengrid now has modes append, prepend, insert_before and insert_after. To see
them working check the Gengrid 2 test on elementary_test.
SVN revision: 53242
If one wants to create a Gengrid with seletion mode disabled and dynamically
add items to it the no select mode would be overwritten. So make Gengrid
selectable by default and just change the selection state when user explicitly
calls elm_gengrid_no_select_mode_set() function.
SVN revision: 53241
also missing are elm_gengrid_item_prepend(),
elm_gengrid_item_insert_before() and elm_gengrid_item_insert_after()!
I can't do them right now, so any help is appreciated.
SVN revision: 53236
I'll commit this to bring some attention to the topic, it is harmless
for people that do not use it, but for users it may be slow on list
resize.
SVN revision: 53160
Subject: Patch to address some focus and disabling issue in elementary
widgets
We have observed some generic issues in Elementary widgets.
1. Widgets not getting disabled if we call elm_object_disabled_set(ob,
EINA_TRUE) followed by elm_object_style_set(obj, <style_name>);
This works fine if we disable the widget after changing the style(call
to theme_hook happens here).
It happens because we are not sending the edje signal in theme_hook of
the widgets, if the widget is already in disabled state.
I have added this code in theme_hook of elm_button as an example and
we will need to apply the similar stuff in all other widgets if needed.
2. The widget gets focused in a particular scenario even though we
call elm_object_focus_allow_set(obj, EINA_FALSE).
The code snippet to explain the scenario which we observed was like
this:
Evas_Object *button = NULL, *icon = NULL;
button = elm_button_add(parent);
elm_object_focus_allow_set(button, EINA_FALSE);
icon = elm_icon_add(button);
elm_icon_file_set(icon, EDJE_PATH, "test.icon");
elm_button_icon_set(button, icon);
An icon object does not take focus by default. But still whenever
the focus returned to the parent(layout in this case) after closing
some popup, the button gets focused though we had disabled it
explicitly.
The reason is in this case, when we call elm_icon_add(button), icon
gets added to button as a sub-object and in this call, we set
sd->child_can_focus for button(the parent) as true because till now,
the focus property for icon has not been set to false which by default
is true.
This was set later in the function elm_icon_add() as follows:
elm_widget_can_focus_set(obj, EINA_FALSE);
Actually this should be set before adding icon as sub-object of the
parent which in this case is a button.
I have done the required modification in the function elm_icon_add().
Attached to this mail is the patch file for these two issues.The
revision from which I have created this patch file is 53129.
We may need to do similar changes in other widgets if required.
SVN revision: 53137
Subject: [EFL] Small Patch for Genlist : elm_genlist_item_expanded_depth_get() API
I added one API to genlist : elm_genlist_item_expanded_depth_get(). This is
used to get an item's expanded depth. I tested this with latest SVN revision
53090.
Can you review this patch and apply this to upstream?
SVN revision: 53134
this damn bitch made me waste hours hunting a supposedly bug in Evas
event dispatch system just to realize the bug was in the theme... and
list in the LIST + COMPRESSED! :-( Everything else was correct.
The idea of "end" is that we may want to have some action item as
well, such as a button (see modification in test_list.c). In this case
we want the button to receive the event before the list item (or even
block the event going to the list item). Use case: add a "delete"
button to the item, click delete and you want to avoid it being
selected (think of a bookmark where you want to delete a folder, but
select the item would enter that folder that you want to delete).
SVN revision: 53121
Added set, get, unset, prepend and append (relative or not).
Set - overwrite the custom chain
Unset - Delete the custom chain
Get- Return the custom chain
Append - append after the relative object or in the end
Prepend - prepend before the relative object or in the start
SVN revision: 53115
Before, the focus_cycle try pass the focus to next, and try again if
need loop the objects. Now, the focus cycle return possible next
object and if is necessary loop or not to focus this returned object.
SVN revision: 53111
This is one more widget whose idea come from Samsung set of
contributions to Elementary.
There is a known bug involving embryo + string functions, which will,
if in "stress", appear at the labels of the widget. Not time to attack
it right now, though.
SVN revision: 53109
Author: Helen Fornazier <helen.fornazier@profusion.mobi>
Up and Down to navigate without multi selection. Hold shift +
up/down to multi select.
SVN revision: 53078
Author: Helen Fornazier <helen.fornazier@profusion.mobi>
Keys:
up
kp_up
down
kp_down
left
kp_left
right
kp_right
Page Up
Page Down
Home
End
p.s.: kp = key pad
SVN revision: 53076
Author: Helen Fornazier <helen.fornazier@profusion.mobi>
The list use elm_scroller instead els_scroller like the others. This is
a problem, because the scroller is son of the list, so when you click on
an item, the event will be done in the item (an edje object) that will
pass to the box it is inside, the box will pass the event to the
scroller and then to the list. So, with the event arriving the scroller
first than the list, if you press up, the navigation between item will
not happen because the scroller is treating the event first. So a good
solution is to pass the list to use smart scroller intead elm_scroller
(like genlist and gengrid).
SVN revision: 53075
Author: Helen Fornazier <helen.fornazier@profusion.mobi>
Up, Down, Left and Right to navigate without multi selection.
Hold shift + up/down/left/right to multi select.
SVN revision: 53074
Author: Helen Fornazier <helen.fornazier@profusion.mobi>
Up and Down to navigate without multi selection. Hold shift + up/down to
multi select.
SVN revision: 53073
This Debug search all subobjects from one object and put in file all
sub-tree of elementary objects as dot language in file. After you can
use dot(from graphviz) to generate PNG, SVG,... diagram of objects.
SVN revision: 53035
Author: Helen Fornazier <helen.fornazier@profusion.mobi>
Keys:
up
kp_up
down
kp_down
left
kp_left
right
kp_right
Page Up
Page Down
Home
End
p.s.: kp = key pad
SVN revision: 52964
Author: Helen Fornazier <helen.fornazier@profusion.mobi>
Keys:
up
kp_up
down
kp_down
left
kp_left
right
kp_right
Page Up
Page Down
Home
End
p.s.: kp = key pad
SVN revision: 52963
Author: Helen Fornazier <helen.fornazier@profusion.mobi>
The idea of the treatment of the key downs events in the smart scroller
is be equal to any widget that use it. But to do this, the smart
scroller must listen to the EVAS_CALLBACK_KEY_DOWN, this will cause a
problem to list, genlist, gengrid, because the event will arrive first
to the smart scroller then to this widgets (because the widgets are
listening the event by event_hook). So, if the scroller treat "Up", the
genlist will not select the item above because this event was already
treat by the scroller.
Now the tratment of the keys was tranfer to the elm_scroller instead of
els_scroller.
SVN revision: 52962
Now Widgets can control between children interation or receive focus
itself. And focus_cycle has now one default code.
And don't pass focus to disabled widgets
SVN revision: 52959
Author: Helen Fornazier <helen.fornazier@profusion.mobi>
Event hook in hoversel is not needed, because the center of the hoversel
is a button that gets the event and calls the activate of the hoversel.
SVN revision: 52889
EAPI void elm_slider_end_set(Evas_Object *obj, Evas_Object *end);
will set a *right* aligned sub-object relative to the slider.
EAPI const Evas_Object *elm_slider_end_get(const Evas_Object *obj);
Getter for that object.
EAPI Evas_Object *elm_slider_end_unset(Evas_Object *obj);
Unparent a previously set end object.
EAPI Evas_Object *elm_slider_icon_unset(Evas_Object *obj);
The same for the icon sub-object.
EAPI void elm_slider_indicator_show_set(Evas_Object *obj, Eina_Bool show);
EAPI Eina_Bool elm_slider_indicator_show_get(const Evas_Object *obj);
Set/get whether the slider should display the augmented knob (indicator) at
mouse drag at all.
SVN revision: 52852
They will only display a warning because they don't have a cursor themselves.
Only adding for the eventareas will free everything created.
SVN revision: 52821
Author: Helen Fornazier <helen.fornazier@profusion.mobi>
elm_slider now respond to the keyborad arrows depends on its position.
If it is in a horizontal mode, than its value will change by pressing
left and right, other wise it will respond by pressing up and down
elm_slideshow: go to next and previous with keyboard arrows
elm_spinner: respond to left and right keys in an animated way
SVN revision: 52816
The old theme start show animation on obj show, if you want
disabled by default it doesn't work well. I changed the theme
default to be visible, don't need animation on "show".
And hidden_set was with inverted logic.
The focus highlight is in theme. And the widget react to
Return/Space.
SVN revision: 52814
This patch add tooltip and mouse cursor support for items of genlist
and gengrid and extends the elementary tests for tooltips and
cursor
By: Thiago Ribeiro Masaki <masaki@profusion.mobi>
SVN revision: 52805
yeah, i should do the tooltips one as well, but it's boring so I'll
leave the implementation as the exercise for someone else :-)
and yeah, we should have that inside edje, like a nice description {
cursor: "xterm"; }, but that's not going to happen in Edje 1.0.
SVN revision: 52793
If you have problem seeing stuff due theme misses, then use:
export EINA_LOG_LEVELS=elementary:4
and you should see some reports of missing groups with files. This
helps a lot for genlist and its complex way of naming items :-)
SVN revision: 52791
instead of refetching and revalidating Widget_Data everytime, just
handle it. Although this will save some instructions, the goal is to
make code shorter and less error prone.
SVN revision: 52790
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
Raster, if possible give it a try as it seems that most of the focus
steal and clear is your code and maybe you have a clue of what is
happening. For instance I have no clue why that global focus_order
counter that always grows.
This test is now exposing various problems, some of them is what bug
us in Editje, some is what eve's url bar, etc:
- press "Give focus to scrolled entry", then press it again. See
that the scrolled entry looses its focus, although we're giving it
focus? This is related to the object loosing focus but not
detecting it, thus the next elm_widget_focus_steal() will just
ignore it and say "you already have focus, do nothing!"
- start pressing "TAB", after a full iteration, the next iteration
just goes up to the last item. If you keep doing that, at some
point the TAB will just not work anymore. If you change PARENT
from "bx" to "win", then it does not happen. But adding to "bx"
would be the correct thing to do (more logical structure)
SVN revision: 52709
Most of the errors referred to the cast from int to void* in x86_64.
This need conversion to long, as intermediate.
Some calls to elm_widget not exposed API were changed to their similar
at elm_object API.
Elm_Photo never call "drop" smart callback, but i leave the callback
in tests.
And others API methods are included in Elementary.h
Now elementary build with -Wall -Werror in x86_64.
SVN revision: 52691
it's simple. only allows 1 level of theme. would need an advanced
dialog to allow:
theme1:theme2:theme3:theme4... etc.
also no browsing for themes - just whats instaleld n system and user
dirs atm.
SVN revision: 52667
This defines a new theme group for elm_scrolled_entry:
"elm/scroller/entry/$THEME". Themes that wants to support the icon/end
feature in scrolled entry should implement parts "elm.swallow.icon" and
"elm.swallow.end". Black&White theme has been changed, Effeniht changes
to come on a later commit.
SVN revision: 52657
These two functions mimic what is already done in gengrid object.
* elm_gengrid_item_show : scroll immediatly to the item
* elm_gengrid_item_bring : scroll with an animation to the item
SVN revision: 52620
Subject: Re: [E-devel] Transition Layout for elm_box
There are 2 simple problems with the committed code. First, it would
be better to locate the struct _Elm_Box_Transition in elm_box.c
instead of Elementary.h.in, because users should create it with
elm_box_transition_new and changing its contents can be dangerous. And
second, in struct _Transition_Animation_Data, I declared 4 coordinate
variables as int, instead of using Evas_Coords.
I am sending both patches attached.
SVN revision: 52560
There's currently in Elementary a way for widgets that die to revert
focus to whoever had it first, but it was broken in some cases.
SVN revision: 52550
The Elm Widgets aren't disposed exactly as trees of Evas Objects, so
need store widget parents separated from Evas Smart Object parents.
The Evas propagation events don't satisfy all use cases. Like managing
events in elm_win or try if one parent manage the event before manage
it.
In this, I add hook to each widget manage their interested events or
from their child.
SVN revision: 52527
There's still work to do here, particularly in the theme, but it has
something nice and fun to see the code working.
The idea behind this:
Window tracks focused object and sends the highlight object(s) to it. These
are simple edje objects, one on top, one below the focused widget for nice
effects. Widgets can choose to ignore the highlight and this will be sent to
the parent object, if it doesn't ignore it as well.
About the bottom object, it doesn't work now. For the most part, focused
widget will always be a member of some smart object, so stacking won't work
and the desired effect is nowhere to be seen. This will be worked out later.
To be done now:
- Let the theme for a widget define its own highlight, disabling if needed
the standard one for those objects.
- Needed base in code to allow animations when switching focus. All in theme.
- Properly test all widgets and fix some things that will most likely work
in weird ways, given the nature of Evas/Edje and how Elementary makes use
of them.
- Forgot the rest, stay tuned, test, report, give ideas, plant a tree.
Work started by glima, continued with some refactors by me when he
decided he needed vacations.
SVN revision: 52524
Subject: patch for indentation and using enum in elementary
I send the patch for elementary.
In this patch, I fixed the indentation of Elementary.h.in.
In addition, I use EINA_TRUE or EINA_FALSE instead of 1 or 0.
EVAS_HINT_EXPAND and EVA_HINT_FILL is used instead of 1.0 and -1.0.
Thanks.
SVN revision: 52447
Calling resize_object_del() when a resize_object died calls
elm_widget_sub_object_del(), which sets the parent of the (now dead)
widget to NULL. The problem is that this breaks some of the
stuff done in the smart_del() method in the smart class for widgets,
like reverting focus to whoever held it previously.
SVN revision: 52387
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
don't connect twice to the same object (happened whenever not using
sub-items), then the callback was being called twice.
also set the dead object pointer to NULL, so we avoid operating on it
any further.
SVN revision: 52354
The els_scroller.c:_smart_add() as disabling event propagation on
itself, that way an owner object (ie: elm_scroller,
elm_scrolled_entry, elm_list, ...) was not getting the mouse events it
gets, thus any evas_object_event_callback_add(..., EVAS_CALLBACK_MOUSE_*...)
were not working (effectively breaking tooltips).
Seems that the reason to do so was double-event reporting. It could
happen as the elm_smart_scroller has an event_obj that repeats event,
thus the object behind it, the edje_object, could get and possibly
repeat them as well.
As we are sure event_obj always get the events, but not sure of the
edje, as it depend on user contents, the logic is now changed to stop
propagation of the edje instead (it still processes the events! just
not propagates to elm_smart_scroller).
I hope this patch does not break anything, but please check your software!
SVN revision: 52350
It was elm_panes_horizontal_is, but grep shows no matches.
So I'm guessing horiztonal_get.
Seems was originally comited by watchwolf when the file was added.
SVN revision: 52287
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
Whenever object starts hiding Elementary sends "elm,action,hide", so
when it aborts such action it must always emit "elm,action,show" and
the best place to do this is at _elm_tooltip_hide_anim_stop().
Note: _elm_tooltip_hide() calls _elm_tooltip_hide_anim_stop() and thus
would show the object, but this is void as right after that the
tooltip object is deleted and thus the signal is never processed and
as we don't go back to main loop, nothing changes on screen.
SVN revision: 52167
I always wished tooltips would be less boring, and so we have them all
fancy and nice :-)
* tooltip theme can request a timeout before hiding. This means we
can fade out the tooltips nicely.
* tooltip theme get enough information to track its origin. The
current theme will show a small tip where it was created, and
dynamically follows it. The graphics kinda suck, but I tried to
achieve a cartoon-like buble using Inkscape.
* label style is set to "tooltip". I'm providing a default with
dark-gray text and 8 as size.
SVN revision: 52166
The Elm_Object_Layer is a convenience enumeration to help standardize
values so we don't ride into problems in future.
Tooltip has now its own layer, so set it there and avoid newly created
objects being created on top of them (usually they show on top of
everything as they are the last created, thus the topmost on the
default layer)
SVN revision: 52158
Tooltips are set using elm_object_tooltip_content_cb_set(), that
returns the desired Evas_Object to use as contents, or using the
helper function elm_object_tooltip_text_set() that uses that
underneath.
The behavior is controlled part on elm_config, theme and user
application. In elm_config one defines the tooltip timeout. The theme
defines the padding around cursor x/y and window border x/y, as well
as the look and feel. Last but not least, the user application may
want to change the tooltip style with elm_object_tooltip_style_set().
Have fun!
This code was initially written by Tiago Falcao and Fabiano Fidencio,
I did some API review and changed some bits.
TODO: elm widget item support, like with toolbar items.
SVN revision: 52150
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
IF we're replacing the pan_obj, then we should disconnect from the old
in order to avoid receive useless callbacks... actually if it is an
external pan object and we die and it does not, we may end crashing
due it calling function callbacks with garbage data.
SVN revision: 52117
Lots of widgets have items that are not Evas_Object of type elm_widget
per se, like Elm_List_Item or Elm_Toolbar_Item. They all have, or
should have, some common attributes and functions such as data,
del_cb, a view object and a parent/owner widget. Thus this is being
provided and will be later used in future patches.
Right now I opted to hide elm_widget_item_del_cb_set(),
elm_widget_item_data_get(), elm_widget_item_data_set() inside
elm_priv.h and keep the old functions as wrappers to the new. But
maybe in future we can remove them and have the user to call the
common function.
Future extensions will use this base, such as tooltip support.
SVN revision: 52116
At del_hook() stuff are already gone and invalid access may
happen. Doing it from del_pre_hook you still have things working nice.
Also refactor the destructor to do recursion and stop allocate list
nodes to avoid it... simpler.
SVN revision: 52114
The correct way is to use EINA_INLIST_CONTAINER_GET() that allows the
Eina_Inlist structure to be moved around in the structure. Right now
it did work fine, but I want to change the Elm_Genlist_Item later and
this change will be required and it is better to come in a separate
patch.
SVN revision: 52112
From _del_pre_hook() we first delete pan_smart and then call
elm_genlist_clear() to rip off children, however genlist_clear was
always doing evas_object_smart_callback_call() on it.
SVN revision: 52111
Like was already done to other widgets by bdilly, this patch adds the
possibility to send signals to elm_gengrid's theme.
P.S: lfelipe, ahi esta mi primer commit :P
SVN revision: 52109
Im going to clear the fileselector widget, I will make the theme use
a layout instead of a fixed box and also I will clear the api that have
silly names atm
If you have suggestions please speak now
DaveMDS
SVN revision: 51966
this is clear when building with -fvisibility=hidden and it breaks
with undefined reference as elm_selection_get() is not marked as EAPI.
SVN revision: 51956
This is not doing much now, just the version field in the struct,
some stuff stolen from E and a base to use when new things are added.
There are some comments in the code about what to do in certain cases
that E does not have, like a system update, new config and apps linked
to the old version still running when the config Atoms are updated. These
things we'll probably be addressed as they are needed, as well as come
clean up in quick code I ditched in there, but it would be good to do so
with more feedback from the good guys around that like to break SVN
every now and then.
Since the commit message is already long enough, I'm adding some more crap
just for the sake of doing so. I could go with some tl;dr thing as well,
but I don't feel like resuming what's up there.
Have a nice day.
SVN revision: 51843
A calendar is a widget that allows the user to select a date. It has
support to adding marks (holidays and checks by default). The calendar
is displayed month at a time.
Weekdays names and the function used to format month and year to
be displayed can be set, giving more flexibility to this widget.
SVN revision: 51584
Apply badzero.cocci, badnull.coci and badnull2.cocci
This should convert all cases where there's a comparison to NULL to simpler
forms. This patch applies the following transformations:
code before patch ||code after patch
===============================================================
return a == NULL; return !a;
return a != NULL; return !!a;
func(a == NULL); func(!a);
func(a != NULL); func(!!a);
b = a == NULL; b = !a;
b = a != NULL; b = !!a;
b = a == NULL ? c : d; b = !a ? c : d;
b = a != NULL ? c : d; b = a ? c : d;
other cases:
a == NULL !a
a != NULL a
SVN revision: 51487
1. Selection now works with the buttons in elementary_test.
2. Selection with ctrl+v does not print ERR:elementary elm_widget.c:1373 _elm_widget_type_check() Passing Object: (nil), of type: '(unknown)' when expecting type: 'entry' anymore.
SVN revision: 51216
This is still the default in the object, but this allows us to auto-align according to natural text direction without breaking functionality.
SVN revision: 50967
* 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