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
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
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
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
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 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
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
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
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
Subject: [E-devel] [PATCH] Genlist longpress timeout
Hello,
I've made a patch that makes the genlist capable of configuring the
timeout for the longpress event.
The patch compiles but I haven't tested it yet. However it's very
simple, it should work out of the box.
Patch is the output of "svn diff" from revision 49809.
SVN revision: 50558
elm_thumb widget, all the stuff about alignement and crop are not
used anymore.
By: Rafael "15 years experience" Fonseca <rfonseca@profusion.mobi>
SVN revision: 50388
I've added elm_label features. That are fontsize, color, background color and
ellipsis (cutting text to fit widget size) features. Most of the property
setting API is wrapping to label tag set.
The rllipsis feature checks part size and cuts character to fit its size.
SVN revision: 50275
- Add a new layout : expose
- Add a way to display more than 1 slide at a time, the number of slides displayed is defined in the layout
SVN revision: 50256
- Add a way to display a photo by keeping the ratio AND the theme can display something around the photo (border ...). The way I use is maybe a bit crappy (embryo, offset ...) but I do not know a better way.
- Add a new style (with a shadow). The default style has no changes
If you do not like my way, revert the commit and commit your way :)
Elm_Slideshow:
- Use elm_photo in the test
- Add a black background
SVN revision: 50248
Subject: elm_animator
an animator wrapper - can be attached to an object (and be deleted if
object is deleted) and otherwise call a callback with a 0.0->1.0 value
where along the path you should be etc. etc. - ie handle higher level
animation runs.
SVN revision: 50039
elm_object_signal_listen add callback(s) for edje object(s) of the widget.
elm_object_signal_unlisten delete this callback.
They're general functions, and every widget should set hooks for these.
It will improve elm extension flexibility. We have already
elm_object_signal_emit to send signals for the widgets theme, adding callbacks
is an expected step.
It provides a way to support sound on widgets. For example, in the elm extension
we could emit "file_to_play", "play", and add a callback with
elm_object_signal_listen for "*", "play". The callback function could use
the signal received to request the file to be played by the backend
sound system.
Certainly we should look for a better way to provide support for sound
on edje, but for now, it does the work. And anyway, it's only a use case
for these new functions.
SVN revision: 49868
Also useful for arguments about widget_top or top_widget.
After all it's not a widget of type top, but rather the widget at the top.
Your views? Opinions on a postcard plase.
SVN revision: 49814
elm_<widget>_icon_set was changed to the better form and the signals
was passed to hidden icons when one icon is changed/removed.
Moreover, when changed by {icon,content}_set the old {icon,content}
will be deleted.
By: Fabiano Fidencio <fidencio@profusion.mobi>
SVN revision: 49706
This function sends a signal to the edje object of the obj.
It's a general function, and every widget should set a hook for this.
I'm setting a hook only for the spinner now, but soon I will work on other widgets.
SVN revision: 49681
- Name index item as Elm_Index_Item
- Add some other index functions:
+ Item find
+ Data get/set
+ Letter get
I think this stuff will make easier to create index for
dynamically created lists.
SVN revision: 49171
(thanks k-s).
Fix formatting & remove some whitespace.
NB: Please take notice, do not format if statements like this:
if (val && !val2).
You will get spanked...hard :P
Proper if formatting should be:
if ((val) && (!val2))
This avoids potential evaluation errors (as was recently seen in
ecore_con).
SVN revision: 49111
Someday someone should take care to make elementary real smart objects
and benefit from everything it brings... yes, types more, but it is
worth -- and we added macros to help the type-a-lot.
SVN revision: 48831
Function that include items to an elm list in a sorted way defined by
an Eina_Compare_Cb function.
Author: Bruno Dilly <bdilly@profusion.mobi>
SVN revision: 48777
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
Add support to automatic proxy events from Elementary to Edje using
callbacks described with Evas_Smart_Cb_Description and set to
Evas_Smart_Class or per-instance with
evas_object_smart_callbacks_descriptions_set().
Right now elm_widget is not subclassable, so there is no way to define
class signals, just instance signals.
Just doing it for button, lots of widgets to do... If you can help,
please follow the process:
* see example at src/lib/elm_button.c, copy it.
* read your widget documentation at Elementary.h
* grep for evas_object_smart_callback_call(), see if they are all
documented in Elementary.h, or if there are some missing. Fix Elementary.h
* paste and change based on fixed Elementary.h My recommendation is
to create "static const char []" variables and replace all
evas_object_smart_callback_call() with that, to force sync.
With callback descriptions pre-defined and using the same pointer with
a custom variation evas_object_smart_callback_call_ptr() we may later
optimize signal calling heavily, removing the requirement to call
eina_stringshare_add()/eina_stringshare_del() and also not mixing all
the callbacks in teh same list, instead having an array for defined
signals, and a list from there. These optimizations are not in, but
they are easily added later without breaking the API/ABI.
SVN revision: 47461
is parent of an Evas_Object.
With these in place, one can check if the given object is an elmentary
widget and query for the first widget that is parent, so we can add
them and keep focus chain correct, useful for Edje externals, patch to
follow.
SVN revision: 47374
I am attaching another patches for transparent window.
1. Use RGB Visual.
2. Set destination_alpha in ecore_evas for alpha composite in evas.
3. add Function
- Ecore_Evas_Engine_Func->fn_transparent_set
- ecore_evas_transparent_set , ecore_evas_transparent_get
- elm_win_transparent_set, elm_win_transparent_get
SVN revision: 46106
genlist mode, button repeat stuff. thanks very muchly
also - i added calc idler self-timer check. if it spends more than 1
frametime (time between frames - this is what it deems as "too much") on
calculation, then it breaks the idle and goes back to mainloop. could make it
half a frametime - but this will do for now.
SVN revision: 45479
I send the elm_notify patch for showing in the center of screen.
This patch is developerd by Hee Seo.
<--->
Looks good. simple. straighforward. into svn it goes!
SVN revision: 45320
that's why!
2. make cmd-line tool to set scale, theme, finger size (more later) - used
this to test this and fix it.
3. cmd-line tool... also uses elm - and... as a result... also has a dialog
sayint its doing something - and... it can get a gui config later too!
SVN revision: 45175
Hello all,
I just made my first attempt to improve Elementary. The attached
patch adds an indicator format callback function for showing a more
versatile indicator string. It also sends drag start/stop signals
when the dragging starts and ends. This is useful for showing a
music playback progress slider. When the slider indicator is being
dragged, the indicator would show the "seek position" in time.
When the dragging is stopped, the music player can then seek to the
correct position.
I couldn't figure out how to do this with elm_slider, so I just
added these lines.
By: Brian Wang
SVN revision: 44649
* now we have 2 class : 1 for the marker and 1 for the group. When a marker is "alone", the class of the marker is used, if it is grouped with others markers, the class of the group is used.
* markers with the same class are grouped. If 2 markers do not have the same class they are not grouped.
* an icon can be set by the user for a single marker or a class
* the theme have 3 different markers/groups : radio, radio2 and empty (only the numbers of markers and the icon are displayed)
* we can specify to display a group's class only for a zoom >= to a value. It means a marker of this group is not displayed for a zoom < to this value.
* off course we have new bugs too :)
SVN revision: 44610
This is a compound widget that puts an entry inside a scroller,
so the user doesn't have to manage that stuff. Still needs some
more exposure of the scroller stuff and probably some automatizations.
SVN revision: 44349
2. standardise all callback names to be x,y,z etc. if they have multiple words.
3. add cal to get the region viewed
4. test photocams signals and new call
SVN revision: 43069
* 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
elm_fileselector_is_save_set(Evas_Object *obj, Eina_Bool is_save)
When the fs is in 'save' mode you can type the name of the file to save.
SVN revision: 42306
2. fixed paged scrollin to work better
3. entry hoveresel is themable separately
4. entry hofersel is extenstible
5. test improvings
SVN revision: 42181
2. add pagination concept to scroller (only scroll by pages)
3. add longpress callback for list + genlist
4. scroller docs and some empty api calls.
SVN revision: 42147
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
Hi raster, glad you're back. I'm resending some elm patches your way. the
disabled_buttons.diff also needs bt_dis_base.png and bt_dis_hilight.png
from e17's b&w theme.
SVN revision: 41818
EAPI void elm_hoversel_clear(Evas_Object *obj)
To remove all the items from the hoversel.
EAPI void elm_hoversel_item_icon_set(Elm_Hoversel_Item *it, const char *icon_file, const char *icon_group, Elm_Icon_Type icon_type)
To set the icon of the item, also from an edje file!!
SVN revision: 41757
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
this is a patch for the elm_image so far.
After some valgrind work and with the help of Gustavo, the orient code
for the image is not leak free (according to valgrind). According to
k-s, this way of doing things would avoid any nasty caching errors I've
been getting though valgrind before.
SVN revision: 40314
* 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
some buglts to clear up though.
fix scroller to scroll only at animator framerate.. using an animator making
scrolling much better.
begin genlist (geeric but complicated) list.
SVN revision: 38979
add tests for these
add tests for inheriting scaling factor from parent
fix test app to use list now instead of box+buttons (cleaner)
SVN revision: 38909
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