parent
69832134e7
commit
744fab5c92
118
INSTALL
118
INSTALL
|
@ -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
116
TODO
|
@ -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
|
||||||
|
|
|
@ -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()
|
||||||
|
|
|
@ -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()
|
||||||
|
|
|
@ -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()
|
||||||
|
|
|
@ -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)
|
||||||
|
|
||||||
|
|
|
@ -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)
|
||||||
|
|
||||||
|
|
|
@ -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)
|
||||||
|
|
2026
include/efl.evas.pxd
2026
include/efl.evas.pxd
File diff suppressed because it is too large
Load Diff
276
include/efl.pxd
276
include/efl.pxd
|
@ -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)
|
||||||
|
|
Loading…
Reference in New Issue