diff --git a/INSTALL b/INSTALL index e9eb8bb..c5c6a25 100644 --- a/INSTALL +++ b/INSTALL @@ -1,59 +1,59 @@ - -1. REQUIREMENTS: - -1. Python 2.7 or higher (http://www.python.org/) - - Tested with Python 2.7 / 3.2 -2. Cython 0.17.3 or higher (http://cython.org/) - - Tested with Cython 0.17.3 -3. EFL core library - - eo, evas, ecore, edje, elementary and, optionally, emotion -4. pkg-config (http://www.freedesktop.org/wiki/Software/pkg-config) - - Windows executable (and GLib dependency) can be downloaded from - http://www.gtk.org/download/win32.php - - - -2. BUILDING EFL - - Once EFL is built and installed in your desired destination, proceed with - building the wrapper. - - - -2a. BUILDING WITH GCC/G++ (Linux, OS X, etc.) - - python setup.py build_ext - -2b. BUILDING WITH Visual Studio (Windows) - - python setup.py build_ext - -2c. BUILDING WITH MINGW (Windows) - - python setup.py build_ext -c mingw32 - - - -4. INSTALLATION - -4a. For system-wide installation (needs administrator privileges): - - python setup.py install - -4b. For user installation: - - python setup.py install --user - -4c. To install for python3: - - python3 setup.py install (also cython need to be installed with py3) - - - -5. DEMOS and TESTS - - 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. - - The tests in elementary are not unittest and are meant to be run by the user - as they usually require some sort of interaction. + +1. REQUIREMENTS: + +1. Python 2.7 or higher (http://www.python.org/) + - Tested with Python 2.7 / 3.2 +2. Cython 0.17.3 or higher (http://cython.org/) + - Tested with Cython 0.17.3 +3. EFL core library + - eo, evas, ecore, edje, elementary and, optionally, emotion +4. pkg-config (http://www.freedesktop.org/wiki/Software/pkg-config) + - Windows executable (and GLib dependency) can be downloaded from + http://www.gtk.org/download/win32.php + + + +2. BUILDING EFL + + Once EFL is built and installed in your desired destination, proceed with + building the wrapper. + + + +2a. BUILDING WITH GCC/G++ (Linux, OS X, etc.) + + python setup.py build_ext + +2b. BUILDING WITH Visual Studio (Windows) + + python setup.py build_ext + +2c. BUILDING WITH MINGW (Windows) + + python setup.py build_ext -c mingw32 + + + +4. INSTALLATION + +4a. For system-wide installation (needs administrator privileges): + + python setup.py install + +4b. For user installation: + + python setup.py install --user + +4c. To install for python3: + + python3 setup.py install (also cython need to be installed with py3) + + + +5. DEMOS and TESTS + + 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. + + The tests in elementary are not unittest and are meant to be run by the user + as they usually require some sort of interaction. diff --git a/TODO b/TODO index 66a44a2..7b571df 100644 --- a/TODO +++ b/TODO @@ -1,58 +1,58 @@ - -BUGS: - -* Evas: smart object doesn't work -* test_map3.py is buggy -* test_mapbuf.py line 14 should work -* test_video.py have problems -* test_naviframe is broken (also in the python-elementary version) -* test_core_evas_canvas_callbacks.py have 2 lines commented out -* test_emotion.py loop on shutdown (parent issue) - -* 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) - - -TODO: - -* Fix all the compilation warnings! -* ecore.Poller -* ecore.FileMonitor -* alert on signal and subprocess module usage (was in python-ecore/ecore/__init__.py) -* Ecore test_08_exe.py : Use unittests -* evas.SmartObject -* edje.Edit -* edje: complete the unit tests -* elm.Web need a test -* elm.GestureLayer need a test -* elm.PhotoCam need a test -* elm.Transit need a test -* elm.Conformant need a test -* include python-ethumb -* include python-e_dbus (or make edbus2 ??) - - -TODO FOR PYTHON 3: - -* ecore.Exe (use new buffer interface) -* ecore.FdHandler (use new buffer interface) -* edje external - - -STUFF LEAVED OUT: - -* EcoreEvas -* EcoreImf -* EcoreX -* EcoreWin32 -* python-evas/evas/utils.py -* python-evas/evas/decorators.py -* python-evas/evas/debug.py -* python-evas old hack to rotate objects -* edje decorators callbacks - - -CHANGES FROM 1.7 to 1.8: - -* added efl container package -* ecore.file.Download => efl.ecore.FileDownload + +BUGS: + +* Evas: smart object doesn't work +* test_map3.py is buggy +* test_mapbuf.py line 14 should work +* test_video.py have problems +* test_naviframe is broken (also in the python-elementary version) +* test_core_evas_canvas_callbacks.py have 2 lines commented out +* test_emotion.py loop on shutdown (parent issue) + +* 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) + + +TODO: + +* Fix all the compilation warnings! +* ecore.Poller +* ecore.FileMonitor +* alert on signal and subprocess module usage (was in python-ecore/ecore/__init__.py) +* Ecore test_08_exe.py : Use unittests +* evas.SmartObject +* edje.Edit +* edje: complete the unit tests +* elm.Web need a test +* elm.GestureLayer need a test +* elm.PhotoCam need a test +* elm.Transit need a test +* elm.Conformant need a test +* include python-ethumb +* include python-e_dbus (or make edbus2 ??) + + +TODO FOR PYTHON 3: + +* ecore.Exe (use new buffer interface) +* ecore.FdHandler (use new buffer interface) +* edje external + + +STUFF LEAVED OUT: + +* EcoreEvas +* EcoreImf +* EcoreX +* EcoreWin32 +* python-evas/evas/utils.py +* python-evas/evas/decorators.py +* python-evas/evas/debug.py +* python-evas old hack to rotate objects +* edje decorators callbacks + + +CHANGES FROM 1.7 to 1.8: + +* added efl container package +* ecore.file.Download => efl.ecore.FileDownload diff --git a/efl/ecore/efl.ecore.pyx b/efl/ecore/efl.ecore.pyx index 3e75e77..7198f0b 100644 --- a/efl/ecore/efl.ecore.pyx +++ b/efl/ecore/efl.ecore.pyx @@ -1,139 +1,139 @@ -# Copyright (C) 2007-2013 various contributors (see AUTHORS) -# -# This file is part of Python-EFL. -# -# Python-EFL is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# 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, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this Python-EFL. If not, see . - -import traceback -from efl.eo cimport Eo -from efl.eo cimport _fruni, _cfruni -from efl.eo cimport PY_REFCOUNT -from cpython cimport Py_INCREF, Py_DECREF - - -ECORE_CALLBACK_CANCEL = 0 -ECORE_CALLBACK_RENEW = 1 - -# Ecore_Fd_Handler_Flags: -ECORE_FD_READ = 1 -ECORE_FD_WRITE = 2 -ECORE_FD_ERROR = 4 -ECORE_FD_ALL = 7 - - -# Ecore_Exe_Flags: -ECORE_EXE_PIPE_READ = 1 -ECORE_EXE_PIPE_WRITE = 2 -ECORE_EXE_PIPE_ERROR = 4 -ECORE_EXE_PIPE_READ_LINE_BUFFERED = 8 -ECORE_EXE_PIPE_ERROR_LINE_BUFFERED = 16 -ECORE_EXE_PIPE_AUTO = 32 -ECORE_EXE_RESPAWN = 64 -ECORE_EXE_USE_SH = 128 -ECORE_EXE_NOT_LEADER = 256 -ECORE_EXE_TERM_WITH_PARENT = 512 - -ECORE_EXE_PRIORITY_INHERIT = 9999 - - -# Ecore_File_Progress_Return: -ECORE_FILE_PROGRESS_CONTINUE = 0 -ECORE_FILE_PROGRESS_ABORT = 1 - - -cdef Eina_Bool _ecore_task_cb(void *data) with gil: - cdef Eo obj = data - cdef Eina_Bool ret - - try: - ret = bool(obj._task_exec()) - except Exception, e: - traceback.print_exc() - ret = 0 - - if not ret: - obj.delete() - - return ret - - -cdef int _ecore_events_registered = 0 - - -def init(): - global _ecore_events_registered - - r = ecore_init() - - if r > 0 and _ecore_events_registered == 0: - _ecore_events_registered = 1 - - global _event_type_mapping - _event_type_mapping = { - ECORE_EVENT_SIGNAL_USER: EventSignalUser, - ECORE_EVENT_SIGNAL_HUP: EventSignalHup, - ECORE_EVENT_SIGNAL_EXIT: EventSignalExit, - ECORE_EVENT_SIGNAL_POWER: EventSignalPower, - ECORE_EVENT_SIGNAL_REALTIME: EventSignalRealtime, - ECORE_EXE_EVENT_ADD: EventExeAdd, - ECORE_EXE_EVENT_DEL: EventExeDel, - ECORE_EXE_EVENT_DATA: EventExeData, - ECORE_EXE_EVENT_ERROR: EventExeData, - } - - ecore_file_init() - return r - - -def shutdown(): - ecore_file_shutdown() - return ecore_shutdown() - - -def main_loop_quit(): - ecore_main_loop_quit() - - -def main_loop_begin(): - with nogil: - ecore_main_loop_begin() - - -def main_loop_iterate(): - with nogil: - ecore_main_loop_iterate() - - -def main_loop_glib_integrate(): - if not ecore_main_loop_glib_integrate(): - raise SystemError("failed to integrate GLib main loop into ecore.") - - -def time_get(): - return ecore_time_get() - - -def loop_time_get(): - return ecore_loop_time_get() - - -include "efl.ecore_animator.pxi" -include "efl.ecore_timer.pxi" -include "efl.ecore_idler.pxi" -include "efl.ecore_fd_handler.pxi" -include "efl.ecore_events.pxi" -include "efl.ecore_exe.pxi" -include "efl.ecore_file_download.pxi" - -init() +# Copyright (C) 2007-2013 various contributors (see AUTHORS) +# +# This file is part of Python-EFL. +# +# Python-EFL is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# 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, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this Python-EFL. If not, see . + +import traceback +from efl.eo cimport Eo +from efl.eo cimport _fruni, _cfruni +from efl.eo cimport PY_REFCOUNT +from cpython cimport Py_INCREF, Py_DECREF + + +ECORE_CALLBACK_CANCEL = 0 +ECORE_CALLBACK_RENEW = 1 + +# Ecore_Fd_Handler_Flags: +ECORE_FD_READ = 1 +ECORE_FD_WRITE = 2 +ECORE_FD_ERROR = 4 +ECORE_FD_ALL = 7 + + +# Ecore_Exe_Flags: +ECORE_EXE_PIPE_READ = 1 +ECORE_EXE_PIPE_WRITE = 2 +ECORE_EXE_PIPE_ERROR = 4 +ECORE_EXE_PIPE_READ_LINE_BUFFERED = 8 +ECORE_EXE_PIPE_ERROR_LINE_BUFFERED = 16 +ECORE_EXE_PIPE_AUTO = 32 +ECORE_EXE_RESPAWN = 64 +ECORE_EXE_USE_SH = 128 +ECORE_EXE_NOT_LEADER = 256 +ECORE_EXE_TERM_WITH_PARENT = 512 + +ECORE_EXE_PRIORITY_INHERIT = 9999 + + +# Ecore_File_Progress_Return: +ECORE_FILE_PROGRESS_CONTINUE = 0 +ECORE_FILE_PROGRESS_ABORT = 1 + + +cdef Eina_Bool _ecore_task_cb(void *data) with gil: + cdef Eo obj = data + cdef Eina_Bool ret + + try: + ret = bool(obj._task_exec()) + except Exception, e: + traceback.print_exc() + ret = 0 + + if not ret: + obj.delete() + + return ret + + +cdef int _ecore_events_registered = 0 + + +def init(): + global _ecore_events_registered + + r = ecore_init() + + if r > 0 and _ecore_events_registered == 0: + _ecore_events_registered = 1 + + global _event_type_mapping + _event_type_mapping = { + ECORE_EVENT_SIGNAL_USER: EventSignalUser, + ECORE_EVENT_SIGNAL_HUP: EventSignalHup, + ECORE_EVENT_SIGNAL_EXIT: EventSignalExit, + ECORE_EVENT_SIGNAL_POWER: EventSignalPower, + ECORE_EVENT_SIGNAL_REALTIME: EventSignalRealtime, + ECORE_EXE_EVENT_ADD: EventExeAdd, + ECORE_EXE_EVENT_DEL: EventExeDel, + ECORE_EXE_EVENT_DATA: EventExeData, + ECORE_EXE_EVENT_ERROR: EventExeData, + } + + ecore_file_init() + return r + + +def shutdown(): + ecore_file_shutdown() + return ecore_shutdown() + + +def main_loop_quit(): + ecore_main_loop_quit() + + +def main_loop_begin(): + with nogil: + ecore_main_loop_begin() + + +def main_loop_iterate(): + with nogil: + ecore_main_loop_iterate() + + +def main_loop_glib_integrate(): + if not ecore_main_loop_glib_integrate(): + raise SystemError("failed to integrate GLib main loop into ecore.") + + +def time_get(): + return ecore_time_get() + + +def loop_time_get(): + return ecore_loop_time_get() + + +include "efl.ecore_animator.pxi" +include "efl.ecore_timer.pxi" +include "efl.ecore_idler.pxi" +include "efl.ecore_fd_handler.pxi" +include "efl.ecore_events.pxi" +include "efl.ecore_exe.pxi" +include "efl.ecore_file_download.pxi" + +init() diff --git a/efl/eo/efl.eo.pyx b/efl/eo/efl.eo.pyx index d1a8303..95bd8de 100644 --- a/efl/eo/efl.eo.pyx +++ b/efl/eo/efl.eo.pyx @@ -1,279 +1,279 @@ -# Copyright (C) 2007-2013 various contributors (see AUTHORS) -# -# This file is part of Python-EFL. -# -# Python-EFL is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# 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, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this Python-EFL. If not, see . - -from cpython cimport PyObject, Py_INCREF, Py_DECREF -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_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_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_parent_get -from efl.c_eo cimport EO_EV_DEL - - -###################################################################### - -cdef int PY_REFCOUNT(object o): - cdef PyObject *obj = o - return obj.ob_refcnt - - -cdef inline unicode _touni(char* s): - return s.decode('UTF-8', 'strict') if s else None - - -cdef inline unicode _ctouni(const_char_ptr s): - return s.decode('UTF-8', 'strict') if s else None - - -cdef inline char *_fruni(s): - cdef char *c_string - if s is None: - return NULL - if isinstance(s, unicode): - string = s.encode('UTF-8') - c_string = string - elif isinstance(s, str): - c_string = s - else: - raise TypeError("Expected str or unicode object, got %s" % (type(s).__name__)) - return c_string - - -cdef inline const_char_ptr _cfruni(s): - cdef const_char_ptr c_string - if s is None: - return NULL - if isinstance(s, unicode): - string = s.encode('UTF-8') - c_string = string - elif isinstance(s, str): - c_string = s - else: - raise TypeError("Expected str or unicode object, got %s" % (type(s).__name__)) - return c_string - - -cdef _strings_to_python(const_Eina_List *lst): - cdef const_char_ptr s - ret = [] - while lst: - s = lst.data - if s != NULL: - ret.append(_ctouni(s)) - lst = lst.next - return ret - - -cdef Eina_List * _strings_from_python(strings): - cdef Eina_List *lst = NULL - for s in strings: - lst = eina_list_append(lst, _cfruni(s)) - return lst - - -cdef inline _object_list_to_python(const_Eina_List *lst): - ret = [] - while lst: - ret.append(object_from_instance(lst.data)) - lst = lst.next - return ret - - -###################################################################### - - -cdef object object_mapping -"""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 -the object_from_instance function.""" -object_mapping = dict() - - -cdef _object_mapping_register(char *name, cls): -# print("REGISTER: %s => %s" % (name, cls)) - if name in object_mapping: - raise ValueError("object type name '%s' already registered." % name) - object_mapping[name] = cls - - -cdef _object_mapping_unregister(char *name): - object_mapping.pop(name) - - -cdef object object_from_instance(cEo *obj): - """ Create a python object from a C Eo object pointer. """ - cdef void *data - cdef Eo o - - if obj == NULL: - return None - - eo_do(obj, eo_base_data_get("python-eo", &data)) - if data != NULL: -# print("Found: %s" % Eo.__repr__(data)) - return data - - klass_name = eo_class_name_get(eo_class_get(obj)) - if klass_name == NULL: - raise ValueError("Eo object %#x does not have a type!" % obj) -# print("Klass name: %s" % klass_name) - - klass = object_mapping.get(klass_name, None) - if klass == None: - raise ValueError("Eo object %#x of type %s does not have a mapping!" % - (obj, klass_name)) - -# print "MAPPING OBJECT:", klass_name, "=>", klass - o = klass.__new__(klass) - o._set_obj(obj) - return o -# -# TODO extended object mapping (for SmartObject, EdjeExternal, etc) -# -# t = evas_object_type_get(obj) -# if t == NULL: -# raise ValueError("Evas object %#x does not have a type!" % -# obj) -# ot = _ctouni(t) -# c = Canvas_from_instance(evas_object_evas_get(obj)) -# cls = object_mapping.get(ot, None) -# if cls is None: -# cls_resolver = extended_object_mapping.get(ot, None) -# if cls_resolver is None: -# warnings.warn( -# ("Evas_Object %#x of type %s has no direct or " -# "extended mapping! Using generic wrapper.") % -# (obj, ot)) -# cls = Object -# else: -# cls = cls_resolver(obj) -# o = cls.__new__(cls) -# o._set_evas(c) - - -###################################################################### - - -EO_CALLBACK_STOP = 0 -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 Eo self = data - -# print("DEL CB: %s" % Eo.__repr__(self)) - - eo_do(self.obj, eo_event_callback_del(EO_EV_DEL, _eo_event_del_cb, self)) - eo_do(self.obj, eo_base_data_del("python-eo")) - self.obj = NULL - Py_DECREF(self) - - return EO_CALLBACK_STOP - - -cdef class Eo(object): - """ - Base class used by all the Eo object in the bindings, its not meant to be - used by users, but only by internal classes. - """ - - # c globals declared in eo.pxd (to make the class available to others) - - def __cinit__(self): - self.obj = NULL - self.data = dict() - - def __init__(self): -# print("Eo __init__()") - pass - - def __dealloc__(self): -# print("Eo __dealloc__(): %s" % Eo.__repr__(self)) - pass - - - def __str__(self): - return ("Eo(class=%s, obj=%#x, parent=%#x, refcount=%d)") % \ - (self.__class__.__name__, self.obj, - eo_parent_get(self.obj) if self.obj else 0, - PY_REFCOUNT(self)) - - - def __repr__(self): - return ("Eo(class=%s, obj=%#x, parent=%#x, refcount=%d)") % \ - (self.__class__.__name__, self.obj, - eo_parent_get(self.obj) if self.obj else 0, - PY_REFCOUNT(self)) - -# cdef _add_obj(self, Eo_Class *klass, cEo *parent): -# cdef cEo *obj -# assert self.obj == NULL, "Object must be clean" -# obj = eo_add(klass, parent) -# self._set_obj(obj) -# eo_unref(obj) - - cdef _set_obj(self, cEo *obj): - assert self.obj == NULL, "Object must be clean" - assert obj != NULL, "Cannot set a NULL object" - - self.obj = obj - eo_do(self.obj, eo_base_data_set("python-eo", self, NULL)) - eo_do(self.obj, eo_event_callback_add(EO_EV_DEL, _eo_event_del_cb, self)) - Py_INCREF(self) - -# cdef _unset_obj(self): # __UNUSED__ -# if self.obj != NULL: -# self.obj = NULL -# Py_DECREF(self) ????????????????????' - # TODO evas_object_data_del("python-eo") ?? - -# def delete(self): -# """ -# Delete object and free it's internal (wrapped) resources. -# -# @note: after this operation the object will be still alive in -# Python, but it will be shallow and every operation -# will have no effect (and may raise exceptions). -# @raise ValueError: if object already deleted. -# """ -# if self.obj == NULL: -# raise ValueError("Object already deleted") -# print("Eo delete: %s" % Eo.__repr__(self)) -# eo_del(self.obj) - - def is_deleted(self): - """ - Check if the Eo object associated with this python object has been - deleted, thus leaving the object as shallow. - """ - return bool(self.obj == NULL) - - -def init(): - return eo_init() - - -def shutdown(): - return eo_shutdown() - - -init() +# Copyright (C) 2007-2013 various contributors (see AUTHORS) +# +# This file is part of Python-EFL. +# +# Python-EFL is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# 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, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this Python-EFL. If not, see . + +from cpython cimport PyObject, Py_INCREF, Py_DECREF +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_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_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_parent_get +from efl.c_eo cimport EO_EV_DEL + + +###################################################################### + +cdef int PY_REFCOUNT(object o): + cdef PyObject *obj = o + return obj.ob_refcnt + + +cdef inline unicode _touni(char* s): + return s.decode('UTF-8', 'strict') if s else None + + +cdef inline unicode _ctouni(const_char_ptr s): + return s.decode('UTF-8', 'strict') if s else None + + +cdef inline char *_fruni(s): + cdef char *c_string + if s is None: + return NULL + if isinstance(s, unicode): + string = s.encode('UTF-8') + c_string = string + elif isinstance(s, str): + c_string = s + else: + raise TypeError("Expected str or unicode object, got %s" % (type(s).__name__)) + return c_string + + +cdef inline const_char_ptr _cfruni(s): + cdef const_char_ptr c_string + if s is None: + return NULL + if isinstance(s, unicode): + string = s.encode('UTF-8') + c_string = string + elif isinstance(s, str): + c_string = s + else: + raise TypeError("Expected str or unicode object, got %s" % (type(s).__name__)) + return c_string + + +cdef _strings_to_python(const_Eina_List *lst): + cdef const_char_ptr s + ret = [] + while lst: + s = lst.data + if s != NULL: + ret.append(_ctouni(s)) + lst = lst.next + return ret + + +cdef Eina_List * _strings_from_python(strings): + cdef Eina_List *lst = NULL + for s in strings: + lst = eina_list_append(lst, _cfruni(s)) + return lst + + +cdef inline _object_list_to_python(const_Eina_List *lst): + ret = [] + while lst: + ret.append(object_from_instance(lst.data)) + lst = lst.next + return ret + + +###################################################################### + + +cdef object object_mapping +"""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 +the object_from_instance function.""" +object_mapping = dict() + + +cdef _object_mapping_register(char *name, cls): +# print("REGISTER: %s => %s" % (name, cls)) + if name in object_mapping: + raise ValueError("object type name '%s' already registered." % name) + object_mapping[name] = cls + + +cdef _object_mapping_unregister(char *name): + object_mapping.pop(name) + + +cdef object object_from_instance(cEo *obj): + """ Create a python object from a C Eo object pointer. """ + cdef void *data + cdef Eo o + + if obj == NULL: + return None + + eo_do(obj, eo_base_data_get("python-eo", &data)) + if data != NULL: +# print("Found: %s" % Eo.__repr__(data)) + return data + + klass_name = eo_class_name_get(eo_class_get(obj)) + if klass_name == NULL: + raise ValueError("Eo object %#x does not have a type!" % obj) +# print("Klass name: %s" % klass_name) + + klass = object_mapping.get(klass_name, None) + if klass == None: + raise ValueError("Eo object %#x of type %s does not have a mapping!" % + (obj, klass_name)) + +# print "MAPPING OBJECT:", klass_name, "=>", klass + o = klass.__new__(klass) + o._set_obj(obj) + return o +# +# TODO extended object mapping (for SmartObject, EdjeExternal, etc) +# +# t = evas_object_type_get(obj) +# if t == NULL: +# raise ValueError("Evas object %#x does not have a type!" % +# obj) +# ot = _ctouni(t) +# c = Canvas_from_instance(evas_object_evas_get(obj)) +# cls = object_mapping.get(ot, None) +# if cls is None: +# cls_resolver = extended_object_mapping.get(ot, None) +# if cls_resolver is None: +# warnings.warn( +# ("Evas_Object %#x of type %s has no direct or " +# "extended mapping! Using generic wrapper.") % +# (obj, ot)) +# cls = Object +# else: +# cls = cls_resolver(obj) +# o = cls.__new__(cls) +# o._set_evas(c) + + +###################################################################### + + +EO_CALLBACK_STOP = 0 +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 Eo self = data + +# print("DEL CB: %s" % Eo.__repr__(self)) + + eo_do(self.obj, eo_event_callback_del(EO_EV_DEL, _eo_event_del_cb, self)) + eo_do(self.obj, eo_base_data_del("python-eo")) + self.obj = NULL + Py_DECREF(self) + + return EO_CALLBACK_STOP + + +cdef class Eo(object): + """ + Base class used by all the Eo object in the bindings, its not meant to be + used by users, but only by internal classes. + """ + + # c globals declared in eo.pxd (to make the class available to others) + + def __cinit__(self): + self.obj = NULL + self.data = dict() + + def __init__(self): +# print("Eo __init__()") + pass + + def __dealloc__(self): +# print("Eo __dealloc__(): %s" % Eo.__repr__(self)) + pass + + + def __str__(self): + return ("Eo(class=%s, obj=%#x, parent=%#x, refcount=%d)") % \ + (self.__class__.__name__, self.obj, + eo_parent_get(self.obj) if self.obj else 0, + PY_REFCOUNT(self)) + + + def __repr__(self): + return ("Eo(class=%s, obj=%#x, parent=%#x, refcount=%d)") % \ + (self.__class__.__name__, self.obj, + eo_parent_get(self.obj) if self.obj else 0, + PY_REFCOUNT(self)) + +# cdef _add_obj(self, Eo_Class *klass, cEo *parent): +# cdef cEo *obj +# assert self.obj == NULL, "Object must be clean" +# obj = eo_add(klass, parent) +# self._set_obj(obj) +# eo_unref(obj) + + cdef _set_obj(self, cEo *obj): + assert self.obj == NULL, "Object must be clean" + assert obj != NULL, "Cannot set a NULL object" + + self.obj = obj + eo_do(self.obj, eo_base_data_set("python-eo", self, NULL)) + eo_do(self.obj, eo_event_callback_add(EO_EV_DEL, _eo_event_del_cb, self)) + Py_INCREF(self) + +# cdef _unset_obj(self): # __UNUSED__ +# if self.obj != NULL: +# self.obj = NULL +# Py_DECREF(self) ????????????????????' + # TODO evas_object_data_del("python-eo") ?? + +# def delete(self): +# """ +# Delete object and free it's internal (wrapped) resources. +# +# @note: after this operation the object will be still alive in +# Python, but it will be shallow and every operation +# will have no effect (and may raise exceptions). +# @raise ValueError: if object already deleted. +# """ +# if self.obj == NULL: +# raise ValueError("Object already deleted") +# print("Eo delete: %s" % Eo.__repr__(self)) +# eo_del(self.obj) + + def is_deleted(self): + """ + Check if the Eo object associated with this python object has been + deleted, thus leaving the object as shallow. + """ + return bool(self.obj == NULL) + + +def init(): + return eo_init() + + +def shutdown(): + return eo_shutdown() + + +init() diff --git a/efl/evas/efl.evas.pyx b/efl/evas/efl.evas.pyx index 0af1dc8..30b1688 100644 --- a/efl/evas/efl.evas.pyx +++ b/efl/evas/efl.evas.pyx @@ -1,304 +1,304 @@ -# Copyright (C) 2007-2013 various contributors (see AUTHORS) -# -# This file is part of Python-EFL. -# -# Python-EFL is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# 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, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this Python-EFL. If not, see . - -import traceback -from cpython cimport bool -from efl cimport * -from efl.eo cimport Eo, object_from_instance, _object_mapping_register -from efl.eo cimport _ctouni, _cfruni, _touni, _fruni - - -EVAS_LAYER_MIN = -32768 -EVAS_LAYER_MAX = 32767 - -EVAS_HINT_EXPAND = 1.0 -EVAS_HINT_FILL = -1.0 - -EVAS_CALLBACK_MOUSE_IN = 0 -EVAS_CALLBACK_MOUSE_OUT = 1 -EVAS_CALLBACK_MOUSE_DOWN = 2 -EVAS_CALLBACK_MOUSE_UP = 3 -EVAS_CALLBACK_MOUSE_MOVE = 4 -EVAS_CALLBACK_MOUSE_WHEEL = 5 -EVAS_CALLBACK_MULTI_DOWN = 6 -EVAS_CALLBACK_MULTI_UP = 7 -EVAS_CALLBACK_MULTI_MOVE = 8 -EVAS_CALLBACK_FREE = 9 -EVAS_CALLBACK_KEY_DOWN = 10 -EVAS_CALLBACK_KEY_UP = 11 -EVAS_CALLBACK_FOCUS_IN = 12 -EVAS_CALLBACK_FOCUS_OUT = 13 -EVAS_CALLBACK_SHOW = 14 -EVAS_CALLBACK_HIDE = 15 -EVAS_CALLBACK_MOVE = 16 -EVAS_CALLBACK_RESIZE = 17 -EVAS_CALLBACK_RESTACK = 18 -EVAS_CALLBACK_DEL = 19 -EVAS_CALLBACK_HOLD = 20 -EVAS_CALLBACK_CHANGED_SIZE_HINTS = 21 -EVAS_CALLBACK_IMAGE_PRELOADED = 22 -EVAS_CALLBACK_CANVAS_FOCUS_IN = 23 -EVAS_CALLBACK_CANVAS_FOCUS_OUT = 24 -EVAS_CALLBACK_RENDER_FLUSH_PRE = 25 -EVAS_CALLBACK_RENDER_FLUSH_POST = 26 -EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_IN = 27 -EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_OUT = 28 -EVAS_CALLBACK_IMAGE_UNLOADED = 29 -EVAS_CALLBACK_RENDER_PRE = 30 -EVAS_CALLBACK_RENDER_POST = 31 -EVAS_CALLBACK_IMAGE_RESIZE = 32 -EVAS_CALLBACK_DEVICE_CHANGED = 33 -EVAS_CALLBACK_LAST = 34 - -EVAS_BUTTON_NONE = 0 -EVAS_BUTTON_DOUBLE_CLICK = 1 -EVAS_BUTTON_TRIPLE_CLICK = 2 - -EVAS_EVENT_FLAG_NONE = 0 -EVAS_EVENT_FLAG_ON_HOLD = 1 << 0 - -EVAS_RENDER_BLEND = 0 -EVAS_RENDER_BLEND_REL = 1 -EVAS_RENDER_COPY = 2 -EVAS_RENDER_COPY_REL = 3 -EVAS_RENDER_ADD = 4 -EVAS_RENDER_ADD_REL = 5 -EVAS_RENDER_SUB = 6 -EVAS_RENDER_SUB_REL = 7 -EVAS_RENDER_TINT = 8 -EVAS_RENDER_TINT_REL = 9 -EVAS_RENDER_MASK = 10 -EVAS_RENDER_MUL = 11 - -EVAS_TEXTURE_REFLECT = 0 -EVAS_TEXTURE_REPEAT = 1 -EVAS_TEXTURE_RESTRICT = 2 -EVAS_TEXTURE_RESTRICT_REFLECT = 3 -EVAS_TEXTURE_RESTRICT_REPEAT = 4 -EVAS_TEXTURE_PAD = 5 - -EVAS_ALLOC_ERROR_NONE = 0 -EVAS_ALLOC_ERROR_FATAL = 1 -EVAS_ALLOC_ERROR_RECOVERED = 2 - -EVAS_LOAD_ERROR_NONE = 0 -EVAS_LOAD_ERROR_GENERIC = 1 -EVAS_LOAD_ERROR_DOES_NOT_EXIST = 2 -EVAS_LOAD_ERROR_PERMISSION_DENIED = 3 -EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED = 4 -EVAS_LOAD_ERROR_CORRUPT_FILE = 5 -EVAS_LOAD_ERROR_UNKNOWN_FORMAT = 6 - -EVAS_COLOR_SPACE_ARGB = 0 -EVAS_COLOR_SPACE_AHSV = 1 - -EVAS_COLORSPACE_ARGB8888 = 0 -EVAS_COLORSPACE_YCBCR422P601_PL = 1 -EVAS_COLORSPACE_YCBCR422P709_PL = 2 -EVAS_COLORSPACE_RGB565_A5P = 3 - -EVAS_PIXEL_FORMAT_NONE = 0 -EVAS_PIXEL_FORMAT_ARGB32 = 1 -EVAS_PIXEL_FORMAT_YUV420P_601 = 2 - -EVAS_FONT_HINTING_NONE = 0 -EVAS_FONT_HINTING_AUTO = 1 -EVAS_FONT_HINTING_BYTECODE = 2 - -EVAS_TEXT_STYLE_PLAIN = 0 -EVAS_TEXT_STYLE_SHADOW = 1 -EVAS_TEXT_STYLE_OUTLINE = 2 -EVAS_TEXT_STYLE_SOFT_OUTLINE = 3 -EVAS_TEXT_STYLE_GLOW = 4 -EVAS_TEXT_STYLE_OUTLINE_SHADOW = 5 -EVAS_TEXT_STYLE_FAR_SHADOW = 6 -EVAS_TEXT_STYLE_OUTLINE_SOFT_SHADOW = 7 -EVAS_TEXT_STYLE_SOFT_SHADOW = 8 -EVAS_TEXT_STYLE_FAR_SOFT_SHADOW = 9 - -EVAS_TEXT_INVALID = -1 -EVAS_TEXT_SPECIAL = -2 - -EVAS_TEXTBLOCK_TEXT_RAW = 0 -EVAS_TEXTBLOCK_TEXT_PLAIN = 1 - -EVAS_OBJECT_POINTER_MODE_AUTOGRAB = 0 -EVAS_OBJECT_POINTER_MODE_NOGRAB = 1 - -EVAS_IMAGE_ROTATE_NONE = 0 -EVAS_IMAGE_ROTATE_90 = 1 -EVAS_IMAGE_ROTATE_180 = 2 -EVAS_IMAGE_ROTATE_270 = 3 - -EVAS_ASPECT_CONTROL_NONE = 0 -EVAS_ASPECT_CONTROL_NEITHER = 1 -EVAS_ASPECT_CONTROL_HORIZONTAL = 2 -EVAS_ASPECT_CONTROL_VERTICAL = 3 -EVAS_ASPECT_CONTROL_BOTH = 4 - - -def init(): - # when changing these, also change __init__.py! -# if evas_object_event_callbacks_len != EVAS_CALLBACK_LAST: -# raise SystemError("Number of object callbacks changed from %d to %d." % -# (evas_object_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." % -# (evas_canvas_event_callbacks_len, EVAS_CALLBACK_LAST)) - return evas_init() - - -def shutdown(): - return evas_shutdown() - - -def render_method_lookup(name): - return evas_render_method_lookup(_cfruni(name)) - - -def render_method_list(): - cdef Eina_List *lst - - ret = [] - lst = evas_render_method_list() - while lst != NULL: - ret.append( lst.data) - lst = lst.next - - evas_render_method_list_free(lst) - return ret - - -def color_parse(desc, is_premul=None): - cdef unsigned long c, desc_len - cdef int r, g, b, a - - r = 0 - g = 0 - b = 0 - a = 0 - - if isinstance(desc, str): - if not desc or desc[0] != "#": - raise ValueError("Invalid color description") - desc_len = len(desc) - c = int(desc[1:], 16) - r = (c >> 16) & 0xff - g = (c >> 8) & 0xff - b = c & 0xff - - if is_premul is None: - is_premul = False - - if desc_len == 9: - a = (c >> 24) & 0xff - elif desc_len == 7: - a = 255 - else: - raise ValueError("Invalid color description") - - elif isinstance(desc, (int, long)): - c = desc - a = (c >> 24) & 0xff - r = (c >> 16) & 0xff - g = (c >> 8) & 0xff - b = c & 0xff - - if is_premul is None: - is_premul = False - - elif isinstance(desc, (list, tuple)): - if is_premul is None: - is_premul = True - - if len(desc) == 3: - a = 255 - r, g, b = desc - else: - r, g, b, a = desc - else: - raise TypeError("Unsupported type %s for color description." % - type(desc)) - - if is_premul is False: - evas_color_argb_premul(a, &r, &g, &b) - - return (r, g, b, a) - - -def color_argb_premul(int r, int g, int b, int a): - evas_color_argb_premul(a, &r, &g, &b) - return (r, g, b, a) - - -def color_argb_unpremul(int r, int g, int b, int a): - evas_color_argb_unpremul(a, &r, &g, &b) - return (r, g, b, a) - - -def color_hsv_to_rgb(float h, float s, float v): - cdef int r, g, b - evas_color_hsv_to_rgb(h, s, v, &r, &g, &b) - return (r, g, b) - - -def color_rgb_to_hsv(int r, int g, int b): - cdef float h, s, v - evas_color_rgb_to_hsv(r, g, b, &h, &s, &v) - return (h, s, v) - - -class EvasLoadError(Exception): - def __init__(self, int code, filename, key): - if code == EVAS_LOAD_ERROR_NONE: - msg = "No error on load" - elif code == EVAS_LOAD_ERROR_GENERIC: - msg = "A non-specific error occurred" - elif code == EVAS_LOAD_ERROR_DOES_NOT_EXIST: - msg = "File (or file path) does not exist" - elif code == EVAS_LOAD_ERROR_PERMISSION_DENIED: - msg = "Permission deinied to an existing file (or path)" - elif code == EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED: - msg = "Allocation of resources failure prevented load" - elif code == EVAS_LOAD_ERROR_CORRUPT_FILE: - msg = "File corrupt (but was detected as a known format)" - elif code == EVAS_LOAD_ERROR_UNKNOWN_FORMAT: - msg = "File is not a known format" - self.code = code - self.file = filename - self.key = key - Exception.__init__(self, "%s (file=%s, key=%s)" % (msg, filename, key)) - - -include "efl.evas_rect.pxi" -include "efl.evas_map.pxi" -include "efl.evas_canvas_callbacks.pxi" -include "efl.evas_canvas.pxi" -include "efl.evas_object_events.pxi" -include "efl.evas_object_callbacks.pxi" -include "efl.evas_object.pxi" -include "efl.evas_object_smart.pxi" -include "efl.evas_object_image.pxi" -include "efl.evas_object_line.pxi" -include "efl.evas_object_rectangle.pxi" -include "efl.evas_object_polygon.pxi" -include "efl.evas_object_text.pxi" -include "efl.evas_object_textblock.pxi" -include "efl.evas_object_box.pxi" - - -init() +# Copyright (C) 2007-2013 various contributors (see AUTHORS) +# +# This file is part of Python-EFL. +# +# Python-EFL is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# 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, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this Python-EFL. If not, see . + +import traceback +from cpython cimport bool +from efl cimport * +from efl.eo cimport Eo, object_from_instance, _object_mapping_register +from efl.eo cimport _ctouni, _cfruni, _touni, _fruni + + +EVAS_LAYER_MIN = -32768 +EVAS_LAYER_MAX = 32767 + +EVAS_HINT_EXPAND = 1.0 +EVAS_HINT_FILL = -1.0 + +EVAS_CALLBACK_MOUSE_IN = 0 +EVAS_CALLBACK_MOUSE_OUT = 1 +EVAS_CALLBACK_MOUSE_DOWN = 2 +EVAS_CALLBACK_MOUSE_UP = 3 +EVAS_CALLBACK_MOUSE_MOVE = 4 +EVAS_CALLBACK_MOUSE_WHEEL = 5 +EVAS_CALLBACK_MULTI_DOWN = 6 +EVAS_CALLBACK_MULTI_UP = 7 +EVAS_CALLBACK_MULTI_MOVE = 8 +EVAS_CALLBACK_FREE = 9 +EVAS_CALLBACK_KEY_DOWN = 10 +EVAS_CALLBACK_KEY_UP = 11 +EVAS_CALLBACK_FOCUS_IN = 12 +EVAS_CALLBACK_FOCUS_OUT = 13 +EVAS_CALLBACK_SHOW = 14 +EVAS_CALLBACK_HIDE = 15 +EVAS_CALLBACK_MOVE = 16 +EVAS_CALLBACK_RESIZE = 17 +EVAS_CALLBACK_RESTACK = 18 +EVAS_CALLBACK_DEL = 19 +EVAS_CALLBACK_HOLD = 20 +EVAS_CALLBACK_CHANGED_SIZE_HINTS = 21 +EVAS_CALLBACK_IMAGE_PRELOADED = 22 +EVAS_CALLBACK_CANVAS_FOCUS_IN = 23 +EVAS_CALLBACK_CANVAS_FOCUS_OUT = 24 +EVAS_CALLBACK_RENDER_FLUSH_PRE = 25 +EVAS_CALLBACK_RENDER_FLUSH_POST = 26 +EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_IN = 27 +EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_OUT = 28 +EVAS_CALLBACK_IMAGE_UNLOADED = 29 +EVAS_CALLBACK_RENDER_PRE = 30 +EVAS_CALLBACK_RENDER_POST = 31 +EVAS_CALLBACK_IMAGE_RESIZE = 32 +EVAS_CALLBACK_DEVICE_CHANGED = 33 +EVAS_CALLBACK_LAST = 34 + +EVAS_BUTTON_NONE = 0 +EVAS_BUTTON_DOUBLE_CLICK = 1 +EVAS_BUTTON_TRIPLE_CLICK = 2 + +EVAS_EVENT_FLAG_NONE = 0 +EVAS_EVENT_FLAG_ON_HOLD = 1 << 0 + +EVAS_RENDER_BLEND = 0 +EVAS_RENDER_BLEND_REL = 1 +EVAS_RENDER_COPY = 2 +EVAS_RENDER_COPY_REL = 3 +EVAS_RENDER_ADD = 4 +EVAS_RENDER_ADD_REL = 5 +EVAS_RENDER_SUB = 6 +EVAS_RENDER_SUB_REL = 7 +EVAS_RENDER_TINT = 8 +EVAS_RENDER_TINT_REL = 9 +EVAS_RENDER_MASK = 10 +EVAS_RENDER_MUL = 11 + +EVAS_TEXTURE_REFLECT = 0 +EVAS_TEXTURE_REPEAT = 1 +EVAS_TEXTURE_RESTRICT = 2 +EVAS_TEXTURE_RESTRICT_REFLECT = 3 +EVAS_TEXTURE_RESTRICT_REPEAT = 4 +EVAS_TEXTURE_PAD = 5 + +EVAS_ALLOC_ERROR_NONE = 0 +EVAS_ALLOC_ERROR_FATAL = 1 +EVAS_ALLOC_ERROR_RECOVERED = 2 + +EVAS_LOAD_ERROR_NONE = 0 +EVAS_LOAD_ERROR_GENERIC = 1 +EVAS_LOAD_ERROR_DOES_NOT_EXIST = 2 +EVAS_LOAD_ERROR_PERMISSION_DENIED = 3 +EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED = 4 +EVAS_LOAD_ERROR_CORRUPT_FILE = 5 +EVAS_LOAD_ERROR_UNKNOWN_FORMAT = 6 + +EVAS_COLOR_SPACE_ARGB = 0 +EVAS_COLOR_SPACE_AHSV = 1 + +EVAS_COLORSPACE_ARGB8888 = 0 +EVAS_COLORSPACE_YCBCR422P601_PL = 1 +EVAS_COLORSPACE_YCBCR422P709_PL = 2 +EVAS_COLORSPACE_RGB565_A5P = 3 + +EVAS_PIXEL_FORMAT_NONE = 0 +EVAS_PIXEL_FORMAT_ARGB32 = 1 +EVAS_PIXEL_FORMAT_YUV420P_601 = 2 + +EVAS_FONT_HINTING_NONE = 0 +EVAS_FONT_HINTING_AUTO = 1 +EVAS_FONT_HINTING_BYTECODE = 2 + +EVAS_TEXT_STYLE_PLAIN = 0 +EVAS_TEXT_STYLE_SHADOW = 1 +EVAS_TEXT_STYLE_OUTLINE = 2 +EVAS_TEXT_STYLE_SOFT_OUTLINE = 3 +EVAS_TEXT_STYLE_GLOW = 4 +EVAS_TEXT_STYLE_OUTLINE_SHADOW = 5 +EVAS_TEXT_STYLE_FAR_SHADOW = 6 +EVAS_TEXT_STYLE_OUTLINE_SOFT_SHADOW = 7 +EVAS_TEXT_STYLE_SOFT_SHADOW = 8 +EVAS_TEXT_STYLE_FAR_SOFT_SHADOW = 9 + +EVAS_TEXT_INVALID = -1 +EVAS_TEXT_SPECIAL = -2 + +EVAS_TEXTBLOCK_TEXT_RAW = 0 +EVAS_TEXTBLOCK_TEXT_PLAIN = 1 + +EVAS_OBJECT_POINTER_MODE_AUTOGRAB = 0 +EVAS_OBJECT_POINTER_MODE_NOGRAB = 1 + +EVAS_IMAGE_ROTATE_NONE = 0 +EVAS_IMAGE_ROTATE_90 = 1 +EVAS_IMAGE_ROTATE_180 = 2 +EVAS_IMAGE_ROTATE_270 = 3 + +EVAS_ASPECT_CONTROL_NONE = 0 +EVAS_ASPECT_CONTROL_NEITHER = 1 +EVAS_ASPECT_CONTROL_HORIZONTAL = 2 +EVAS_ASPECT_CONTROL_VERTICAL = 3 +EVAS_ASPECT_CONTROL_BOTH = 4 + + +def init(): + # when changing these, also change __init__.py! +# if evas_object_event_callbacks_len != EVAS_CALLBACK_LAST: +# raise SystemError("Number of object callbacks changed from %d to %d." % +# (evas_object_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." % +# (evas_canvas_event_callbacks_len, EVAS_CALLBACK_LAST)) + return evas_init() + + +def shutdown(): + return evas_shutdown() + + +def render_method_lookup(name): + return evas_render_method_lookup(_cfruni(name)) + + +def render_method_list(): + cdef Eina_List *lst + + ret = [] + lst = evas_render_method_list() + while lst != NULL: + ret.append( lst.data) + lst = lst.next + + evas_render_method_list_free(lst) + return ret + + +def color_parse(desc, is_premul=None): + cdef unsigned long c, desc_len + cdef int r, g, b, a + + r = 0 + g = 0 + b = 0 + a = 0 + + if isinstance(desc, str): + if not desc or desc[0] != "#": + raise ValueError("Invalid color description") + desc_len = len(desc) + c = int(desc[1:], 16) + r = (c >> 16) & 0xff + g = (c >> 8) & 0xff + b = c & 0xff + + if is_premul is None: + is_premul = False + + if desc_len == 9: + a = (c >> 24) & 0xff + elif desc_len == 7: + a = 255 + else: + raise ValueError("Invalid color description") + + elif isinstance(desc, (int, long)): + c = desc + a = (c >> 24) & 0xff + r = (c >> 16) & 0xff + g = (c >> 8) & 0xff + b = c & 0xff + + if is_premul is None: + is_premul = False + + elif isinstance(desc, (list, tuple)): + if is_premul is None: + is_premul = True + + if len(desc) == 3: + a = 255 + r, g, b = desc + else: + r, g, b, a = desc + else: + raise TypeError("Unsupported type %s for color description." % + type(desc)) + + if is_premul is False: + evas_color_argb_premul(a, &r, &g, &b) + + return (r, g, b, a) + + +def color_argb_premul(int r, int g, int b, int a): + evas_color_argb_premul(a, &r, &g, &b) + return (r, g, b, a) + + +def color_argb_unpremul(int r, int g, int b, int a): + evas_color_argb_unpremul(a, &r, &g, &b) + return (r, g, b, a) + + +def color_hsv_to_rgb(float h, float s, float v): + cdef int r, g, b + evas_color_hsv_to_rgb(h, s, v, &r, &g, &b) + return (r, g, b) + + +def color_rgb_to_hsv(int r, int g, int b): + cdef float h, s, v + evas_color_rgb_to_hsv(r, g, b, &h, &s, &v) + return (h, s, v) + + +class EvasLoadError(Exception): + def __init__(self, int code, filename, key): + if code == EVAS_LOAD_ERROR_NONE: + msg = "No error on load" + elif code == EVAS_LOAD_ERROR_GENERIC: + msg = "A non-specific error occurred" + elif code == EVAS_LOAD_ERROR_DOES_NOT_EXIST: + msg = "File (or file path) does not exist" + elif code == EVAS_LOAD_ERROR_PERMISSION_DENIED: + msg = "Permission deinied to an existing file (or path)" + elif code == EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED: + msg = "Allocation of resources failure prevented load" + elif code == EVAS_LOAD_ERROR_CORRUPT_FILE: + msg = "File corrupt (but was detected as a known format)" + elif code == EVAS_LOAD_ERROR_UNKNOWN_FORMAT: + msg = "File is not a known format" + self.code = code + self.file = filename + self.key = key + Exception.__init__(self, "%s (file=%s, key=%s)" % (msg, filename, key)) + + +include "efl.evas_rect.pxi" +include "efl.evas_map.pxi" +include "efl.evas_canvas_callbacks.pxi" +include "efl.evas_canvas.pxi" +include "efl.evas_object_events.pxi" +include "efl.evas_object_callbacks.pxi" +include "efl.evas_object.pxi" +include "efl.evas_object_smart.pxi" +include "efl.evas_object_image.pxi" +include "efl.evas_object_line.pxi" +include "efl.evas_object_rectangle.pxi" +include "efl.evas_object_polygon.pxi" +include "efl.evas_object_text.pxi" +include "efl.evas_object_textblock.pxi" +include "efl.evas_object_box.pxi" + + +init() diff --git a/include/efl.c_eo.pxd b/include/efl.c_eo.pxd index a6c54eb..4ab29fb 100644 --- a/include/efl.c_eo.pxd +++ b/include/efl.c_eo.pxd @@ -1,85 +1,85 @@ -# Copyright (C) 2007-2013 various contributors (see AUTHORS) -# -# This file is part of Python-EFL. -# -# Python-EFL is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# 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, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this Python-EFL. If not, see . - -from efl cimport * - -cdef extern from "Eo.h": - #################################################################### - # Basic Types - # - - - #################################################################### - # Enumerations - # - - - #################################################################### - # Structures - # - ctypedef struct Eo - ctypedef Eo const_Eo "const Eo" - - ctypedef struct Eo_Class - ctypedef Eo_Class const_Eo_Class "const Eo_Class" - - ctypedef struct Eo_Event_Description: - const_char_ptr name - const_char_ptr doc - - ctypedef Eo_Event_Description const_Eo_Event_Description "const Eo_Event_Description" - - #################################################################### - # Eo Events - # - cdef const_Eo_Event_Description *EO_EV_DEL - - #################################################################### - # Other typedefs - # - 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 *) - - - #################################################################### - # Functions - # - int eo_init() - int eo_shutdown() - - Eo *eo_add(const_Eo_Class *klass, Eo *parent, ...) - Eo *eo_ref(const_Eo *obj) - void eo_unref(const_Eo *obj) - int eo_ref_get(const_Eo *obj) - void eo_del(const_Eo *obj) - - void eo_wref_add(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_get(const_char_ptr key, void **data) - void eo_base_data_del(const_char_ptr key) - - const_Eo_Class *eo_class_get(const_Eo *obj) - const_char_ptr eo_class_name_get(const_Eo_Class *klass) - - 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_del(const_Eo_Event_Description *desc, Eo_Event_Cb cb, const_void *data) - +# Copyright (C) 2007-2013 various contributors (see AUTHORS) +# +# This file is part of Python-EFL. +# +# Python-EFL is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# 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, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this Python-EFL. If not, see . + +from efl cimport * + +cdef extern from "Eo.h": + #################################################################### + # Basic Types + # + + + #################################################################### + # Enumerations + # + + + #################################################################### + # Structures + # + ctypedef struct Eo + ctypedef Eo const_Eo "const Eo" + + ctypedef struct Eo_Class + ctypedef Eo_Class const_Eo_Class "const Eo_Class" + + ctypedef struct Eo_Event_Description: + const_char_ptr name + const_char_ptr doc + + ctypedef Eo_Event_Description const_Eo_Event_Description "const Eo_Event_Description" + + #################################################################### + # Eo Events + # + cdef const_Eo_Event_Description *EO_EV_DEL + + #################################################################### + # Other typedefs + # + 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 *) + + + #################################################################### + # Functions + # + int eo_init() + int eo_shutdown() + + Eo *eo_add(const_Eo_Class *klass, Eo *parent, ...) + Eo *eo_ref(const_Eo *obj) + void eo_unref(const_Eo *obj) + int eo_ref_get(const_Eo *obj) + void eo_del(const_Eo *obj) + + void eo_wref_add(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_get(const_char_ptr key, void **data) + void eo_base_data_del(const_char_ptr key) + + const_Eo_Class *eo_class_get(const_Eo *obj) + const_char_ptr eo_class_name_get(const_Eo_Class *klass) + + 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_del(const_Eo_Event_Description *desc, Eo_Event_Cb cb, const_void *data) + diff --git a/include/efl.ecore.pxd b/include/efl.ecore.pxd index a37819b..91ebdeb 100644 --- a/include/efl.ecore.pxd +++ b/include/efl.ecore.pxd @@ -1,336 +1,336 @@ -# Copyright (C) 2007-2013 various contributors (see AUTHORS) -# -# This file is part of Python-EFL. -# -# Python-EFL is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# 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, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this Python-EFL. If not, see . - -from efl cimport * -from efl.c_eo cimport Eo as cEo -from efl.eo cimport Eo - - - -cdef extern from "Ecore.h": - #################################################################### - # Basic Types - # - ctypedef cEo Ecore_Timer - ctypedef cEo Ecore_Animator - ctypedef cEo Ecore_Idler - ctypedef cEo Ecore_Idle_Enterer - ctypedef cEo Ecore_Idle_Exiter - - ctypedef struct Ecore_Event_Handler - ctypedef struct Ecore_Event - - ctypedef struct Ecore_Event_Signal_User: - int number - - ctypedef struct Ecore_Event_Signal_Exit: - unsigned int interrupt - unsigned int quit - unsigned int terminate - - ctypedef struct Ecore_Event_Signal_Realtime: - int num - - ctypedef struct Ecore_Exe_Event_Add: - Ecore_Exe *exe - void *ext_data - - ctypedef struct Ecore_Exe_Event_Del: - int pid - int exit_code - Ecore_Exe *exe - int exit_signal - unsigned int exited - unsigned int signalled - void *ext_data - - ctypedef struct Ecore_Exe_Event_Data: - Ecore_Exe *exe - void *data - int size - Ecore_Exe_Event_Data_Line *lines - - ctypedef struct Ecore_Exe_Event_Data_Line: - char *line - int size - - ctypedef struct Ecore_Fd_Handler - ctypedef struct Ecore_Exe - ctypedef Ecore_Exe const_Ecore_Exe "const Ecore_Exe" - - int ECORE_EVENT_SIGNAL_USER - int ECORE_EVENT_SIGNAL_HUP - int ECORE_EVENT_SIGNAL_EXIT - int ECORE_EVENT_SIGNAL_POWER - int ECORE_EVENT_SIGNAL_REALTIME - - int ECORE_EXE_EVENT_ADD - int ECORE_EXE_EVENT_DEL - int ECORE_EXE_EVENT_DATA - int ECORE_EXE_EVENT_ERROR - - - #################################################################### - # Enumerations - # - ctypedef enum Ecore_Fd_Handler_Flags: - pass - - ctypedef enum Ecore_Exe_Flags: - pass - - #################################################################### - # Other typedefs - # - ctypedef void (*Ecore_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 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 void (*Ecore_End_Cb)(void *user_data, void *func_data) - ctypedef void (*Ecore_Exe_Cb)(void *data, const_Ecore_Exe *exe) - - #################################################################### - # Functions - # - int ecore_init() - int ecore_shutdown() - - void ecore_main_loop_iterate() nogil - void ecore_main_loop_begin() nogil - void ecore_main_loop_quit() - - int ecore_main_loop_glib_integrate() - - double ecore_time_get() - double ecore_loop_time_get() - - Ecore_Animator *ecore_animator_add(Ecore_Task_Cb func, void *data) - void *ecore_animator_del(Ecore_Animator *animator) - void ecore_animator_frametime_set(double frametime) - double ecore_animator_frametime_get() - - Ecore_Timer *ecore_timer_add(double t, Ecore_Task_Cb func, void *data) - void *ecore_timer_del(Ecore_Timer *timer) - void ecore_timer_freeze(Ecore_Timer *timer) - void ecore_timer_thaw(Ecore_Timer *timer) - void ecore_timer_interval_set(Ecore_Timer *timer, double t) - double ecore_timer_interval_get(Ecore_Timer *timer) - void ecore_timer_delay(Ecore_Timer *timer, double add) - void ecore_timer_reset(Ecore_Timer *timer) - double ecore_timer_pending_get(Ecore_Timer *timer) - double ecore_timer_precision_get() - double ecore_timer_precision_set(double value) - - Ecore_Idler *ecore_idler_add(Ecore_Task_Cb func, void *data) - void *ecore_idler_del(Ecore_Idler *idler) - Ecore_Idler *ecore_idle_enterer_add(Ecore_Task_Cb func, void *data) - void *ecore_idle_enterer_del(Ecore_Idler *idler) - Ecore_Idler *ecore_idle_exiter_add(Ecore_Task_Cb func, void *data) - 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) - 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) - 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) - 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) - void *ecore_event_handler_del(Ecore_Event_Handler *event_handler) - int ecore_event_type_new() - 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_exe_run_priority_set(int pri) - int ecore_exe_run_priority_get() - 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) - int ecore_exe_send(Ecore_Exe *exe, const_void *data, int size) - 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) - 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_free(Ecore_Exe *exe) - int ecore_exe_pid_get(Ecore_Exe *exe) - 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_cmd_get(Ecore_Exe *exe) - void *ecore_exe_data_get(Ecore_Exe *exe) - Ecore_Exe_Flags ecore_exe_flags_get(Ecore_Exe *exe) - void ecore_exe_pause(Ecore_Exe *exe) - void ecore_exe_continue(Ecore_Exe *exe) - void ecore_exe_interrupt(Ecore_Exe *exe) - void ecore_exe_quit(Ecore_Exe *exe) - void ecore_exe_terminate(Ecore_Exe *exe) - void ecore_exe_kill(Ecore_Exe *exe) - void ecore_exe_signal(Ecore_Exe *exe, int num) - void ecore_exe_hup(Ecore_Exe *exe) - - -cdef extern from "Ecore_File.h": - - ctypedef struct Ecore_File_Download_Job - - 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) - - int ecore_file_init() - int ecore_file_shutdown() - void ecore_file_download_abort(Ecore_File_Download_Job *job) - void ecore_file_download_abort_all() - Eina_Bool ecore_file_download_protocol_available(const_char_ptr protocol) - Eina_Bool ecore_file_download(const_char_ptr url, const_char_ptr dst, - Ecore_File_Download_Completion_Cb completion_cb, - Ecore_File_Download_Progress_Cb progress_cb, - void *data, - Ecore_File_Download_Job **job_ret) - - -#################################################################### -# Python classes -# -cdef class Timer(Eo): - cdef double _interval - cdef readonly object func, args, kargs - cpdef object _task_exec(self) - - -cdef class Animator(Eo): - cdef readonly object func, args, kargs - cpdef object _task_exec(self) - - -cdef class Idler(Eo): - cdef readonly object func, args, kargs - cpdef object _task_exec(self) - - -cdef class IdleEnterer(Idler): - pass - - -cdef class IdleExiter(Idler): - pass - - -cdef class FdHandler(object): - cdef Ecore_Fd_Handler *obj - cdef readonly object func - cdef readonly object args - cdef readonly object kargs - cdef readonly object _prepare_callback - - cdef object _exec(self) - - -cdef class Exe(object): - cdef Ecore_Exe *exe - cdef readonly object __data - cdef object __callbacks - - cdef int _set_obj(self, char *exe_cmd, int flags) except 0 - cdef int _unset_obj(self) except 0 - - -cdef class ExeEventFilter(object): - cdef Ecore_Exe *exe - cdef Ecore_Event_Handler *handler - cdef readonly object owner - cdef readonly object event_type - cdef object callbacks - - -cdef class EventHandler(object): - cdef Ecore_Event_Handler *obj - cdef readonly int type - cdef readonly object event_cls - cdef readonly object func - cdef readonly object args - cdef readonly object kargs - - cdef int _set_obj(self, Ecore_Event_Handler *obj) except 0 - cdef int _unset_obj(self) except 0 - cdef Eina_Bool _exec(self, void *event) except 2 - - -cdef class Event(object): - cdef int _set_obj(self, void *obj) except 0 - - -cdef class EventSignalUser(Event): - cdef readonly object number - - -cdef class EventSignalHup(Event): - pass - - -cdef class EventSignalExit(Event): - cdef readonly object interrupt - cdef readonly object quit - cdef readonly object terminate - - -cdef class EventSignalPower(Event): - pass - - -cdef class CustomEvent(Event): - cdef readonly object obj - - -cdef class QueuedEvent: - cdef Ecore_Event *obj - cdef readonly object args - - cdef int _set_obj(self, Ecore_Event *ev) except 0 - cdef int _unset_obj(self) except 0 - - -cdef class EventExeAdd(Event): - cdef readonly object exe - - -cdef class EventExeDel(Event): - cdef readonly object exe - cdef readonly object pid - cdef readonly object exit_code - cdef readonly object exit_signal - cdef readonly object exited - cdef readonly object signalled - - -cdef class EventExeData(Event): - cdef readonly object exe - cdef readonly object data - cdef readonly object size - cdef readonly object lines - - -cdef class FileDownload: - cdef Ecore_File_Download_Job *job - cdef readonly object completion_cb - cdef readonly object progress_cb - cdef readonly object args - cdef readonly object kargs - - cdef object _exec_completion(self, const_char_ptr file, int status) - cdef object _exec_progress(self, const_char_ptr file, - long int dltotal, long int dlnow, - long int ultotal, long int ulnow) - +# Copyright (C) 2007-2013 various contributors (see AUTHORS) +# +# This file is part of Python-EFL. +# +# Python-EFL is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# 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, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this Python-EFL. If not, see . + +from efl cimport * +from efl.c_eo cimport Eo as cEo +from efl.eo cimport Eo + + + +cdef extern from "Ecore.h": + #################################################################### + # Basic Types + # + ctypedef cEo Ecore_Timer + ctypedef cEo Ecore_Animator + ctypedef cEo Ecore_Idler + ctypedef cEo Ecore_Idle_Enterer + ctypedef cEo Ecore_Idle_Exiter + + ctypedef struct Ecore_Event_Handler + ctypedef struct Ecore_Event + + ctypedef struct Ecore_Event_Signal_User: + int number + + ctypedef struct Ecore_Event_Signal_Exit: + unsigned int interrupt + unsigned int quit + unsigned int terminate + + ctypedef struct Ecore_Event_Signal_Realtime: + int num + + ctypedef struct Ecore_Exe_Event_Add: + Ecore_Exe *exe + void *ext_data + + ctypedef struct Ecore_Exe_Event_Del: + int pid + int exit_code + Ecore_Exe *exe + int exit_signal + unsigned int exited + unsigned int signalled + void *ext_data + + ctypedef struct Ecore_Exe_Event_Data: + Ecore_Exe *exe + void *data + int size + Ecore_Exe_Event_Data_Line *lines + + ctypedef struct Ecore_Exe_Event_Data_Line: + char *line + int size + + ctypedef struct Ecore_Fd_Handler + ctypedef struct Ecore_Exe + ctypedef Ecore_Exe const_Ecore_Exe "const Ecore_Exe" + + int ECORE_EVENT_SIGNAL_USER + int ECORE_EVENT_SIGNAL_HUP + int ECORE_EVENT_SIGNAL_EXIT + int ECORE_EVENT_SIGNAL_POWER + int ECORE_EVENT_SIGNAL_REALTIME + + int ECORE_EXE_EVENT_ADD + int ECORE_EXE_EVENT_DEL + int ECORE_EXE_EVENT_DATA + int ECORE_EXE_EVENT_ERROR + + + #################################################################### + # Enumerations + # + ctypedef enum Ecore_Fd_Handler_Flags: + pass + + ctypedef enum Ecore_Exe_Flags: + pass + + #################################################################### + # Other typedefs + # + ctypedef void (*Ecore_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 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 void (*Ecore_End_Cb)(void *user_data, void *func_data) + ctypedef void (*Ecore_Exe_Cb)(void *data, const_Ecore_Exe *exe) + + #################################################################### + # Functions + # + int ecore_init() + int ecore_shutdown() + + void ecore_main_loop_iterate() nogil + void ecore_main_loop_begin() nogil + void ecore_main_loop_quit() + + int ecore_main_loop_glib_integrate() + + double ecore_time_get() + double ecore_loop_time_get() + + Ecore_Animator *ecore_animator_add(Ecore_Task_Cb func, void *data) + void *ecore_animator_del(Ecore_Animator *animator) + void ecore_animator_frametime_set(double frametime) + double ecore_animator_frametime_get() + + Ecore_Timer *ecore_timer_add(double t, Ecore_Task_Cb func, void *data) + void *ecore_timer_del(Ecore_Timer *timer) + void ecore_timer_freeze(Ecore_Timer *timer) + void ecore_timer_thaw(Ecore_Timer *timer) + void ecore_timer_interval_set(Ecore_Timer *timer, double t) + double ecore_timer_interval_get(Ecore_Timer *timer) + void ecore_timer_delay(Ecore_Timer *timer, double add) + void ecore_timer_reset(Ecore_Timer *timer) + double ecore_timer_pending_get(Ecore_Timer *timer) + double ecore_timer_precision_get() + double ecore_timer_precision_set(double value) + + Ecore_Idler *ecore_idler_add(Ecore_Task_Cb func, void *data) + void *ecore_idler_del(Ecore_Idler *idler) + Ecore_Idler *ecore_idle_enterer_add(Ecore_Task_Cb func, void *data) + void *ecore_idle_enterer_del(Ecore_Idler *idler) + Ecore_Idler *ecore_idle_exiter_add(Ecore_Task_Cb func, void *data) + 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) + 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) + 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) + 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) + void *ecore_event_handler_del(Ecore_Event_Handler *event_handler) + int ecore_event_type_new() + 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_exe_run_priority_set(int pri) + int ecore_exe_run_priority_get() + 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) + int ecore_exe_send(Ecore_Exe *exe, const_void *data, int size) + 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) + 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_free(Ecore_Exe *exe) + int ecore_exe_pid_get(Ecore_Exe *exe) + 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_cmd_get(Ecore_Exe *exe) + void *ecore_exe_data_get(Ecore_Exe *exe) + Ecore_Exe_Flags ecore_exe_flags_get(Ecore_Exe *exe) + void ecore_exe_pause(Ecore_Exe *exe) + void ecore_exe_continue(Ecore_Exe *exe) + void ecore_exe_interrupt(Ecore_Exe *exe) + void ecore_exe_quit(Ecore_Exe *exe) + void ecore_exe_terminate(Ecore_Exe *exe) + void ecore_exe_kill(Ecore_Exe *exe) + void ecore_exe_signal(Ecore_Exe *exe, int num) + void ecore_exe_hup(Ecore_Exe *exe) + + +cdef extern from "Ecore_File.h": + + ctypedef struct Ecore_File_Download_Job + + 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) + + int ecore_file_init() + int ecore_file_shutdown() + void ecore_file_download_abort(Ecore_File_Download_Job *job) + void ecore_file_download_abort_all() + Eina_Bool ecore_file_download_protocol_available(const_char_ptr protocol) + Eina_Bool ecore_file_download(const_char_ptr url, const_char_ptr dst, + Ecore_File_Download_Completion_Cb completion_cb, + Ecore_File_Download_Progress_Cb progress_cb, + void *data, + Ecore_File_Download_Job **job_ret) + + +#################################################################### +# Python classes +# +cdef class Timer(Eo): + cdef double _interval + cdef readonly object func, args, kargs + cpdef object _task_exec(self) + + +cdef class Animator(Eo): + cdef readonly object func, args, kargs + cpdef object _task_exec(self) + + +cdef class Idler(Eo): + cdef readonly object func, args, kargs + cpdef object _task_exec(self) + + +cdef class IdleEnterer(Idler): + pass + + +cdef class IdleExiter(Idler): + pass + + +cdef class FdHandler(object): + cdef Ecore_Fd_Handler *obj + cdef readonly object func + cdef readonly object args + cdef readonly object kargs + cdef readonly object _prepare_callback + + cdef object _exec(self) + + +cdef class Exe(object): + cdef Ecore_Exe *exe + cdef readonly object __data + cdef object __callbacks + + cdef int _set_obj(self, char *exe_cmd, int flags) except 0 + cdef int _unset_obj(self) except 0 + + +cdef class ExeEventFilter(object): + cdef Ecore_Exe *exe + cdef Ecore_Event_Handler *handler + cdef readonly object owner + cdef readonly object event_type + cdef object callbacks + + +cdef class EventHandler(object): + cdef Ecore_Event_Handler *obj + cdef readonly int type + cdef readonly object event_cls + cdef readonly object func + cdef readonly object args + cdef readonly object kargs + + cdef int _set_obj(self, Ecore_Event_Handler *obj) except 0 + cdef int _unset_obj(self) except 0 + cdef Eina_Bool _exec(self, void *event) except 2 + + +cdef class Event(object): + cdef int _set_obj(self, void *obj) except 0 + + +cdef class EventSignalUser(Event): + cdef readonly object number + + +cdef class EventSignalHup(Event): + pass + + +cdef class EventSignalExit(Event): + cdef readonly object interrupt + cdef readonly object quit + cdef readonly object terminate + + +cdef class EventSignalPower(Event): + pass + + +cdef class CustomEvent(Event): + cdef readonly object obj + + +cdef class QueuedEvent: + cdef Ecore_Event *obj + cdef readonly object args + + cdef int _set_obj(self, Ecore_Event *ev) except 0 + cdef int _unset_obj(self) except 0 + + +cdef class EventExeAdd(Event): + cdef readonly object exe + + +cdef class EventExeDel(Event): + cdef readonly object exe + cdef readonly object pid + cdef readonly object exit_code + cdef readonly object exit_signal + cdef readonly object exited + cdef readonly object signalled + + +cdef class EventExeData(Event): + cdef readonly object exe + cdef readonly object data + cdef readonly object size + cdef readonly object lines + + +cdef class FileDownload: + cdef Ecore_File_Download_Job *job + cdef readonly object completion_cb + cdef readonly object progress_cb + cdef readonly object args + cdef readonly object kargs + + cdef object _exec_completion(self, const_char_ptr file, int status) + cdef object _exec_progress(self, const_char_ptr file, + long int dltotal, long int dlnow, + long int ultotal, long int ulnow) + diff --git a/include/efl.eo.pxd b/include/efl.eo.pxd index 69fd300..f96e004 100644 --- a/include/efl.eo.pxd +++ b/include/efl.eo.pxd @@ -1,45 +1,45 @@ -# Copyright (C) 2007-2013 various contributors (see AUTHORS) -# -# This file is part of Python-EFL. -# -# Python-EFL is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# 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, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this Python-EFL. If not, see . - -from efl.c_eo cimport Eo as cEo -from efl.c_eo cimport Eo_Class -from efl cimport const_char_ptr, Eina_List, const_Eina_List - - -cdef class Eo(object): - cdef cEo *obj - cdef readonly data - - cdef _set_obj(self, cEo *obj) -# cdef _unset_obj(self) -# cdef _add_obj(self, Eo_Class *klass, cEo *parent) - - -cdef int PY_REFCOUNT(object o) - -cdef object object_from_instance(cEo *obj) -cdef _object_mapping_register(char *name, klass) -cdef _object_mapping_unregister(char*name) - -cdef inline unicode _touni(char* s) -cdef inline char* _fruni(s) -cdef inline unicode _ctouni(const_char_ptr s) -cdef inline const_char_ptr _cfruni(s) - -cdef inline _strings_to_python(const_Eina_List *lst) -cdef inline Eina_List * _strings_from_python(strings) -cdef inline _object_list_to_python(const_Eina_List *lst) +# Copyright (C) 2007-2013 various contributors (see AUTHORS) +# +# This file is part of Python-EFL. +# +# Python-EFL is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# 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, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this Python-EFL. If not, see . + +from efl.c_eo cimport Eo as cEo +from efl.c_eo cimport Eo_Class +from efl cimport const_char_ptr, Eina_List, const_Eina_List + + +cdef class Eo(object): + cdef cEo *obj + cdef readonly data + + cdef _set_obj(self, cEo *obj) +# cdef _unset_obj(self) +# cdef _add_obj(self, Eo_Class *klass, cEo *parent) + + +cdef int PY_REFCOUNT(object o) + +cdef object object_from_instance(cEo *obj) +cdef _object_mapping_register(char *name, klass) +cdef _object_mapping_unregister(char*name) + +cdef inline unicode _touni(char* s) +cdef inline char* _fruni(s) +cdef inline unicode _ctouni(const_char_ptr s) +cdef inline const_char_ptr _cfruni(s) + +cdef inline _strings_to_python(const_Eina_List *lst) +cdef inline Eina_List * _strings_from_python(strings) +cdef inline _object_list_to_python(const_Eina_List *lst) diff --git a/include/efl.evas.pxd b/include/efl.evas.pxd index 14128c4..6fbdb55 100644 --- a/include/efl.evas.pxd +++ b/include/efl.evas.pxd @@ -1,1013 +1,1013 @@ -# Copyright (C) 2007-2013 various contributors (see AUTHORS) -# -# This file is part of Python-EFL. -# -# Python-EFL is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# 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, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this Python-EFL. If not, see . - -from efl cimport * -from efl.eo cimport Eo -# cimport efl.c_eo as c_eo -from efl.c_eo cimport Eo as cEo -from efl.c_eo cimport const_Eo_Class - - -cdef extern from "Evas.h": - #################################################################### - # Basic Types - # - ctypedef int Evas_Coord - ctypedef int Evas_Angle - ctypedef int Evas_Font_Size - - - #################################################################### - # Enumerations - # - ctypedef enum Evas_Layer: - pass - - ctypedef enum Evas_Text: - pass - - ctypedef enum Evas_Callback_Type: - pass - - - ctypedef enum Evas_Pixel_Format: - pass - - - ctypedef enum Evas_Color_Space: - pass - - - ctypedef enum Evas_Texture: - pass - - - cdef enum Evas_Alloc_Error: - pass - - - cdef enum Evas_Load_Error: - pass - - - ctypedef enum Evas_Button_Flags: - pass - - - ctypedef enum Evas_Event_Flags: - pass - - - ctypedef enum Evas_Font_Hinting_Flags: - pass - - - ctypedef enum Evas_Colorspace: - pass - - - ctypedef enum Evas_Render_Op: - pass - - - ctypedef enum Evas_Text_Style_Type: - pass - - - ctypedef enum Evas_Textblock_Text_Type: - pass - - - ctypedef enum Evas_Smart_Class_Version: - EVAS_SMART_CLASS_VERSION - - - ctypedef enum Evas_Object_Pointer_Mode: - pass - - - ctypedef enum Evas_Aspect_Control: - pass - - #################################################################### - # Structures - # - ctypedef struct Evas_Point: - int x - int y - - ctypedef struct Evas_Coord_Point: # Evas_Coord is int now - Evas_Coord x - Evas_Coord y - - ctypedef struct Evas_Coord_Precision_Point: # Evas_Coord is int now - Evas_Coord x - Evas_Coord y - double xsub - double ysub - - ctypedef struct Evas_Position: - Evas_Point output - Evas_Coord_Point canvas - - ctypedef struct Evas_Precision_Position: - Evas_Point output - Evas_Coord_Precision_Point canvas - - ctypedef struct Evas_Hash - - ctypedef cEo Evas - ctypedef Evas const_Evas "const Evas" - - ctypedef cEo Evas_Object - ctypedef Evas_Object const_Evas_Object "const Evas_Object" - - ctypedef struct Evas_Modifier - ctypedef struct Evas_Lock - ctypedef struct Evas_Smart - ctypedef struct Evas_Native_Surface - ctypedef struct Evas_Textblock_Style - ctypedef Evas_Textblock_Style const_Evas_Textblock_Style "const Evas_Textblock_Style" - ctypedef struct Evas_Textblock_Cursor - ctypedef Evas_Textblock_Cursor const_Evas_Textblock_Cursor "const Evas_Textblock_Cursor" - - ctypedef struct Evas_Smart_Cb_Description: - const_char_ptr name - const_char_ptr type - ctypedef Evas_Smart_Cb_Description const_Evas_Smart_Cb_Description "const Evas_Smart_Cb_Description" - - ctypedef struct Evas_Smart_Interface - ctypedef Evas_Smart_Interface const_Evas_Smart_Interface "const Evas_Smart_Interface" - - ctypedef struct Evas_Smart_Class - ctypedef Evas_Smart_Class const_Evas_Smart_Class "const Evas_Smart_Class" - ctypedef struct Evas_Smart_Class: - const_char_ptr name - int version - void (*add)(Evas_Object *o) - void (*delete "del")(Evas_Object *o) - void (*move)(Evas_Object *o, int x, int y) - void (*resize)(Evas_Object *o, int w, int h) - void (*show)(Evas_Object *o) - void (*hide)(Evas_Object *o) - void (*color_set)(Evas_Object *o, int r, int g, int b, int a) - void (*clip_set)(Evas_Object *o, Evas_Object *clip) - void (*clip_unset)(Evas_Object *o) - void (*calculate)(Evas_Object *o) - void (*member_add)(Evas_Object *o, Evas_Object *child) - void (*member_del)(Evas_Object *o, Evas_Object *child) - const_Evas_Smart_Class *parent - Evas_Smart_Cb_Description *callbacks - const_Evas_Smart_Interface **interfaces - const_void *data - - ctypedef struct Evas_Device - - ctypedef struct Evas_Event_Mouse_In: - int buttons - Evas_Point output - Evas_Coord_Point canvas - void *data - Evas_Modifier *modifiers - Evas_Lock *locks - unsigned int timestamp - Evas_Event_Flags event_flags - Evas_Device *dev - - ctypedef struct Evas_Event_Mouse_Out: - int buttons - Evas_Point output - Evas_Coord_Point canvas - void *data - Evas_Modifier *modifiers - Evas_Lock *locks - unsigned int timestamp - Evas_Event_Flags event_flags - Evas_Device *dev - - ctypedef struct Evas_Event_Mouse_Down: - int button - Evas_Point output - Evas_Coord_Point canvas - void *data - Evas_Modifier *modifiers - Evas_Lock *locks - Evas_Button_Flags flags - unsigned int timestamp - Evas_Event_Flags event_flags - Evas_Device *dev - - ctypedef struct Evas_Event_Mouse_Up: - int button - Evas_Point output - Evas_Coord_Point canvas - void *data - Evas_Modifier *modifiers - Evas_Lock *locks - Evas_Button_Flags flags - unsigned int timestamp - Evas_Event_Flags event_flags - Evas_Device *dev - - ctypedef struct Evas_Event_Mouse_Move: - int buttons - Evas_Position cur - Evas_Position prev - void *data - Evas_Modifier *modifiers - Evas_Lock *locks - unsigned int timestamp - Evas_Event_Flags event_flags - Evas_Device *dev - - - ctypedef struct Evas_Event_Multi_Down: - int device - double radius - double radius_x - double radius_y - double pressure - double angle - Evas_Point output - Evas_Coord_Precision_Point canvas - void *data - Evas_Modifier *modifiers - Evas_Lock *locks - Evas_Button_Flags flags - unsigned int timestamp - Evas_Event_Flags event_flags - Evas_Device *dev - - ctypedef struct Evas_Event_Multi_Up: - int device - double radius - double radius_x - double radius_y - double pressure - double angle - Evas_Point output - Evas_Coord_Precision_Point canvas - void *data - Evas_Modifier *modifiers - Evas_Lock *locks - Evas_Button_Flags flags - unsigned int timestamp - Evas_Event_Flags event_flags - Evas_Device *dev - - ctypedef struct Evas_Event_Multi_Move: - double radius - double radius_x - double radius_y - double pressure - double angle - Evas_Precision_Position cur - void *data - Evas_Modifier *modifiers - Evas_Lock *locks - unsigned int timestamp - Evas_Event_Flags event_flags - Evas_Device *dev - - ctypedef struct Evas_Event_Mouse_Wheel: - int direction # 0 = default up/down wheel - int z # ...,-2,-1 = down, 1,2,... = up */ - Evas_Point output - Evas_Coord_Point canvas - void *data - Evas_Modifier *modifiers - Evas_Lock *locks - unsigned int timestamp - Evas_Event_Flags event_flags - Evas_Device *dev - - ctypedef struct Evas_Event_Key_Down: - char *keyname - void *data - Evas_Modifier *modifiers - Evas_Lock *locks - const_char_ptr key - const_char_ptr string - const_char_ptr compose - unsigned int timestamp - Evas_Event_Flags event_flags - Evas_Device *dev - - ctypedef struct Evas_Event_Key_Up: - char *keyname - void *data - Evas_Modifier *modifiers - Evas_Lock *locks - const_char_ptr key - const_char_ptr string - const_char_ptr compose - unsigned int timestamp - Evas_Event_Flags event_flags - Evas_Device *dev - - ctypedef struct Evas_Event_Hold: - int hold - void *data - unsigned int timestamp - Evas_Event_Flags event_flags - Evas_Device *dev - - ctypedef struct Evas_Object_Box_Option: - Evas_Object *obj - - ctypedef struct Evas_Map - ctypedef Evas_Map const_Evas_Map "const Evas_Map" - - - #################################################################### - # Other typedefs - # - ctypedef void (*Evas_Event_Cb)(void *data, Evas *e, void *event_info) - ctypedef void (*Evas_Object_Event_Cb)(void *data, Evas *e, Evas_Object *obj, void *event_info) - ctypedef void (*Evas_Smart_Cb)(void *data, Evas_Object *obj, void *event_info) - - ctypedef void *Evas_Object_Box_Data - ctypedef void (*Evas_Object_Box_Layout)(Evas_Object *o, Evas_Object_Box_Data *priv, void *user_data) - - - #################################################################### - # Engine - # - int evas_init() - int evas_shutdown() - - - #################################################################### - # Canvas - # - Evas *evas_new() - void evas_free(Evas *e) - const_Eo_Class *evas_class_get() - - int evas_render_method_lookup(const_char_ptr name) - Eina_List *evas_render_method_list() - void evas_render_method_list_free(Eina_List *list) - - void evas_output_method_set(Evas *e, int render_method) - int evas_output_method_get(Evas *e) - - void *evas_engine_info_get(Evas *e) - int evas_engine_info_set(Evas *e, void *info) - - void evas_output_size_set(Evas *e, int w, int h) - void evas_output_size_get(const_Evas *e, int *w, int *h) - void evas_output_viewport_set(Evas *e, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h) - void evas_output_viewport_get(const_Evas *e, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h) - Evas_Coord evas_coord_screen_x_to_world(const_Evas *e, int x) - Evas_Coord evas_coord_screen_y_to_world(const_Evas *e, int y) - int evas_coord_world_x_to_screen(const_Evas *e, Evas_Coord x) - int evas_coord_world_y_to_screen(const_Evas *e, Evas_Coord y) - - void evas_pointer_output_xy_get(const_Evas *e, int *x, int *y) - void evas_pointer_canvas_xy_get(const_Evas *e, Evas_Coord *x, Evas_Coord *y) - int evas_pointer_button_down_mask_get(const_Evas *e) - Eina_Bool evas_pointer_inside_get(const_Evas *e) - - Evas_Object *evas_object_top_at_xy_get(const_Evas *e, Evas_Coord x, Evas_Coord y, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects) - Evas_Object *evas_object_top_at_pointer_get(const_Evas *e) - Evas_Object *evas_object_top_in_rectangle_get(const_Evas *e, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects) - - Eina_List *evas_objects_at_xy_get(const_Evas *e, Evas_Coord x, Evas_Coord y, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects) - Eina_List *evas_objects_in_rectangle_get(const_Evas *e, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects) - - void evas_damage_rectangle_add(Evas *e, int x, int y, int w, int h) - void evas_obscured_rectangle_add(Evas *e, int x, int y, int w, int h) - void evas_obscured_clear(Evas *e) - Eina_List *evas_render_updates(Evas *e) - void evas_render_updates_free(Eina_List *updates) - void evas_render(Evas *e) - void evas_norender(Evas *e) - void *evas_data_attach_get(const_Evas *e) - void evas_data_attach_set(Evas *e, void *data) - - Evas_Object *evas_focus_get(const_Evas *e) - - Evas_Modifier *evas_key_modifier_get(Evas *e) - Eina_Bool evas_key_modifier_is_set(Evas_Modifier *m, const_char_ptr keyname) - - void evas_event_freeze(Evas *e) - void evas_event_thaw(Evas *e) - int evas_event_freeze_get(const_Evas *e) - - void evas_event_feed_mouse_down(Evas *e, int b, Evas_Button_Flags flags, unsigned int timestamp, const_void *data) - void evas_event_feed_mouse_up(Evas *e, int b, Evas_Button_Flags flags, unsigned int timestamp, const_void *data) - void evas_event_feed_mouse_cancel(Evas *e, unsigned int timestamp, const_void *data) - void evas_event_feed_mouse_wheel(Evas *e, int direction, int z, unsigned int timestamp, const_void *data) - void evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const_void *data) - void evas_event_feed_mouse_in(Evas *e, unsigned int timestamp, const_void *data) - void evas_event_feed_mouse_out(Evas *e, unsigned int timestamp, const_void *data) - void evas_event_feed_multi_down(Evas *e, int d, int x, int y, double rad, double radx, double rady, double pres, double ang, double fx, double fy, Evas_Button_Flags flags, unsigned int timestamp, const_void *data) - void evas_event_feed_multi_up(Evas *e, int d, int x, int y, double rad, double radx, double rady, double pres, double ang, double fx, double fy, Evas_Button_Flags flags, unsigned int timestamp, const_void *data) - void evas_event_feed_multi_move(Evas *e, int d, int x, int y, double rad, double radx, double rady, double pres, double ang, double fx, double fy, unsigned int timestamp, const_void *data) - void evas_event_feed_key_down(Evas *e, const_char_ptr keyname, const_char_ptr key, const_char_ptr string, const_char_ptr compose, unsigned int timestamp, const_void *data) - void evas_event_feed_key_up(Evas *e, const_char_ptr keyname, const_char_ptr key, const_char_ptr string, const_char_ptr compose, unsigned int timestamp, const_void *data) - void evas_event_feed_hold(Evas *e, int hold, unsigned int timestamp, const_void *data) - - void evas_font_path_clear(Evas *e) - void evas_font_path_append(Evas *e, const_char_ptr path) - void evas_font_path_prepend(Evas *e, const_char_ptr path) - const_Eina_List *evas_font_path_list(const_Evas *e) - - void evas_font_hinting_set(Evas *e, Evas_Font_Hinting_Flags hinting) - Evas_Font_Hinting_Flags evas_font_hinting_get(const_Evas *e) - Eina_Bool evas_font_hinting_can_hint(const_Evas *e, Evas_Font_Hinting_Flags hinting) - - void evas_font_cache_flush(Evas *e) - void evas_font_cache_set(Evas *e, int size) - int evas_font_cache_get(const_Evas *e) - - Eina_List *evas_font_available_list(const_Evas *e) - void evas_font_available_list_free(Evas *e, Eina_List *available) - - void evas_image_cache_flush(Evas *e) - void evas_image_cache_reload(Evas *e) - void evas_image_cache_set(Evas *e, int size) - int evas_image_cache_get(const_Evas *e) - - - #################################################################### - # Base Object - # - void evas_object_del(Evas_Object *obj) - Evas *evas_object_evas_get(const_Evas_Object *obj) - - void evas_object_data_set(Evas_Object *obj, const_char_ptr key, const_void *data) - void *evas_object_data_get(const_Evas_Object *obj, const_char_ptr key) - void *evas_object_data_del(Evas_Object *obj, const_char_ptr key) - - const_char_ptr evas_object_type_get(const_Evas_Object *obj) - - void evas_object_layer_set(Evas_Object *obj, int l) - int evas_object_layer_get(const_Evas_Object *obj) - - void evas_object_raise(Evas_Object *obj) - void evas_object_lower(Evas_Object *obj) - void evas_object_stack_above(Evas_Object *obj, Evas_Object *above) - void evas_object_stack_below(Evas_Object *obj, Evas_Object *below) - Evas_Object *evas_object_above_get(const_Evas_Object *obj) - Evas_Object *evas_object_below_get(const_Evas_Object *obj) - Evas_Object *evas_object_bottom_get(const_Evas *e) - Evas_Object *evas_object_top_get(const_Evas *e) - - void evas_object_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y) - void evas_object_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h) - void evas_object_geometry_get(const_Evas_Object *obj, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h) - - void evas_object_size_hint_min_get(const_Evas_Object *obj, Evas_Coord *w, Evas_Coord *h) - void evas_object_size_hint_min_set(Evas_Object *obj, Evas_Coord w, Evas_Coord h) - void evas_object_size_hint_max_get(const_Evas_Object *obj, Evas_Coord *w, Evas_Coord *h) - void evas_object_size_hint_max_set(Evas_Object *obj, Evas_Coord w, Evas_Coord h) - void evas_object_size_hint_request_get(const_Evas_Object *obj, Evas_Coord *w, Evas_Coord *h) - void evas_object_size_hint_request_set(Evas_Object *obj, Evas_Coord w, Evas_Coord h) - void evas_object_size_hint_aspect_get(const_Evas_Object *obj, Evas_Aspect_Control *aspect, Evas_Coord *w, Evas_Coord *h) - void evas_object_size_hint_aspect_set(Evas_Object *obj, Evas_Aspect_Control aspect, Evas_Coord w, Evas_Coord h) - void evas_object_size_hint_align_get(const_Evas_Object *obj, double *x, double *y) - void evas_object_size_hint_align_set(Evas_Object *obj, double x, double y) - void evas_object_size_hint_weight_get(const_Evas_Object *obj, double *x, double *y) - void evas_object_size_hint_weight_set(Evas_Object *obj, double x, double y) - void evas_object_size_hint_padding_get(const_Evas_Object *obj, Evas_Coord *l, Evas_Coord *r, Evas_Coord *t, Evas_Coord *b) - void evas_object_size_hint_padding_set(Evas_Object *obj, Evas_Coord l, Evas_Coord r, Evas_Coord t, Evas_Coord b) - - void evas_object_show(Evas_Object *obj) - void evas_object_hide(Evas_Object *obj) - Eina_Bool evas_object_visible_get(const_Evas_Object *obj) - - void evas_object_static_clip_set(Evas_Object *obj, Eina_Bool is_static_clip) - Eina_Bool evas_object_static_clip_get(Evas_Object *obj) - - void evas_object_render_op_set(Evas_Object *obj, Evas_Render_Op op) - Evas_Render_Op evas_object_render_op_get(const_Evas_Object *obj) - - void evas_object_anti_alias_set(Evas_Object *obj, Eina_Bool antialias) - Eina_Bool evas_object_anti_alias_get(const_Evas_Object *obj) - - void evas_object_color_set(Evas_Object *obj, int r, int g, int b, int a) - void evas_object_color_get(const_Evas_Object *obj, int *r, int *g, int *b, int *a) - - void evas_color_argb_premul(int a, int *r, int *g, int *b) - void evas_color_argb_unpremul(int a, int *r, int *g, int *b) - - void evas_color_hsv_to_rgb(float h, float s, float v, int *r, int *g, int *b) - void evas_color_rgb_to_hsv(int r, int g, int b, float *h, float *s, float *v) - - void evas_object_clip_set(Evas_Object *obj, Evas_Object *clip) - Evas_Object *evas_object_clip_get(const_Evas_Object *obj) - void evas_object_clip_unset(Evas_Object *obj) - const_Eina_List *evas_object_clipees_get(const_Evas_Object *obj) - - void evas_object_name_set(Evas_Object *obj, const_char_ptr name) - const_char_ptr evas_object_name_get(const_Evas_Object *obj) - Evas_Object *evas_object_name_find(const_Evas *e, const_char_ptr name) - - int evas_async_events_fd_get() - int evas_async_events_process() - - void evas_object_event_callback_add(Evas_Object *obj, Evas_Callback_Type type, Evas_Object_Event_Cb func, const_void *data) - void *evas_object_event_callback_del(Evas_Object *obj, Evas_Callback_Type type, Evas_Object_Event_Cb func) - - void evas_event_callback_add(Evas *e, Evas_Callback_Type type, Evas_Event_Cb func, const_void *data) - void *evas_event_callback_del(Evas *e, Evas_Callback_Type type, Evas_Event_Cb func) - - void evas_object_pass_events_set(Evas_Object *obj, Eina_Bool p) - Eina_Bool evas_object_pass_events_get(const_Evas_Object *obj) - void evas_object_repeat_events_set(Evas_Object *obj, Eina_Bool repeat) - Eina_Bool evas_object_repeat_events_get(const_Evas_Object *obj) - void evas_object_propagate_events_set(Evas_Object *obj, Eina_Bool prop) - Eina_Bool evas_object_propagate_events_get(const_Evas_Object *obj) - void evas_object_pointer_mode_set(Evas_Object *obj, Evas_Object_Pointer_Mode setting) - Evas_Object_Pointer_Mode evas_object_pointer_mode_get(const_Evas_Object *obj) - - void evas_object_focus_set(Evas_Object *obj, Eina_Bool focus) - Eina_Bool evas_object_focus_get(const_Evas_Object *obj) - - - #################################################################### - # Smart Object (py3:TODO) - # - void evas_smart_free(Evas_Smart *s) - Evas_Smart *evas_smart_class_new(Evas_Smart_Class *sc) - Evas_Smart_Class *evas_smart_class_get(Evas_Smart *s) - const_Eo_Class *evas_object_smart_class_get() - - void *evas_smart_data_get(Evas_Smart *s) - - Evas_Object *evas_object_smart_add(Evas *e, Evas_Smart *s) - void evas_object_smart_member_add(Evas_Object *obj, Evas_Object *smart_obj) - void evas_object_smart_member_del(Evas_Object *obj) - Evas_Object *evas_object_smart_parent_get(const_Evas_Object *obj) - Eina_List *evas_object_smart_members_get(const_Evas_Object *obj) - Evas_Smart *evas_object_smart_smart_get(const_Evas_Object *obj) - void *evas_object_smart_data_get(const_Evas_Object *obj) - void evas_object_smart_data_set(Evas_Object *obj, void *data) - void evas_object_smart_callback_add(Evas_Object *obj, const_char_ptr event, Evas_Smart_Cb func, const_void *data) - void *evas_object_smart_callback_del(Evas_Object *obj, const_char_ptr event, Evas_Smart_Cb func) - void evas_object_smart_callback_call(Evas_Object *obj, const_char_ptr event, void *event_info) - void evas_object_smart_changed(Evas_Object *obj) - void evas_object_smart_need_recalculate_set(Evas_Object *obj, int value) - int evas_object_smart_need_recalculate_get(const_Evas_Object *obj) - void evas_object_smart_calculate(Evas_Object *obj) - void evas_object_smart_move_children_relative(Evas_Object *obj, int dx, int dy) - - - #################################################################### - # Rectangle Object - # - Evas_Object *evas_object_rectangle_add(Evas *e) - const_Eo_Class *evas_object_rectangle_class_get() - - - #################################################################### - # Line Object - # - Evas_Object *evas_object_line_add(Evas *e) - void evas_object_line_xy_set(Evas_Object *obj, Evas_Coord x1, Evas_Coord y1, Evas_Coord x2, Evas_Coord y2) - void evas_object_line_xy_get(const_Evas_Object *obj, Evas_Coord *x1, Evas_Coord *y1, Evas_Coord *x2, Evas_Coord *y2) - const_Eo_Class *evas_object_line_class_get() - - - #################################################################### - # Image Object - # - Evas_Object *evas_object_image_add(Evas *e) - const_Eo_Class *evas_object_image_class_get() - void evas_object_image_file_set(Evas_Object *obj, const_char_ptr file, const_char_ptr key) - void evas_object_image_file_get(const_Evas_Object *obj, const_char_ptr *file, const_char_ptr *key) - void evas_object_image_border_set(Evas_Object *obj, int l, int r, int t, int b) - void evas_object_image_border_get(const_Evas_Object *obj, int *l, int *r, int *t, int *b) - void evas_object_image_border_center_fill_set(Evas_Object *obj, Eina_Bool fill) - Eina_Bool evas_object_image_border_center_fill_get(const_Evas_Object *obj) - void evas_object_image_fill_set(Evas_Object *obj, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h) - void evas_object_image_fill_get(const_Evas_Object *obj, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h) - void evas_object_image_size_set(Evas_Object *obj, int w, int h) - void evas_object_image_size_get(const_Evas_Object *obj, int *w, int *h) - int evas_object_image_stride_get(const_Evas_Object *obj) - int evas_object_image_load_error_get(const_Evas_Object *obj) - void evas_object_image_data_set(Evas_Object *obj, void *data) - void *evas_object_image_data_get(const_Evas_Object *obj, Eina_Bool for_writing) - void evas_object_image_data_copy_set(Evas_Object *obj, void *data) - void evas_object_image_data_update_add(Evas_Object *obj, int x, int y, int w, int h) - void evas_object_image_alpha_set(Evas_Object *obj, Eina_Bool has_alpha) - Eina_Bool evas_object_image_alpha_get(const_Evas_Object *obj) - void evas_object_image_smooth_scale_set(Evas_Object *obj, Eina_Bool smooth_scale) - Eina_Bool evas_object_image_smooth_scale_get(const_Evas_Object *obj) - void evas_object_image_preload(Evas_Object *obj, Eina_Bool cancel) - void evas_object_image_reload(Evas_Object *obj) - Eina_Bool evas_object_image_save(const_Evas_Object *obj, const_char_ptr file, const_char_ptr key, const_char_ptr flags) - #Eina_Bool evas_object_image_pixels_import(Evas_Object *obj, Evas_Pixel_Import_Source *pixels) - void evas_object_image_pixels_get_callback_set(Evas_Object *obj, void (*func) (void *data, Evas_Object *o), void *data) - void evas_object_image_pixels_dirty_set(Evas_Object *obj, Eina_Bool dirty) - Eina_Bool evas_object_image_pixels_dirty_get(const_Evas_Object *obj) - void evas_object_image_load_dpi_set(Evas_Object *obj, double dpi) - double evas_object_image_load_dpi_get(const_Evas_Object *obj) - void evas_object_image_load_size_set(Evas_Object *obj, int w, int h) - void evas_object_image_load_size_get(const_Evas_Object *obj, int *w, int *h) - void evas_object_image_load_scale_down_set(Evas_Object *obj, int scale_down) - int evas_object_image_load_scale_down_get(const_Evas_Object *obj) - void evas_object_image_colorspace_set(Evas_Object *obj, Evas_Colorspace cspace) - Evas_Colorspace evas_object_image_colorspace_get(const_Evas_Object *obj) - void evas_object_image_native_surface_set(Evas_Object *obj, Evas_Native_Surface *surf) - Evas_Native_Surface *evas_object_image_native_surface_get(const_Evas_Object *obj) - - - #################################################################### - # Polygon Object - # - Evas_Object *evas_object_polygon_add(Evas *e) - const_Eo_Class *evas_object_polygon_class_get() - void evas_object_polygon_point_add(Evas_Object *obj, Evas_Coord x, Evas_Coord y) - void evas_object_polygon_points_clear(Evas_Object *obj) - - - #################################################################### - # Text Object (py3:TODO) - # - Evas_Object *evas_object_text_add(Evas *e) - const_Eo_Class *evas_object_text_class_get() - void evas_object_text_font_source_set(Evas_Object *obj, const_char_ptr font) - const_char_ptr evas_object_text_font_source_get(const_Evas_Object *obj) - void evas_object_text_font_set(Evas_Object *obj, const_char_ptr font, Evas_Font_Size size) - void evas_object_text_font_get(const_Evas_Object *obj, const_char_ptr *font, Evas_Font_Size *size) - void evas_object_text_text_set(Evas_Object *obj, const_char_ptr text) - const_char_ptr evas_object_text_text_get(const_Evas_Object *obj) - Evas_Coord evas_object_text_ascent_get(const_Evas_Object *obj) - Evas_Coord evas_object_text_descent_get(const_Evas_Object *obj) - Evas_Coord evas_object_text_max_ascent_get(const_Evas_Object *obj) - Evas_Coord evas_object_text_max_descent_get(const_Evas_Object *obj) - Evas_Coord evas_object_text_horiz_advance_get(const_Evas_Object *obj) - Evas_Coord evas_object_text_vert_advance_get(const_Evas_Object *obj) - Evas_Coord evas_object_text_inset_get(const_Evas_Object *obj) - int evas_object_text_char_pos_get(const_Evas_Object *obj, int pos, Evas_Coord *cx, Evas_Coord *cy, Evas_Coord *cw, Evas_Coord *ch) - int evas_object_text_char_coords_get(const_Evas_Object *obj, Evas_Coord x, Evas_Coord y, Evas_Coord *cx, Evas_Coord *cy, Evas_Coord *cw, Evas_Coord *ch) - Evas_Text_Style_Type evas_object_text_style_get(const_Evas_Object *obj) - void evas_object_text_style_set(Evas_Object *obj, Evas_Text_Style_Type type) - void evas_object_text_shadow_color_set(Evas_Object *obj, int r, int g, int b, int a) - void evas_object_text_shadow_color_get(const_Evas_Object *obj, int *r, int *g, int *b, int *a) - void evas_object_text_glow_color_set(Evas_Object *obj, int r, int g, int b, int a) - void evas_object_text_glow_color_get(const_Evas_Object *obj, int *r, int *g, int *b, int *a) - void evas_object_text_glow2_color_set(Evas_Object *obj, int r, int g, int b, int a) - void evas_object_text_glow2_color_get(const_Evas_Object *obj, int *r, int *g, int *b, int *a) - void evas_object_text_outline_color_set(Evas_Object *obj, int r, int g, int b, int a) - void evas_object_text_outline_color_get(const_Evas_Object *obj, int *r, int *g, int *b, int *a) - void evas_object_text_style_pad_get(const_Evas_Object *obj, int *l, int *r, int *t, int *b) - - - #################################################################### - # Textblock Object (py3:TODO) - # - Evas_Object *evas_object_textblock_add(Evas *e) - const_Eo_Class *evas_object_textblock_class_get() - Evas_Textblock_Style *evas_textblock_style_new() - void evas_textblock_style_free(Evas_Textblock_Style *ts) - void evas_textblock_style_set(Evas_Textblock_Style *ts, const_char_ptr text) - const_char_ptr evas_textblock_style_get(const_Evas_Textblock_Style *ts) - void evas_object_textblock_style_set(Evas_Object *obj, Evas_Textblock_Style *ts) - Evas_Textblock_Style *evas_object_textblock_style_get(const_Evas_Object *obj) - void evas_object_textblock_replace_char_set(Evas_Object *obj, const_char_ptr ch) - const_char_ptr evas_object_textblock_replace_char_get(const_Evas_Object *obj) - const_char_ptr evas_textblock_escape_string_get(const_char_ptr escape) - const_char_ptr evas_textblock_string_escape_get(const_char_ptr string, int *len_ret) - void evas_object_textblock_text_markup_set(Evas_Object *obj, const_char_ptr text) - void evas_object_textblock_text_markup_prepend(Evas_Textblock_Cursor *cur, const_char_ptr text) - const_char_ptr evas_object_textblock_text_markup_get(const_Evas_Object *obj) - Evas_Textblock_Cursor *evas_object_textblock_cursor_get(const_Evas_Object *obj) - Evas_Textblock_Cursor *evas_object_textblock_cursor_new(Evas_Object *obj) - void evas_textblock_cursor_free(Evas_Textblock_Cursor *cur) - void evas_textblock_cursor_node_first(Evas_Textblock_Cursor *cur) - void evas_textblock_cursor_node_last(Evas_Textblock_Cursor *cur) - Eina_Bool evas_textblock_cursor_node_next(Evas_Textblock_Cursor *cur) - Eina_Bool evas_textblock_cursor_node_prev(Evas_Textblock_Cursor *cur) - Eina_Bool evas_textblock_cursor_char_next(Evas_Textblock_Cursor *cur) - Eina_Bool evas_textblock_cursor_char_prev(Evas_Textblock_Cursor *cur) - void evas_textblock_cursor_char_first(Evas_Textblock_Cursor *cur) - void evas_textblock_cursor_char_last(Evas_Textblock_Cursor *cur) - void evas_textblock_cursor_line_first(Evas_Textblock_Cursor *cur) - void evas_textblock_cursor_line_last(Evas_Textblock_Cursor *cur) - int evas_textblock_cursor_pos_get(const_Evas_Textblock_Cursor *cur) - void evas_textblock_cursor_pos_set(Evas_Textblock_Cursor *cur, int pos) - Eina_Bool evas_textblock_cursor_line_set(Evas_Textblock_Cursor *cur, int line) - int evas_textblock_cursor_compare(Evas_Textblock_Cursor *cur1, Evas_Textblock_Cursor *cur2) - void evas_textblock_cursor_copy(Evas_Textblock_Cursor *cur, Evas_Textblock_Cursor *cur_dest) - void evas_textblock_cursor_text_append(Evas_Textblock_Cursor *cur, const_char_ptr text) - void evas_textblock_cursor_text_prepend(Evas_Textblock_Cursor *cur, const_char_ptr text) - void evas_textblock_cursor_format_append(Evas_Textblock_Cursor *cur, const_char_ptr format) - void evas_textblock_cursor_format_prepend(Evas_Textblock_Cursor *cur, const_char_ptr format) - void evas_textblock_cursor_node_delete(Evas_Textblock_Cursor *cur) - void evas_textblock_cursor_char_delete(Evas_Textblock_Cursor *cur) - void evas_textblock_cursor_range_delete(Evas_Textblock_Cursor *cur1, Evas_Textblock_Cursor *cur2) - const_char_ptr evas_textblock_cursor_node_text_get(const_Evas_Textblock_Cursor *cur) - int evas_textblock_cursor_node_text_length_get(const_Evas_Textblock_Cursor *cur) - const_char_ptr evas_textblock_cursor_node_format_get(const_Evas_Textblock_Cursor *cur) - Eina_Bool evas_textblock_cursor_node_format_is_visible_get(const_Evas_Textblock_Cursor *cur) - const_char_ptr evas_textblock_cursor_range_text_get(const_Evas_Textblock_Cursor *cur1, Evas_Textblock_Cursor *cur2, Evas_Textblock_Text_Type format) - int evas_textblock_cursor_char_geometry_get(const_Evas_Textblock_Cursor *cur, Evas_Coord *cx, Evas_Coord *cy, Evas_Coord *cw, Evas_Coord *ch) - int evas_textblock_cursor_line_geometry_get(const_Evas_Textblock_Cursor *cur, Evas_Coord *cx, Evas_Coord *cy, Evas_Coord *cw, Evas_Coord *ch) - Eina_Bool evas_textblock_cursor_char_coord_set(Evas_Textblock_Cursor *cur, Evas_Coord x, Evas_Coord y) - int evas_textblock_cursor_line_coord_set(Evas_Textblock_Cursor *cur, Evas_Coord y) - Eina_List *evas_textblock_cursor_range_geometry_get(const_Evas_Textblock_Cursor *cur1, Evas_Textblock_Cursor *cur2) - Eina_Bool evas_object_textblock_line_number_geometry_get(const_Evas_Object *obj, int line, Evas_Coord *cx, Evas_Coord *cy, Evas_Coord *cw, Evas_Coord *ch) - void evas_object_textblock_clear(Evas_Object *obj) - void evas_object_textblock_size_formatted_get(const_Evas_Object *obj, Evas_Coord *w, Evas_Coord *h) - void evas_object_textblock_size_native_get(const_Evas_Object *obj, Evas_Coord *w, Evas_Coord *h) - void evas_object_textblock_style_insets_get(const_Evas_Object *obj, Evas_Coord *l, Evas_Coord *r, Evas_Coord *t, Evas_Coord *b) - - - #################################################################### - # Box Object - # - Evas_Object *evas_object_box_add(Evas *e) - Evas_Object *evas_object_box_add_to(Evas_Object *parent) - const_Eo_Class *evas_object_box_class_get() - - void evas_object_box_align_set(Evas_Object *o, double horizontal, double vertical) - void evas_object_box_align_get(const_Evas_Object *o, double *horizontal, double *vertical) - void evas_object_box_padding_set(Evas_Object *o, Evas_Coord horizontal, Evas_Coord vertical) - void evas_object_box_padding_get(const_Evas_Object *o, Evas_Coord *horizontal, Evas_Coord *vertical) - - Evas_Object_Box_Option *evas_object_box_append(Evas_Object *o, Evas_Object *child) - Evas_Object_Box_Option *evas_object_box_prepend(Evas_Object *o, Evas_Object *child) - Evas_Object_Box_Option *evas_object_box_insert_before(Evas_Object *o, Evas_Object *child, Evas_Object *reference) - Evas_Object_Box_Option *evas_object_box_insert_after(Evas_Object *o, Evas_Object *child, Evas_Object *reference) - Evas_Object_Box_Option *evas_object_box_insert_at(Evas_Object *o, Evas_Object *child, unsigned int pos) - - Eina_Bool evas_object_box_remove(Evas_Object *o, Evas_Object *child) - Eina_Bool evas_object_box_remove_at(Evas_Object *o, unsigned int pos) - Eina_Bool evas_object_box_remove_all(Evas_Object *o, Eina_Bool clear) - - void evas_object_box_layout_horizontal(Evas_Object *o, Evas_Object_Box_Data *priv, void *data) - void evas_object_box_layout_vertical(Evas_Object *o, Evas_Object_Box_Data *priv, void *data) - void evas_object_box_layout_homogeneous_vertical(Evas_Object *o, Evas_Object_Box_Data *priv, void *data) - void evas_object_box_layout_homogeneous_horizontal(Evas_Object *o, Evas_Object_Box_Data *priv, void *data) - void evas_object_box_layout_homogeneous_max_size_horizontal(Evas_Object *o, Evas_Object_Box_Data *priv, void *data) - void evas_object_box_layout_homogeneous_max_size_vertical(Evas_Object *o, Evas_Object_Box_Data *priv, void *data) - void evas_object_box_layout_flow_horizontal(Evas_Object *o, Evas_Object_Box_Data *priv, void *data) - void evas_object_box_layout_flow_vertical(Evas_Object *o, Evas_Object_Box_Data *priv, void *data) - void evas_object_box_layout_stack(Evas_Object *o, Evas_Object_Box_Data *priv, void *data) - void elm_box_layout_transition(Evas_Object *o, Evas_Object_Box_Data *priv, void *data) - - - #################################################################### - # Evas Map - # - Evas_Map *evas_map_new(int count) - - void evas_object_map_enable_set(Evas_Object *obj, Eina_Bool enabled) - Eina_Bool evas_object_map_enable_get(const_Evas_Object *obj) - void evas_object_map_set(Evas_Object *obj, const_Evas_Map *map) - const_Evas_Map *evas_object_map_get(const_Evas_Object *obj) - - void evas_map_util_points_populate_from_object_full(Evas_Map *m, const_Evas_Object *obj, Evas_Coord z) - void evas_map_util_points_populate_from_object(Evas_Map *m, const_Evas_Object *obj) - void evas_map_util_points_populate_from_geometry(Evas_Map *m, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h, Evas_Coord z) - void evas_map_util_points_color_set(Evas_Map *m, int r, int g, int b, int a) - void evas_map_util_rotate(Evas_Map *m, double degrees, Evas_Coord cx, Evas_Coord cy) - void evas_map_util_zoom(Evas_Map *m, double zoomx, double zoomy, Evas_Coord cx, Evas_Coord cy) - void evas_map_util_3d_rotate(Evas_Map *m, double dx, double dy, double dz, Evas_Coord cx, Evas_Coord cy, Evas_Coord cz) - void evas_map_util_3d_lighting(Evas_Map *m, Evas_Coord lx, Evas_Coord ly, Evas_Coord lz, int lr, int lg, int lb, int ar, int ag, int ab) - void evas_map_util_3d_perspective(Evas_Map *m, Evas_Coord px, Evas_Coord py, Evas_Coord z0, Evas_Coord foc) - Eina_Bool evas_map_util_clockwise_get(Evas_Map *m) - - void evas_map_smooth_set(Evas_Map *m, Eina_Bool enabled) - Eina_Bool evas_map_smooth_get(const_Evas_Map *m) - void evas_map_alpha_set(Evas_Map *m, Eina_Bool enabled) - Eina_Bool evas_map_alpha_get(const_Evas_Map *m) - Evas_Map *evas_map_dup(const_Evas_Map *m) - void evas_map_free(Evas_Map *m) - int evas_map_count_get(const_Evas_Map *m) - void evas_map_point_coord_set(Evas_Map *m, int idx, Evas_Coord x, Evas_Coord y, Evas_Coord z) - void evas_map_point_coord_get(const_Evas_Map *m, int idx, Evas_Coord *x, Evas_Coord *y, Evas_Coord *z) - void evas_map_point_image_uv_set(Evas_Map *m, int idx, double u, double v) - void evas_map_point_image_uv_get(const_Evas_Map *m, int idx, double *u, double *v) - void evas_map_point_color_set(Evas_Map *m, int idx, int r, int g, int b, int a) - void evas_map_point_color_get(const_Evas_Map *m, int idx, int *r, int *g, int *b, int *a) - - -#################################################################### -# Python classes -# -cdef class Rect: - cdef int x0, y0, x1, y1, cx, cy, _w, _h - - -cdef class Canvas(Eo): -# cdef Evas *obj - cdef object _callbacks -# -# cdef int _set_obj(self, Evas *obj) except 0 -# cdef int _unset_obj(self) except 0 - - -cdef class Object(Eo): -# cdef readonly Canvas evas - cdef object _callbacks - # cdef int _unset_obj(self) except 0 - # cdef int _set_obj(self, Evas_Object *obj) except 0 - - -cdef class Rectangle(Object): - pass - - -cdef class Line(Object): - pass - - -cdef class Image(Object): - pass - - -cdef class FilledImage(Image): - pass - - -cdef class Polygon(Object): - pass - - -cdef class Text(Object): - pass - - -cdef class Textblock(Object): - pass - - -cdef class SmartObject(Object): - cdef object _smart_callbacks - cdef object _m_delete - cdef object _m_move - cdef object _m_resize - cdef object _m_show - cdef object _m_hide - cdef object _m_color_set - cdef object _m_clip_set - cdef object _m_clip_unset - cdef object _m_calculate - - -cdef class ClippedSmartObject(SmartObject): - cdef readonly Rectangle clipper - - -cdef class EventPoint: - cdef Evas_Point *obj - - cdef void _set_obj(self, Evas_Point *obj) - cdef void _unset_obj(self) - cdef void _check_validity(self) except * - - -cdef class EventCoordPoint: - cdef Evas_Coord_Point *obj - - cdef void _set_obj(self, Evas_Coord_Point *obj) - cdef void _unset_obj(self) - cdef void _check_validity(self) except * - - -cdef class EventPrecisionPoint: - cdef Evas_Coord_Precision_Point *obj - - cdef void _set_obj(self, Evas_Coord_Precision_Point *obj) - cdef void _unset_obj(self) - cdef void _check_validity(self) except * - - -cdef class EventPosition: - cdef readonly EventPoint output - cdef readonly EventCoordPoint canvas - - cdef void _set_objs(self, Evas_Point *output, Evas_Coord_Point *canvas) - cdef void _unset_objs(self) - - -cdef class EventPrecisionPosition: - cdef readonly EventPoint output - cdef readonly EventPrecisionPoint canvas - - cdef void _set_objs(self, Evas_Point *output, Evas_Coord_Precision_Point *canvas) - cdef void _unset_objs(self) - - -cdef class EventMouseIn: - cdef Evas_Event_Mouse_In *obj - cdef readonly EventPosition position - - cdef void _set_obj(self, void *ptr) - cdef void _unset_obj(self) - cdef void _check_validity(self) except * - - -cdef class EventMouseOut: - cdef Evas_Event_Mouse_Out *obj - cdef readonly EventPosition position - - cdef void _set_obj(self, void *ptr) - cdef void _unset_obj(self) - cdef void _check_validity(self) except * - - -cdef class EventMouseDown: - cdef Evas_Event_Mouse_Down *obj - cdef readonly EventPosition position - - cdef void _set_obj(self, void *ptr) - cdef void _unset_obj(self) - cdef void _check_validity(self) except * - - -cdef class EventMouseUp: - cdef Evas_Event_Mouse_Up *obj - cdef readonly EventPosition position - - cdef void _set_obj(self, void *ptr) - cdef void _unset_obj(self) - cdef void _check_validity(self) except * - - -cdef class EventMouseMove: - cdef Evas_Event_Mouse_Move *obj - cdef readonly EventPosition position - cdef readonly EventPosition prev_position - - cdef void _set_obj(self, void *ptr) - cdef void _unset_obj(self) - cdef void _check_validity(self) except * - - -cdef class EventMultiDown: - cdef Evas_Event_Multi_Down *obj - cdef readonly EventPrecisionPosition position - - cdef void _set_obj(self, void *ptr) - cdef void _unset_obj(self) - cdef void _check_validity(self) except * - - -cdef class EventMultiUp: - cdef Evas_Event_Multi_Up *obj - cdef readonly EventPrecisionPosition position - - cdef void _set_obj(self, void *ptr) - cdef void _unset_obj(self) - cdef void _check_validity(self) except * - - -cdef class EventMultiMove: - cdef Evas_Event_Multi_Move *obj - cdef readonly EventPrecisionPosition position - - cdef void _set_obj(self, void *ptr) - cdef void _unset_obj(self) - cdef void _check_validity(self) except * - - -cdef class EventMouseWheel: - cdef Evas_Event_Mouse_Wheel *obj - cdef readonly EventPosition position - - cdef void _set_obj(self, void *ptr) - cdef void _unset_obj(self) - cdef void _check_validity(self) except * - - -cdef class EventKeyDown: - cdef Evas_Event_Key_Down *obj - - cdef void _set_obj(self, void *ptr) - cdef void _unset_obj(self) - cdef void _check_validity(self) except * - - -cdef class EventKeyUp: - cdef Evas_Event_Key_Up *obj - - cdef void _set_obj(self, void *ptr) - cdef void _unset_obj(self) - cdef void _check_validity(self) except * - - -cdef class EventHold: - cdef Evas_Event_Hold *obj - - cdef void _set_obj(self, void *ptr) - cdef void _unset_obj(self) - cdef void _check_validity(self) except * +# Copyright (C) 2007-2013 various contributors (see AUTHORS) +# +# This file is part of Python-EFL. +# +# Python-EFL is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# 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, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this Python-EFL. If not, see . + +from efl cimport * +from efl.eo cimport Eo +# cimport efl.c_eo as c_eo +from efl.c_eo cimport Eo as cEo +from efl.c_eo cimport const_Eo_Class + + +cdef extern from "Evas.h": + #################################################################### + # Basic Types + # + ctypedef int Evas_Coord + ctypedef int Evas_Angle + ctypedef int Evas_Font_Size + + + #################################################################### + # Enumerations + # + ctypedef enum Evas_Layer: + pass + + ctypedef enum Evas_Text: + pass + + ctypedef enum Evas_Callback_Type: + pass + + + ctypedef enum Evas_Pixel_Format: + pass + + + ctypedef enum Evas_Color_Space: + pass + + + ctypedef enum Evas_Texture: + pass + + + cdef enum Evas_Alloc_Error: + pass + + + cdef enum Evas_Load_Error: + pass + + + ctypedef enum Evas_Button_Flags: + pass + + + ctypedef enum Evas_Event_Flags: + pass + + + ctypedef enum Evas_Font_Hinting_Flags: + pass + + + ctypedef enum Evas_Colorspace: + pass + + + ctypedef enum Evas_Render_Op: + pass + + + ctypedef enum Evas_Text_Style_Type: + pass + + + ctypedef enum Evas_Textblock_Text_Type: + pass + + + ctypedef enum Evas_Smart_Class_Version: + EVAS_SMART_CLASS_VERSION + + + ctypedef enum Evas_Object_Pointer_Mode: + pass + + + ctypedef enum Evas_Aspect_Control: + pass + + #################################################################### + # Structures + # + ctypedef struct Evas_Point: + int x + int y + + ctypedef struct Evas_Coord_Point: # Evas_Coord is int now + Evas_Coord x + Evas_Coord y + + ctypedef struct Evas_Coord_Precision_Point: # Evas_Coord is int now + Evas_Coord x + Evas_Coord y + double xsub + double ysub + + ctypedef struct Evas_Position: + Evas_Point output + Evas_Coord_Point canvas + + ctypedef struct Evas_Precision_Position: + Evas_Point output + Evas_Coord_Precision_Point canvas + + ctypedef struct Evas_Hash + + ctypedef cEo Evas + ctypedef Evas const_Evas "const Evas" + + ctypedef cEo Evas_Object + ctypedef Evas_Object const_Evas_Object "const Evas_Object" + + ctypedef struct Evas_Modifier + ctypedef struct Evas_Lock + ctypedef struct Evas_Smart + ctypedef struct Evas_Native_Surface + ctypedef struct Evas_Textblock_Style + ctypedef Evas_Textblock_Style const_Evas_Textblock_Style "const Evas_Textblock_Style" + ctypedef struct Evas_Textblock_Cursor + ctypedef Evas_Textblock_Cursor const_Evas_Textblock_Cursor "const Evas_Textblock_Cursor" + + ctypedef struct Evas_Smart_Cb_Description: + const_char_ptr name + const_char_ptr type + ctypedef Evas_Smart_Cb_Description const_Evas_Smart_Cb_Description "const Evas_Smart_Cb_Description" + + ctypedef struct Evas_Smart_Interface + ctypedef Evas_Smart_Interface const_Evas_Smart_Interface "const Evas_Smart_Interface" + + ctypedef struct Evas_Smart_Class + ctypedef Evas_Smart_Class const_Evas_Smart_Class "const Evas_Smart_Class" + ctypedef struct Evas_Smart_Class: + const_char_ptr name + int version + void (*add)(Evas_Object *o) + void (*delete "del")(Evas_Object *o) + void (*move)(Evas_Object *o, int x, int y) + void (*resize)(Evas_Object *o, int w, int h) + void (*show)(Evas_Object *o) + void (*hide)(Evas_Object *o) + void (*color_set)(Evas_Object *o, int r, int g, int b, int a) + void (*clip_set)(Evas_Object *o, Evas_Object *clip) + void (*clip_unset)(Evas_Object *o) + void (*calculate)(Evas_Object *o) + void (*member_add)(Evas_Object *o, Evas_Object *child) + void (*member_del)(Evas_Object *o, Evas_Object *child) + const_Evas_Smart_Class *parent + Evas_Smart_Cb_Description *callbacks + const_Evas_Smart_Interface **interfaces + const_void *data + + ctypedef struct Evas_Device + + ctypedef struct Evas_Event_Mouse_In: + int buttons + Evas_Point output + Evas_Coord_Point canvas + void *data + Evas_Modifier *modifiers + Evas_Lock *locks + unsigned int timestamp + Evas_Event_Flags event_flags + Evas_Device *dev + + ctypedef struct Evas_Event_Mouse_Out: + int buttons + Evas_Point output + Evas_Coord_Point canvas + void *data + Evas_Modifier *modifiers + Evas_Lock *locks + unsigned int timestamp + Evas_Event_Flags event_flags + Evas_Device *dev + + ctypedef struct Evas_Event_Mouse_Down: + int button + Evas_Point output + Evas_Coord_Point canvas + void *data + Evas_Modifier *modifiers + Evas_Lock *locks + Evas_Button_Flags flags + unsigned int timestamp + Evas_Event_Flags event_flags + Evas_Device *dev + + ctypedef struct Evas_Event_Mouse_Up: + int button + Evas_Point output + Evas_Coord_Point canvas + void *data + Evas_Modifier *modifiers + Evas_Lock *locks + Evas_Button_Flags flags + unsigned int timestamp + Evas_Event_Flags event_flags + Evas_Device *dev + + ctypedef struct Evas_Event_Mouse_Move: + int buttons + Evas_Position cur + Evas_Position prev + void *data + Evas_Modifier *modifiers + Evas_Lock *locks + unsigned int timestamp + Evas_Event_Flags event_flags + Evas_Device *dev + + + ctypedef struct Evas_Event_Multi_Down: + int device + double radius + double radius_x + double radius_y + double pressure + double angle + Evas_Point output + Evas_Coord_Precision_Point canvas + void *data + Evas_Modifier *modifiers + Evas_Lock *locks + Evas_Button_Flags flags + unsigned int timestamp + Evas_Event_Flags event_flags + Evas_Device *dev + + ctypedef struct Evas_Event_Multi_Up: + int device + double radius + double radius_x + double radius_y + double pressure + double angle + Evas_Point output + Evas_Coord_Precision_Point canvas + void *data + Evas_Modifier *modifiers + Evas_Lock *locks + Evas_Button_Flags flags + unsigned int timestamp + Evas_Event_Flags event_flags + Evas_Device *dev + + ctypedef struct Evas_Event_Multi_Move: + double radius + double radius_x + double radius_y + double pressure + double angle + Evas_Precision_Position cur + void *data + Evas_Modifier *modifiers + Evas_Lock *locks + unsigned int timestamp + Evas_Event_Flags event_flags + Evas_Device *dev + + ctypedef struct Evas_Event_Mouse_Wheel: + int direction # 0 = default up/down wheel + int z # ...,-2,-1 = down, 1,2,... = up */ + Evas_Point output + Evas_Coord_Point canvas + void *data + Evas_Modifier *modifiers + Evas_Lock *locks + unsigned int timestamp + Evas_Event_Flags event_flags + Evas_Device *dev + + ctypedef struct Evas_Event_Key_Down: + char *keyname + void *data + Evas_Modifier *modifiers + Evas_Lock *locks + const_char_ptr key + const_char_ptr string + const_char_ptr compose + unsigned int timestamp + Evas_Event_Flags event_flags + Evas_Device *dev + + ctypedef struct Evas_Event_Key_Up: + char *keyname + void *data + Evas_Modifier *modifiers + Evas_Lock *locks + const_char_ptr key + const_char_ptr string + const_char_ptr compose + unsigned int timestamp + Evas_Event_Flags event_flags + Evas_Device *dev + + ctypedef struct Evas_Event_Hold: + int hold + void *data + unsigned int timestamp + Evas_Event_Flags event_flags + Evas_Device *dev + + ctypedef struct Evas_Object_Box_Option: + Evas_Object *obj + + ctypedef struct Evas_Map + ctypedef Evas_Map const_Evas_Map "const Evas_Map" + + + #################################################################### + # Other typedefs + # + ctypedef void (*Evas_Event_Cb)(void *data, Evas *e, void *event_info) + ctypedef void (*Evas_Object_Event_Cb)(void *data, Evas *e, Evas_Object *obj, void *event_info) + ctypedef void (*Evas_Smart_Cb)(void *data, Evas_Object *obj, void *event_info) + + ctypedef void *Evas_Object_Box_Data + ctypedef void (*Evas_Object_Box_Layout)(Evas_Object *o, Evas_Object_Box_Data *priv, void *user_data) + + + #################################################################### + # Engine + # + int evas_init() + int evas_shutdown() + + + #################################################################### + # Canvas + # + Evas *evas_new() + void evas_free(Evas *e) + const_Eo_Class *evas_class_get() + + int evas_render_method_lookup(const_char_ptr name) + Eina_List *evas_render_method_list() + void evas_render_method_list_free(Eina_List *list) + + void evas_output_method_set(Evas *e, int render_method) + int evas_output_method_get(Evas *e) + + void *evas_engine_info_get(Evas *e) + int evas_engine_info_set(Evas *e, void *info) + + void evas_output_size_set(Evas *e, int w, int h) + void evas_output_size_get(const_Evas *e, int *w, int *h) + void evas_output_viewport_set(Evas *e, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h) + void evas_output_viewport_get(const_Evas *e, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h) + Evas_Coord evas_coord_screen_x_to_world(const_Evas *e, int x) + Evas_Coord evas_coord_screen_y_to_world(const_Evas *e, int y) + int evas_coord_world_x_to_screen(const_Evas *e, Evas_Coord x) + int evas_coord_world_y_to_screen(const_Evas *e, Evas_Coord y) + + void evas_pointer_output_xy_get(const_Evas *e, int *x, int *y) + void evas_pointer_canvas_xy_get(const_Evas *e, Evas_Coord *x, Evas_Coord *y) + int evas_pointer_button_down_mask_get(const_Evas *e) + Eina_Bool evas_pointer_inside_get(const_Evas *e) + + Evas_Object *evas_object_top_at_xy_get(const_Evas *e, Evas_Coord x, Evas_Coord y, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects) + Evas_Object *evas_object_top_at_pointer_get(const_Evas *e) + Evas_Object *evas_object_top_in_rectangle_get(const_Evas *e, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects) + + Eina_List *evas_objects_at_xy_get(const_Evas *e, Evas_Coord x, Evas_Coord y, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects) + Eina_List *evas_objects_in_rectangle_get(const_Evas *e, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects) + + void evas_damage_rectangle_add(Evas *e, int x, int y, int w, int h) + void evas_obscured_rectangle_add(Evas *e, int x, int y, int w, int h) + void evas_obscured_clear(Evas *e) + Eina_List *evas_render_updates(Evas *e) + void evas_render_updates_free(Eina_List *updates) + void evas_render(Evas *e) + void evas_norender(Evas *e) + void *evas_data_attach_get(const_Evas *e) + void evas_data_attach_set(Evas *e, void *data) + + Evas_Object *evas_focus_get(const_Evas *e) + + Evas_Modifier *evas_key_modifier_get(Evas *e) + Eina_Bool evas_key_modifier_is_set(Evas_Modifier *m, const_char_ptr keyname) + + void evas_event_freeze(Evas *e) + void evas_event_thaw(Evas *e) + int evas_event_freeze_get(const_Evas *e) + + void evas_event_feed_mouse_down(Evas *e, int b, Evas_Button_Flags flags, unsigned int timestamp, const_void *data) + void evas_event_feed_mouse_up(Evas *e, int b, Evas_Button_Flags flags, unsigned int timestamp, const_void *data) + void evas_event_feed_mouse_cancel(Evas *e, unsigned int timestamp, const_void *data) + void evas_event_feed_mouse_wheel(Evas *e, int direction, int z, unsigned int timestamp, const_void *data) + void evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const_void *data) + void evas_event_feed_mouse_in(Evas *e, unsigned int timestamp, const_void *data) + void evas_event_feed_mouse_out(Evas *e, unsigned int timestamp, const_void *data) + void evas_event_feed_multi_down(Evas *e, int d, int x, int y, double rad, double radx, double rady, double pres, double ang, double fx, double fy, Evas_Button_Flags flags, unsigned int timestamp, const_void *data) + void evas_event_feed_multi_up(Evas *e, int d, int x, int y, double rad, double radx, double rady, double pres, double ang, double fx, double fy, Evas_Button_Flags flags, unsigned int timestamp, const_void *data) + void evas_event_feed_multi_move(Evas *e, int d, int x, int y, double rad, double radx, double rady, double pres, double ang, double fx, double fy, unsigned int timestamp, const_void *data) + void evas_event_feed_key_down(Evas *e, const_char_ptr keyname, const_char_ptr key, const_char_ptr string, const_char_ptr compose, unsigned int timestamp, const_void *data) + void evas_event_feed_key_up(Evas *e, const_char_ptr keyname, const_char_ptr key, const_char_ptr string, const_char_ptr compose, unsigned int timestamp, const_void *data) + void evas_event_feed_hold(Evas *e, int hold, unsigned int timestamp, const_void *data) + + void evas_font_path_clear(Evas *e) + void evas_font_path_append(Evas *e, const_char_ptr path) + void evas_font_path_prepend(Evas *e, const_char_ptr path) + const_Eina_List *evas_font_path_list(const_Evas *e) + + void evas_font_hinting_set(Evas *e, Evas_Font_Hinting_Flags hinting) + Evas_Font_Hinting_Flags evas_font_hinting_get(const_Evas *e) + Eina_Bool evas_font_hinting_can_hint(const_Evas *e, Evas_Font_Hinting_Flags hinting) + + void evas_font_cache_flush(Evas *e) + void evas_font_cache_set(Evas *e, int size) + int evas_font_cache_get(const_Evas *e) + + Eina_List *evas_font_available_list(const_Evas *e) + void evas_font_available_list_free(Evas *e, Eina_List *available) + + void evas_image_cache_flush(Evas *e) + void evas_image_cache_reload(Evas *e) + void evas_image_cache_set(Evas *e, int size) + int evas_image_cache_get(const_Evas *e) + + + #################################################################### + # Base Object + # + void evas_object_del(Evas_Object *obj) + Evas *evas_object_evas_get(const_Evas_Object *obj) + + void evas_object_data_set(Evas_Object *obj, const_char_ptr key, const_void *data) + void *evas_object_data_get(const_Evas_Object *obj, const_char_ptr key) + void *evas_object_data_del(Evas_Object *obj, const_char_ptr key) + + const_char_ptr evas_object_type_get(const_Evas_Object *obj) + + void evas_object_layer_set(Evas_Object *obj, int l) + int evas_object_layer_get(const_Evas_Object *obj) + + void evas_object_raise(Evas_Object *obj) + void evas_object_lower(Evas_Object *obj) + void evas_object_stack_above(Evas_Object *obj, Evas_Object *above) + void evas_object_stack_below(Evas_Object *obj, Evas_Object *below) + Evas_Object *evas_object_above_get(const_Evas_Object *obj) + Evas_Object *evas_object_below_get(const_Evas_Object *obj) + Evas_Object *evas_object_bottom_get(const_Evas *e) + Evas_Object *evas_object_top_get(const_Evas *e) + + void evas_object_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y) + void evas_object_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h) + void evas_object_geometry_get(const_Evas_Object *obj, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h) + + void evas_object_size_hint_min_get(const_Evas_Object *obj, Evas_Coord *w, Evas_Coord *h) + void evas_object_size_hint_min_set(Evas_Object *obj, Evas_Coord w, Evas_Coord h) + void evas_object_size_hint_max_get(const_Evas_Object *obj, Evas_Coord *w, Evas_Coord *h) + void evas_object_size_hint_max_set(Evas_Object *obj, Evas_Coord w, Evas_Coord h) + void evas_object_size_hint_request_get(const_Evas_Object *obj, Evas_Coord *w, Evas_Coord *h) + void evas_object_size_hint_request_set(Evas_Object *obj, Evas_Coord w, Evas_Coord h) + void evas_object_size_hint_aspect_get(const_Evas_Object *obj, Evas_Aspect_Control *aspect, Evas_Coord *w, Evas_Coord *h) + void evas_object_size_hint_aspect_set(Evas_Object *obj, Evas_Aspect_Control aspect, Evas_Coord w, Evas_Coord h) + void evas_object_size_hint_align_get(const_Evas_Object *obj, double *x, double *y) + void evas_object_size_hint_align_set(Evas_Object *obj, double x, double y) + void evas_object_size_hint_weight_get(const_Evas_Object *obj, double *x, double *y) + void evas_object_size_hint_weight_set(Evas_Object *obj, double x, double y) + void evas_object_size_hint_padding_get(const_Evas_Object *obj, Evas_Coord *l, Evas_Coord *r, Evas_Coord *t, Evas_Coord *b) + void evas_object_size_hint_padding_set(Evas_Object *obj, Evas_Coord l, Evas_Coord r, Evas_Coord t, Evas_Coord b) + + void evas_object_show(Evas_Object *obj) + void evas_object_hide(Evas_Object *obj) + Eina_Bool evas_object_visible_get(const_Evas_Object *obj) + + void evas_object_static_clip_set(Evas_Object *obj, Eina_Bool is_static_clip) + Eina_Bool evas_object_static_clip_get(Evas_Object *obj) + + void evas_object_render_op_set(Evas_Object *obj, Evas_Render_Op op) + Evas_Render_Op evas_object_render_op_get(const_Evas_Object *obj) + + void evas_object_anti_alias_set(Evas_Object *obj, Eina_Bool antialias) + Eina_Bool evas_object_anti_alias_get(const_Evas_Object *obj) + + void evas_object_color_set(Evas_Object *obj, int r, int g, int b, int a) + void evas_object_color_get(const_Evas_Object *obj, int *r, int *g, int *b, int *a) + + void evas_color_argb_premul(int a, int *r, int *g, int *b) + void evas_color_argb_unpremul(int a, int *r, int *g, int *b) + + void evas_color_hsv_to_rgb(float h, float s, float v, int *r, int *g, int *b) + void evas_color_rgb_to_hsv(int r, int g, int b, float *h, float *s, float *v) + + void evas_object_clip_set(Evas_Object *obj, Evas_Object *clip) + Evas_Object *evas_object_clip_get(const_Evas_Object *obj) + void evas_object_clip_unset(Evas_Object *obj) + const_Eina_List *evas_object_clipees_get(const_Evas_Object *obj) + + void evas_object_name_set(Evas_Object *obj, const_char_ptr name) + const_char_ptr evas_object_name_get(const_Evas_Object *obj) + Evas_Object *evas_object_name_find(const_Evas *e, const_char_ptr name) + + int evas_async_events_fd_get() + int evas_async_events_process() + + void evas_object_event_callback_add(Evas_Object *obj, Evas_Callback_Type type, Evas_Object_Event_Cb func, const_void *data) + void *evas_object_event_callback_del(Evas_Object *obj, Evas_Callback_Type type, Evas_Object_Event_Cb func) + + void evas_event_callback_add(Evas *e, Evas_Callback_Type type, Evas_Event_Cb func, const_void *data) + void *evas_event_callback_del(Evas *e, Evas_Callback_Type type, Evas_Event_Cb func) + + void evas_object_pass_events_set(Evas_Object *obj, Eina_Bool p) + Eina_Bool evas_object_pass_events_get(const_Evas_Object *obj) + void evas_object_repeat_events_set(Evas_Object *obj, Eina_Bool repeat) + Eina_Bool evas_object_repeat_events_get(const_Evas_Object *obj) + void evas_object_propagate_events_set(Evas_Object *obj, Eina_Bool prop) + Eina_Bool evas_object_propagate_events_get(const_Evas_Object *obj) + void evas_object_pointer_mode_set(Evas_Object *obj, Evas_Object_Pointer_Mode setting) + Evas_Object_Pointer_Mode evas_object_pointer_mode_get(const_Evas_Object *obj) + + void evas_object_focus_set(Evas_Object *obj, Eina_Bool focus) + Eina_Bool evas_object_focus_get(const_Evas_Object *obj) + + + #################################################################### + # Smart Object (py3:TODO) + # + void evas_smart_free(Evas_Smart *s) + Evas_Smart *evas_smart_class_new(Evas_Smart_Class *sc) + Evas_Smart_Class *evas_smart_class_get(Evas_Smart *s) + const_Eo_Class *evas_object_smart_class_get() + + void *evas_smart_data_get(Evas_Smart *s) + + Evas_Object *evas_object_smart_add(Evas *e, Evas_Smart *s) + void evas_object_smart_member_add(Evas_Object *obj, Evas_Object *smart_obj) + void evas_object_smart_member_del(Evas_Object *obj) + Evas_Object *evas_object_smart_parent_get(const_Evas_Object *obj) + Eina_List *evas_object_smart_members_get(const_Evas_Object *obj) + Evas_Smart *evas_object_smart_smart_get(const_Evas_Object *obj) + void *evas_object_smart_data_get(const_Evas_Object *obj) + void evas_object_smart_data_set(Evas_Object *obj, void *data) + void evas_object_smart_callback_add(Evas_Object *obj, const_char_ptr event, Evas_Smart_Cb func, const_void *data) + void *evas_object_smart_callback_del(Evas_Object *obj, const_char_ptr event, Evas_Smart_Cb func) + void evas_object_smart_callback_call(Evas_Object *obj, const_char_ptr event, void *event_info) + void evas_object_smart_changed(Evas_Object *obj) + void evas_object_smart_need_recalculate_set(Evas_Object *obj, int value) + int evas_object_smart_need_recalculate_get(const_Evas_Object *obj) + void evas_object_smart_calculate(Evas_Object *obj) + void evas_object_smart_move_children_relative(Evas_Object *obj, int dx, int dy) + + + #################################################################### + # Rectangle Object + # + Evas_Object *evas_object_rectangle_add(Evas *e) + const_Eo_Class *evas_object_rectangle_class_get() + + + #################################################################### + # Line Object + # + Evas_Object *evas_object_line_add(Evas *e) + void evas_object_line_xy_set(Evas_Object *obj, Evas_Coord x1, Evas_Coord y1, Evas_Coord x2, Evas_Coord y2) + void evas_object_line_xy_get(const_Evas_Object *obj, Evas_Coord *x1, Evas_Coord *y1, Evas_Coord *x2, Evas_Coord *y2) + const_Eo_Class *evas_object_line_class_get() + + + #################################################################### + # Image Object + # + Evas_Object *evas_object_image_add(Evas *e) + const_Eo_Class *evas_object_image_class_get() + void evas_object_image_file_set(Evas_Object *obj, const_char_ptr file, const_char_ptr key) + void evas_object_image_file_get(const_Evas_Object *obj, const_char_ptr *file, const_char_ptr *key) + void evas_object_image_border_set(Evas_Object *obj, int l, int r, int t, int b) + void evas_object_image_border_get(const_Evas_Object *obj, int *l, int *r, int *t, int *b) + void evas_object_image_border_center_fill_set(Evas_Object *obj, Eina_Bool fill) + Eina_Bool evas_object_image_border_center_fill_get(const_Evas_Object *obj) + void evas_object_image_fill_set(Evas_Object *obj, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h) + void evas_object_image_fill_get(const_Evas_Object *obj, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h) + void evas_object_image_size_set(Evas_Object *obj, int w, int h) + void evas_object_image_size_get(const_Evas_Object *obj, int *w, int *h) + int evas_object_image_stride_get(const_Evas_Object *obj) + int evas_object_image_load_error_get(const_Evas_Object *obj) + void evas_object_image_data_set(Evas_Object *obj, void *data) + void *evas_object_image_data_get(const_Evas_Object *obj, Eina_Bool for_writing) + void evas_object_image_data_copy_set(Evas_Object *obj, void *data) + void evas_object_image_data_update_add(Evas_Object *obj, int x, int y, int w, int h) + void evas_object_image_alpha_set(Evas_Object *obj, Eina_Bool has_alpha) + Eina_Bool evas_object_image_alpha_get(const_Evas_Object *obj) + void evas_object_image_smooth_scale_set(Evas_Object *obj, Eina_Bool smooth_scale) + Eina_Bool evas_object_image_smooth_scale_get(const_Evas_Object *obj) + void evas_object_image_preload(Evas_Object *obj, Eina_Bool cancel) + void evas_object_image_reload(Evas_Object *obj) + Eina_Bool evas_object_image_save(const_Evas_Object *obj, const_char_ptr file, const_char_ptr key, const_char_ptr flags) + #Eina_Bool evas_object_image_pixels_import(Evas_Object *obj, Evas_Pixel_Import_Source *pixels) + void evas_object_image_pixels_get_callback_set(Evas_Object *obj, void (*func) (void *data, Evas_Object *o), void *data) + void evas_object_image_pixels_dirty_set(Evas_Object *obj, Eina_Bool dirty) + Eina_Bool evas_object_image_pixels_dirty_get(const_Evas_Object *obj) + void evas_object_image_load_dpi_set(Evas_Object *obj, double dpi) + double evas_object_image_load_dpi_get(const_Evas_Object *obj) + void evas_object_image_load_size_set(Evas_Object *obj, int w, int h) + void evas_object_image_load_size_get(const_Evas_Object *obj, int *w, int *h) + void evas_object_image_load_scale_down_set(Evas_Object *obj, int scale_down) + int evas_object_image_load_scale_down_get(const_Evas_Object *obj) + void evas_object_image_colorspace_set(Evas_Object *obj, Evas_Colorspace cspace) + Evas_Colorspace evas_object_image_colorspace_get(const_Evas_Object *obj) + void evas_object_image_native_surface_set(Evas_Object *obj, Evas_Native_Surface *surf) + Evas_Native_Surface *evas_object_image_native_surface_get(const_Evas_Object *obj) + + + #################################################################### + # Polygon Object + # + Evas_Object *evas_object_polygon_add(Evas *e) + const_Eo_Class *evas_object_polygon_class_get() + void evas_object_polygon_point_add(Evas_Object *obj, Evas_Coord x, Evas_Coord y) + void evas_object_polygon_points_clear(Evas_Object *obj) + + + #################################################################### + # Text Object (py3:TODO) + # + Evas_Object *evas_object_text_add(Evas *e) + const_Eo_Class *evas_object_text_class_get() + void evas_object_text_font_source_set(Evas_Object *obj, const_char_ptr font) + const_char_ptr evas_object_text_font_source_get(const_Evas_Object *obj) + void evas_object_text_font_set(Evas_Object *obj, const_char_ptr font, Evas_Font_Size size) + void evas_object_text_font_get(const_Evas_Object *obj, const_char_ptr *font, Evas_Font_Size *size) + void evas_object_text_text_set(Evas_Object *obj, const_char_ptr text) + const_char_ptr evas_object_text_text_get(const_Evas_Object *obj) + Evas_Coord evas_object_text_ascent_get(const_Evas_Object *obj) + Evas_Coord evas_object_text_descent_get(const_Evas_Object *obj) + Evas_Coord evas_object_text_max_ascent_get(const_Evas_Object *obj) + Evas_Coord evas_object_text_max_descent_get(const_Evas_Object *obj) + Evas_Coord evas_object_text_horiz_advance_get(const_Evas_Object *obj) + Evas_Coord evas_object_text_vert_advance_get(const_Evas_Object *obj) + Evas_Coord evas_object_text_inset_get(const_Evas_Object *obj) + int evas_object_text_char_pos_get(const_Evas_Object *obj, int pos, Evas_Coord *cx, Evas_Coord *cy, Evas_Coord *cw, Evas_Coord *ch) + int evas_object_text_char_coords_get(const_Evas_Object *obj, Evas_Coord x, Evas_Coord y, Evas_Coord *cx, Evas_Coord *cy, Evas_Coord *cw, Evas_Coord *ch) + Evas_Text_Style_Type evas_object_text_style_get(const_Evas_Object *obj) + void evas_object_text_style_set(Evas_Object *obj, Evas_Text_Style_Type type) + void evas_object_text_shadow_color_set(Evas_Object *obj, int r, int g, int b, int a) + void evas_object_text_shadow_color_get(const_Evas_Object *obj, int *r, int *g, int *b, int *a) + void evas_object_text_glow_color_set(Evas_Object *obj, int r, int g, int b, int a) + void evas_object_text_glow_color_get(const_Evas_Object *obj, int *r, int *g, int *b, int *a) + void evas_object_text_glow2_color_set(Evas_Object *obj, int r, int g, int b, int a) + void evas_object_text_glow2_color_get(const_Evas_Object *obj, int *r, int *g, int *b, int *a) + void evas_object_text_outline_color_set(Evas_Object *obj, int r, int g, int b, int a) + void evas_object_text_outline_color_get(const_Evas_Object *obj, int *r, int *g, int *b, int *a) + void evas_object_text_style_pad_get(const_Evas_Object *obj, int *l, int *r, int *t, int *b) + + + #################################################################### + # Textblock Object (py3:TODO) + # + Evas_Object *evas_object_textblock_add(Evas *e) + const_Eo_Class *evas_object_textblock_class_get() + Evas_Textblock_Style *evas_textblock_style_new() + void evas_textblock_style_free(Evas_Textblock_Style *ts) + void evas_textblock_style_set(Evas_Textblock_Style *ts, const_char_ptr text) + const_char_ptr evas_textblock_style_get(const_Evas_Textblock_Style *ts) + void evas_object_textblock_style_set(Evas_Object *obj, Evas_Textblock_Style *ts) + Evas_Textblock_Style *evas_object_textblock_style_get(const_Evas_Object *obj) + void evas_object_textblock_replace_char_set(Evas_Object *obj, const_char_ptr ch) + const_char_ptr evas_object_textblock_replace_char_get(const_Evas_Object *obj) + const_char_ptr evas_textblock_escape_string_get(const_char_ptr escape) + const_char_ptr evas_textblock_string_escape_get(const_char_ptr string, int *len_ret) + void evas_object_textblock_text_markup_set(Evas_Object *obj, const_char_ptr text) + void evas_object_textblock_text_markup_prepend(Evas_Textblock_Cursor *cur, const_char_ptr text) + const_char_ptr evas_object_textblock_text_markup_get(const_Evas_Object *obj) + Evas_Textblock_Cursor *evas_object_textblock_cursor_get(const_Evas_Object *obj) + Evas_Textblock_Cursor *evas_object_textblock_cursor_new(Evas_Object *obj) + void evas_textblock_cursor_free(Evas_Textblock_Cursor *cur) + void evas_textblock_cursor_node_first(Evas_Textblock_Cursor *cur) + void evas_textblock_cursor_node_last(Evas_Textblock_Cursor *cur) + Eina_Bool evas_textblock_cursor_node_next(Evas_Textblock_Cursor *cur) + Eina_Bool evas_textblock_cursor_node_prev(Evas_Textblock_Cursor *cur) + Eina_Bool evas_textblock_cursor_char_next(Evas_Textblock_Cursor *cur) + Eina_Bool evas_textblock_cursor_char_prev(Evas_Textblock_Cursor *cur) + void evas_textblock_cursor_char_first(Evas_Textblock_Cursor *cur) + void evas_textblock_cursor_char_last(Evas_Textblock_Cursor *cur) + void evas_textblock_cursor_line_first(Evas_Textblock_Cursor *cur) + void evas_textblock_cursor_line_last(Evas_Textblock_Cursor *cur) + int evas_textblock_cursor_pos_get(const_Evas_Textblock_Cursor *cur) + void evas_textblock_cursor_pos_set(Evas_Textblock_Cursor *cur, int pos) + Eina_Bool evas_textblock_cursor_line_set(Evas_Textblock_Cursor *cur, int line) + int evas_textblock_cursor_compare(Evas_Textblock_Cursor *cur1, Evas_Textblock_Cursor *cur2) + void evas_textblock_cursor_copy(Evas_Textblock_Cursor *cur, Evas_Textblock_Cursor *cur_dest) + void evas_textblock_cursor_text_append(Evas_Textblock_Cursor *cur, const_char_ptr text) + void evas_textblock_cursor_text_prepend(Evas_Textblock_Cursor *cur, const_char_ptr text) + void evas_textblock_cursor_format_append(Evas_Textblock_Cursor *cur, const_char_ptr format) + void evas_textblock_cursor_format_prepend(Evas_Textblock_Cursor *cur, const_char_ptr format) + void evas_textblock_cursor_node_delete(Evas_Textblock_Cursor *cur) + void evas_textblock_cursor_char_delete(Evas_Textblock_Cursor *cur) + void evas_textblock_cursor_range_delete(Evas_Textblock_Cursor *cur1, Evas_Textblock_Cursor *cur2) + const_char_ptr evas_textblock_cursor_node_text_get(const_Evas_Textblock_Cursor *cur) + int evas_textblock_cursor_node_text_length_get(const_Evas_Textblock_Cursor *cur) + const_char_ptr evas_textblock_cursor_node_format_get(const_Evas_Textblock_Cursor *cur) + Eina_Bool evas_textblock_cursor_node_format_is_visible_get(const_Evas_Textblock_Cursor *cur) + const_char_ptr evas_textblock_cursor_range_text_get(const_Evas_Textblock_Cursor *cur1, Evas_Textblock_Cursor *cur2, Evas_Textblock_Text_Type format) + int evas_textblock_cursor_char_geometry_get(const_Evas_Textblock_Cursor *cur, Evas_Coord *cx, Evas_Coord *cy, Evas_Coord *cw, Evas_Coord *ch) + int evas_textblock_cursor_line_geometry_get(const_Evas_Textblock_Cursor *cur, Evas_Coord *cx, Evas_Coord *cy, Evas_Coord *cw, Evas_Coord *ch) + Eina_Bool evas_textblock_cursor_char_coord_set(Evas_Textblock_Cursor *cur, Evas_Coord x, Evas_Coord y) + int evas_textblock_cursor_line_coord_set(Evas_Textblock_Cursor *cur, Evas_Coord y) + Eina_List *evas_textblock_cursor_range_geometry_get(const_Evas_Textblock_Cursor *cur1, Evas_Textblock_Cursor *cur2) + Eina_Bool evas_object_textblock_line_number_geometry_get(const_Evas_Object *obj, int line, Evas_Coord *cx, Evas_Coord *cy, Evas_Coord *cw, Evas_Coord *ch) + void evas_object_textblock_clear(Evas_Object *obj) + void evas_object_textblock_size_formatted_get(const_Evas_Object *obj, Evas_Coord *w, Evas_Coord *h) + void evas_object_textblock_size_native_get(const_Evas_Object *obj, Evas_Coord *w, Evas_Coord *h) + void evas_object_textblock_style_insets_get(const_Evas_Object *obj, Evas_Coord *l, Evas_Coord *r, Evas_Coord *t, Evas_Coord *b) + + + #################################################################### + # Box Object + # + Evas_Object *evas_object_box_add(Evas *e) + Evas_Object *evas_object_box_add_to(Evas_Object *parent) + const_Eo_Class *evas_object_box_class_get() + + void evas_object_box_align_set(Evas_Object *o, double horizontal, double vertical) + void evas_object_box_align_get(const_Evas_Object *o, double *horizontal, double *vertical) + void evas_object_box_padding_set(Evas_Object *o, Evas_Coord horizontal, Evas_Coord vertical) + void evas_object_box_padding_get(const_Evas_Object *o, Evas_Coord *horizontal, Evas_Coord *vertical) + + Evas_Object_Box_Option *evas_object_box_append(Evas_Object *o, Evas_Object *child) + Evas_Object_Box_Option *evas_object_box_prepend(Evas_Object *o, Evas_Object *child) + Evas_Object_Box_Option *evas_object_box_insert_before(Evas_Object *o, Evas_Object *child, Evas_Object *reference) + Evas_Object_Box_Option *evas_object_box_insert_after(Evas_Object *o, Evas_Object *child, Evas_Object *reference) + Evas_Object_Box_Option *evas_object_box_insert_at(Evas_Object *o, Evas_Object *child, unsigned int pos) + + Eina_Bool evas_object_box_remove(Evas_Object *o, Evas_Object *child) + Eina_Bool evas_object_box_remove_at(Evas_Object *o, unsigned int pos) + Eina_Bool evas_object_box_remove_all(Evas_Object *o, Eina_Bool clear) + + void evas_object_box_layout_horizontal(Evas_Object *o, Evas_Object_Box_Data *priv, void *data) + void evas_object_box_layout_vertical(Evas_Object *o, Evas_Object_Box_Data *priv, void *data) + void evas_object_box_layout_homogeneous_vertical(Evas_Object *o, Evas_Object_Box_Data *priv, void *data) + void evas_object_box_layout_homogeneous_horizontal(Evas_Object *o, Evas_Object_Box_Data *priv, void *data) + void evas_object_box_layout_homogeneous_max_size_horizontal(Evas_Object *o, Evas_Object_Box_Data *priv, void *data) + void evas_object_box_layout_homogeneous_max_size_vertical(Evas_Object *o, Evas_Object_Box_Data *priv, void *data) + void evas_object_box_layout_flow_horizontal(Evas_Object *o, Evas_Object_Box_Data *priv, void *data) + void evas_object_box_layout_flow_vertical(Evas_Object *o, Evas_Object_Box_Data *priv, void *data) + void evas_object_box_layout_stack(Evas_Object *o, Evas_Object_Box_Data *priv, void *data) + void elm_box_layout_transition(Evas_Object *o, Evas_Object_Box_Data *priv, void *data) + + + #################################################################### + # Evas Map + # + Evas_Map *evas_map_new(int count) + + void evas_object_map_enable_set(Evas_Object *obj, Eina_Bool enabled) + Eina_Bool evas_object_map_enable_get(const_Evas_Object *obj) + void evas_object_map_set(Evas_Object *obj, const_Evas_Map *map) + const_Evas_Map *evas_object_map_get(const_Evas_Object *obj) + + void evas_map_util_points_populate_from_object_full(Evas_Map *m, const_Evas_Object *obj, Evas_Coord z) + void evas_map_util_points_populate_from_object(Evas_Map *m, const_Evas_Object *obj) + void evas_map_util_points_populate_from_geometry(Evas_Map *m, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h, Evas_Coord z) + void evas_map_util_points_color_set(Evas_Map *m, int r, int g, int b, int a) + void evas_map_util_rotate(Evas_Map *m, double degrees, Evas_Coord cx, Evas_Coord cy) + void evas_map_util_zoom(Evas_Map *m, double zoomx, double zoomy, Evas_Coord cx, Evas_Coord cy) + void evas_map_util_3d_rotate(Evas_Map *m, double dx, double dy, double dz, Evas_Coord cx, Evas_Coord cy, Evas_Coord cz) + void evas_map_util_3d_lighting(Evas_Map *m, Evas_Coord lx, Evas_Coord ly, Evas_Coord lz, int lr, int lg, int lb, int ar, int ag, int ab) + void evas_map_util_3d_perspective(Evas_Map *m, Evas_Coord px, Evas_Coord py, Evas_Coord z0, Evas_Coord foc) + Eina_Bool evas_map_util_clockwise_get(Evas_Map *m) + + void evas_map_smooth_set(Evas_Map *m, Eina_Bool enabled) + Eina_Bool evas_map_smooth_get(const_Evas_Map *m) + void evas_map_alpha_set(Evas_Map *m, Eina_Bool enabled) + Eina_Bool evas_map_alpha_get(const_Evas_Map *m) + Evas_Map *evas_map_dup(const_Evas_Map *m) + void evas_map_free(Evas_Map *m) + int evas_map_count_get(const_Evas_Map *m) + void evas_map_point_coord_set(Evas_Map *m, int idx, Evas_Coord x, Evas_Coord y, Evas_Coord z) + void evas_map_point_coord_get(const_Evas_Map *m, int idx, Evas_Coord *x, Evas_Coord *y, Evas_Coord *z) + void evas_map_point_image_uv_set(Evas_Map *m, int idx, double u, double v) + void evas_map_point_image_uv_get(const_Evas_Map *m, int idx, double *u, double *v) + void evas_map_point_color_set(Evas_Map *m, int idx, int r, int g, int b, int a) + void evas_map_point_color_get(const_Evas_Map *m, int idx, int *r, int *g, int *b, int *a) + + +#################################################################### +# Python classes +# +cdef class Rect: + cdef int x0, y0, x1, y1, cx, cy, _w, _h + + +cdef class Canvas(Eo): +# cdef Evas *obj + cdef object _callbacks +# +# cdef int _set_obj(self, Evas *obj) except 0 +# cdef int _unset_obj(self) except 0 + + +cdef class Object(Eo): +# cdef readonly Canvas evas + cdef object _callbacks + # cdef int _unset_obj(self) except 0 + # cdef int _set_obj(self, Evas_Object *obj) except 0 + + +cdef class Rectangle(Object): + pass + + +cdef class Line(Object): + pass + + +cdef class Image(Object): + pass + + +cdef class FilledImage(Image): + pass + + +cdef class Polygon(Object): + pass + + +cdef class Text(Object): + pass + + +cdef class Textblock(Object): + pass + + +cdef class SmartObject(Object): + cdef object _smart_callbacks + cdef object _m_delete + cdef object _m_move + cdef object _m_resize + cdef object _m_show + cdef object _m_hide + cdef object _m_color_set + cdef object _m_clip_set + cdef object _m_clip_unset + cdef object _m_calculate + + +cdef class ClippedSmartObject(SmartObject): + cdef readonly Rectangle clipper + + +cdef class EventPoint: + cdef Evas_Point *obj + + cdef void _set_obj(self, Evas_Point *obj) + cdef void _unset_obj(self) + cdef void _check_validity(self) except * + + +cdef class EventCoordPoint: + cdef Evas_Coord_Point *obj + + cdef void _set_obj(self, Evas_Coord_Point *obj) + cdef void _unset_obj(self) + cdef void _check_validity(self) except * + + +cdef class EventPrecisionPoint: + cdef Evas_Coord_Precision_Point *obj + + cdef void _set_obj(self, Evas_Coord_Precision_Point *obj) + cdef void _unset_obj(self) + cdef void _check_validity(self) except * + + +cdef class EventPosition: + cdef readonly EventPoint output + cdef readonly EventCoordPoint canvas + + cdef void _set_objs(self, Evas_Point *output, Evas_Coord_Point *canvas) + cdef void _unset_objs(self) + + +cdef class EventPrecisionPosition: + cdef readonly EventPoint output + cdef readonly EventPrecisionPoint canvas + + cdef void _set_objs(self, Evas_Point *output, Evas_Coord_Precision_Point *canvas) + cdef void _unset_objs(self) + + +cdef class EventMouseIn: + cdef Evas_Event_Mouse_In *obj + cdef readonly EventPosition position + + cdef void _set_obj(self, void *ptr) + cdef void _unset_obj(self) + cdef void _check_validity(self) except * + + +cdef class EventMouseOut: + cdef Evas_Event_Mouse_Out *obj + cdef readonly EventPosition position + + cdef void _set_obj(self, void *ptr) + cdef void _unset_obj(self) + cdef void _check_validity(self) except * + + +cdef class EventMouseDown: + cdef Evas_Event_Mouse_Down *obj + cdef readonly EventPosition position + + cdef void _set_obj(self, void *ptr) + cdef void _unset_obj(self) + cdef void _check_validity(self) except * + + +cdef class EventMouseUp: + cdef Evas_Event_Mouse_Up *obj + cdef readonly EventPosition position + + cdef void _set_obj(self, void *ptr) + cdef void _unset_obj(self) + cdef void _check_validity(self) except * + + +cdef class EventMouseMove: + cdef Evas_Event_Mouse_Move *obj + cdef readonly EventPosition position + cdef readonly EventPosition prev_position + + cdef void _set_obj(self, void *ptr) + cdef void _unset_obj(self) + cdef void _check_validity(self) except * + + +cdef class EventMultiDown: + cdef Evas_Event_Multi_Down *obj + cdef readonly EventPrecisionPosition position + + cdef void _set_obj(self, void *ptr) + cdef void _unset_obj(self) + cdef void _check_validity(self) except * + + +cdef class EventMultiUp: + cdef Evas_Event_Multi_Up *obj + cdef readonly EventPrecisionPosition position + + cdef void _set_obj(self, void *ptr) + cdef void _unset_obj(self) + cdef void _check_validity(self) except * + + +cdef class EventMultiMove: + cdef Evas_Event_Multi_Move *obj + cdef readonly EventPrecisionPosition position + + cdef void _set_obj(self, void *ptr) + cdef void _unset_obj(self) + cdef void _check_validity(self) except * + + +cdef class EventMouseWheel: + cdef Evas_Event_Mouse_Wheel *obj + cdef readonly EventPosition position + + cdef void _set_obj(self, void *ptr) + cdef void _unset_obj(self) + cdef void _check_validity(self) except * + + +cdef class EventKeyDown: + cdef Evas_Event_Key_Down *obj + + cdef void _set_obj(self, void *ptr) + cdef void _unset_obj(self) + cdef void _check_validity(self) except * + + +cdef class EventKeyUp: + cdef Evas_Event_Key_Up *obj + + cdef void _set_obj(self, void *ptr) + cdef void _unset_obj(self) + cdef void _check_validity(self) except * + + +cdef class EventHold: + cdef Evas_Event_Hold *obj + + cdef void _set_obj(self, void *ptr) + cdef void _unset_obj(self) + cdef void _check_validity(self) except * diff --git a/include/efl.pxd b/include/efl.pxd index f4961e1..3680859 100644 --- a/include/efl.pxd +++ b/include/efl.pxd @@ -1,138 +1,138 @@ -# Copyright (C) 2007-2013 various contributors (see AUTHORS) -# -# This file is part of Python-EFL. -# -# Python-EFL is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# 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, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this Python-EFL. If not, see . - - -cdef extern from *: - ctypedef char* const_char_ptr "const char *" - ctypedef void const_void "const void" - -cdef extern from "stdlib.h": - void *malloc(long) - void free(void*) - -# cdef extern from "stdio.h": -# int printf(char*) - -cdef extern from "string.h": - void *memcpy(void *dst, void *src, int n) - char *strdup(char *str) - -cdef extern from "time.h": - struct tm: - int tm_sec - int tm_min - int tm_hour - int tm_mday - int tm_mon - int tm_year - int tm_wday - int tm_yday - int tm_isdst - - long int tm_gmtoff - const_char_ptr tm_zone - - -cdef extern from "Eina.h": - #################################################################### - # Enumerations - # - - #################################################################### - # Basic Types - # - ctypedef unsigned char Eina_Bool - ctypedef int Eina_Error - - #################################################################### - # Structures - # - ctypedef struct Eina_Rectangle: - int x - int y - int w - int h - - ctypedef struct Eina_List: - void *data - Eina_List *next - Eina_List *prev - void *accounting - ctypedef Eina_List const_Eina_List "const Eina_List" - - ctypedef struct Eina_Hash_Tuple: - void *key - void *data - unsigned int key_length - ctypedef Eina_Hash_Tuple const_Eina_Hash_Tuple "const Eina_Hash_Tuple" - - ctypedef struct Eina_Iterator: - Eina_Bool (*next)(Eina_Iterator *it, void **data) - void *(*get_container)(Eina_Iterator *it) - void (*free)(Eina_Iterator *it) - - #################################################################### - # Other typedefs - # - ctypedef int (*Eina_Compare_Cb)(const_void *data1, const_void *data2) - - #################################################################### - # Functions - # - Eina_Error eina_error_get() - void eina_error_set(Eina_Error err) - const_char_ptr eina_error_msg_get(Eina_Error error) - - Eina_Bool eina_iterator_next(Eina_Iterator *iterator, void **data) - void eina_iterator_free(Eina_Iterator *iterator) - - Eina_List *eina_list_free(Eina_List *list) - Eina_List *eina_list_append(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_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_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_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_remove(Eina_List *list, void *data) - 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_demote_list(Eina_List *list, Eina_List *move_list) - 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_free(Eina_List *list) - 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_reverse(Eina_List *list) - Eina_List *eina_list_reverse_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_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_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_list(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) - 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_next(Eina_List *list) - Eina_List *eina_list_prev(Eina_List *list) - void *eina_list_data_get(Eina_List *list) - unsigned int eina_list_count(Eina_List *list) +# Copyright (C) 2007-2013 various contributors (see AUTHORS) +# +# This file is part of Python-EFL. +# +# Python-EFL is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# 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, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this Python-EFL. If not, see . + + +cdef extern from *: + ctypedef char* const_char_ptr "const char *" + ctypedef void const_void "const void" + +cdef extern from "stdlib.h": + void *malloc(long) + void free(void*) + +# cdef extern from "stdio.h": +# int printf(char*) + +cdef extern from "string.h": + void *memcpy(void *dst, void *src, int n) + char *strdup(char *str) + +cdef extern from "time.h": + struct tm: + int tm_sec + int tm_min + int tm_hour + int tm_mday + int tm_mon + int tm_year + int tm_wday + int tm_yday + int tm_isdst + + long int tm_gmtoff + const_char_ptr tm_zone + + +cdef extern from "Eina.h": + #################################################################### + # Enumerations + # + + #################################################################### + # Basic Types + # + ctypedef unsigned char Eina_Bool + ctypedef int Eina_Error + + #################################################################### + # Structures + # + ctypedef struct Eina_Rectangle: + int x + int y + int w + int h + + ctypedef struct Eina_List: + void *data + Eina_List *next + Eina_List *prev + void *accounting + ctypedef Eina_List const_Eina_List "const Eina_List" + + ctypedef struct Eina_Hash_Tuple: + void *key + void *data + unsigned int key_length + ctypedef Eina_Hash_Tuple const_Eina_Hash_Tuple "const Eina_Hash_Tuple" + + ctypedef struct Eina_Iterator: + Eina_Bool (*next)(Eina_Iterator *it, void **data) + void *(*get_container)(Eina_Iterator *it) + void (*free)(Eina_Iterator *it) + + #################################################################### + # Other typedefs + # + ctypedef int (*Eina_Compare_Cb)(const_void *data1, const_void *data2) + + #################################################################### + # Functions + # + Eina_Error eina_error_get() + void eina_error_set(Eina_Error err) + const_char_ptr eina_error_msg_get(Eina_Error error) + + Eina_Bool eina_iterator_next(Eina_Iterator *iterator, void **data) + void eina_iterator_free(Eina_Iterator *iterator) + + Eina_List *eina_list_free(Eina_List *list) + Eina_List *eina_list_append(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_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_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_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_remove(Eina_List *list, void *data) + 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_demote_list(Eina_List *list, Eina_List *move_list) + 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_free(Eina_List *list) + 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_reverse(Eina_List *list) + Eina_List *eina_list_reverse_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_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_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_list(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) + 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_next(Eina_List *list) + Eina_List *eina_list_prev(Eina_List *list) + void *eina_list_data_get(Eina_List *list) + unsigned int eina_list_count(Eina_List *list)