Commit Graph

26 Commits

Author SHA1 Message Date
Davide Andreoli 9a78c4e22d Expose object_from_instance and the inverse to other C code
This create the efl.eo_api.h file that you can copy to your source if you want to use the exported api
2014-08-16 12:33:29 +02:00
Davide Andreoli b3eef73b0e s/2013/2014/g 2014-04-14 22:21:03 +02:00
Kai Huuhko d65101b24b Code cleanup: Unused/misplaced cimports 2014-04-14 00:51:19 +03:00
Kai Huuhko adf70fa26f Remove const hacks
They were a workaround for limitations in Cython <0.18
2014-04-05 03:13:15 +03:00
Davide Andreoli 74244a5ac7 Python-EFL: fix the mess with the lgpl version.
Elm was lgpl3, COPYING was lgpl3, docs say lgpl3. So fix everything to be v3.
Also fix the COPING for Lesser: we must include gpl (in COPYING) AND lgpl (in COPYING.LESSER).
2013-12-07 17:54:58 +01:00
Kai Huuhko f2b22e94bb Eo: Change _register_decorated_callbacks to not use hasattr/getattr
They actually get the value of a property, leading to unexpected
behavior. Iterate the class dict instead.
2013-11-24 17:56:08 +02:00
Kai Huuhko 225f061b05 Optimize exception propagation in several hot/time critical cases.
With "except *" a call is made to PyErr_Occurred on each call of a
function.

Adding a return value where possible and using an appropriate exception
value calls PyErr_Occurred only when that value is returned, ie.
an exception has been raised.

cdef void example_func() except *: <- PyErr_Occurred called on each call
cdef int example_func() except 0: <- PyErr_Occurred called only when
	an exception has been raised (the function thus returns 0)
2013-11-10 08:47:21 +02:00
Kai Huuhko e557b2fcb4 Eo: Add several methods, tests and more debug logging.
Methods:
 - parent_set/get
 - event_freeze(_get)/thaw
 - delete

Functions:
 - event_global_freeze(_get)/thaw

Moved enums to efl.eo.enums.pxd
2013-11-09 09:05:44 +02:00
Kai Huuhko 4771ca5ccb Move logger to its own module. 2013-10-24 22:58:09 +03:00
Kai Huuhko b981ce3840 New feature: Set properties using constructor keyword arguments.
Only applied to Elm Bubble for now as an example.
2013-10-20 14:34:53 +03:00
Kai Huuhko 5f4a46da4b Move common conversion functions from efl.eo to efl.utils.conversions 2013-10-01 04:56:28 +03:00
Kai Huuhko 6587b5be67 Rename efl.pxd to efl.eina.pxd 2013-09-30 07:26:35 +03:00
Kai Huuhko 88db824a77 Change the _METHOD_DEPRECATED function into a decorator.
- move the decorator into a new package/module: utils/deprecated
 - simplify setup.py logic slightly, it still needs work
2013-09-20 12:01:50 +03:00
Davide Andreoli 5913721de9 Python-EFL: implemented decorators for edje.
Decorators implemented in a much more simple and generic
way than before, we can use them in other place too.

3 deco implemented:
@on_signal(emission, source)
@message_handler
@on_text_change

I choosed the 'strange' on_* naming convention to not
clash/confuse with normal callback functions, tell
me if you don't like.
2013-05-14 21:51:29 +02:00
Kai Huuhko 0d63acbee9 Elementary: Implement Accessible objects, with cbs TODO later. 2013-04-22 20:20:21 +03:00
Kai Huuhko f1972f6a6e Place the remnants of _cfruni and _fruni under six feet of soil.
Fix a braino in the py list to string array conversion function.
2013-04-04 11:31:24 +00:00
Kai Huuhko 21ec3e18cf Change the class lookup code to C only using an Eina Hash table. 2013-03-30 15:39:51 +00:00
Kai Huuhko 4d9c1c929a Handle exceptions in eo cdef functions, don't expose _METHOD_DEPRECATED
to Python API needlesly, add some code optimizations and TODOs.
2013-03-28 16:54:51 +00:00
Kai Huuhko 0f3c3999e3 Make the conv functions more robust.
Now we may leak the strings from _(c)fruni which should be looked up
case by case. The positive side is that we no longer point to (possibly)
invalid memory.

Strings used with touni funcs are suspected to leak as well.
2013-03-26 18:53:13 +00:00
Kai Huuhko f6909ac42c Internal function renames:
* _strings_to_python -> eina_list_strings_to_python_list
 * _strings_from_python -> python_list_strings_to_eina_list
Add two functions for string array conversion.
Add two properties to elm.Window.
2013-03-23 06:50:33 +00:00
Davide Andreoli 57cdd0a468 Python-EFL: Cleaned warnings in edje
SVN revision: 84006
2013-02-16 20:20:41 +00:00
Davide Andreoli bfa991ca3f Python-EFL: _fruni() and friends not inlined anymore, this is just to remove compilation warnings. I hope will not make much difference
SVN revision: 84001
2013-02-16 16:41:47 +00:00
Davide Andreoli 2b75edb785 Python-EFL: edje_external now works with py3
SVN revision: 83980
2013-02-16 10:47:27 +00:00
Davide Andreoli 744fab5c92 New line chars from CR/LF to LF
SVN revision: 83924
2013-02-14 20:54:53 +00:00
Davide Andreoli 744f1ee4be todo--
updated copyright in ALL the files



SVN revision: 83873
2013-02-13 19:16:02 +00:00
Davide Andreoli 8b86398860 Put in a first, still wip, version of the python bindings in a merged tree.
This is meant to be the 1.8 version of the wrappers and will include everything
that now is in the python folder.

Atm this include evas, ecore, edje, elementary and emotion (emotion still commented
in the build couse it need some more testing). Eo is used as a base for all the
objects that inherit from it in C, but in real nothing is used from Eo, it is
used more like a container to share code between the libs.

All the docs has been stripped out because we want to use the new sphinx style 
docs that Kay has done in his git repo. (Kay: please wait a little bit to include
it, as working on the libs without docs is much more easy)

The new wrappers include a new container module called efl and thus you can live
with both the old and the new installation. This also means that you need to import
the new modules as:
"from efl import evas" (instead of the old "import evas")
The idea here is that you can make your code works with both version doing
something like:
try:
   import evas
except:
   from efl import evas
...like is done in the gtk bindings

Some stuff has been leaved out on purpose, because was old stuff (like the hacked 
evas rotation stuff) or because was not working as expected (like all the ecore.evas.XXX
modules). See the TODO.txt file for more info. Probably some stuff is out just because I
missed them, let me know if you miss something.

Improvements from the old version:
- Py3 compatible (still some work to be done, but really only TODO, no problems to resolv)
- Should also works on other platforms, like windoz (but not tested)
- Unittests greatly improved, you can also run ALL tests at once
- much more simpler :)


I will contine the works in the next weeks and hope someone will help too.

NOTE: I switched back to setup.py instead of autotools, because that is the right way to
compile python stuff. So to build just use:
 python setup.py install
or
 python3 setup.py install


Enjoy
davemds




SVN revision: 83831
2013-02-11 22:32:50 +00:00