This functions let you check if a file could be opened by
Evas_Object_Image. It is threadsafe, and you should use it
from another thread as often as possible :-)
SVN revision: 59872
This is very useful in edje_entry that keeps a list of anchors.
Currently only "a" and "item" are supported, and unless something
drastic will happen, it will stay this way.
SVN revision: 59325
More work, proudly supported by Samsung. Filters!
So now you can apply a whole host of cheesy visual effects to objects at
runtime. This is the first commit, there are a couple of more to come as I
tweak the filters, and fix blur with GL[1].
Please direct bugs to me nash@nash.id.au.
[1] You'd think shaders would be good at this.. but no, generic blur and GL
are like trying to get an apple product to work with Linux.
SVN revision: 58726
Source set of 'NULL' is the equivelent of source_unset (actually source_unset
is an alias to source_set with a second NULL arg.
And I still want to know why these are in my tree, but not upstream.
SVN revision: 56881
Add missing evas_object_image_source functions.
(was giving nasty 'implicit declarations' prior to this change)
Add UNUSED to evas_common_map_rgba for npoints variable
(wasn't used in that function)
Fixed a little formatting in evas_object_main.c
Add UNUSED to the eng_image_map_draw function of the gl_x11 engine.
(npoints variable not used there)
Fixed a little formatting in gl_x11 engine.
SVN revision: 56869
Proxy objects allow you to use another image as the source of an image.
Essentially allowing the same object to be rendered multiple times. One
object (the source) is the original, each additional 'copy' is an image with
evas_object_image_source_set.
This is complete.
Also add partially working arbitrary maps, and arbitrary clipping.
Unfortunately both have some issues yet to be resolved (waiting on the next
feature to get merged together).
SVN revision: 56777
for client apps that tried to be efficient with preloads to adapt
when the preloaded data is taken away from them. this allows it.
missing callback api bug fix.
SVN revision: 55745
Passing null to the second parameter is the only way to unset
the file, so it should not have EINA_ARG_NONNULL to the file parameter
SVN revision: 54998
really - i prefer it and if we hit the 2gb limit of a signed int for
bytes added to a textblock... thats the day we will need evas 2 :)
SVN revision: 52576
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