New line chars from CR/LF to LF

SVN revision: 83924
This commit is contained in:
Davide Andreoli 2013-02-14 20:54:53 +00:00
parent 69832134e7
commit 744fab5c92
10 changed files with 2456 additions and 2456 deletions

118
INSTALL
View File

@ -1,59 +1,59 @@
1. REQUIREMENTS: 1. REQUIREMENTS:
1. Python 2.7 or higher (http://www.python.org/) 1. Python 2.7 or higher (http://www.python.org/)
- Tested with Python 2.7 / 3.2 - Tested with Python 2.7 / 3.2
2. Cython 0.17.3 or higher (http://cython.org/) 2. Cython 0.17.3 or higher (http://cython.org/)
- Tested with Cython 0.17.3 - Tested with Cython 0.17.3
3. EFL core library 3. EFL core library
- eo, evas, ecore, edje, elementary and, optionally, emotion - eo, evas, ecore, edje, elementary and, optionally, emotion
4. pkg-config (http://www.freedesktop.org/wiki/Software/pkg-config) 4. pkg-config (http://www.freedesktop.org/wiki/Software/pkg-config)
- Windows executable (and GLib dependency) can be downloaded from - Windows executable (and GLib dependency) can be downloaded from
http://www.gtk.org/download/win32.php http://www.gtk.org/download/win32.php
2. BUILDING EFL 2. BUILDING EFL
Once EFL is built and installed in your desired destination, proceed with Once EFL is built and installed in your desired destination, proceed with
building the wrapper. building the wrapper.
2a. BUILDING WITH GCC/G++ (Linux, OS X, etc.) 2a. BUILDING WITH GCC/G++ (Linux, OS X, etc.)
python setup.py build_ext python setup.py build_ext
2b. BUILDING WITH Visual Studio (Windows) 2b. BUILDING WITH Visual Studio (Windows)
python setup.py build_ext python setup.py build_ext
2c. BUILDING WITH MINGW (Windows) 2c. BUILDING WITH MINGW (Windows)
python setup.py build_ext -c mingw32 python setup.py build_ext -c mingw32
4. INSTALLATION 4. INSTALLATION
4a. For system-wide installation (needs administrator privileges): 4a. For system-wide installation (needs administrator privileges):
python setup.py install python setup.py install
4b. For user installation: 4b. For user installation:
python setup.py install --user python setup.py install --user
4c. To install for python3: 4c. To install for python3:
python3 setup.py install (also cython need to be installed with py3) python3 setup.py install (also cython need to be installed with py3)
5. DEMOS and TESTS 5. DEMOS and TESTS
You can run individual tests or use the 00_run_all_tests.py in each folder or You can run individual tests or use the 00_run_all_tests.py in each folder or
even in the tests/ base dir to run all the tests at once. even in the tests/ base dir to run all the tests at once.
The tests in elementary are not unittest and are meant to be run by the user The tests in elementary are not unittest and are meant to be run by the user
as they usually require some sort of interaction. as they usually require some sort of interaction.

116
TODO
View File

@ -1,58 +1,58 @@
BUGS: BUGS:
* Evas: smart object doesn't work * Evas: smart object doesn't work
* test_map3.py is buggy * test_map3.py is buggy
* test_mapbuf.py line 14 should work * test_mapbuf.py line 14 should work
* test_video.py have problems * test_video.py have problems
* test_naviframe is broken (also in the python-elementary version) * test_naviframe is broken (also in the python-elementary version)
* test_core_evas_canvas_callbacks.py have 2 lines commented out * test_core_evas_canvas_callbacks.py have 2 lines commented out
* test_emotion.py loop on shutdown (parent issue) * test_emotion.py loop on shutdown (parent issue)
* edje.color_class_list() is broken in C (disabled in edje/test_01_basics.py) * edje.color_class_list() is broken in C (disabled in edje/test_01_basics.py)
* edje.text_class_list() is broken in C (disabled out in edje/test_01_basics.py) * edje.text_class_list() is broken in C (disabled out in edje/test_01_basics.py)
TODO: TODO:
* Fix all the compilation warnings! * Fix all the compilation warnings!
* ecore.Poller * ecore.Poller
* ecore.FileMonitor * ecore.FileMonitor
* alert on signal and subprocess module usage (was in python-ecore/ecore/__init__.py) * alert on signal and subprocess module usage (was in python-ecore/ecore/__init__.py)
* Ecore test_08_exe.py : Use unittests * Ecore test_08_exe.py : Use unittests
* evas.SmartObject * evas.SmartObject
* edje.Edit * edje.Edit
* edje: complete the unit tests * edje: complete the unit tests
* elm.Web need a test * elm.Web need a test
* elm.GestureLayer need a test * elm.GestureLayer need a test
* elm.PhotoCam need a test * elm.PhotoCam need a test
* elm.Transit need a test * elm.Transit need a test
* elm.Conformant need a test * elm.Conformant need a test
* include python-ethumb * include python-ethumb
* include python-e_dbus (or make edbus2 ??) * include python-e_dbus (or make edbus2 ??)
TODO FOR PYTHON 3: TODO FOR PYTHON 3:
* ecore.Exe (use new buffer interface) * ecore.Exe (use new buffer interface)
* ecore.FdHandler (use new buffer interface) * ecore.FdHandler (use new buffer interface)
* edje external * edje external
STUFF LEAVED OUT: STUFF LEAVED OUT:
* EcoreEvas * EcoreEvas
* EcoreImf * EcoreImf
* EcoreX * EcoreX
* EcoreWin32 * EcoreWin32
* python-evas/evas/utils.py * python-evas/evas/utils.py
* python-evas/evas/decorators.py * python-evas/evas/decorators.py
* python-evas/evas/debug.py * python-evas/evas/debug.py
* python-evas old hack to rotate objects * python-evas old hack to rotate objects
* edje decorators callbacks * edje decorators callbacks
CHANGES FROM 1.7 to 1.8: CHANGES FROM 1.7 to 1.8:
* added efl container package * added efl container package
* ecore.file.Download => efl.ecore.FileDownload * ecore.file.Download => efl.ecore.FileDownload

View File

@ -1,139 +1,139 @@
# Copyright (C) 2007-2013 various contributors (see AUTHORS) # Copyright (C) 2007-2013 various contributors (see AUTHORS)
# #
# This file is part of Python-EFL. # This file is part of Python-EFL.
# #
# Python-EFL is free software; you can redistribute it and/or # Python-EFL is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public # modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either # License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version. # version 2.1 of the License, or (at your option) any later version.
# #
# Python-EFL is distributed in the hope that it will be useful, # Python-EFL is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details. # Lesser General Public License for more details.
# #
# You should have received a copy of the GNU Lesser General Public License # You should have received a copy of the GNU Lesser General Public License
# along with this Python-EFL. If not, see <http://www.gnu.org/licenses/>. # along with this Python-EFL. If not, see <http://www.gnu.org/licenses/>.
import traceback import traceback
from efl.eo cimport Eo from efl.eo cimport Eo
from efl.eo cimport _fruni, _cfruni from efl.eo cimport _fruni, _cfruni
from efl.eo cimport PY_REFCOUNT from efl.eo cimport PY_REFCOUNT
from cpython cimport Py_INCREF, Py_DECREF from cpython cimport Py_INCREF, Py_DECREF
ECORE_CALLBACK_CANCEL = 0 ECORE_CALLBACK_CANCEL = 0
ECORE_CALLBACK_RENEW = 1 ECORE_CALLBACK_RENEW = 1
# Ecore_Fd_Handler_Flags: # Ecore_Fd_Handler_Flags:
ECORE_FD_READ = 1 ECORE_FD_READ = 1
ECORE_FD_WRITE = 2 ECORE_FD_WRITE = 2
ECORE_FD_ERROR = 4 ECORE_FD_ERROR = 4
ECORE_FD_ALL = 7 ECORE_FD_ALL = 7
# Ecore_Exe_Flags: # Ecore_Exe_Flags:
ECORE_EXE_PIPE_READ = 1 ECORE_EXE_PIPE_READ = 1
ECORE_EXE_PIPE_WRITE = 2 ECORE_EXE_PIPE_WRITE = 2
ECORE_EXE_PIPE_ERROR = 4 ECORE_EXE_PIPE_ERROR = 4
ECORE_EXE_PIPE_READ_LINE_BUFFERED = 8 ECORE_EXE_PIPE_READ_LINE_BUFFERED = 8
ECORE_EXE_PIPE_ERROR_LINE_BUFFERED = 16 ECORE_EXE_PIPE_ERROR_LINE_BUFFERED = 16
ECORE_EXE_PIPE_AUTO = 32 ECORE_EXE_PIPE_AUTO = 32
ECORE_EXE_RESPAWN = 64 ECORE_EXE_RESPAWN = 64
ECORE_EXE_USE_SH = 128 ECORE_EXE_USE_SH = 128
ECORE_EXE_NOT_LEADER = 256 ECORE_EXE_NOT_LEADER = 256
ECORE_EXE_TERM_WITH_PARENT = 512 ECORE_EXE_TERM_WITH_PARENT = 512
ECORE_EXE_PRIORITY_INHERIT = 9999 ECORE_EXE_PRIORITY_INHERIT = 9999
# Ecore_File_Progress_Return: # Ecore_File_Progress_Return:
ECORE_FILE_PROGRESS_CONTINUE = 0 ECORE_FILE_PROGRESS_CONTINUE = 0
ECORE_FILE_PROGRESS_ABORT = 1 ECORE_FILE_PROGRESS_ABORT = 1
cdef Eina_Bool _ecore_task_cb(void *data) with gil: cdef Eina_Bool _ecore_task_cb(void *data) with gil:
cdef Eo obj = <Eo>data cdef Eo obj = <Eo>data
cdef Eina_Bool ret cdef Eina_Bool ret
try: try:
ret = bool(obj._task_exec()) ret = bool(obj._task_exec())
except Exception, e: except Exception, e:
traceback.print_exc() traceback.print_exc()
ret = 0 ret = 0
if not ret: if not ret:
obj.delete() obj.delete()
return ret return ret
cdef int _ecore_events_registered = 0 cdef int _ecore_events_registered = 0
def init(): def init():
global _ecore_events_registered global _ecore_events_registered
r = ecore_init() r = ecore_init()
if r > 0 and _ecore_events_registered == 0: if r > 0 and _ecore_events_registered == 0:
_ecore_events_registered = 1 _ecore_events_registered = 1
global _event_type_mapping global _event_type_mapping
_event_type_mapping = { _event_type_mapping = {
ECORE_EVENT_SIGNAL_USER: EventSignalUser, ECORE_EVENT_SIGNAL_USER: EventSignalUser,
ECORE_EVENT_SIGNAL_HUP: EventSignalHup, ECORE_EVENT_SIGNAL_HUP: EventSignalHup,
ECORE_EVENT_SIGNAL_EXIT: EventSignalExit, ECORE_EVENT_SIGNAL_EXIT: EventSignalExit,
ECORE_EVENT_SIGNAL_POWER: EventSignalPower, ECORE_EVENT_SIGNAL_POWER: EventSignalPower,
ECORE_EVENT_SIGNAL_REALTIME: EventSignalRealtime, ECORE_EVENT_SIGNAL_REALTIME: EventSignalRealtime,
ECORE_EXE_EVENT_ADD: EventExeAdd, ECORE_EXE_EVENT_ADD: EventExeAdd,
ECORE_EXE_EVENT_DEL: EventExeDel, ECORE_EXE_EVENT_DEL: EventExeDel,
ECORE_EXE_EVENT_DATA: EventExeData, ECORE_EXE_EVENT_DATA: EventExeData,
ECORE_EXE_EVENT_ERROR: EventExeData, ECORE_EXE_EVENT_ERROR: EventExeData,
} }
ecore_file_init() ecore_file_init()
return r return r
def shutdown(): def shutdown():
ecore_file_shutdown() ecore_file_shutdown()
return ecore_shutdown() return ecore_shutdown()
def main_loop_quit(): def main_loop_quit():
ecore_main_loop_quit() ecore_main_loop_quit()
def main_loop_begin(): def main_loop_begin():
with nogil: with nogil:
ecore_main_loop_begin() ecore_main_loop_begin()
def main_loop_iterate(): def main_loop_iterate():
with nogil: with nogil:
ecore_main_loop_iterate() ecore_main_loop_iterate()
def main_loop_glib_integrate(): def main_loop_glib_integrate():
if not ecore_main_loop_glib_integrate(): if not ecore_main_loop_glib_integrate():
raise SystemError("failed to integrate GLib main loop into ecore.") raise SystemError("failed to integrate GLib main loop into ecore.")
def time_get(): def time_get():
return ecore_time_get() return ecore_time_get()
def loop_time_get(): def loop_time_get():
return ecore_loop_time_get() return ecore_loop_time_get()
include "efl.ecore_animator.pxi" include "efl.ecore_animator.pxi"
include "efl.ecore_timer.pxi" include "efl.ecore_timer.pxi"
include "efl.ecore_idler.pxi" include "efl.ecore_idler.pxi"
include "efl.ecore_fd_handler.pxi" include "efl.ecore_fd_handler.pxi"
include "efl.ecore_events.pxi" include "efl.ecore_events.pxi"
include "efl.ecore_exe.pxi" include "efl.ecore_exe.pxi"
include "efl.ecore_file_download.pxi" include "efl.ecore_file_download.pxi"
init() init()

View File

@ -1,279 +1,279 @@
# Copyright (C) 2007-2013 various contributors (see AUTHORS) # Copyright (C) 2007-2013 various contributors (see AUTHORS)
# #
# This file is part of Python-EFL. # This file is part of Python-EFL.
# #
# Python-EFL is free software; you can redistribute it and/or # Python-EFL is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public # modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either # License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version. # version 2.1 of the License, or (at your option) any later version.
# #
# Python-EFL is distributed in the hope that it will be useful, # Python-EFL is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details. # Lesser General Public License for more details.
# #
# You should have received a copy of the GNU Lesser General Public License # You should have received a copy of the GNU Lesser General Public License
# along with this Python-EFL. If not, see <http://www.gnu.org/licenses/>. # along with this Python-EFL. If not, see <http://www.gnu.org/licenses/>.
from cpython cimport PyObject, Py_INCREF, Py_DECREF from cpython cimport PyObject, Py_INCREF, Py_DECREF
from efl cimport Eina_Bool, const_Eina_List, eina_list_append from efl cimport Eina_Bool, const_Eina_List, eina_list_append
from efl.c_eo cimport Eo as cEo from efl.c_eo cimport Eo as cEo
from efl.c_eo cimport eo_init, eo_shutdown, eo_del, eo_unref, eo_wref_add, eo_add, Eo_Class from efl.c_eo cimport eo_init, eo_shutdown, eo_del, eo_unref, eo_wref_add, eo_add, Eo_Class
from efl.c_eo cimport eo_do, eo_class_name_get, eo_class_get from efl.c_eo cimport eo_do, eo_class_name_get, eo_class_get
from efl.c_eo cimport eo_base_data_set, eo_base_data_get, eo_base_data_del from efl.c_eo cimport eo_base_data_set, eo_base_data_get, eo_base_data_del
from efl.c_eo cimport eo_event_callback_add, eo_event_callback_del, Eo_Event_Description from efl.c_eo cimport eo_event_callback_add, eo_event_callback_del, Eo_Event_Description
from efl.c_eo cimport eo_parent_get from efl.c_eo cimport eo_parent_get
from efl.c_eo cimport EO_EV_DEL from efl.c_eo cimport EO_EV_DEL
###################################################################### ######################################################################
cdef int PY_REFCOUNT(object o): cdef int PY_REFCOUNT(object o):
cdef PyObject *obj = <PyObject *>o cdef PyObject *obj = <PyObject *>o
return obj.ob_refcnt return obj.ob_refcnt
cdef inline unicode _touni(char* s): cdef inline unicode _touni(char* s):
return s.decode('UTF-8', 'strict') if s else None return s.decode('UTF-8', 'strict') if s else None
cdef inline unicode _ctouni(const_char_ptr s): cdef inline unicode _ctouni(const_char_ptr s):
return s.decode('UTF-8', 'strict') if s else None return s.decode('UTF-8', 'strict') if s else None
cdef inline char *_fruni(s): cdef inline char *_fruni(s):
cdef char *c_string cdef char *c_string
if s is None: if s is None:
return NULL return NULL
if isinstance(s, unicode): if isinstance(s, unicode):
string = s.encode('UTF-8') string = s.encode('UTF-8')
c_string = string c_string = string
elif isinstance(s, str): elif isinstance(s, str):
c_string = s c_string = s
else: else:
raise TypeError("Expected str or unicode object, got %s" % (type(s).__name__)) raise TypeError("Expected str or unicode object, got %s" % (type(s).__name__))
return c_string return c_string
cdef inline const_char_ptr _cfruni(s): cdef inline const_char_ptr _cfruni(s):
cdef const_char_ptr c_string cdef const_char_ptr c_string
if s is None: if s is None:
return NULL return NULL
if isinstance(s, unicode): if isinstance(s, unicode):
string = s.encode('UTF-8') string = s.encode('UTF-8')
c_string = string c_string = string
elif isinstance(s, str): elif isinstance(s, str):
c_string = s c_string = s
else: else:
raise TypeError("Expected str or unicode object, got %s" % (type(s).__name__)) raise TypeError("Expected str or unicode object, got %s" % (type(s).__name__))
return c_string return c_string
cdef _strings_to_python(const_Eina_List *lst): cdef _strings_to_python(const_Eina_List *lst):
cdef const_char_ptr s cdef const_char_ptr s
ret = [] ret = []
while lst: while lst:
s = <const_char_ptr>lst.data s = <const_char_ptr>lst.data
if s != NULL: if s != NULL:
ret.append(_ctouni(s)) ret.append(_ctouni(s))
lst = lst.next lst = lst.next
return ret return ret
cdef Eina_List * _strings_from_python(strings): cdef Eina_List * _strings_from_python(strings):
cdef Eina_List *lst = NULL cdef Eina_List *lst = NULL
for s in strings: for s in strings:
lst = eina_list_append(lst, _cfruni(s)) lst = eina_list_append(lst, _cfruni(s))
return lst return lst
cdef inline _object_list_to_python(const_Eina_List *lst): cdef inline _object_list_to_python(const_Eina_List *lst):
ret = [] ret = []
while lst: while lst:
ret.append(object_from_instance(<cEo *>lst.data)) ret.append(object_from_instance(<cEo *>lst.data))
lst = lst.next lst = lst.next
return ret return ret
###################################################################### ######################################################################
cdef object object_mapping cdef object object_mapping
"""Object mapping is a dictionary into which object type names can be """Object mapping is a dictionary into which object type names can be
registered. These can be used to find a bindings class for an object using registered. These can be used to find a bindings class for an object using
the object_from_instance function.""" the object_from_instance function."""
object_mapping = dict() object_mapping = dict()
cdef _object_mapping_register(char *name, cls): cdef _object_mapping_register(char *name, cls):
# print("REGISTER: %s => %s" % (name, cls)) # print("REGISTER: %s => %s" % (name, cls))
if name in object_mapping: if name in object_mapping:
raise ValueError("object type name '%s' already registered." % name) raise ValueError("object type name '%s' already registered." % name)
object_mapping[name] = cls object_mapping[name] = cls
cdef _object_mapping_unregister(char *name): cdef _object_mapping_unregister(char *name):
object_mapping.pop(name) object_mapping.pop(name)
cdef object object_from_instance(cEo *obj): cdef object object_from_instance(cEo *obj):
""" Create a python object from a C Eo object pointer. """ """ Create a python object from a C Eo object pointer. """
cdef void *data cdef void *data
cdef Eo o cdef Eo o
if obj == NULL: if obj == NULL:
return None return None
eo_do(obj, eo_base_data_get("python-eo", &data)) eo_do(obj, eo_base_data_get("python-eo", &data))
if data != NULL: if data != NULL:
# print("Found: %s" % Eo.__repr__(<Eo>data)) # print("Found: %s" % Eo.__repr__(<Eo>data))
return <Eo>data return <Eo>data
klass_name = eo_class_name_get(eo_class_get(obj)) klass_name = eo_class_name_get(eo_class_get(obj))
if klass_name == NULL: if klass_name == NULL:
raise ValueError("Eo object %#x does not have a type!" % <long>obj) raise ValueError("Eo object %#x does not have a type!" % <long>obj)
# print("Klass name: %s" % klass_name) # print("Klass name: %s" % klass_name)
klass = object_mapping.get(klass_name, None) klass = object_mapping.get(klass_name, None)
if klass == None: if klass == None:
raise ValueError("Eo object %#x of type %s does not have a mapping!" % raise ValueError("Eo object %#x of type %s does not have a mapping!" %
(<long>obj, klass_name)) (<long>obj, klass_name))
# print "MAPPING OBJECT:", klass_name, "=>", klass # print "MAPPING OBJECT:", klass_name, "=>", klass
o = klass.__new__(klass) o = klass.__new__(klass)
o._set_obj(obj) o._set_obj(obj)
return o return o
# #
# TODO extended object mapping (for SmartObject, EdjeExternal, etc) # TODO extended object mapping (for SmartObject, EdjeExternal, etc)
# #
# t = evas_object_type_get(obj) # t = evas_object_type_get(obj)
# if t == NULL: # if t == NULL:
# raise ValueError("Evas object %#x does not have a type!" % # raise ValueError("Evas object %#x does not have a type!" %
# <long>obj) # <long>obj)
# ot = _ctouni(t) # ot = _ctouni(t)
# c = Canvas_from_instance(evas_object_evas_get(obj)) # c = Canvas_from_instance(evas_object_evas_get(obj))
# cls = object_mapping.get(ot, None) # cls = object_mapping.get(ot, None)
# if cls is None: # if cls is None:
# cls_resolver = extended_object_mapping.get(ot, None) # cls_resolver = extended_object_mapping.get(ot, None)
# if cls_resolver is None: # if cls_resolver is None:
# warnings.warn( # warnings.warn(
# ("Evas_Object %#x of type %s has no direct or " # ("Evas_Object %#x of type %s has no direct or "
# "extended mapping! Using generic wrapper.") % # "extended mapping! Using generic wrapper.") %
# (<unsigned long>obj, ot)) # (<unsigned long>obj, ot))
# cls = Object # cls = Object
# else: # else:
# cls = cls_resolver(<unsigned long>obj) # cls = cls_resolver(<unsigned long>obj)
# o = cls.__new__(cls) # o = cls.__new__(cls)
# o._set_evas(c) # o._set_evas(c)
###################################################################### ######################################################################
EO_CALLBACK_STOP = 0 EO_CALLBACK_STOP = 0
EO_CALLBACK_CONTINUE = 1 EO_CALLBACK_CONTINUE = 1
###################################################################### ######################################################################
cdef Eina_Bool _eo_event_del_cb(void *data, cEo *obj, Eo_Event_Description *desc, void *event_info) with gil: cdef Eina_Bool _eo_event_del_cb(void *data, cEo *obj, Eo_Event_Description *desc, void *event_info) with gil:
cdef Eo self = <Eo>data cdef Eo self = <Eo>data
# print("DEL CB: %s" % Eo.__repr__(self)) # print("DEL CB: %s" % Eo.__repr__(self))
eo_do(self.obj, eo_event_callback_del(EO_EV_DEL, _eo_event_del_cb, <void *>self)) eo_do(self.obj, eo_event_callback_del(EO_EV_DEL, _eo_event_del_cb, <void *>self))
eo_do(self.obj, eo_base_data_del("python-eo")) eo_do(self.obj, eo_base_data_del("python-eo"))
self.obj = NULL self.obj = NULL
Py_DECREF(self) Py_DECREF(self)
return EO_CALLBACK_STOP return EO_CALLBACK_STOP
cdef class Eo(object): cdef class Eo(object):
""" """
Base class used by all the Eo object in the bindings, its not meant to be Base class used by all the Eo object in the bindings, its not meant to be
used by users, but only by internal classes. used by users, but only by internal classes.
""" """
# c globals declared in eo.pxd (to make the class available to others) # c globals declared in eo.pxd (to make the class available to others)
def __cinit__(self): def __cinit__(self):
self.obj = NULL self.obj = NULL
self.data = dict() self.data = dict()
def __init__(self): def __init__(self):
# print("Eo __init__()") # print("Eo __init__()")
pass pass
def __dealloc__(self): def __dealloc__(self):
# print("Eo __dealloc__(): %s" % Eo.__repr__(self)) # print("Eo __dealloc__(): %s" % Eo.__repr__(self))
pass pass
def __str__(self): def __str__(self):
return ("Eo(class=%s, obj=%#x, parent=%#x, refcount=%d)") % \ return ("Eo(class=%s, obj=%#x, parent=%#x, refcount=%d)") % \
(self.__class__.__name__, <unsigned long>self.obj, (self.__class__.__name__, <unsigned long>self.obj,
<unsigned long>eo_parent_get(self.obj) if self.obj else 0, <unsigned long>eo_parent_get(self.obj) if self.obj else 0,
PY_REFCOUNT(self)) PY_REFCOUNT(self))
def __repr__(self): def __repr__(self):
return ("Eo(class=%s, obj=%#x, parent=%#x, refcount=%d)") % \ return ("Eo(class=%s, obj=%#x, parent=%#x, refcount=%d)") % \
(self.__class__.__name__, <unsigned long>self.obj, (self.__class__.__name__, <unsigned long>self.obj,
<unsigned long>eo_parent_get(self.obj) if self.obj else 0, <unsigned long>eo_parent_get(self.obj) if self.obj else 0,
PY_REFCOUNT(self)) PY_REFCOUNT(self))
# cdef _add_obj(self, Eo_Class *klass, cEo *parent): # cdef _add_obj(self, Eo_Class *klass, cEo *parent):
# cdef cEo *obj # cdef cEo *obj
# assert self.obj == NULL, "Object must be clean" # assert self.obj == NULL, "Object must be clean"
# obj = eo_add(klass, parent) # obj = eo_add(klass, parent)
# self._set_obj(obj) # self._set_obj(obj)
# eo_unref(obj) # eo_unref(obj)
cdef _set_obj(self, cEo *obj): cdef _set_obj(self, cEo *obj):
assert self.obj == NULL, "Object must be clean" assert self.obj == NULL, "Object must be clean"
assert obj != NULL, "Cannot set a NULL object" assert obj != NULL, "Cannot set a NULL object"
self.obj = obj self.obj = obj
eo_do(self.obj, eo_base_data_set("python-eo", <void *>self, NULL)) eo_do(self.obj, eo_base_data_set("python-eo", <void *>self, NULL))
eo_do(self.obj, eo_event_callback_add(EO_EV_DEL, _eo_event_del_cb, <void *>self)) eo_do(self.obj, eo_event_callback_add(EO_EV_DEL, _eo_event_del_cb, <void *>self))
Py_INCREF(self) Py_INCREF(self)
# cdef _unset_obj(self): # __UNUSED__ # cdef _unset_obj(self): # __UNUSED__
# if self.obj != NULL: # if self.obj != NULL:
# self.obj = NULL # self.obj = NULL
# Py_DECREF(self) ????????????????????' # Py_DECREF(self) ????????????????????'
# TODO evas_object_data_del("python-eo") ?? # TODO evas_object_data_del("python-eo") ??
# def delete(self): # def delete(self):
# """ # """
# Delete object and free it's internal (wrapped) resources. # Delete object and free it's internal (wrapped) resources.
# #
# @note: after this operation the object will be still alive in # @note: after this operation the object will be still alive in
# Python, but it will be shallow and every operation # Python, but it will be shallow and every operation
# will have no effect (and may raise exceptions). # will have no effect (and may raise exceptions).
# @raise ValueError: if object already deleted. # @raise ValueError: if object already deleted.
# """ # """
# if self.obj == NULL: # if self.obj == NULL:
# raise ValueError("Object already deleted") # raise ValueError("Object already deleted")
# print("Eo delete: %s" % Eo.__repr__(self)) # print("Eo delete: %s" % Eo.__repr__(self))
# eo_del(self.obj) # eo_del(self.obj)
def is_deleted(self): def is_deleted(self):
""" """
Check if the Eo object associated with this python object has been Check if the Eo object associated with this python object has been
deleted, thus leaving the object as shallow. deleted, thus leaving the object as shallow.
""" """
return bool(self.obj == NULL) return bool(self.obj == NULL)
def init(): def init():
return eo_init() return eo_init()
def shutdown(): def shutdown():
return eo_shutdown() return eo_shutdown()
init() init()

View File

@ -1,304 +1,304 @@
# Copyright (C) 2007-2013 various contributors (see AUTHORS) # Copyright (C) 2007-2013 various contributors (see AUTHORS)
# #
# This file is part of Python-EFL. # This file is part of Python-EFL.
# #
# Python-EFL is free software; you can redistribute it and/or # Python-EFL is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public # modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either # License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version. # version 2.1 of the License, or (at your option) any later version.
# #
# Python-EFL is distributed in the hope that it will be useful, # Python-EFL is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details. # Lesser General Public License for more details.
# #
# You should have received a copy of the GNU Lesser General Public License # You should have received a copy of the GNU Lesser General Public License
# along with this Python-EFL. If not, see <http://www.gnu.org/licenses/>. # along with this Python-EFL. If not, see <http://www.gnu.org/licenses/>.
import traceback import traceback
from cpython cimport bool from cpython cimport bool
from efl cimport * from efl cimport *
from efl.eo cimport Eo, object_from_instance, _object_mapping_register from efl.eo cimport Eo, object_from_instance, _object_mapping_register
from efl.eo cimport _ctouni, _cfruni, _touni, _fruni from efl.eo cimport _ctouni, _cfruni, _touni, _fruni
EVAS_LAYER_MIN = -32768 EVAS_LAYER_MIN = -32768
EVAS_LAYER_MAX = 32767 EVAS_LAYER_MAX = 32767
EVAS_HINT_EXPAND = 1.0 EVAS_HINT_EXPAND = 1.0
EVAS_HINT_FILL = -1.0 EVAS_HINT_FILL = -1.0
EVAS_CALLBACK_MOUSE_IN = 0 EVAS_CALLBACK_MOUSE_IN = 0
EVAS_CALLBACK_MOUSE_OUT = 1 EVAS_CALLBACK_MOUSE_OUT = 1
EVAS_CALLBACK_MOUSE_DOWN = 2 EVAS_CALLBACK_MOUSE_DOWN = 2
EVAS_CALLBACK_MOUSE_UP = 3 EVAS_CALLBACK_MOUSE_UP = 3
EVAS_CALLBACK_MOUSE_MOVE = 4 EVAS_CALLBACK_MOUSE_MOVE = 4
EVAS_CALLBACK_MOUSE_WHEEL = 5 EVAS_CALLBACK_MOUSE_WHEEL = 5
EVAS_CALLBACK_MULTI_DOWN = 6 EVAS_CALLBACK_MULTI_DOWN = 6
EVAS_CALLBACK_MULTI_UP = 7 EVAS_CALLBACK_MULTI_UP = 7
EVAS_CALLBACK_MULTI_MOVE = 8 EVAS_CALLBACK_MULTI_MOVE = 8
EVAS_CALLBACK_FREE = 9 EVAS_CALLBACK_FREE = 9
EVAS_CALLBACK_KEY_DOWN = 10 EVAS_CALLBACK_KEY_DOWN = 10
EVAS_CALLBACK_KEY_UP = 11 EVAS_CALLBACK_KEY_UP = 11
EVAS_CALLBACK_FOCUS_IN = 12 EVAS_CALLBACK_FOCUS_IN = 12
EVAS_CALLBACK_FOCUS_OUT = 13 EVAS_CALLBACK_FOCUS_OUT = 13
EVAS_CALLBACK_SHOW = 14 EVAS_CALLBACK_SHOW = 14
EVAS_CALLBACK_HIDE = 15 EVAS_CALLBACK_HIDE = 15
EVAS_CALLBACK_MOVE = 16 EVAS_CALLBACK_MOVE = 16
EVAS_CALLBACK_RESIZE = 17 EVAS_CALLBACK_RESIZE = 17
EVAS_CALLBACK_RESTACK = 18 EVAS_CALLBACK_RESTACK = 18
EVAS_CALLBACK_DEL = 19 EVAS_CALLBACK_DEL = 19
EVAS_CALLBACK_HOLD = 20 EVAS_CALLBACK_HOLD = 20
EVAS_CALLBACK_CHANGED_SIZE_HINTS = 21 EVAS_CALLBACK_CHANGED_SIZE_HINTS = 21
EVAS_CALLBACK_IMAGE_PRELOADED = 22 EVAS_CALLBACK_IMAGE_PRELOADED = 22
EVAS_CALLBACK_CANVAS_FOCUS_IN = 23 EVAS_CALLBACK_CANVAS_FOCUS_IN = 23
EVAS_CALLBACK_CANVAS_FOCUS_OUT = 24 EVAS_CALLBACK_CANVAS_FOCUS_OUT = 24
EVAS_CALLBACK_RENDER_FLUSH_PRE = 25 EVAS_CALLBACK_RENDER_FLUSH_PRE = 25
EVAS_CALLBACK_RENDER_FLUSH_POST = 26 EVAS_CALLBACK_RENDER_FLUSH_POST = 26
EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_IN = 27 EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_IN = 27
EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_OUT = 28 EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_OUT = 28
EVAS_CALLBACK_IMAGE_UNLOADED = 29 EVAS_CALLBACK_IMAGE_UNLOADED = 29
EVAS_CALLBACK_RENDER_PRE = 30 EVAS_CALLBACK_RENDER_PRE = 30
EVAS_CALLBACK_RENDER_POST = 31 EVAS_CALLBACK_RENDER_POST = 31
EVAS_CALLBACK_IMAGE_RESIZE = 32 EVAS_CALLBACK_IMAGE_RESIZE = 32
EVAS_CALLBACK_DEVICE_CHANGED = 33 EVAS_CALLBACK_DEVICE_CHANGED = 33
EVAS_CALLBACK_LAST = 34 EVAS_CALLBACK_LAST = 34
EVAS_BUTTON_NONE = 0 EVAS_BUTTON_NONE = 0
EVAS_BUTTON_DOUBLE_CLICK = 1 EVAS_BUTTON_DOUBLE_CLICK = 1
EVAS_BUTTON_TRIPLE_CLICK = 2 EVAS_BUTTON_TRIPLE_CLICK = 2
EVAS_EVENT_FLAG_NONE = 0 EVAS_EVENT_FLAG_NONE = 0
EVAS_EVENT_FLAG_ON_HOLD = 1 << 0 EVAS_EVENT_FLAG_ON_HOLD = 1 << 0
EVAS_RENDER_BLEND = 0 EVAS_RENDER_BLEND = 0
EVAS_RENDER_BLEND_REL = 1 EVAS_RENDER_BLEND_REL = 1
EVAS_RENDER_COPY = 2 EVAS_RENDER_COPY = 2
EVAS_RENDER_COPY_REL = 3 EVAS_RENDER_COPY_REL = 3
EVAS_RENDER_ADD = 4 EVAS_RENDER_ADD = 4
EVAS_RENDER_ADD_REL = 5 EVAS_RENDER_ADD_REL = 5
EVAS_RENDER_SUB = 6 EVAS_RENDER_SUB = 6
EVAS_RENDER_SUB_REL = 7 EVAS_RENDER_SUB_REL = 7
EVAS_RENDER_TINT = 8 EVAS_RENDER_TINT = 8
EVAS_RENDER_TINT_REL = 9 EVAS_RENDER_TINT_REL = 9
EVAS_RENDER_MASK = 10 EVAS_RENDER_MASK = 10
EVAS_RENDER_MUL = 11 EVAS_RENDER_MUL = 11
EVAS_TEXTURE_REFLECT = 0 EVAS_TEXTURE_REFLECT = 0
EVAS_TEXTURE_REPEAT = 1 EVAS_TEXTURE_REPEAT = 1
EVAS_TEXTURE_RESTRICT = 2 EVAS_TEXTURE_RESTRICT = 2
EVAS_TEXTURE_RESTRICT_REFLECT = 3 EVAS_TEXTURE_RESTRICT_REFLECT = 3
EVAS_TEXTURE_RESTRICT_REPEAT = 4 EVAS_TEXTURE_RESTRICT_REPEAT = 4
EVAS_TEXTURE_PAD = 5 EVAS_TEXTURE_PAD = 5
EVAS_ALLOC_ERROR_NONE = 0 EVAS_ALLOC_ERROR_NONE = 0
EVAS_ALLOC_ERROR_FATAL = 1 EVAS_ALLOC_ERROR_FATAL = 1
EVAS_ALLOC_ERROR_RECOVERED = 2 EVAS_ALLOC_ERROR_RECOVERED = 2
EVAS_LOAD_ERROR_NONE = 0 EVAS_LOAD_ERROR_NONE = 0
EVAS_LOAD_ERROR_GENERIC = 1 EVAS_LOAD_ERROR_GENERIC = 1
EVAS_LOAD_ERROR_DOES_NOT_EXIST = 2 EVAS_LOAD_ERROR_DOES_NOT_EXIST = 2
EVAS_LOAD_ERROR_PERMISSION_DENIED = 3 EVAS_LOAD_ERROR_PERMISSION_DENIED = 3
EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED = 4 EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED = 4
EVAS_LOAD_ERROR_CORRUPT_FILE = 5 EVAS_LOAD_ERROR_CORRUPT_FILE = 5
EVAS_LOAD_ERROR_UNKNOWN_FORMAT = 6 EVAS_LOAD_ERROR_UNKNOWN_FORMAT = 6
EVAS_COLOR_SPACE_ARGB = 0 EVAS_COLOR_SPACE_ARGB = 0
EVAS_COLOR_SPACE_AHSV = 1 EVAS_COLOR_SPACE_AHSV = 1
EVAS_COLORSPACE_ARGB8888 = 0 EVAS_COLORSPACE_ARGB8888 = 0
EVAS_COLORSPACE_YCBCR422P601_PL = 1 EVAS_COLORSPACE_YCBCR422P601_PL = 1
EVAS_COLORSPACE_YCBCR422P709_PL = 2 EVAS_COLORSPACE_YCBCR422P709_PL = 2
EVAS_COLORSPACE_RGB565_A5P = 3 EVAS_COLORSPACE_RGB565_A5P = 3
EVAS_PIXEL_FORMAT_NONE = 0 EVAS_PIXEL_FORMAT_NONE = 0
EVAS_PIXEL_FORMAT_ARGB32 = 1 EVAS_PIXEL_FORMAT_ARGB32 = 1
EVAS_PIXEL_FORMAT_YUV420P_601 = 2 EVAS_PIXEL_FORMAT_YUV420P_601 = 2
EVAS_FONT_HINTING_NONE = 0 EVAS_FONT_HINTING_NONE = 0
EVAS_FONT_HINTING_AUTO = 1 EVAS_FONT_HINTING_AUTO = 1
EVAS_FONT_HINTING_BYTECODE = 2 EVAS_FONT_HINTING_BYTECODE = 2
EVAS_TEXT_STYLE_PLAIN = 0 EVAS_TEXT_STYLE_PLAIN = 0
EVAS_TEXT_STYLE_SHADOW = 1 EVAS_TEXT_STYLE_SHADOW = 1
EVAS_TEXT_STYLE_OUTLINE = 2 EVAS_TEXT_STYLE_OUTLINE = 2
EVAS_TEXT_STYLE_SOFT_OUTLINE = 3 EVAS_TEXT_STYLE_SOFT_OUTLINE = 3
EVAS_TEXT_STYLE_GLOW = 4 EVAS_TEXT_STYLE_GLOW = 4
EVAS_TEXT_STYLE_OUTLINE_SHADOW = 5 EVAS_TEXT_STYLE_OUTLINE_SHADOW = 5
EVAS_TEXT_STYLE_FAR_SHADOW = 6 EVAS_TEXT_STYLE_FAR_SHADOW = 6
EVAS_TEXT_STYLE_OUTLINE_SOFT_SHADOW = 7 EVAS_TEXT_STYLE_OUTLINE_SOFT_SHADOW = 7
EVAS_TEXT_STYLE_SOFT_SHADOW = 8 EVAS_TEXT_STYLE_SOFT_SHADOW = 8
EVAS_TEXT_STYLE_FAR_SOFT_SHADOW = 9 EVAS_TEXT_STYLE_FAR_SOFT_SHADOW = 9
EVAS_TEXT_INVALID = -1 EVAS_TEXT_INVALID = -1
EVAS_TEXT_SPECIAL = -2 EVAS_TEXT_SPECIAL = -2
EVAS_TEXTBLOCK_TEXT_RAW = 0 EVAS_TEXTBLOCK_TEXT_RAW = 0
EVAS_TEXTBLOCK_TEXT_PLAIN = 1 EVAS_TEXTBLOCK_TEXT_PLAIN = 1
EVAS_OBJECT_POINTER_MODE_AUTOGRAB = 0 EVAS_OBJECT_POINTER_MODE_AUTOGRAB = 0
EVAS_OBJECT_POINTER_MODE_NOGRAB = 1 EVAS_OBJECT_POINTER_MODE_NOGRAB = 1
EVAS_IMAGE_ROTATE_NONE = 0 EVAS_IMAGE_ROTATE_NONE = 0
EVAS_IMAGE_ROTATE_90 = 1 EVAS_IMAGE_ROTATE_90 = 1
EVAS_IMAGE_ROTATE_180 = 2 EVAS_IMAGE_ROTATE_180 = 2
EVAS_IMAGE_ROTATE_270 = 3 EVAS_IMAGE_ROTATE_270 = 3
EVAS_ASPECT_CONTROL_NONE = 0 EVAS_ASPECT_CONTROL_NONE = 0
EVAS_ASPECT_CONTROL_NEITHER = 1 EVAS_ASPECT_CONTROL_NEITHER = 1
EVAS_ASPECT_CONTROL_HORIZONTAL = 2 EVAS_ASPECT_CONTROL_HORIZONTAL = 2
EVAS_ASPECT_CONTROL_VERTICAL = 3 EVAS_ASPECT_CONTROL_VERTICAL = 3
EVAS_ASPECT_CONTROL_BOTH = 4 EVAS_ASPECT_CONTROL_BOTH = 4
def init(): def init():
# when changing these, also change __init__.py! # when changing these, also change __init__.py!
# if evas_object_event_callbacks_len != EVAS_CALLBACK_LAST: # if evas_object_event_callbacks_len != EVAS_CALLBACK_LAST:
# raise SystemError("Number of object callbacks changed from %d to %d." % # raise SystemError("Number of object callbacks changed from %d to %d." %
# (evas_object_event_callbacks_len, EVAS_CALLBACK_LAST)) # (evas_object_event_callbacks_len, EVAS_CALLBACK_LAST))
# if evas_canvas_event_callbacks_len != EVAS_CALLBACK_LAST: # if evas_canvas_event_callbacks_len != EVAS_CALLBACK_LAST:
# raise SystemError("Number of canvas callbacks changed from %d to %d." % # raise SystemError("Number of canvas callbacks changed from %d to %d." %
# (evas_canvas_event_callbacks_len, EVAS_CALLBACK_LAST)) # (evas_canvas_event_callbacks_len, EVAS_CALLBACK_LAST))
return evas_init() return evas_init()
def shutdown(): def shutdown():
return evas_shutdown() return evas_shutdown()
def render_method_lookup(name): def render_method_lookup(name):
return evas_render_method_lookup(_cfruni(name)) return evas_render_method_lookup(_cfruni(name))
def render_method_list(): def render_method_list():
cdef Eina_List *lst cdef Eina_List *lst
ret = [] ret = []
lst = evas_render_method_list() lst = evas_render_method_list()
while lst != NULL: while lst != NULL:
ret.append(<char*> lst.data) ret.append(<char*> lst.data)
lst = lst.next lst = lst.next
evas_render_method_list_free(lst) evas_render_method_list_free(lst)
return ret return ret
def color_parse(desc, is_premul=None): def color_parse(desc, is_premul=None):
cdef unsigned long c, desc_len cdef unsigned long c, desc_len
cdef int r, g, b, a cdef int r, g, b, a
r = 0 r = 0
g = 0 g = 0
b = 0 b = 0
a = 0 a = 0
if isinstance(desc, str): if isinstance(desc, str):
if not desc or desc[0] != "#": if not desc or desc[0] != "#":
raise ValueError("Invalid color description") raise ValueError("Invalid color description")
desc_len = len(desc) desc_len = len(desc)
c = int(desc[1:], 16) c = int(desc[1:], 16)
r = (c >> 16) & 0xff r = (c >> 16) & 0xff
g = (c >> 8) & 0xff g = (c >> 8) & 0xff
b = c & 0xff b = c & 0xff
if is_premul is None: if is_premul is None:
is_premul = False is_premul = False
if desc_len == 9: if desc_len == 9:
a = (c >> 24) & 0xff a = (c >> 24) & 0xff
elif desc_len == 7: elif desc_len == 7:
a = 255 a = 255
else: else:
raise ValueError("Invalid color description") raise ValueError("Invalid color description")
elif isinstance(desc, (int, long)): elif isinstance(desc, (int, long)):
c = desc c = desc
a = (c >> 24) & 0xff a = (c >> 24) & 0xff
r = (c >> 16) & 0xff r = (c >> 16) & 0xff
g = (c >> 8) & 0xff g = (c >> 8) & 0xff
b = c & 0xff b = c & 0xff
if is_premul is None: if is_premul is None:
is_premul = False is_premul = False
elif isinstance(desc, (list, tuple)): elif isinstance(desc, (list, tuple)):
if is_premul is None: if is_premul is None:
is_premul = True is_premul = True
if len(desc) == 3: if len(desc) == 3:
a = 255 a = 255
r, g, b = desc r, g, b = desc
else: else:
r, g, b, a = desc r, g, b, a = desc
else: else:
raise TypeError("Unsupported type %s for color description." % raise TypeError("Unsupported type %s for color description." %
type(desc)) type(desc))
if is_premul is False: if is_premul is False:
evas_color_argb_premul(a, &r, &g, &b) evas_color_argb_premul(a, &r, &g, &b)
return (r, g, b, a) return (r, g, b, a)
def color_argb_premul(int r, int g, int b, int a): def color_argb_premul(int r, int g, int b, int a):
evas_color_argb_premul(a, &r, &g, &b) evas_color_argb_premul(a, &r, &g, &b)
return (r, g, b, a) return (r, g, b, a)
def color_argb_unpremul(int r, int g, int b, int a): def color_argb_unpremul(int r, int g, int b, int a):
evas_color_argb_unpremul(a, &r, &g, &b) evas_color_argb_unpremul(a, &r, &g, &b)
return (r, g, b, a) return (r, g, b, a)
def color_hsv_to_rgb(float h, float s, float v): def color_hsv_to_rgb(float h, float s, float v):
cdef int r, g, b cdef int r, g, b
evas_color_hsv_to_rgb(h, s, v, &r, &g, &b) evas_color_hsv_to_rgb(h, s, v, &r, &g, &b)
return (r, g, b) return (r, g, b)
def color_rgb_to_hsv(int r, int g, int b): def color_rgb_to_hsv(int r, int g, int b):
cdef float h, s, v cdef float h, s, v
evas_color_rgb_to_hsv(r, g, b, &h, &s, &v) evas_color_rgb_to_hsv(r, g, b, &h, &s, &v)
return (h, s, v) return (h, s, v)
class EvasLoadError(Exception): class EvasLoadError(Exception):
def __init__(self, int code, filename, key): def __init__(self, int code, filename, key):
if code == EVAS_LOAD_ERROR_NONE: if code == EVAS_LOAD_ERROR_NONE:
msg = "No error on load" msg = "No error on load"
elif code == EVAS_LOAD_ERROR_GENERIC: elif code == EVAS_LOAD_ERROR_GENERIC:
msg = "A non-specific error occurred" msg = "A non-specific error occurred"
elif code == EVAS_LOAD_ERROR_DOES_NOT_EXIST: elif code == EVAS_LOAD_ERROR_DOES_NOT_EXIST:
msg = "File (or file path) does not exist" msg = "File (or file path) does not exist"
elif code == EVAS_LOAD_ERROR_PERMISSION_DENIED: elif code == EVAS_LOAD_ERROR_PERMISSION_DENIED:
msg = "Permission deinied to an existing file (or path)" msg = "Permission deinied to an existing file (or path)"
elif code == EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED: elif code == EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED:
msg = "Allocation of resources failure prevented load" msg = "Allocation of resources failure prevented load"
elif code == EVAS_LOAD_ERROR_CORRUPT_FILE: elif code == EVAS_LOAD_ERROR_CORRUPT_FILE:
msg = "File corrupt (but was detected as a known format)" msg = "File corrupt (but was detected as a known format)"
elif code == EVAS_LOAD_ERROR_UNKNOWN_FORMAT: elif code == EVAS_LOAD_ERROR_UNKNOWN_FORMAT:
msg = "File is not a known format" msg = "File is not a known format"
self.code = code self.code = code
self.file = filename self.file = filename
self.key = key self.key = key
Exception.__init__(self, "%s (file=%s, key=%s)" % (msg, filename, key)) Exception.__init__(self, "%s (file=%s, key=%s)" % (msg, filename, key))
include "efl.evas_rect.pxi" include "efl.evas_rect.pxi"
include "efl.evas_map.pxi" include "efl.evas_map.pxi"
include "efl.evas_canvas_callbacks.pxi" include "efl.evas_canvas_callbacks.pxi"
include "efl.evas_canvas.pxi" include "efl.evas_canvas.pxi"
include "efl.evas_object_events.pxi" include "efl.evas_object_events.pxi"
include "efl.evas_object_callbacks.pxi" include "efl.evas_object_callbacks.pxi"
include "efl.evas_object.pxi" include "efl.evas_object.pxi"
include "efl.evas_object_smart.pxi" include "efl.evas_object_smart.pxi"
include "efl.evas_object_image.pxi" include "efl.evas_object_image.pxi"
include "efl.evas_object_line.pxi" include "efl.evas_object_line.pxi"
include "efl.evas_object_rectangle.pxi" include "efl.evas_object_rectangle.pxi"
include "efl.evas_object_polygon.pxi" include "efl.evas_object_polygon.pxi"
include "efl.evas_object_text.pxi" include "efl.evas_object_text.pxi"
include "efl.evas_object_textblock.pxi" include "efl.evas_object_textblock.pxi"
include "efl.evas_object_box.pxi" include "efl.evas_object_box.pxi"
init() init()

View File

@ -1,85 +1,85 @@
# Copyright (C) 2007-2013 various contributors (see AUTHORS) # Copyright (C) 2007-2013 various contributors (see AUTHORS)
# #
# This file is part of Python-EFL. # This file is part of Python-EFL.
# #
# Python-EFL is free software; you can redistribute it and/or # Python-EFL is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public # modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either # License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version. # version 2.1 of the License, or (at your option) any later version.
# #
# Python-EFL is distributed in the hope that it will be useful, # Python-EFL is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details. # Lesser General Public License for more details.
# #
# You should have received a copy of the GNU Lesser General Public License # You should have received a copy of the GNU Lesser General Public License
# along with this Python-EFL. If not, see <http://www.gnu.org/licenses/>. # along with this Python-EFL. If not, see <http://www.gnu.org/licenses/>.
from efl cimport * from efl cimport *
cdef extern from "Eo.h": cdef extern from "Eo.h":
#################################################################### ####################################################################
# Basic Types # Basic Types
# #
#################################################################### ####################################################################
# Enumerations # Enumerations
# #
#################################################################### ####################################################################
# Structures # Structures
# #
ctypedef struct Eo ctypedef struct Eo
ctypedef Eo const_Eo "const Eo" ctypedef Eo const_Eo "const Eo"
ctypedef struct Eo_Class ctypedef struct Eo_Class
ctypedef Eo_Class const_Eo_Class "const Eo_Class" ctypedef Eo_Class const_Eo_Class "const Eo_Class"
ctypedef struct Eo_Event_Description: ctypedef struct Eo_Event_Description:
const_char_ptr name const_char_ptr name
const_char_ptr doc const_char_ptr doc
ctypedef Eo_Event_Description const_Eo_Event_Description "const Eo_Event_Description" ctypedef Eo_Event_Description const_Eo_Event_Description "const Eo_Event_Description"
#################################################################### ####################################################################
# Eo Events # Eo Events
# #
cdef const_Eo_Event_Description *EO_EV_DEL cdef const_Eo_Event_Description *EO_EV_DEL
#################################################################### ####################################################################
# Other typedefs # Other typedefs
# #
ctypedef Eina_Bool (*Eo_Event_Cb)(void *data, Eo *obj, const_Eo_Event_Description *desc, void *event_info) ctypedef Eina_Bool (*Eo_Event_Cb)(void *data, Eo *obj, const_Eo_Event_Description *desc, void *event_info)
ctypedef void (*eo_base_data_free_func)(void *) ctypedef void (*eo_base_data_free_func)(void *)
#################################################################### ####################################################################
# Functions # Functions
# #
int eo_init() int eo_init()
int eo_shutdown() int eo_shutdown()
Eo *eo_add(const_Eo_Class *klass, Eo *parent, ...) Eo *eo_add(const_Eo_Class *klass, Eo *parent, ...)
Eo *eo_ref(const_Eo *obj) Eo *eo_ref(const_Eo *obj)
void eo_unref(const_Eo *obj) void eo_unref(const_Eo *obj)
int eo_ref_get(const_Eo *obj) int eo_ref_get(const_Eo *obj)
void eo_del(const_Eo *obj) void eo_del(const_Eo *obj)
void eo_wref_add(Eo *obj) void eo_wref_add(Eo *obj)
Eina_Bool eo_do(Eo *obj, ...) Eina_Bool eo_do(Eo *obj, ...)
void eo_base_data_set(const_char_ptr key, const_void *data, eo_base_data_free_func free_func) void eo_base_data_set(const_char_ptr key, const_void *data, eo_base_data_free_func free_func)
void eo_base_data_get(const_char_ptr key, void **data) void eo_base_data_get(const_char_ptr key, void **data)
void eo_base_data_del(const_char_ptr key) void eo_base_data_del(const_char_ptr key)
const_Eo_Class *eo_class_get(const_Eo *obj) const_Eo_Class *eo_class_get(const_Eo *obj)
const_char_ptr eo_class_name_get(const_Eo_Class *klass) const_char_ptr eo_class_name_get(const_Eo_Class *klass)
Eo *eo_parent_get(const_Eo *obj) Eo *eo_parent_get(const_Eo *obj)
void eo_event_callback_add(const_Eo_Event_Description *desc, Eo_Event_Cb cb, const_void *data) void eo_event_callback_add(const_Eo_Event_Description *desc, Eo_Event_Cb cb, const_void *data)
void eo_event_callback_del(const_Eo_Event_Description *desc, Eo_Event_Cb cb, const_void *data) void eo_event_callback_del(const_Eo_Event_Description *desc, Eo_Event_Cb cb, const_void *data)

View File

@ -1,336 +1,336 @@
# Copyright (C) 2007-2013 various contributors (see AUTHORS) # Copyright (C) 2007-2013 various contributors (see AUTHORS)
# #
# This file is part of Python-EFL. # This file is part of Python-EFL.
# #
# Python-EFL is free software; you can redistribute it and/or # Python-EFL is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public # modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either # License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version. # version 2.1 of the License, or (at your option) any later version.
# #
# Python-EFL is distributed in the hope that it will be useful, # Python-EFL is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details. # Lesser General Public License for more details.
# #
# You should have received a copy of the GNU Lesser General Public License # You should have received a copy of the GNU Lesser General Public License
# along with this Python-EFL. If not, see <http://www.gnu.org/licenses/>. # along with this Python-EFL. If not, see <http://www.gnu.org/licenses/>.
from efl cimport * from efl cimport *
from efl.c_eo cimport Eo as cEo from efl.c_eo cimport Eo as cEo
from efl.eo cimport Eo from efl.eo cimport Eo
cdef extern from "Ecore.h": cdef extern from "Ecore.h":
#################################################################### ####################################################################
# Basic Types # Basic Types
# #
ctypedef cEo Ecore_Timer ctypedef cEo Ecore_Timer
ctypedef cEo Ecore_Animator ctypedef cEo Ecore_Animator
ctypedef cEo Ecore_Idler ctypedef cEo Ecore_Idler
ctypedef cEo Ecore_Idle_Enterer ctypedef cEo Ecore_Idle_Enterer
ctypedef cEo Ecore_Idle_Exiter ctypedef cEo Ecore_Idle_Exiter
ctypedef struct Ecore_Event_Handler ctypedef struct Ecore_Event_Handler
ctypedef struct Ecore_Event ctypedef struct Ecore_Event
ctypedef struct Ecore_Event_Signal_User: ctypedef struct Ecore_Event_Signal_User:
int number int number
ctypedef struct Ecore_Event_Signal_Exit: ctypedef struct Ecore_Event_Signal_Exit:
unsigned int interrupt unsigned int interrupt
unsigned int quit unsigned int quit
unsigned int terminate unsigned int terminate
ctypedef struct Ecore_Event_Signal_Realtime: ctypedef struct Ecore_Event_Signal_Realtime:
int num int num
ctypedef struct Ecore_Exe_Event_Add: ctypedef struct Ecore_Exe_Event_Add:
Ecore_Exe *exe Ecore_Exe *exe
void *ext_data void *ext_data
ctypedef struct Ecore_Exe_Event_Del: ctypedef struct Ecore_Exe_Event_Del:
int pid int pid
int exit_code int exit_code
Ecore_Exe *exe Ecore_Exe *exe
int exit_signal int exit_signal
unsigned int exited unsigned int exited
unsigned int signalled unsigned int signalled
void *ext_data void *ext_data
ctypedef struct Ecore_Exe_Event_Data: ctypedef struct Ecore_Exe_Event_Data:
Ecore_Exe *exe Ecore_Exe *exe
void *data void *data
int size int size
Ecore_Exe_Event_Data_Line *lines Ecore_Exe_Event_Data_Line *lines
ctypedef struct Ecore_Exe_Event_Data_Line: ctypedef struct Ecore_Exe_Event_Data_Line:
char *line char *line
int size int size
ctypedef struct Ecore_Fd_Handler ctypedef struct Ecore_Fd_Handler
ctypedef struct Ecore_Exe ctypedef struct Ecore_Exe
ctypedef Ecore_Exe const_Ecore_Exe "const Ecore_Exe" ctypedef Ecore_Exe const_Ecore_Exe "const Ecore_Exe"
int ECORE_EVENT_SIGNAL_USER int ECORE_EVENT_SIGNAL_USER
int ECORE_EVENT_SIGNAL_HUP int ECORE_EVENT_SIGNAL_HUP
int ECORE_EVENT_SIGNAL_EXIT int ECORE_EVENT_SIGNAL_EXIT
int ECORE_EVENT_SIGNAL_POWER int ECORE_EVENT_SIGNAL_POWER
int ECORE_EVENT_SIGNAL_REALTIME int ECORE_EVENT_SIGNAL_REALTIME
int ECORE_EXE_EVENT_ADD int ECORE_EXE_EVENT_ADD
int ECORE_EXE_EVENT_DEL int ECORE_EXE_EVENT_DEL
int ECORE_EXE_EVENT_DATA int ECORE_EXE_EVENT_DATA
int ECORE_EXE_EVENT_ERROR int ECORE_EXE_EVENT_ERROR
#################################################################### ####################################################################
# Enumerations # Enumerations
# #
ctypedef enum Ecore_Fd_Handler_Flags: ctypedef enum Ecore_Fd_Handler_Flags:
pass pass
ctypedef enum Ecore_Exe_Flags: ctypedef enum Ecore_Exe_Flags:
pass pass
#################################################################### ####################################################################
# Other typedefs # Other typedefs
# #
ctypedef void (*Ecore_Cb)(void *data) ctypedef void (*Ecore_Cb)(void *data)
ctypedef Eina_Bool (*Ecore_Task_Cb)(void *data) ctypedef Eina_Bool (*Ecore_Task_Cb)(void *data)
ctypedef Eina_Bool (*Ecore_Fd_Cb)(void *data, Ecore_Fd_Handler *fd_handler) ctypedef Eina_Bool (*Ecore_Fd_Cb)(void *data, Ecore_Fd_Handler *fd_handler)
ctypedef void (*Ecore_Fd_Prep_Cb)(void *data, Ecore_Fd_Handler *fd_handler) ctypedef void (*Ecore_Fd_Prep_Cb)(void *data, Ecore_Fd_Handler *fd_handler)
ctypedef Eina_Bool (*Ecore_Event_Handler_Cb)(void *data, int type, void *event) ctypedef Eina_Bool (*Ecore_Event_Handler_Cb)(void *data, int type, void *event)
ctypedef void (*Ecore_End_Cb)(void *user_data, void *func_data) ctypedef void (*Ecore_End_Cb)(void *user_data, void *func_data)
ctypedef void (*Ecore_Exe_Cb)(void *data, const_Ecore_Exe *exe) ctypedef void (*Ecore_Exe_Cb)(void *data, const_Ecore_Exe *exe)
#################################################################### ####################################################################
# Functions # Functions
# #
int ecore_init() int ecore_init()
int ecore_shutdown() int ecore_shutdown()
void ecore_main_loop_iterate() nogil void ecore_main_loop_iterate() nogil
void ecore_main_loop_begin() nogil void ecore_main_loop_begin() nogil
void ecore_main_loop_quit() void ecore_main_loop_quit()
int ecore_main_loop_glib_integrate() int ecore_main_loop_glib_integrate()
double ecore_time_get() double ecore_time_get()
double ecore_loop_time_get() double ecore_loop_time_get()
Ecore_Animator *ecore_animator_add(Ecore_Task_Cb func, void *data) Ecore_Animator *ecore_animator_add(Ecore_Task_Cb func, void *data)
void *ecore_animator_del(Ecore_Animator *animator) void *ecore_animator_del(Ecore_Animator *animator)
void ecore_animator_frametime_set(double frametime) void ecore_animator_frametime_set(double frametime)
double ecore_animator_frametime_get() double ecore_animator_frametime_get()
Ecore_Timer *ecore_timer_add(double t, Ecore_Task_Cb func, void *data) Ecore_Timer *ecore_timer_add(double t, Ecore_Task_Cb func, void *data)
void *ecore_timer_del(Ecore_Timer *timer) void *ecore_timer_del(Ecore_Timer *timer)
void ecore_timer_freeze(Ecore_Timer *timer) void ecore_timer_freeze(Ecore_Timer *timer)
void ecore_timer_thaw(Ecore_Timer *timer) void ecore_timer_thaw(Ecore_Timer *timer)
void ecore_timer_interval_set(Ecore_Timer *timer, double t) void ecore_timer_interval_set(Ecore_Timer *timer, double t)
double ecore_timer_interval_get(Ecore_Timer *timer) double ecore_timer_interval_get(Ecore_Timer *timer)
void ecore_timer_delay(Ecore_Timer *timer, double add) void ecore_timer_delay(Ecore_Timer *timer, double add)
void ecore_timer_reset(Ecore_Timer *timer) void ecore_timer_reset(Ecore_Timer *timer)
double ecore_timer_pending_get(Ecore_Timer *timer) double ecore_timer_pending_get(Ecore_Timer *timer)
double ecore_timer_precision_get() double ecore_timer_precision_get()
double ecore_timer_precision_set(double value) double ecore_timer_precision_set(double value)
Ecore_Idler *ecore_idler_add(Ecore_Task_Cb func, void *data) Ecore_Idler *ecore_idler_add(Ecore_Task_Cb func, void *data)
void *ecore_idler_del(Ecore_Idler *idler) void *ecore_idler_del(Ecore_Idler *idler)
Ecore_Idler *ecore_idle_enterer_add(Ecore_Task_Cb func, void *data) Ecore_Idler *ecore_idle_enterer_add(Ecore_Task_Cb func, void *data)
void *ecore_idle_enterer_del(Ecore_Idler *idler) void *ecore_idle_enterer_del(Ecore_Idler *idler)
Ecore_Idler *ecore_idle_exiter_add(Ecore_Task_Cb func, void *data) Ecore_Idler *ecore_idle_exiter_add(Ecore_Task_Cb func, void *data)
void *ecore_idle_exiter_del(Ecore_Idler *idler) void *ecore_idle_exiter_del(Ecore_Idler *idler)
Ecore_Fd_Handler *ecore_main_fd_handler_add(int fd, Ecore_Fd_Handler_Flags flags, Ecore_Fd_Cb func, void *data, Ecore_Fd_Cb buf_func, void *buf_data) Ecore_Fd_Handler *ecore_main_fd_handler_add(int fd, Ecore_Fd_Handler_Flags flags, Ecore_Fd_Cb func, void *data, Ecore_Fd_Cb buf_func, void *buf_data)
void ecore_main_fd_handler_prepare_callback_set(Ecore_Fd_Handler *fd_handler, Ecore_Fd_Prep_Cb func, void *data) void ecore_main_fd_handler_prepare_callback_set(Ecore_Fd_Handler *fd_handler, Ecore_Fd_Prep_Cb func, void *data)
void *ecore_main_fd_handler_del(Ecore_Fd_Handler *fd_handler) void *ecore_main_fd_handler_del(Ecore_Fd_Handler *fd_handler)
int ecore_main_fd_handler_fd_get(Ecore_Fd_Handler *fd_handler) int ecore_main_fd_handler_fd_get(Ecore_Fd_Handler *fd_handler)
int ecore_main_fd_handler_active_get(Ecore_Fd_Handler *fd_handler, Ecore_Fd_Handler_Flags flags) int ecore_main_fd_handler_active_get(Ecore_Fd_Handler *fd_handler, Ecore_Fd_Handler_Flags flags)
void ecore_main_fd_handler_active_set(Ecore_Fd_Handler *fd_handler, Ecore_Fd_Handler_Flags flags) void ecore_main_fd_handler_active_set(Ecore_Fd_Handler *fd_handler, Ecore_Fd_Handler_Flags flags)
Ecore_Event_Handler *ecore_event_handler_add(int type, Ecore_Event_Handler_Cb func, void *data) Ecore_Event_Handler *ecore_event_handler_add(int type, Ecore_Event_Handler_Cb func, void *data)
void *ecore_event_handler_del(Ecore_Event_Handler *event_handler) void *ecore_event_handler_del(Ecore_Event_Handler *event_handler)
int ecore_event_type_new() int ecore_event_type_new()
Ecore_Event *ecore_event_add(int type, void *ev, Ecore_End_Cb func_free, void *data) Ecore_Event *ecore_event_add(int type, void *ev, Ecore_End_Cb func_free, void *data)
void *ecore_event_del(Ecore_Event *ev) void *ecore_event_del(Ecore_Event *ev)
void ecore_exe_run_priority_set(int pri) void ecore_exe_run_priority_set(int pri)
int ecore_exe_run_priority_get() int ecore_exe_run_priority_get()
Ecore_Exe *ecore_exe_pipe_run(char *exe_cmd, Ecore_Exe_Flags flags, void *data) Ecore_Exe *ecore_exe_pipe_run(char *exe_cmd, Ecore_Exe_Flags flags, void *data)
void ecore_exe_callback_pre_free_set(Ecore_Exe *exe, Ecore_Exe_Cb func) void ecore_exe_callback_pre_free_set(Ecore_Exe *exe, Ecore_Exe_Cb func)
int ecore_exe_send(Ecore_Exe *exe, const_void *data, int size) int ecore_exe_send(Ecore_Exe *exe, const_void *data, int size)
void ecore_exe_close_stdin(Ecore_Exe *exe) void ecore_exe_close_stdin(Ecore_Exe *exe)
void ecore_exe_auto_limits_set(Ecore_Exe *exe, int start_bytes, int end_bytes, int start_lines, int end_lines) void ecore_exe_auto_limits_set(Ecore_Exe *exe, int start_bytes, int end_bytes, int start_lines, int end_lines)
Ecore_Exe_Event_Data *ecore_exe_event_data_get(Ecore_Exe *exe, Ecore_Exe_Flags flags) Ecore_Exe_Event_Data *ecore_exe_event_data_get(Ecore_Exe *exe, Ecore_Exe_Flags flags)
void ecore_exe_event_data_free(Ecore_Exe_Event_Data *data) void ecore_exe_event_data_free(Ecore_Exe_Event_Data *data)
void *ecore_exe_free(Ecore_Exe *exe) void *ecore_exe_free(Ecore_Exe *exe)
int ecore_exe_pid_get(Ecore_Exe *exe) int ecore_exe_pid_get(Ecore_Exe *exe)
void ecore_exe_tag_set(Ecore_Exe *exe, char *tag) void ecore_exe_tag_set(Ecore_Exe *exe, char *tag)
const_char_ptr ecore_exe_tag_get(Ecore_Exe *exe) const_char_ptr ecore_exe_tag_get(Ecore_Exe *exe)
const_char_ptr ecore_exe_cmd_get(Ecore_Exe *exe) const_char_ptr ecore_exe_cmd_get(Ecore_Exe *exe)
void *ecore_exe_data_get(Ecore_Exe *exe) void *ecore_exe_data_get(Ecore_Exe *exe)
Ecore_Exe_Flags ecore_exe_flags_get(Ecore_Exe *exe) Ecore_Exe_Flags ecore_exe_flags_get(Ecore_Exe *exe)
void ecore_exe_pause(Ecore_Exe *exe) void ecore_exe_pause(Ecore_Exe *exe)
void ecore_exe_continue(Ecore_Exe *exe) void ecore_exe_continue(Ecore_Exe *exe)
void ecore_exe_interrupt(Ecore_Exe *exe) void ecore_exe_interrupt(Ecore_Exe *exe)
void ecore_exe_quit(Ecore_Exe *exe) void ecore_exe_quit(Ecore_Exe *exe)
void ecore_exe_terminate(Ecore_Exe *exe) void ecore_exe_terminate(Ecore_Exe *exe)
void ecore_exe_kill(Ecore_Exe *exe) void ecore_exe_kill(Ecore_Exe *exe)
void ecore_exe_signal(Ecore_Exe *exe, int num) void ecore_exe_signal(Ecore_Exe *exe, int num)
void ecore_exe_hup(Ecore_Exe *exe) void ecore_exe_hup(Ecore_Exe *exe)
cdef extern from "Ecore_File.h": cdef extern from "Ecore_File.h":
ctypedef struct Ecore_File_Download_Job ctypedef struct Ecore_File_Download_Job
ctypedef void (*Ecore_File_Download_Completion_Cb)(void *data, const_char_ptr file, int status) ctypedef void (*Ecore_File_Download_Completion_Cb)(void *data, const_char_ptr file, int status)
ctypedef int (*Ecore_File_Download_Progress_Cb)(void *data, const_char_ptr file, long int dltotal, long int dlnow, long int ultotal, long int ulnow) ctypedef int (*Ecore_File_Download_Progress_Cb)(void *data, const_char_ptr file, long int dltotal, long int dlnow, long int ultotal, long int ulnow)
int ecore_file_init() int ecore_file_init()
int ecore_file_shutdown() int ecore_file_shutdown()
void ecore_file_download_abort(Ecore_File_Download_Job *job) void ecore_file_download_abort(Ecore_File_Download_Job *job)
void ecore_file_download_abort_all() void ecore_file_download_abort_all()
Eina_Bool ecore_file_download_protocol_available(const_char_ptr protocol) Eina_Bool ecore_file_download_protocol_available(const_char_ptr protocol)
Eina_Bool ecore_file_download(const_char_ptr url, const_char_ptr dst, Eina_Bool ecore_file_download(const_char_ptr url, const_char_ptr dst,
Ecore_File_Download_Completion_Cb completion_cb, Ecore_File_Download_Completion_Cb completion_cb,
Ecore_File_Download_Progress_Cb progress_cb, Ecore_File_Download_Progress_Cb progress_cb,
void *data, void *data,
Ecore_File_Download_Job **job_ret) Ecore_File_Download_Job **job_ret)
#################################################################### ####################################################################
# Python classes # Python classes
# #
cdef class Timer(Eo): cdef class Timer(Eo):
cdef double _interval cdef double _interval
cdef readonly object func, args, kargs cdef readonly object func, args, kargs
cpdef object _task_exec(self) cpdef object _task_exec(self)
cdef class Animator(Eo): cdef class Animator(Eo):
cdef readonly object func, args, kargs cdef readonly object func, args, kargs
cpdef object _task_exec(self) cpdef object _task_exec(self)
cdef class Idler(Eo): cdef class Idler(Eo):
cdef readonly object func, args, kargs cdef readonly object func, args, kargs
cpdef object _task_exec(self) cpdef object _task_exec(self)
cdef class IdleEnterer(Idler): cdef class IdleEnterer(Idler):
pass pass
cdef class IdleExiter(Idler): cdef class IdleExiter(Idler):
pass pass
cdef class FdHandler(object): cdef class FdHandler(object):
cdef Ecore_Fd_Handler *obj cdef Ecore_Fd_Handler *obj
cdef readonly object func cdef readonly object func
cdef readonly object args cdef readonly object args
cdef readonly object kargs cdef readonly object kargs
cdef readonly object _prepare_callback cdef readonly object _prepare_callback
cdef object _exec(self) cdef object _exec(self)
cdef class Exe(object): cdef class Exe(object):
cdef Ecore_Exe *exe cdef Ecore_Exe *exe
cdef readonly object __data cdef readonly object __data
cdef object __callbacks cdef object __callbacks
cdef int _set_obj(self, char *exe_cmd, int flags) except 0 cdef int _set_obj(self, char *exe_cmd, int flags) except 0
cdef int _unset_obj(self) except 0 cdef int _unset_obj(self) except 0
cdef class ExeEventFilter(object): cdef class ExeEventFilter(object):
cdef Ecore_Exe *exe cdef Ecore_Exe *exe
cdef Ecore_Event_Handler *handler cdef Ecore_Event_Handler *handler
cdef readonly object owner cdef readonly object owner
cdef readonly object event_type cdef readonly object event_type
cdef object callbacks cdef object callbacks
cdef class EventHandler(object): cdef class EventHandler(object):
cdef Ecore_Event_Handler *obj cdef Ecore_Event_Handler *obj
cdef readonly int type cdef readonly int type
cdef readonly object event_cls cdef readonly object event_cls
cdef readonly object func cdef readonly object func
cdef readonly object args cdef readonly object args
cdef readonly object kargs cdef readonly object kargs
cdef int _set_obj(self, Ecore_Event_Handler *obj) except 0 cdef int _set_obj(self, Ecore_Event_Handler *obj) except 0
cdef int _unset_obj(self) except 0 cdef int _unset_obj(self) except 0
cdef Eina_Bool _exec(self, void *event) except 2 cdef Eina_Bool _exec(self, void *event) except 2
cdef class Event(object): cdef class Event(object):
cdef int _set_obj(self, void *obj) except 0 cdef int _set_obj(self, void *obj) except 0
cdef class EventSignalUser(Event): cdef class EventSignalUser(Event):
cdef readonly object number cdef readonly object number
cdef class EventSignalHup(Event): cdef class EventSignalHup(Event):
pass pass
cdef class EventSignalExit(Event): cdef class EventSignalExit(Event):
cdef readonly object interrupt cdef readonly object interrupt
cdef readonly object quit cdef readonly object quit
cdef readonly object terminate cdef readonly object terminate
cdef class EventSignalPower(Event): cdef class EventSignalPower(Event):
pass pass
cdef class CustomEvent(Event): cdef class CustomEvent(Event):
cdef readonly object obj cdef readonly object obj
cdef class QueuedEvent: cdef class QueuedEvent:
cdef Ecore_Event *obj cdef Ecore_Event *obj
cdef readonly object args cdef readonly object args
cdef int _set_obj(self, Ecore_Event *ev) except 0 cdef int _set_obj(self, Ecore_Event *ev) except 0
cdef int _unset_obj(self) except 0 cdef int _unset_obj(self) except 0
cdef class EventExeAdd(Event): cdef class EventExeAdd(Event):
cdef readonly object exe cdef readonly object exe
cdef class EventExeDel(Event): cdef class EventExeDel(Event):
cdef readonly object exe cdef readonly object exe
cdef readonly object pid cdef readonly object pid
cdef readonly object exit_code cdef readonly object exit_code
cdef readonly object exit_signal cdef readonly object exit_signal
cdef readonly object exited cdef readonly object exited
cdef readonly object signalled cdef readonly object signalled
cdef class EventExeData(Event): cdef class EventExeData(Event):
cdef readonly object exe cdef readonly object exe
cdef readonly object data cdef readonly object data
cdef readonly object size cdef readonly object size
cdef readonly object lines cdef readonly object lines
cdef class FileDownload: cdef class FileDownload:
cdef Ecore_File_Download_Job *job cdef Ecore_File_Download_Job *job
cdef readonly object completion_cb cdef readonly object completion_cb
cdef readonly object progress_cb cdef readonly object progress_cb
cdef readonly object args cdef readonly object args
cdef readonly object kargs cdef readonly object kargs
cdef object _exec_completion(self, const_char_ptr file, int status) cdef object _exec_completion(self, const_char_ptr file, int status)
cdef object _exec_progress(self, const_char_ptr file, cdef object _exec_progress(self, const_char_ptr file,
long int dltotal, long int dlnow, long int dltotal, long int dlnow,
long int ultotal, long int ulnow) long int ultotal, long int ulnow)

View File

@ -1,45 +1,45 @@
# Copyright (C) 2007-2013 various contributors (see AUTHORS) # Copyright (C) 2007-2013 various contributors (see AUTHORS)
# #
# This file is part of Python-EFL. # This file is part of Python-EFL.
# #
# Python-EFL is free software; you can redistribute it and/or # Python-EFL is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public # modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either # License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version. # version 2.1 of the License, or (at your option) any later version.
# #
# Python-EFL is distributed in the hope that it will be useful, # Python-EFL is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details. # Lesser General Public License for more details.
# #
# You should have received a copy of the GNU Lesser General Public License # You should have received a copy of the GNU Lesser General Public License
# along with this Python-EFL. If not, see <http://www.gnu.org/licenses/>. # along with this Python-EFL. If not, see <http://www.gnu.org/licenses/>.
from efl.c_eo cimport Eo as cEo from efl.c_eo cimport Eo as cEo
from efl.c_eo cimport Eo_Class from efl.c_eo cimport Eo_Class
from efl cimport const_char_ptr, Eina_List, const_Eina_List from efl cimport const_char_ptr, Eina_List, const_Eina_List
cdef class Eo(object): cdef class Eo(object):
cdef cEo *obj cdef cEo *obj
cdef readonly data cdef readonly data
cdef _set_obj(self, cEo *obj) cdef _set_obj(self, cEo *obj)
# cdef _unset_obj(self) # cdef _unset_obj(self)
# cdef _add_obj(self, Eo_Class *klass, cEo *parent) # cdef _add_obj(self, Eo_Class *klass, cEo *parent)
cdef int PY_REFCOUNT(object o) cdef int PY_REFCOUNT(object o)
cdef object object_from_instance(cEo *obj) cdef object object_from_instance(cEo *obj)
cdef _object_mapping_register(char *name, klass) cdef _object_mapping_register(char *name, klass)
cdef _object_mapping_unregister(char*name) cdef _object_mapping_unregister(char*name)
cdef inline unicode _touni(char* s) cdef inline unicode _touni(char* s)
cdef inline char* _fruni(s) cdef inline char* _fruni(s)
cdef inline unicode _ctouni(const_char_ptr s) cdef inline unicode _ctouni(const_char_ptr s)
cdef inline const_char_ptr _cfruni(s) cdef inline const_char_ptr _cfruni(s)
cdef inline _strings_to_python(const_Eina_List *lst) cdef inline _strings_to_python(const_Eina_List *lst)
cdef inline Eina_List * _strings_from_python(strings) cdef inline Eina_List * _strings_from_python(strings)
cdef inline _object_list_to_python(const_Eina_List *lst) cdef inline _object_list_to_python(const_Eina_List *lst)

File diff suppressed because it is too large Load Diff

View File

@ -1,138 +1,138 @@
# Copyright (C) 2007-2013 various contributors (see AUTHORS) # Copyright (C) 2007-2013 various contributors (see AUTHORS)
# #
# This file is part of Python-EFL. # This file is part of Python-EFL.
# #
# Python-EFL is free software; you can redistribute it and/or # Python-EFL is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public # modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either # License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version. # version 2.1 of the License, or (at your option) any later version.
# #
# Python-EFL is distributed in the hope that it will be useful, # Python-EFL is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details. # Lesser General Public License for more details.
# #
# You should have received a copy of the GNU Lesser General Public License # You should have received a copy of the GNU Lesser General Public License
# along with this Python-EFL. If not, see <http://www.gnu.org/licenses/>. # along with this Python-EFL. If not, see <http://www.gnu.org/licenses/>.
cdef extern from *: cdef extern from *:
ctypedef char* const_char_ptr "const char *" ctypedef char* const_char_ptr "const char *"
ctypedef void const_void "const void" ctypedef void const_void "const void"
cdef extern from "stdlib.h": cdef extern from "stdlib.h":
void *malloc(long) void *malloc(long)
void free(void*) void free(void*)
# cdef extern from "stdio.h": # cdef extern from "stdio.h":
# int printf(char*) # int printf(char*)
cdef extern from "string.h": cdef extern from "string.h":
void *memcpy(void *dst, void *src, int n) void *memcpy(void *dst, void *src, int n)
char *strdup(char *str) char *strdup(char *str)
cdef extern from "time.h": cdef extern from "time.h":
struct tm: struct tm:
int tm_sec int tm_sec
int tm_min int tm_min
int tm_hour int tm_hour
int tm_mday int tm_mday
int tm_mon int tm_mon
int tm_year int tm_year
int tm_wday int tm_wday
int tm_yday int tm_yday
int tm_isdst int tm_isdst
long int tm_gmtoff long int tm_gmtoff
const_char_ptr tm_zone const_char_ptr tm_zone
cdef extern from "Eina.h": cdef extern from "Eina.h":
#################################################################### ####################################################################
# Enumerations # Enumerations
# #
#################################################################### ####################################################################
# Basic Types # Basic Types
# #
ctypedef unsigned char Eina_Bool ctypedef unsigned char Eina_Bool
ctypedef int Eina_Error ctypedef int Eina_Error
#################################################################### ####################################################################
# Structures # Structures
# #
ctypedef struct Eina_Rectangle: ctypedef struct Eina_Rectangle:
int x int x
int y int y
int w int w
int h int h
ctypedef struct Eina_List: ctypedef struct Eina_List:
void *data void *data
Eina_List *next Eina_List *next
Eina_List *prev Eina_List *prev
void *accounting void *accounting
ctypedef Eina_List const_Eina_List "const Eina_List" ctypedef Eina_List const_Eina_List "const Eina_List"
ctypedef struct Eina_Hash_Tuple: ctypedef struct Eina_Hash_Tuple:
void *key void *key
void *data void *data
unsigned int key_length unsigned int key_length
ctypedef Eina_Hash_Tuple const_Eina_Hash_Tuple "const Eina_Hash_Tuple" ctypedef Eina_Hash_Tuple const_Eina_Hash_Tuple "const Eina_Hash_Tuple"
ctypedef struct Eina_Iterator: ctypedef struct Eina_Iterator:
Eina_Bool (*next)(Eina_Iterator *it, void **data) Eina_Bool (*next)(Eina_Iterator *it, void **data)
void *(*get_container)(Eina_Iterator *it) void *(*get_container)(Eina_Iterator *it)
void (*free)(Eina_Iterator *it) void (*free)(Eina_Iterator *it)
#################################################################### ####################################################################
# Other typedefs # Other typedefs
# #
ctypedef int (*Eina_Compare_Cb)(const_void *data1, const_void *data2) ctypedef int (*Eina_Compare_Cb)(const_void *data1, const_void *data2)
#################################################################### ####################################################################
# Functions # Functions
# #
Eina_Error eina_error_get() Eina_Error eina_error_get()
void eina_error_set(Eina_Error err) void eina_error_set(Eina_Error err)
const_char_ptr eina_error_msg_get(Eina_Error error) const_char_ptr eina_error_msg_get(Eina_Error error)
Eina_Bool eina_iterator_next(Eina_Iterator *iterator, void **data) Eina_Bool eina_iterator_next(Eina_Iterator *iterator, void **data)
void eina_iterator_free(Eina_Iterator *iterator) void eina_iterator_free(Eina_Iterator *iterator)
Eina_List *eina_list_free(Eina_List *list) Eina_List *eina_list_free(Eina_List *list)
Eina_List *eina_list_append(Eina_List *list, void *data) Eina_List *eina_list_append(Eina_List *list, void *data)
Eina_List *eina_list_prepend(Eina_List *list, void *data) Eina_List *eina_list_prepend(Eina_List *list, void *data)
Eina_List *eina_list_append(Eina_List *list, void *data) Eina_List *eina_list_append(Eina_List *list, void *data)
Eina_List *eina_list_prepend(Eina_List *list, void *data) Eina_List *eina_list_prepend(Eina_List *list, void *data)
Eina_List *eina_list_append_relative(Eina_List *list, void *data, void *relative) Eina_List *eina_list_append_relative(Eina_List *list, void *data, void *relative)
Eina_List *eina_list_append_relative_list(Eina_List *list, void *data, Eina_List *relative) Eina_List *eina_list_append_relative_list(Eina_List *list, void *data, Eina_List *relative)
Eina_List *eina_list_prepend_relative(Eina_List *list, void *data, void *relative) Eina_List *eina_list_prepend_relative(Eina_List *list, void *data, void *relative)
Eina_List *eina_list_prepend_relative_list(Eina_List *list, void *data, Eina_List *relative) Eina_List *eina_list_prepend_relative_list(Eina_List *list, void *data, Eina_List *relative)
Eina_List *eina_list_sorted_insert(Eina_List *list, Eina_Compare_Cb func, void *data) Eina_List *eina_list_sorted_insert(Eina_List *list, Eina_Compare_Cb func, void *data)
Eina_List *eina_list_remove(Eina_List *list, void *data) Eina_List *eina_list_remove(Eina_List *list, void *data)
Eina_List *eina_list_remove_list(Eina_List *list, Eina_List *remove_list) Eina_List *eina_list_remove_list(Eina_List *list, Eina_List *remove_list)
Eina_List *eina_list_promote_list(Eina_List *list, Eina_List *move_list) Eina_List *eina_list_promote_list(Eina_List *list, Eina_List *move_list)
Eina_List *eina_list_demote_list(Eina_List *list, Eina_List *move_list) Eina_List *eina_list_demote_list(Eina_List *list, Eina_List *move_list)
void *eina_list_data_find(Eina_List *list, void *data) void *eina_list_data_find(Eina_List *list, void *data)
Eina_List *eina_list_data_find_list(Eina_List *list, void *data) Eina_List *eina_list_data_find_list(Eina_List *list, void *data)
Eina_List *eina_list_free(Eina_List *list) Eina_List *eina_list_free(Eina_List *list)
void *eina_list_nth(Eina_List *list, unsigned int n) void *eina_list_nth(Eina_List *list, unsigned int n)
Eina_List *eina_list_nth_list(Eina_List *list, unsigned int n) Eina_List *eina_list_nth_list(Eina_List *list, unsigned int n)
Eina_List *eina_list_reverse(Eina_List *list) Eina_List *eina_list_reverse(Eina_List *list)
Eina_List *eina_list_reverse_clone(Eina_List *list) Eina_List *eina_list_reverse_clone(Eina_List *list)
Eina_List *eina_list_clone(Eina_List *list) Eina_List *eina_list_clone(Eina_List *list)
Eina_List *eina_list_sort(Eina_List *list, unsigned int size, Eina_Compare_Cb func) Eina_List *eina_list_sort(Eina_List *list, unsigned int size, Eina_Compare_Cb func)
Eina_List *eina_list_merge(Eina_List *left, Eina_List *right) Eina_List *eina_list_merge(Eina_List *left, Eina_List *right)
Eina_List *eina_list_sorted_merge(Eina_List *left, Eina_List *right, Eina_Compare_Cb func) Eina_List *eina_list_sorted_merge(Eina_List *left, Eina_List *right, Eina_Compare_Cb func)
Eina_List *eina_list_split_list(Eina_List *list, Eina_List *relative, Eina_List **right) Eina_List *eina_list_split_list(Eina_List *list, Eina_List *relative, Eina_List **right)
Eina_List *eina_list_search_sorted_near_list(Eina_List *list, Eina_Compare_Cb func, void *data, int *result_cmp) Eina_List *eina_list_search_sorted_near_list(Eina_List *list, Eina_Compare_Cb func, void *data, int *result_cmp)
Eina_List *eina_list_search_sorted_list(Eina_List *list, Eina_Compare_Cb func, void *data) Eina_List *eina_list_search_sorted_list(Eina_List *list, Eina_Compare_Cb func, void *data)
void *eina_list_search_sorted(Eina_List *list, Eina_Compare_Cb func, void *data) void *eina_list_search_sorted(Eina_List *list, Eina_Compare_Cb func, void *data)
Eina_List *eina_list_search_unsorted_list(Eina_List *list, Eina_Compare_Cb func, void *data) Eina_List *eina_list_search_unsorted_list(Eina_List *list, Eina_Compare_Cb func, void *data)
void *eina_list_search_unsorted(Eina_List *list, Eina_Compare_Cb func, void *data) void *eina_list_search_unsorted(Eina_List *list, Eina_Compare_Cb func, void *data)
Eina_List *eina_list_last(Eina_List *list) Eina_List *eina_list_last(Eina_List *list)
Eina_List *eina_list_next(Eina_List *list) Eina_List *eina_list_next(Eina_List *list)
Eina_List *eina_list_prev(Eina_List *list) Eina_List *eina_list_prev(Eina_List *list)
void *eina_list_data_get(Eina_List *list) void *eina_list_data_get(Eina_List *list)
unsigned int eina_list_count(Eina_List *list) unsigned int eina_list_count(Eina_List *list)