Add two new canvas level callbacks: OBJECT_FOCUS_IN/OUT
As we already had callbacks for objects gaining or losing focus, then
two more for the Canvas, now we can have the entire Evas be notified when
any object changes its focused status. The object in question is passed
as the event_info for the callback.
SVN revision: 52196
done. working. now... still 1 more bug. seems to be a changed flag bug
too in dlip 2 test in scrolling list after map anim finished. smaller
bug to deal with now. ugh. bug one bug to the other
SVN revision: 51849
Sorry, but full documented code will be committed tomorrow, this commit is needed for the API stabilization.
Major changes in this commit:
1. Changed the textblock node system there is now a linked list for the format nodes and a linked list for the text nodes. Format and text nodes point to one anoter in a matter that will be explained in the source file (will be committed tomorrow). Each text node now represents a paragraph and each format node points to a specific location in a text node.
2. Text/Format nodes are now two distinct data types.
3. The concept of nodes is no longer exposed in the API except for the format nodes which are only slightly exposed just to enable users of the API to cycle all the formats in order to find stuff like anchors.
4. Every node has a PS (paragraph separator) format node pointing to it's end, except for the last one which has nothing. Nodes are only broken by PS's.
5. Changed the BiDi functions to work nicely with offsets in big chunks of text.
More is explained in the email with the subject 'Evas Textblock redesign + edje_entry adjustments' that will be sent tomorrow because of technical issues.
For full documentation about this object wait for the next commit.
SVN revision: 50930
Subject: [E-devel] 8bpp xcb evas engine
Hi all,
I've implemented the 8bpp grayscale evas engine. It is based on the 16bpp
engine. It would be nice if someone could review the code and maybe commit
into svn. The patches against evas and ecore are attached.
SVN revision: 50560
Code with side effects is NOT pure. Cdoe where you can ignore the return
value because you care about the side effects should not have WARN_UNUSED...
Please only add such things when you've checked
SVN revision: 49984
WARNING: I AM SORRY, BUT IF NO ONE IS PLANNING TO BECOME
THE EFFECTIVE MAINTAINER OF THAT PIECE OF CODE, I WILL
REMOVE IT NEXT WEEK.
SVN revision: 49945
rendering. to turn on:
1.
configure with --enable-async-render
2.
export EVAS_RENDER_MODE=non-blocking
presto. necessitates some api swizzling (thus the expedite. ecore etc. changes)
the kind of results you get on a desktop:
http://www.rasterman.com/files/evas-async-vs-none.html
SVN revision: 49087
* Subclass macro now gets a different function to retrieve the parent class,
which should return a pointer to a fully set up class, instead of filling
up one passed to it.
* Add this functions and use them in SmartClippedObject and Box
* New function to check the type of a Smart object all over its hierarchy tree
SVN revision: 47379
This commit moves Evas.h contents a lot, but it should not change code
(some conts were added, some function attributes were changed).
The purpose of such is to define the order that doxygen show modules
in its documentation.
I also splitted documentation a bit more, and added a src/examples to
list useful example code. Right now it is just a pure-evas
draw-and-save using buffer engine.
NOTE: there is lots to document, and the @todo list is quite long but
I guess lots of things there were done already. Raster, could
you review this list?
SVN revision: 47308
Canvas was (ab)using the same callback signature as Objects, so you
always got a confusing NULL parameter.
Just clean it up to be Evas_Object_Event_Cb and Evas_Event_Cb, each
with its own signature.
SVN revision: 46206
1. the concept of callbacks for a canvas as a whole. add/ del/ del_full these
2. focus in+out events for the canvas as a whole - can help solve some issues
with inoput methods + ecore-imf + entries (like edje_entry)
3. add callabcks to be called before/after flush of display.
SVN revision: 45761
This patch adds some stuff for smart callback description/instropection, which
is still untested but doesn't break anything that's out there now. Should help
with bindings later on.
Also some parenting guidelines for smart objects, so it's easier to spawn a
subclass out of another. Look at Box and Table for an example on this.
And again, rebuild everything that uses smart objects after this update, or
the world will turn into a happy place where lawyers are no longer needed...
and we don't want to upset the lawyers.
SVN revision: 45043
Evas image load was always reporint "generic" error, since it was
disconnected from actual loader modules.
This commit will break the module loader API (as it's restricted to
inside Evas, this should be no problem). The return was turned into
"Eina_Bool" for clarity, while an extra "int *error" is responsible to
report errors. This approach was choosen to force compiler warnings
and to try avoid mistakes as EINA_FALSE == EVAS_LOAD_ERROR_NONE and
thus we'd get opposite behavior if something slips.
Most loaders play well, except by eet that does not provide means to
know if the file open failed due missing file, incorrect format or
corrupted file :-(
Please report any issues. I added eina_log debugging to loader
functions, just run your Evas application as:
EINA_LOG_LEVELS=evas_main:4 your_app
SVN revision: 44666
changed. still renders all, but better now. keeps map surfacer around for
shits and giggles until map unset or object deleted. als be able to set
smooth map and disable alpha (for smart objects)
SVN revision: 43362
change evas_map to return a structure that serves as an array of
points. This way we'll know for sure the number of points in it. Right
now it's hardcoded to 4, so check it, but in future we can just allow
more points and it should work.
added docs. I'm not sure about most of it, so it would be good to have
someone to review and fill in more, maybe that's raster? Grep for
"TODO" and you'll see the missing stuff. It would be good to add
examples in evas_map_point_coord_set() and
evas_map_point_image_uv_set()
SVN revision: 43211
Hey raster,
Here is the non intrusive patch I talked to you about. Please apply it as it
introduces some fixes, some improvements and mostly and underlying
infrastructure for future RTL improvements.
(note hebrew & yiddish seem fine, but things expedite test seems to show are
wrong (why i don't know as i dont speak the langs- just comparing to pango /
gtk output):
arabic seems lsightl wrong (maybe composition chars not working?)
gujarati - also seems wrong
malayam - also looks wrong
persian - looks wrong
sinhala - looks wrong
tamil - looks wrong
these are what, appear to me, to look wrong. why they look wrong, i don't
know. i'm guessing its compositiong not being handled. but i dont's peak,
read or write any of these languages so i am unsure of what it really should
be like, why and how to fix it.
anyone want to put up a hand? (everything else is displaying fine as best i
can tell - the langauges i read/speak/somewhat understand are working fine).
SVN revision: 42814
none (ie default) and the engines actually understand it and use it.
2. fixes to scalecache and cserver too. more toto's done and its now been
stress tested by me - and i think cserve is ready to go gold. just enable it
with export EVAS_CSERVE=1 in your env for any eflapps - and run evas_cserve
(cmd-line options avalable plus cmd-line tol to query settings change on the
fly and query statsitics and state)
SVN revision: 40536
* evas_engine_info_set() returns now an int, to inform if
an error occured or not when setting the info of the engine.
* in the Evas_Func structure, the setup() method returns an int
* all the engines are updated
I'll fix ecore_evas and ewl later (the compilation is still fine).
Gustavo: should I add EINA_WARN_UNUSED_RESULT at the end of the
evas_engine_info_set() function ?
SVN revision: 39670
let's stop replicating these macros over and over again, also flag
evas functions with attributes to help with optimizations.
TODO:
* move functions returning "int" as boolean to Eina_Bool
* move api entry to EINA_SAFETY_*
* document api
SVN revision: 39598
evas_object_image_preload() should not use object as const because it
will mdofiy the object state (so it's semantic makes more sense).
if data was already loaded, then callback before ignored it (return).
SVN revision: 38246
giving an extra void *user_data to layout function is now easy to
write bindings, just give the callback to be a generic function that
will call the language/binding specific function handled as user_data.
Example, for python we can use:
void _layout_dispatcher(Evas_Object *o, Evas_Object_Box_Data *priv, void *data) {
PyObject *pyobj = data, *args;
args = PyTyple_New(1);
PyTuple_SET_ITEM(args, 0, Evas_object_from_instance(o));
PyObject_Call(pyobj, args, NULL);
Py_DECREF(args);
}
evas_object_box_layout_set(o, _layout_dispatcher, pyobj, Py_DecRef);
SVN revision: 37640
tyo fix up some of these breaks first and there isn't a lot of time devoted
to this. so revert this. it's in svn history so we can dig it out any time we
like.
SVN revision: 37453
1. nearest scaling is now broken - it's always linear interpolation. this
will lead to slowdowns. i need to fix this - a must.
2. i think it's time i put in a transformed image cache that can cache an
image object at a transform (and share it) automatically.
3. transforms in non-software-engines will not work - broken. need to at
least do xrender and gl engines.
any volunteers to help?
SVN revision: 37447
Table code is still *incomplete*, it just do homogeneous layouts as
I'm still trying to figure out how to make it great.
I'm not expecting to make layout configurable, as we did for box, but
if you think it's required we can do that later.
Now that the public API of both BOX and TABLE are in, we can add these
as parts of Edje.
SVN revision: 37359
Box is a smart object to help with the common task of laying out lots
of objects. It's very flexibile and one can customize the layout
function on a per-object basis dynamically, just set a new layout
function (the most common are provided). By default layouts use size
hints from children to do their work, but one can also add new
properties, just subclass with evas_object_smart_smart_set() and then
define your own option_* callbacks.
This code was ported from Guarana (widgets/sequence_box.c) with
permission of ProFUSION embedded systems so it can be relicensed from
LGPL to Evas license.
Original author: Gustavo Lima Chaves <glima@profusion.mobi>
Port: Gustavo Sverzut Barbieri <barbieri@profusion.mobi>
SVN revision: 37188
On the let's break 'em all bandwagon, add the two callbacks (or
virtuals if you like the name) so we can know when some object is
attached or detached as a member of our object, this will help
eliminate confusing and duplicate functions like
evas_object_smart_clipped_smart_add().
Please recompile *ALL* your libs and applications that depend on Evas
and Smart Objects, like ETK.
SVN revision: 37084
that's about it. a bit hacky - but works and frankly.. the idea is that u'd
set a scale factor once really and not change it per obj... most likely.
SVN revision: 35896
This class covers the most common cases, usually its sub-classes will
have to implement resize and override one or two methods at most,
making the smart object usage less error prone and easier.
Default behavior is:
- add: creates a hidden clipper with "infinite" size;
- del: delete all children objects;
- move: move all objects relative relatively;
- resize: not defined;
- show: if there are children objects, show clipper;
- hide: hides clipper;
- color_set: set the color of clipper;
- clip_set: set clipper of clipper;
- clip_unset: unset the clipper of clipper;
Documentation explains an easy way to inherit from this class and
still be able to use overridden methods.
SVN revision: 35861
Some people is using it for some time now without problems, so I'm
adding it to SVN to get some broader use. Remember to recompile ALL
libraries that depend on Evas as it will change the
EVAS_SMART_CLASS_VERSION and old classes will fail to load.
This will also change Edje so it will postpone _edje_recalc() to
render time, calculate() callback, however some methods will force
early recalculation.
SVN revision: 35860
- some enignes break as they dont have the stubbed out functions, and
xrender/gl engines dont even implement the drawing and need to (but are
stubbed out).
SVN revision: 35677
This will check both function and data before removing the callback,
this is useful when you have lots of children monitoring parent, when
one child want to remove its monitoring function, others will remain.
Name is quite difficult to choose, I opted for "_full", but could be
"_with_data" or similar.
SVN revision: 34731
By having a layer as a short (16 bits) we can pack it together with
the bitfields, saving 4 bytes per sub-struct, 8 bytes in total, also
bringing the struct down from 4 to 3 cachelines on my laptop.
Rationale: layers are mostly used to differentiate groups of objects
and they stacking, usually we have few layers and we use very large or
very small numbers to make a layer be at the top or at the bottom, but
usually we don't need so many layers.
Caution: code that use values like 999999 will break, so fix your
code! I'll provide another patch to fix all the CVS using these large
values.
SVN revision: 34420
This will help the use of Evas_Bool to define bitfield structs like in:
struct s {
Evas_Bool a:1;
Evas_Bool b:1;
Evas_Bool c:1;
Evas_Bool d:1;
Evas_Bool e:1;
Evas_Bool f:1;
Evas_Bool g:1;
Evas_Bool h:1;
Evas_Bool i:1;
};
It must be unsigned or it would use the signal bit, having "a == 0" to
be true anyway, as it would be just +0 and -0.
SVN revision: 34362
* Allow Windows Mobile to correctly load dll's
* Use correct scheme for EAPI on Windows and include config.h when necessary
* add -mwin32 to compiler flags when compiling with cegcc
SVN revision: 34024
As agreed on IRC, evas_hash_foreach() now takes const, to make clear
that hash shouldn't be changed. If one wants to change he must do a
cast and return 0. However this will require users to be updated in
applications.
SVN revision: 33708
(like put an event on hold) while it still passes through. object under it
need to be awar of evewnts being on hold as you may want hypbrid behaviors.
SVN revision: 33560
Evas now support objects that do not grab mouse down event (NOGRAB) aside
with the default (AUTOGRAB). API is meant to be extensible.
SVN revision: 30950
in evas_gl_texture.c i have a frag shader, and it tries to use a set of 3
textures that act as the yuv planes, BUT the u and v textures (Utex and Vtex)
are simply getting values from the Ytex - regardless of what i try. grrr.
what's up with that?
SVN revision: 27495
currently does nothing and i have kept it VEEERY generic it's a pointer to a
native surface which can be just about anything - each engine will probably
define a format of its own you need to use VIA the native surface type.
2. add calls to set/get colorspace - moving this down into the engine level.
so far engines do nothing at all with it - but api is there.
3. clean up gl engine a bit - make it more standard.
SVN revision: 27389
and found that reordering the evas list containing the font path list was
actually hurting cache performance. Frequent cache misses occurred in
evas_mempool_free in it's main loop. So removing the list node and re adding it
actually decreased cache performance in some cases. This would also cause memory
allocation bouncing if mempools were not used.
Added evas_list_promote_list to move a list node to the beginning of a list.
Changed reordering lists to use evas_list_promote_list.
SVN revision: 24387
do NOT depend on order operation precedence. it broke scaling. laos other
completely bizarre mmx things were going wrong with mm7 ending up not 0 so
i've had to force it to be 0.
SVN revision: 18811
--enable gl, qtopia and directfb enigines - they are either incomplete, buggy
or simply used so little that its not worth building unless the user REALLY
wants the support.
SVN revision: 18424
parent smart object IF there is a callback set. ie. if there is a key down
callback set and propagae is set to false then the key event will not
prpagate to the parent as long as the child gets the key down events and has
the callback set.
SVN revision: 18123
textblock2 (the old textblock code is still there in textblock_old and the
api is still there until we swtich over).
...
important right nwo is COMMENTs on the api. do u like it. i am tryng to
keepit simple. right nwo i am writing JUSt enought to implement the markup
set api and styles - not a lot for editing and detailed queries yet. i will
work on that once the basic markup parse, style stuff and layout is done.
SVN revision: 16017
2. i reduced list note memory usage by 20% - shoudl work better with malloc
as ti is now a power of 2 as well
3. optimised evas internals to make use of event freezes to make e17'sw menu
popups a LOT snappier
4. fixed using last member of list nodes - bad - shoudl use api as this is
private stuff really
5. added config profile stuff to e17 u can literally maintain multiple
config profiles and choose which one at any time etc.
SVN revision: 15864