Compare commits
164 Commits
devs/kuuko
...
master
Author | SHA1 | Date |
---|---|---|
|
c8d7bddb47 | |
|
4bb6d9fa9f | |
|
0b089a5623 | |
|
a7464e66e6 | |
|
d1b4512e52 | |
|
9896656574 | |
|
fb649f30e7 | |
|
f0ab762e16 | |
|
4548c5a01b | |
|
cadc757e7e | |
|
ed959b59af | |
|
ec2b95ceab | |
|
dcf362b03f | |
|
d420f60e0d | |
|
0848286409 | |
|
3ca71a067e | |
|
9dce9ccad4 | |
|
7141f21f0b | |
|
fabcef1278 | |
|
a0a6d756b5 | |
|
e467b3e871 | |
|
69cfc2c7fc | |
|
f70d7c949f | |
|
838d4b38c5 | |
|
b821107688 | |
|
e7545e3185 | |
|
5ac4f71131 | |
|
7e4116335a | |
|
26e2b89a9d | |
|
2d0668c548 | |
|
a83da00bc7 | |
|
31a147fc7c | |
|
1f441a18c8 | |
|
d7275844f1 | |
|
f3c99eeafa | |
|
3dfacc01ab | |
|
22274ae81d | |
|
25ed1cc567 | |
|
22203c0838 | |
|
0253f9e178 | |
|
55e9e51f69 | |
|
5a81c2c944 | |
|
5a02f13210 | |
|
22cc200a61 | |
|
09e016bdbd | |
|
bd81c36cd0 | |
|
81c48dd2d9 | |
|
b9117cb590 | |
|
32aec52918 | |
|
a7e86793c3 | |
|
a1eeae15f8 | |
|
9ba5210a6a | |
|
d61c596278 | |
|
e2ce1b49a3 | |
|
8ff30f9edd | |
|
d544412cd1 | |
|
3b0552259d | |
|
4fa39916ee | |
|
42ee207c16 | |
|
c9f5b53e28 | |
|
8cc259ca26 | |
|
d25784cca8 | |
|
7c555cc9da | |
|
3e198f7294 | |
|
b855a82160 | |
|
583f42b131 | |
|
2991a6683e | |
|
fb9b06931e | |
|
48d9c26945 | |
|
4721842b1e | |
|
6aa3501136 | |
|
18ca98e66f | |
|
006052543f | |
|
30c9c60b5d | |
|
26607a0986 | |
|
ffc3c337dc | |
|
4b8ddcff7d | |
|
00d92cbebe | |
|
f81fc890bb | |
|
28c9775898 | |
|
344da31ceb | |
|
bc9d5648e7 | |
|
58ab1d26f7 | |
|
fe144b8f96 | |
|
efcebb52bf | |
|
7d3799d7fa | |
|
85e23f2851 | |
|
c5759b6d67 | |
|
5bbaba2a6e | |
|
74ed9e86a4 | |
|
3ef64e685c | |
|
6e2b444712 | |
|
7d8049b0c5 | |
|
741000d423 | |
|
fecc0c2604 | |
|
9d5efd8aef | |
|
25f620ef19 | |
|
6e80968778 | |
|
64584362b7 | |
|
8ad73b3e69 | |
|
5b9ba62e8f | |
|
26a4c38d67 | |
|
15b29e3ce8 | |
|
6bd7daa883 | |
|
5864a9dd2d | |
|
a475ecba44 | |
|
eace418f9b | |
|
bb2a45f013 | |
|
8c7ad9f31f | |
|
d9f06e72a2 | |
|
df221788f0 | |
|
6a7e698368 | |
|
4557daa602 | |
|
a70c42e681 | |
|
d87e0a5484 | |
|
89bb6a1998 | |
|
b06c3151f7 | |
|
add166fb62 | |
|
7aec398ede | |
|
da9258f474 | |
|
9c00cbb0fe | |
|
18e2d9c102 | |
|
71354b3bb8 | |
|
a293b4e124 | |
|
e3224c882a | |
|
dccd0ed62f | |
|
9231e530bf | |
|
6f92607ba4 | |
|
f76e272990 | |
|
3e0dbeb7f7 | |
|
98b7b2408f | |
|
ac7013064f | |
|
f2f8906968 | |
|
032750af77 | |
|
16fa850f24 | |
|
0b03f8b2f3 | |
|
810623dbe4 | |
|
01220931fc | |
|
924f291660 | |
|
2e5e96a8dd | |
|
ea4bc8790d | |
|
9e25d34920 | |
|
953f468229 | |
|
f872e7b8c6 | |
|
e0d892ecaa | |
|
cb062511b2 | |
|
fa5b944f31 | |
|
99c618fc2b | |
|
1a2b8e64f8 | |
|
6ad9bb3521 | |
|
0217da6c1f | |
|
f7e96cf0af | |
|
58cfedf5af | |
|
818e7db2e6 | |
|
6fa2d3ff95 | |
|
212eca4321 | |
|
cca359974a | |
|
f652b6e18f | |
|
fdab8ed5b6 | |
|
b2af779d7d | |
|
4bd421562d | |
|
d6fc38ea59 | |
|
380e7a58ff | |
|
939cd71702 |
|
@ -28,4 +28,9 @@ pip-log.txt
|
||||||
# Cython generated files
|
# Cython generated files
|
||||||
efl/*/*.c
|
efl/*/*.c
|
||||||
efl/*/*.h
|
efl/*/*.h
|
||||||
|
!efl/dbus_mainloop/e_dbus.*
|
||||||
efl/*/*.html
|
efl/*/*.html
|
||||||
|
|
||||||
|
# Various editors trash
|
||||||
|
.idea/
|
||||||
|
.vscode/
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
[MESSAGES CONTROL]
|
||||||
|
|
||||||
|
#enable=
|
||||||
|
|
||||||
|
disable=consider-using-f-string, # for older python we still support
|
||||||
|
redundant-u-string-prefix, # for older python we still support
|
||||||
|
invalid-name, # seems too pedantic to me
|
||||||
|
missing-function-docstring,
|
||||||
|
missing-class-docstring,
|
||||||
|
missing-module-docstring,
|
118
CODING
118
CODING
|
@ -1,3 +1,28 @@
|
||||||
|
TODO
|
||||||
|
====
|
||||||
|
* Automatically build and publish binary wheels on pypi
|
||||||
|
- for py: 36,37,38,39,310
|
||||||
|
- for linux x86 and rpi
|
||||||
|
- see https://packaging.python.org/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows/
|
||||||
|
- see https://github.com/pypa/manylinux
|
||||||
|
- also include efl itsef in the wheels? PySide is doing this
|
||||||
|
|
||||||
|
* Drop python 2 compatibility
|
||||||
|
- Switch to cython3
|
||||||
|
- remove all the workarounds for py2 (see strings and enums)
|
||||||
|
|
||||||
|
* Improved editors support, at least on VSCode and PyCharm
|
||||||
|
|
||||||
|
* Try to implement better the elementary module, removing
|
||||||
|
the __init__ module hack (that create problems in the docs)
|
||||||
|
|
||||||
|
* Make the examples a first citizen!
|
||||||
|
- install them with python efl
|
||||||
|
- make them easily runnable
|
||||||
|
- show them in the docs
|
||||||
|
- show the code inside the examples themself?
|
||||||
|
- make the code editable on the fly?
|
||||||
|
|
||||||
|
|
||||||
Style
|
Style
|
||||||
=====
|
=====
|
||||||
|
@ -98,65 +123,54 @@ Tips
|
||||||
Release process instructions
|
Release process instructions
|
||||||
============================
|
============================
|
||||||
|
|
||||||
* Announce at enlightenment-release@lists.sourceforge.net and
|
* use "api_coverage.py --python elementary" to see the missing bindings
|
||||||
enlightenment-devel@lists.sourceforge.net that you are planning for the release
|
|
||||||
* Change versions in efl/__init__.py (ex: 1.9.0)
|
* Version:
|
||||||
|
- change versions in efl/__init__.py (ex: 1.9.0)
|
||||||
|
- update EFL_MIN_VER in setup.py (if needed)
|
||||||
|
|
||||||
* Update the ChangeLog file:
|
* Update the ChangeLog file:
|
||||||
setup.py build_doc -b changes ...and manually merge from the html file
|
- setup.py build_doc -b changes ...and manually merge from the html file
|
||||||
* Git push and wait jenkins to generate the 2 tarballs
|
|
||||||
* Test the generated tarballs
|
|
||||||
* scp tarballs & md5sums to:
|
|
||||||
download.enlightenment.org:/srv/web/download.enlightenment.org/public_html/pre-releases/
|
|
||||||
* Announce at enlightenment-release@lists.sourceforge.net and
|
|
||||||
enlightenment-devel@lists.sourceforge.net that tarballs are ready for testing
|
|
||||||
|
|
||||||
... wait 24 hours, fix any issues found. In the mean time you can prepare the
|
* Generate the source (tar) and binary (wheel) distributions:
|
||||||
release announcement for phame/ml.
|
- make maintainer-clean (just to be sure nothing is cached)
|
||||||
|
- make dist
|
||||||
|
|
||||||
|
* Test the generated tarball and wheel:
|
||||||
|
- the targz must work by extracting and running: python setup.py install [--user]
|
||||||
|
- the targz must be installable using: pip install python-efl-1.9.0.tar.gz
|
||||||
|
- the wheel must be installable using: pip install python_efl-1.9.0-xxxx.whl
|
||||||
|
|
||||||
|
* Publish the 2 tar archive on e.org:
|
||||||
|
- scp tarballs & md5sums to:
|
||||||
|
download.enlightenment.org:/srv/web/download.enlightenment.org/rel/bindings/python/
|
||||||
|
- update download link on the wiki (www.enlightenment.org/download)
|
||||||
|
|
||||||
|
* Publish the .tar.gz archive on pypi:
|
||||||
|
- twine upload python-efl-1.9.0.tar.gz [--repository testpypy]
|
||||||
|
- TODO: also upload binary wheels for linux py36,37,38,39,310 (see manylinux on pypa)
|
||||||
|
|
||||||
|
* Documentation:
|
||||||
|
- make doc (check that inheritance graphs are there)
|
||||||
|
- scp the generated html documentation to:
|
||||||
|
download.enlightenment.org:/srv/web/docs.enlightenment.org/python-efl/1.9.0/
|
||||||
|
- update the 'current' link on the server (ssh)
|
||||||
|
|
||||||
* ssh to download.enlightenment.org and mv tarballs & md5sums to:
|
|
||||||
/srv/web/download.enlightenment.org/public_html/rel/bindings/python/
|
|
||||||
* Upload the .tar.gz archive to pypi:
|
|
||||||
- first upload the PKG-INFO file from the "edit" section on pypi
|
|
||||||
- then upload the tarball from the "files" section
|
|
||||||
* Create and push the tag for the release
|
* Create and push the tag for the release
|
||||||
git tag -a v1.9.0 && git push origin v1.9.0
|
- git tag -a v1.9.0 && git push origin v1.9.0
|
||||||
|
|
||||||
* Create and push the branch for stable backporting
|
* Create and push the branch for stable backporting
|
||||||
git branch python-efl-1.9 && git push origin python-efl-1.9
|
git branch python-efl-1.9 && git push origin python-efl-1.9
|
||||||
* scp the generated html documentation to:
|
|
||||||
download.enlightenment.org:/srv/web/docs.enlightenment.org/public_html/python-efl/1.XX.0/
|
* Announce the release to release@lists.enlightenment.org and
|
||||||
and update the 'current' link on the server (ssh)
|
enlightenment-release@lists.sourceforge.net
|
||||||
* Update download link on the wiki (www.enlightenment.org/download)
|
|
||||||
* Publish the blog post on phame (Official Announcements)
|
|
||||||
* Announce the release to release@lists.enlightenment.org
|
|
||||||
* Change versions again in efl/__init__.py (ex: 1.9.99)
|
* Change versions again in efl/__init__.py (ex: 1.9.99)
|
||||||
|
|
||||||
more info at:
|
for more info:
|
||||||
phab.enlightenment.org/w/release_procedure/
|
--------------
|
||||||
|
* packaging.python.org
|
||||||
|
* phab.enlightenment.org/w/release_procedure/
|
||||||
|
* phab.enlightenment.org/w/hosting/ssh/
|
||||||
|
|
||||||
|
|
||||||
Discussion
|
|
||||||
==========
|
|
||||||
|
|
||||||
* Internal utility functions used in the bindings must start with an
|
|
||||||
underscore and must have the shortest name as possible.
|
|
||||||
^
|
|
||||||
This needs further discussion/expansion.
|
|
||||||
|
|
||||||
When we define a function with cdef it is not exposed to Python API.
|
|
||||||
This should be explicit enough to not need the underscore prefix, which
|
|
||||||
at best looks ugly, and at worst just plain confusing.
|
|
||||||
|
|
||||||
A function name should summarize its functionality in one clear text,
|
|
||||||
short sentence. We have both too long and too short names. And I admit to
|
|
||||||
being guilty of adding many of both.
|
|
||||||
|
|
||||||
Let's build up a short review so we can see where we stand with this and
|
|
||||||
make necessary corrections.
|
|
||||||
|
|
||||||
/ kuuko
|
|
||||||
|
|
||||||
|
|
||||||
The underscore usage is a coding standard in all the EFL, we should try
|
|
||||||
to follow the efl style also here (where is possible and make sense)
|
|
||||||
|
|
||||||
/ davemds
|
|
||||||
|
|
182
ChangeLog
182
ChangeLog
|
@ -1,3 +1,185 @@
|
||||||
|
===================
|
||||||
|
2023-10-08 v1.26.1
|
||||||
|
===================
|
||||||
|
|
||||||
|
Maintenance release:
|
||||||
|
* rebuilt using Cython 0.29.34 to fix install on python 3.11
|
||||||
|
|
||||||
|
|
||||||
|
===================
|
||||||
|
2022-02-27 v1.26.0
|
||||||
|
===================
|
||||||
|
|
||||||
|
Changes:
|
||||||
|
* Switched to setuptools for the build system (can now install from pip again)
|
||||||
|
* Dropped py2.6 support, minimum is now 2.7
|
||||||
|
* Deprecated python2 support, with a big-fat-slow warning
|
||||||
|
* Improved documentation
|
||||||
|
|
||||||
|
Fixes:
|
||||||
|
* Fixed a memory allocation error in EvasSmart
|
||||||
|
|
||||||
|
|
||||||
|
===================
|
||||||
|
2020-09-24 v1.25.0
|
||||||
|
===================
|
||||||
|
|
||||||
|
Changes:
|
||||||
|
* Switched to Cython 0.29.21 for the tarball generation
|
||||||
|
|
||||||
|
|
||||||
|
===================
|
||||||
|
2020-04-30 v1.24.0
|
||||||
|
===================
|
||||||
|
|
||||||
|
Changes:
|
||||||
|
* Switched to Cython 0.29.16 for the tarball generation
|
||||||
|
* No more pypi packages uploaded, you must install from tarball
|
||||||
|
|
||||||
|
|
||||||
|
===================
|
||||||
|
2019-10-06 v1.23.0
|
||||||
|
===================
|
||||||
|
|
||||||
|
Changes:
|
||||||
|
* Switched to Cython 0.29.13 for the tarball generation
|
||||||
|
|
||||||
|
|
||||||
|
===================
|
||||||
|
2019-04-23 v1.22.0
|
||||||
|
===================
|
||||||
|
|
||||||
|
Changes:
|
||||||
|
* Switched to Cython 0.29.7 for the tarball generation
|
||||||
|
|
||||||
|
|
||||||
|
===================
|
||||||
|
2018-08-24 v1.21.0
|
||||||
|
===================
|
||||||
|
|
||||||
|
BREAKS:
|
||||||
|
* systray.pxi do not work anymore as the widget has been removed from efl.
|
||||||
|
The widget has been completly removed and the function elm_need_systray
|
||||||
|
now always return False that means systray is not available.
|
||||||
|
Apologies for the inconvenient.
|
||||||
|
|
||||||
|
Changes:
|
||||||
|
* Switched to Cython 0.28.4 for the tarball generation, should fix build
|
||||||
|
issues with python3.7
|
||||||
|
|
||||||
|
Additions:
|
||||||
|
* ecore.ECORE_EXE_ISOLATE_IO
|
||||||
|
* edje.part_text_prediction_hint_hash_del
|
||||||
|
* edje.part_text_prediction_hint_hash_set
|
||||||
|
* elm.Entry.prediction_hint_hash_del
|
||||||
|
* elm.Entry.prediction_hint_hash_set
|
||||||
|
* elm.Ctxpopup.item_insert_after
|
||||||
|
* elm.Ctxpopup.item_insert_before
|
||||||
|
|
||||||
|
|
||||||
|
===================
|
||||||
|
2017-05-06 v1.20.0
|
||||||
|
===================
|
||||||
|
|
||||||
|
Fixes:
|
||||||
|
* ecore.input and ecore.x can now coexsist
|
||||||
|
|
||||||
|
Changes:
|
||||||
|
* ecore.Poller is no more an Eo object in C (nothing should be changed in py)
|
||||||
|
* removed edje.Object custom __repr__ implementation
|
||||||
|
* Use Cython 23.5 to generate the C source in dist tarball (see T5589)
|
||||||
|
|
||||||
|
Additions:
|
||||||
|
* elm.Entry.prediction_hint
|
||||||
|
* elm.Genlist.multi_select_mode
|
||||||
|
* elm.Menu.open()
|
||||||
|
* elm.Spinner.callback_max_reached_add()
|
||||||
|
* elm.Spinner.callback_max_reached_del()
|
||||||
|
* edje.part_text_prediction_hint_set()
|
||||||
|
* evas.Map.coords_get()
|
||||||
|
|
||||||
|
|
||||||
|
===================
|
||||||
|
2017-04-18 v1.19.0
|
||||||
|
===================
|
||||||
|
|
||||||
|
Fixes:
|
||||||
|
* Fixes for cython 0.25 compatibility
|
||||||
|
* elm.font_properties_get
|
||||||
|
* elm.Gengrid.item_insert_after now work as expected
|
||||||
|
|
||||||
|
Changes:
|
||||||
|
* Removed ecore warning about subprocess incompatibility, with test to prove it
|
||||||
|
* Emotion: changed default module_name to "gstreamer1"
|
||||||
|
* elm.font_properties_free: Changed to no-op as we now do the free
|
||||||
|
automatically when there are no more references to the FontProperties object
|
||||||
|
* elm.Panel.scrollable_content_size is now also readable
|
||||||
|
* EcoreConUrl is no more an Eo object in C
|
||||||
|
|
||||||
|
Additions:
|
||||||
|
* evas.Image.load_head_skip
|
||||||
|
* elm.ELM_INPUT_PANEL_LAYOUT_VOICE
|
||||||
|
* elm.ELM_CALENDAR_REVERSE_DAILY
|
||||||
|
* elm.Calendar.date_max
|
||||||
|
* elm.Calendar.date_min
|
||||||
|
* elm.GengridItem.custom_size
|
||||||
|
* elm.Image.async_open
|
||||||
|
* elm.Image.callback_load_cancel_add
|
||||||
|
* elm.Image.callback_load_error_add
|
||||||
|
* elm.Image.callback_load_open_add
|
||||||
|
* elm.Image.callback_load_ready_add
|
||||||
|
* elm.Naviframe.callback_item_activated_add
|
||||||
|
* elm.Panel.callback_toggled_add
|
||||||
|
* elm.Progressbar.is_pulsing
|
||||||
|
* elm.Spinner.callback_drag_start_add
|
||||||
|
* elm.Spinner.callback_drag_stop_add
|
||||||
|
|
||||||
|
|
||||||
|
===================
|
||||||
|
2016-08-22 v1.18.0
|
||||||
|
===================
|
||||||
|
|
||||||
|
Fixes:
|
||||||
|
* Fixed (workaround) dbus crash on python >= 3.5
|
||||||
|
* Fixed Logger module to not fail on unicode error messages
|
||||||
|
|
||||||
|
Changes:
|
||||||
|
* Changed enums implementation to gain compatibility with Cython > 0.22
|
||||||
|
* Docs: Allow to skip last_updated and sphinx_version
|
||||||
|
* elm.Combobox: The combobox widget has been deprecated.
|
||||||
|
* elm.Photo.editable property is now also readable
|
||||||
|
* elm.Photo.fill_inside property is now also readable
|
||||||
|
* elm.Photo.size property is now also readable
|
||||||
|
|
||||||
|
Additions:
|
||||||
|
* ecore.Exe.is_deleted
|
||||||
|
* ecore.FdHandler.is_deleted
|
||||||
|
* edje.Edje.part_box_insert_after
|
||||||
|
* elm.Configuration.accel_preference_override
|
||||||
|
* elm.Configuration.first_item_focus_on_first_focusin
|
||||||
|
* elm.Configuration.font_hint_type
|
||||||
|
* elm.Configuration.icon_theme
|
||||||
|
* elm.Configuration.popup_scrollable
|
||||||
|
* elm.Configuration.scroll_accel_factor
|
||||||
|
* elm.Configuration.scroll_animation_disabled
|
||||||
|
* elm.Configuration.vsync
|
||||||
|
* elm.Configuration.web_backend
|
||||||
|
* elm.Entry.file_text_format
|
||||||
|
* elm.Entry.select_allow
|
||||||
|
* elm.Entry.select_region
|
||||||
|
* elm.GengridItem.all_contents_unset
|
||||||
|
* elm.Genlist.filtered_items_count
|
||||||
|
* elm.GenlistItem.all_contents_unset
|
||||||
|
* elm.List.multi_select_mode (and the Elm_Object_Multi_Select_Mode enum)
|
||||||
|
* elm.Object.focus_move_policy_automatic
|
||||||
|
* elm.Popup.align
|
||||||
|
* elm.Popup.scrollable
|
||||||
|
* elm.Slider.range
|
||||||
|
* elm.Slider.range_enabled
|
||||||
|
* elm.Slider.indicator_show_on_focus
|
||||||
|
* elm.Transit.revert
|
||||||
|
* elm.Window.noblank
|
||||||
|
|
||||||
|
|
||||||
==================
|
==================
|
||||||
2016-01-7 v1.17.0
|
2016-01-7 v1.17.0
|
||||||
|
|
18
INSTALL
18
INSTALL
|
@ -3,22 +3,19 @@
|
||||||
===============
|
===============
|
||||||
|
|
||||||
* Python 2.6 or higher, 3.2 or higher (http://www.python.org/)
|
* Python 2.6 or higher, 3.2 or higher (http://www.python.org/)
|
||||||
- Tested with Python 2.7 / 3.3 / 3.4
|
- Tested with Python 3.8
|
||||||
|
|
||||||
* Cython 0.21 or higher (http://cython.org/)
|
* Cython 0.21 or higher (http://cython.org/)
|
||||||
- Tested with Cython 0.21.2
|
- Tested with Cython 0.29.16
|
||||||
|
|
||||||
* EFL core library
|
* EFL must be the same minor version of the bindings,
|
||||||
- eo, evas, ecore, edje, emotion and elementary
|
es. python-efl 1.24 need efl 1.24
|
||||||
|
|
||||||
* 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
|
|
||||||
|
|
||||||
* To build the DOCS you will also need:
|
* To build the DOCS you will also need:
|
||||||
- python-sphinx
|
- python-sphinx
|
||||||
- [optional] graphviz
|
- [optional] graphviz
|
||||||
|
|
||||||
|
* At least 4GB of free RAM to build
|
||||||
|
|
||||||
|
|
||||||
2. BUILDING PYTHON-EFL
|
2. BUILDING PYTHON-EFL
|
||||||
|
@ -29,6 +26,11 @@
|
||||||
|
|
||||||
python setup.py build
|
python setup.py build
|
||||||
|
|
||||||
|
IMPORTANT NOTE:
|
||||||
|
To build the bindings you will need at least 4GB of free ram!
|
||||||
|
Otherwise the build process will badly fail.
|
||||||
|
|
||||||
|
|
||||||
Distribution tarballs include pre-generated C source files, so
|
Distribution tarballs include pre-generated C source files, so
|
||||||
cython usage is disabled by default, while is enabled in development git
|
cython usage is disabled by default, while is enabled in development git
|
||||||
versions. You can always force the usage of cython using two environment
|
versions. You can always force the usage of cython using two environment
|
||||||
|
|
25
Makefile
25
Makefile
|
@ -16,7 +16,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
PY = python
|
PY = python3
|
||||||
|
|
||||||
|
|
||||||
.PHONY: build
|
.PHONY: build
|
||||||
|
@ -29,6 +29,11 @@ install:
|
||||||
$(PY) setup.py install
|
$(PY) setup.py install
|
||||||
|
|
||||||
|
|
||||||
|
.PHONY: uninstall
|
||||||
|
uninstall:
|
||||||
|
$(PY) setup.py uninstall
|
||||||
|
|
||||||
|
|
||||||
.PHONY: doc
|
.PHONY: doc
|
||||||
doc:
|
doc:
|
||||||
$(PY) setup.py build build_doc
|
$(PY) setup.py build build_doc
|
||||||
|
@ -44,12 +49,20 @@ clean:
|
||||||
$(PY) setup.py clean --all
|
$(PY) setup.py clean --all
|
||||||
|
|
||||||
|
|
||||||
.PHONY: maintaner-clean
|
.PHONY: maintainer-clean
|
||||||
maintaner-clean:
|
maintainer-clean:
|
||||||
$(PY) setup.py clean --all clean_generated_files
|
$(PY) setup.py clean --all clean_generated_files
|
||||||
|
rm -rf build/
|
||||||
|
rm -rf dist/
|
||||||
|
rm -rf python_efl.egg-info/
|
||||||
|
rm -f installed_files-*.txt
|
||||||
|
|
||||||
|
|
||||||
.PHONY: dist
|
.PHONY: dist
|
||||||
dist:
|
dist:
|
||||||
$(PY) setup.py sdist --formats=gztar,bztar
|
$(PY) setup.py sdist --formats=gztar,xztar
|
||||||
|
$(PY) setup.py bdist_wheel
|
||||||
|
@cd dist/; for f in `ls *.tar.*` ; do \
|
||||||
|
echo Generating sha256 for: $$f ; \
|
||||||
|
sha256sum $$f > $$f.sha256; \
|
||||||
|
done
|
||||||
|
|
7
README
7
README
|
@ -1,7 +0,0 @@
|
||||||
|
|
||||||
EFL is a collection of libraries for handling many common tasks a
|
|
||||||
developer man have such as data structures, communication, rendering,
|
|
||||||
widgets and more.
|
|
||||||
|
|
||||||
PYTHON-EFL are the python bindings for the whole EFL stack (eo, evas, ecore,
|
|
||||||
edje, emotion, ethumb and elementary)
|
|
|
@ -0,0 +1,92 @@
|
||||||
|
# Python bindings for the EFL
|
||||||
|
|
||||||
|
EFL, or the *Enlightenment Foundation Libraries*, is a collection of libraries for handling many common tasks such as data structures, communication, rendering, widgets and more. Read more on the [efl web site](https://www.enlightenment.org/about-efl).
|
||||||
|
|
||||||
|
Python-EFL are the python bindings for the whole EFL stack (evas, ecore, edje, emotion, ethumb and elementary). You can use Python-EFL to build a portable GUI application in minutes.
|
||||||
|
|
||||||
|
The documentation for Python-EFL is available [here](https://docs.enlightenment.org/python-efl/current/).
|
||||||
|
|
||||||
|
## Install from pypi
|
||||||
|
|
||||||
|
The last stable release is always available on pypi, and pip is the raccomanded way to install Python-EFL:
|
||||||
|
```
|
||||||
|
pip install python-efl
|
||||||
|
```
|
||||||
|
The only requirement is to have the EFL already installed on your machine, see [here](https://www.enlightenment.org/docs/distros/start) for install instructions for various linux distro or for building EFL from sources.
|
||||||
|
|
||||||
|
NOTE: Currently only sources packages are available on pip, this means that the installation will be quite long as it need to compile all the modules, and that you need a C compiler for installation to work (we highly suggest to use clang as your C compiler). For the next release we have plans to also upload binary packages on pypi, so the installation will be blazing fast and will have zero dependencies!
|
||||||
|
|
||||||
|
|
||||||
|
## Install from released tarballs
|
||||||
|
|
||||||
|
All the stable releases of python-efl can always be found at:
|
||||||
|
https://download.enlightenment.org/rel/bindings/python/
|
||||||
|
|
||||||
|
To install download and unpack a tarball and run:
|
||||||
|
```
|
||||||
|
python setup.py build
|
||||||
|
python setup.py install --user
|
||||||
|
or
|
||||||
|
sudo python setup.py install (for sistem-wide installation)
|
||||||
|
```
|
||||||
|
|
||||||
|
NOTE: due to strange cython+gcc behaviour we highly suggest to build python-efl using clang. If you experience issues using gcc (like memory exhausted or strange compile errors) just use clang in this way:
|
||||||
|
|
||||||
|
```
|
||||||
|
CC=clang python setup.py build
|
||||||
|
```
|
||||||
|
|
||||||
|
## Source repository
|
||||||
|
|
||||||
|
If you would like to contribute to Python-EFL and make changes to the Python-EFL code you need to build from **git**. Development take place in the **master** branch, while we backport bugfixes in the release branches. You will find a branch for each released version, branches are named as **python-efl-X.X**.
|
||||||
|
|
||||||
|
To build from git you also need to have [Cython](https://cython.org/) installed.
|
||||||
|
|
||||||
|
### Main repository
|
||||||
|
https://git.enlightenment.org/bindings/python/python-efl.git/
|
||||||
|
|
||||||
|
### GitHub repository
|
||||||
|
https://github.com/DaveMDS/python-efl
|
||||||
|
|
||||||
|
The GitHub repo has been created to simplify the workflow for people that do
|
||||||
|
not have a git account in the E repo, and thus improving collaboration.
|
||||||
|
Feel free to make pull requests on GitHub.
|
||||||
|
|
||||||
|
|
||||||
|
## Documentation
|
||||||
|
|
||||||
|
Documentation for the last stable release can be found [here](https://docs.enlightenment.org/python-efl/current/).
|
||||||
|
Additionally you can generate the documentation yourself from the source code using the following command:
|
||||||
|
```
|
||||||
|
python setup.py build build_doc
|
||||||
|
```
|
||||||
|
The HTML generated documentation will be available in the folder: `build/sphinx/html/`
|
||||||
|
|
||||||
|
## Some of the projects using Python-EFL (in random order)
|
||||||
|
|
||||||
|
| **Project** | **Website** |
|
||||||
|
|-------------------------------------|------------------------------------------------------|
|
||||||
|
| **EpyMC** - Media Center | https://github.com/DaveMDS/epymc |
|
||||||
|
| **Espionage** - D-Bus inspector | https://phab.enlightenment.org/w/projects/espionage/ |
|
||||||
|
| **Epour** - BitTorrent Client | https://phab.enlightenment.org/w/projects/epour/ |
|
||||||
|
| **Eluminance** - Fast photo browser | https://github.com/DaveMDS/eluminance |
|
||||||
|
| **Egitu** - Git User Interface | https://github.com/DaveMDS/egitu |
|
||||||
|
| **Edone** - GettingThingsDone | https://github.com/DaveMDS/edone |
|
||||||
|
| **Epack** - Archive extractor | https://github.com/wfx/epack |
|
||||||
|
|
||||||
|
... and many more that cannot fit in this short list. If have some code and want it in this list just let us know.
|
||||||
|
|
||||||
|
|
||||||
|
## A short history of Python-EFL
|
||||||
|
|
||||||
|
Python-EFL was begun in 2007 by work of Gustavo Sverzut Barbieri and others while working for Nokia on the software project Canola Media Player. The language bindings were initially developed for the individual components of EFL, until merged together in 2013.
|
||||||
|
|
||||||
|
He was later joined by Ulisses Furquim Freire da Silva, who together formed the company ProFUSION embedded systems where the developement continued and a new software project called Editje was created, which uses the Python bindings for most of its functionality.
|
||||||
|
|
||||||
|
Python-EFL gained many more developers, also at this time an independent application project called EpyMC was created by Davide Andreoli.
|
||||||
|
|
||||||
|
In the beginning of the year 2011 the developement was practically halted. In 2012 Davide Andreoli picked up the developement and Kai Huuhko (@kuuko) joined him shortly after. Work at this time was focused on finishing the Python bindings for Elementary, the toolkit library.
|
||||||
|
|
||||||
|
In 2013 the individual components were merged together and a new documentation system was implemented, enabling easier access for the end-user developers.
|
||||||
|
|
||||||
|
Currently (as in 2022) the bindings are still actively maintained and improved by Davide Andreoli, in his effort to bring to python a powerfull and attractive UI toolkit.
|
37
TODO
37
TODO
|
@ -1,37 +0,0 @@
|
||||||
|
|
||||||
BUGS
|
|
||||||
====
|
|
||||||
* EdjeEdit: PartState API does not work
|
|
||||||
* Elm.Map: overlays_show segfaults, scrollers in examples are jumpy
|
|
||||||
* Genlist: "filter,done" event is sometimes fired before filter callbacks are done (see the genlist_filter.py test)
|
|
||||||
|
|
||||||
Failing unit tests
|
|
||||||
------------------
|
|
||||||
* tests.edje.test_04_edit: testPartEffect (marked as known failure)
|
|
||||||
* tests.edje.test_04_edit: testGroupDel (skipped, segfault)
|
|
||||||
* tests.edje.test_04_edit: testExternal (skipped, TODO)
|
|
||||||
|
|
||||||
TODO
|
|
||||||
====
|
|
||||||
* update links and text on:
|
|
||||||
http://www.freedesktop.org/wiki/Software/DBusBindings
|
|
||||||
(requires fd.org shell account?)
|
|
||||||
* Review the internal functions and name them consistently
|
|
||||||
* edje: complete the unit tests
|
|
||||||
* Initial Evas GL support (for Elm)
|
|
||||||
* Add more documentation for callbacks, events, etc.
|
|
||||||
* Check for missing Eo type mappings
|
|
||||||
|
|
||||||
Elm
|
|
||||||
---
|
|
||||||
* Automate compilation of the example edje files.
|
|
||||||
* Add more examples
|
|
||||||
* Prefs (only supports simple types, not so great for us)
|
|
||||||
* GLView
|
|
||||||
* Unit tests
|
|
||||||
* Images missing in the documentation:
|
|
||||||
- datetime
|
|
||||||
- systray
|
|
||||||
- video
|
|
||||||
- web
|
|
||||||
- window ?
|
|
|
@ -25,6 +25,11 @@ c_exclude_list = [
|
||||||
"elm_config_access", # Access disabled until 1.9
|
"elm_config_access", # Access disabled until 1.9
|
||||||
"elm_object_item_access", # Access disabled until 1.9
|
"elm_object_item_access", # Access disabled until 1.9
|
||||||
"elm_systray", # We currently have this in using Eo API
|
"elm_systray", # We currently have this in using Eo API
|
||||||
|
"elm_code_", # The code widget is still in beta
|
||||||
|
"elm_need_e_dbus", # has been deprecated long time ago
|
||||||
|
"elm_check_selected_get", # We already provide state_get
|
||||||
|
"elm_check_selected_set", # We already provide state_set
|
||||||
|
|
||||||
]
|
]
|
||||||
c_excludes = "|".join(c_exclude_list)
|
c_excludes = "|".join(c_exclude_list)
|
||||||
|
|
||||||
|
@ -166,6 +171,8 @@ def get_pyapis(pxd_path, header_name, prefix):
|
||||||
for f in files:
|
for f in files:
|
||||||
# if not f.endswith(".pxd"):
|
# if not f.endswith(".pxd"):
|
||||||
# continue
|
# continue
|
||||||
|
if f.endswith(".pyc"):
|
||||||
|
continue
|
||||||
open_args = (os.path.join(path, f),)
|
open_args = (os.path.join(path, f),)
|
||||||
open_kwargs = dict(mode="r")
|
open_kwargs = dict(mode="r")
|
||||||
if sys.version_info[0] > 2:
|
if sys.version_info[0] > 2:
|
||||||
|
|
153
doc/Makefile
153
doc/Makefile
|
@ -1,153 +0,0 @@
|
||||||
# Makefile for Sphinx documentation
|
|
||||||
#
|
|
||||||
|
|
||||||
# You can set these variables from the command line.
|
|
||||||
SPHINXOPTS =
|
|
||||||
SPHINXBUILD = sphinx-build
|
|
||||||
PAPER =
|
|
||||||
BUILDDIR = _build
|
|
||||||
|
|
||||||
# Internal variables.
|
|
||||||
PAPEROPT_a4 = -D latex_paper_size=a4
|
|
||||||
PAPEROPT_letter = -D latex_paper_size=letter
|
|
||||||
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
|
|
||||||
# the i18n builder cannot share the environment and doctrees with the others
|
|
||||||
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
|
|
||||||
|
|
||||||
.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
|
|
||||||
|
|
||||||
help:
|
|
||||||
@echo "Please use \`make <target>' where <target> is one of"
|
|
||||||
@echo " html to make standalone HTML files"
|
|
||||||
@echo " dirhtml to make HTML files named index.html in directories"
|
|
||||||
@echo " singlehtml to make a single large HTML file"
|
|
||||||
@echo " pickle to make pickle files"
|
|
||||||
@echo " json to make JSON files"
|
|
||||||
@echo " htmlhelp to make HTML files and a HTML help project"
|
|
||||||
@echo " qthelp to make HTML files and a qthelp project"
|
|
||||||
@echo " devhelp to make HTML files and a Devhelp project"
|
|
||||||
@echo " epub to make an epub"
|
|
||||||
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
|
|
||||||
@echo " latexpdf to make LaTeX files and run them through pdflatex"
|
|
||||||
@echo " text to make text files"
|
|
||||||
@echo " man to make manual pages"
|
|
||||||
@echo " texinfo to make Texinfo files"
|
|
||||||
@echo " info to make Texinfo files and run them through makeinfo"
|
|
||||||
@echo " gettext to make PO message catalogs"
|
|
||||||
@echo " changes to make an overview of all changed/added/deprecated items"
|
|
||||||
@echo " linkcheck to check all external links for integrity"
|
|
||||||
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
|
|
||||||
|
|
||||||
clean:
|
|
||||||
-rm -rf $(BUILDDIR)/*
|
|
||||||
|
|
||||||
html:
|
|
||||||
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
|
|
||||||
@echo
|
|
||||||
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
|
|
||||||
|
|
||||||
dirhtml:
|
|
||||||
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
|
|
||||||
@echo
|
|
||||||
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
|
|
||||||
|
|
||||||
singlehtml:
|
|
||||||
$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
|
|
||||||
@echo
|
|
||||||
@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
|
|
||||||
|
|
||||||
pickle:
|
|
||||||
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
|
|
||||||
@echo
|
|
||||||
@echo "Build finished; now you can process the pickle files."
|
|
||||||
|
|
||||||
json:
|
|
||||||
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
|
|
||||||
@echo
|
|
||||||
@echo "Build finished; now you can process the JSON files."
|
|
||||||
|
|
||||||
htmlhelp:
|
|
||||||
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
|
|
||||||
@echo
|
|
||||||
@echo "Build finished; now you can run HTML Help Workshop with the" \
|
|
||||||
".hhp project file in $(BUILDDIR)/htmlhelp."
|
|
||||||
|
|
||||||
qthelp:
|
|
||||||
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
|
|
||||||
@echo
|
|
||||||
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
|
|
||||||
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
|
|
||||||
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/PythonBindingsforEnlightenmentFoundationLibraries.qhcp"
|
|
||||||
@echo "To view the help file:"
|
|
||||||
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/PythonBindingsforEnlightenmentFoundationLibraries.qhc"
|
|
||||||
|
|
||||||
devhelp:
|
|
||||||
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
|
|
||||||
@echo
|
|
||||||
@echo "Build finished."
|
|
||||||
@echo "To view the help file:"
|
|
||||||
@echo "# mkdir -p $$HOME/.local/share/devhelp/PythonBindingsforEnlightenmentFoundationLibraries"
|
|
||||||
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/PythonBindingsforEnlightenmentFoundationLibraries"
|
|
||||||
@echo "# devhelp"
|
|
||||||
|
|
||||||
epub:
|
|
||||||
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
|
|
||||||
@echo
|
|
||||||
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
|
|
||||||
|
|
||||||
latex:
|
|
||||||
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
|
||||||
@echo
|
|
||||||
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
|
|
||||||
@echo "Run \`make' in that directory to run these through (pdf)latex" \
|
|
||||||
"(use \`make latexpdf' here to do that automatically)."
|
|
||||||
|
|
||||||
latexpdf:
|
|
||||||
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
|
||||||
@echo "Running LaTeX files through pdflatex..."
|
|
||||||
$(MAKE) -C $(BUILDDIR)/latex all-pdf
|
|
||||||
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
|
|
||||||
|
|
||||||
text:
|
|
||||||
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
|
|
||||||
@echo
|
|
||||||
@echo "Build finished. The text files are in $(BUILDDIR)/text."
|
|
||||||
|
|
||||||
man:
|
|
||||||
$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
|
|
||||||
@echo
|
|
||||||
@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
|
|
||||||
|
|
||||||
texinfo:
|
|
||||||
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
|
|
||||||
@echo
|
|
||||||
@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
|
|
||||||
@echo "Run \`make' in that directory to run these through makeinfo" \
|
|
||||||
"(use \`make info' here to do that automatically)."
|
|
||||||
|
|
||||||
info:
|
|
||||||
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
|
|
||||||
@echo "Running Texinfo files through makeinfo..."
|
|
||||||
make -C $(BUILDDIR)/texinfo info
|
|
||||||
@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
|
|
||||||
|
|
||||||
gettext:
|
|
||||||
$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
|
|
||||||
@echo
|
|
||||||
@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
|
|
||||||
|
|
||||||
changes:
|
|
||||||
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
|
|
||||||
@echo
|
|
||||||
@echo "The overview file is in $(BUILDDIR)/changes."
|
|
||||||
|
|
||||||
linkcheck:
|
|
||||||
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
|
|
||||||
@echo
|
|
||||||
@echo "Link check complete; look for any errors in the above output " \
|
|
||||||
"or in $(BUILDDIR)/linkcheck/output.txt."
|
|
||||||
|
|
||||||
doctest:
|
|
||||||
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
|
|
||||||
@echo "Testing of doctests in the sources finished, look at the " \
|
|
||||||
"results in $(BUILDDIR)/doctest/output.txt."
|
|
307
doc/conf.py
307
doc/conf.py
|
@ -1,40 +1,47 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
#
|
#
|
||||||
# Python Bindings for EFL Elementary documentation build configuration file, created by
|
# Configuration file for the Sphinx documentation builder.
|
||||||
# sphinx-quickstart on Thu Jun 28 09:21:25 2012.
|
|
||||||
#
|
#
|
||||||
# This file is execfile()d with the current directory set to its containing dir.
|
# This file only contains a selection of the most common options. For a full
|
||||||
#
|
# list see the documentation:
|
||||||
# Note that not all possible configuration values are present in this
|
# https://www.sphinx-doc.org/en/master/usage/configuration.html
|
||||||
# autogenerated file.
|
|
||||||
#
|
|
||||||
# All configuration values have a default; values that are commented out
|
|
||||||
# serve to show the default.
|
|
||||||
|
|
||||||
import sys, os, platform
|
# pylint: disable=invalid-name
|
||||||
|
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
import platform
|
||||||
|
|
||||||
|
|
||||||
|
# -- Path setup --------------------------------------------------------------
|
||||||
|
|
||||||
# If extensions (or modules to document with autodoc) are in another directory,
|
# If extensions (or modules to document with autodoc) are in another directory,
|
||||||
# add these directories to sys.path here. If the directory is relative to the
|
# add these directories to sys.path here.
|
||||||
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
d = 'lib.%s-%s-%d.%d' % (
|
||||||
|
platform.system().lower(),
|
||||||
d = "lib.%s-%s-%d.%d" % (
|
platform.machine(),
|
||||||
platform.system().lower(),
|
sys.version_info[0],
|
||||||
platform.machine(),
|
sys.version_info[1]
|
||||||
sys.version_info[0],
|
)
|
||||||
sys.version_info[1]
|
sys.path.insert(0, os.path.abspath('../build/' + d))
|
||||||
)
|
# sys.path.insert(0, os.path.abspath('../build/lib.linux-i686-3.2'))
|
||||||
sys.path.insert(0, os.path.abspath("../build/"+d))
|
|
||||||
#sys.path.insert(0, os.path.abspath('../build/lib.linux-i686-3.2'))
|
|
||||||
|
|
||||||
# Delete any previously imported efl package
|
# Delete any previously imported efl package
|
||||||
if "efl" in sys.modules:
|
if 'efl' in sys.modules:
|
||||||
del sys.modules["efl"]
|
del sys.modules['efl']
|
||||||
|
|
||||||
|
|
||||||
# -- General configuration -----------------------------------------------------
|
# -- Project information -----------------------------------------------------
|
||||||
|
|
||||||
|
project = 'Python EFL'
|
||||||
|
author = 'The Python-EFL community (see AUTHORS)'
|
||||||
|
copyright = '2008-2022, ' + author # pylint: disable=redefined-builtin
|
||||||
|
|
||||||
|
|
||||||
|
# -- General configuration ----------------------------------------------------
|
||||||
|
|
||||||
# If your documentation needs a minimal Sphinx version, state it here.
|
# If your documentation needs a minimal Sphinx version, state it here.
|
||||||
needs_sphinx = '1.1'
|
needs_sphinx = '3.1'
|
||||||
|
|
||||||
# Add any Sphinx extension module names here, as strings. They can be extensions
|
# Add any Sphinx extension module names here, as strings. They can be extensions
|
||||||
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
|
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
|
||||||
|
@ -46,113 +53,36 @@ extensions = [
|
||||||
# Add any paths that contain templates here, relative to this directory.
|
# Add any paths that contain templates here, relative to this directory.
|
||||||
templates_path = ['_templates']
|
templates_path = ['_templates']
|
||||||
|
|
||||||
# The suffix of source filenames.
|
|
||||||
source_suffix = '.rst'
|
|
||||||
|
|
||||||
# The encoding of source files.
|
|
||||||
#source_encoding = 'utf-8-sig'
|
|
||||||
|
|
||||||
# The master toctree document.
|
# The master toctree document.
|
||||||
master_doc = 'index'
|
# master_doc = 'index'
|
||||||
|
|
||||||
# General information about the project.
|
|
||||||
project = u'Python EFL'
|
|
||||||
copyright = u'2008-2015, Simon Busch, Gustavo Sverzut Barbieri, Ulisses Furquim, ProFUSION embedded systems, Boris Faure, Fabiano Fidencio, Davide Andreoli, Kai Huuhko'
|
|
||||||
|
|
||||||
# The version info for the project you're documenting, acts as replacement for
|
|
||||||
# |version| and |release|, also used in various other places throughout the
|
|
||||||
# built documents.
|
|
||||||
#
|
|
||||||
# The short X.Y version.
|
|
||||||
# version = 'X.Y'
|
|
||||||
# The full version, including alpha/beta/rc tags.
|
|
||||||
# release = 'X.Y.Z'
|
|
||||||
|
|
||||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
|
||||||
# for a list of supported languages.
|
|
||||||
#language = None
|
|
||||||
|
|
||||||
# There are two options for replacing |today|: either, you set today to some
|
|
||||||
# non-false value, then it is used:
|
|
||||||
#today = ''
|
|
||||||
# Else, today_fmt is used as the format for a strftime call.
|
|
||||||
#today_fmt = '%B %d, %Y'
|
|
||||||
|
|
||||||
# List of patterns, relative to source directory, that match files and
|
# List of patterns, relative to source directory, that match files and
|
||||||
# directories to ignore when looking for source files.
|
# directories to ignore when looking for source files.
|
||||||
exclude_patterns = ['_build']
|
exclude_patterns = ['_build']
|
||||||
|
|
||||||
# The reST default role (used for this markup: `text`) to use for all documents.
|
|
||||||
#default_role = None
|
|
||||||
|
|
||||||
# If true, '()' will be appended to :func: etc. cross-reference text.
|
|
||||||
#add_function_parentheses = True
|
|
||||||
|
|
||||||
# If true, the current module name will be prepended to all description
|
|
||||||
# unit titles (such as .. function::).
|
|
||||||
#add_module_names = True
|
|
||||||
|
|
||||||
# If true, sectionauthor and moduleauthor directives will be shown in the
|
|
||||||
# output. They are ignored by default.
|
|
||||||
#show_authors = False
|
|
||||||
|
|
||||||
# The name of the Pygments (syntax highlighting) style to use.
|
|
||||||
pygments_style = 'monokai'
|
|
||||||
|
|
||||||
# A list of ignored prefixes for module index sorting.
|
|
||||||
#modindex_common_prefix = []
|
|
||||||
|
|
||||||
# Setting this True will show missing references as warnings.
|
|
||||||
#nitpicky = True
|
|
||||||
|
|
||||||
# nitpick_ignore = [
|
|
||||||
# ('py:obj', 'int'),
|
|
||||||
# ('py:obj', 'float'),
|
|
||||||
# ('py:obj', 'double'),
|
|
||||||
# ('py:obj', 'callable'),
|
|
||||||
# ('py:obj', 'function'),
|
|
||||||
# ('py:obj', 'str'),
|
|
||||||
# ('py:exc', 'RuntimeError'),
|
|
||||||
# ('py:exc', 'RuntimeWarning'),
|
|
||||||
# ('py:exc', 'ValueError'),
|
|
||||||
# ('py:exc', 'TypeError'),
|
|
||||||
# ('py:obj', 'Evas_Coord (int)'),
|
|
||||||
# ('py:obj', 'string'),
|
|
||||||
# ('py:obj', 'list'),
|
|
||||||
# ('py:class', 'object'),
|
|
||||||
# ('py:obj', 'unicode'),
|
|
||||||
# ('py:obj', 'bool'),
|
|
||||||
# ('py:obj', 'tuple of ints'),
|
|
||||||
# ('py:class', 'efl.eo.Eo'),
|
|
||||||
# ('py:attr', 'efl.eo.Eo.data'),
|
|
||||||
# ('py:obj', 'datetime.date'),
|
|
||||||
# ]
|
|
||||||
|
|
||||||
|
|
||||||
# -- Autodoc configuration -----------------------------------------------------
|
# -- Autodoc configuration -----------------------------------------------------
|
||||||
|
|
||||||
autodoc_default_flags = [
|
autodoc_default_options = {
|
||||||
'members',
|
'members': True, # show methods for classes
|
||||||
'show-inheritance',
|
'show-inheritance': True, # show bases class
|
||||||
# 'inherited-members',
|
'member-order': 'alphabetical', # bysource, alphabetical, groupwise
|
||||||
# 'undoc-members',
|
'no-undoc-members': True, # dont show members without docstring
|
||||||
]
|
'no-inherited-members': True, # dont show members from parent classes
|
||||||
autoclass_content = "both"
|
}
|
||||||
autodoc_docstring_signature = True
|
# both the class’ and the __init__ method’s docstring are concatenated
|
||||||
# autodoc_member_order = "bysource"
|
autoclass_content = 'both'
|
||||||
|
|
||||||
def setup(app):
|
def setup(app):
|
||||||
from sphinx.ext.autodoc import cut_lines
|
|
||||||
app.connect('autodoc-process-signature', autodoc_process_signature)
|
app.connect('autodoc-process-signature', autodoc_process_signature)
|
||||||
app.connect('autodoc-process-docstring', cut_lines(1, what=['class']))
|
|
||||||
|
|
||||||
def autodoc_process_signature(app, what, name, obj, options, signature, return_annotation):
|
def autodoc_process_signature(_app, what, _name, _obj, _options, signature, return_annotation):
|
||||||
"""Cleanup params: remove the 'self' param and all the cython types"""
|
"""Cleanup params: remove the 'self' param and all the cython types"""
|
||||||
|
|
||||||
if what not in ('function', 'method'):
|
if what not in ('function', 'method'):
|
||||||
return
|
return None
|
||||||
|
|
||||||
params = list()
|
params = []
|
||||||
for param in (p.strip() for p in signature[1:-1].split(',')):
|
for param in (p.strip() for p in signature[1:-1].split(',')):
|
||||||
if param != 'self':
|
if param != 'self':
|
||||||
params.append(param.rpartition(' ')[2])
|
params.append(param.rpartition(' ')[2])
|
||||||
|
@ -163,28 +93,28 @@ def autodoc_process_signature(app, what, name, obj, options, signature, return_a
|
||||||
# -- Inheritance Diagram ------------------------------------------------------
|
# -- Inheritance Diagram ------------------------------------------------------
|
||||||
|
|
||||||
try:
|
try:
|
||||||
import gv
|
import gv # pylint: disable=unused-import
|
||||||
except ImportError:
|
except ImportError:
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
extensions.append('sphinx.ext.inheritance_diagram')
|
extensions.append('sphinx.ext.inheritance_diagram')
|
||||||
# svg scale better (look at the full elm dia)
|
# svg scale better (look at the full elm dia)
|
||||||
# but svg links are broken :(
|
# but svg links are broken :(
|
||||||
graphviz_output_format = "svg" # png (default) or svg
|
graphviz_output_format = 'png' # png (default) or svg
|
||||||
inheritance_graph_attrs = dict(
|
inheritance_graph_attrs = dict(
|
||||||
bgcolor = 'gray25', #404040
|
bgcolor = 'gray25', #404040
|
||||||
)
|
)
|
||||||
inheritance_node_attrs = dict(
|
inheritance_node_attrs = dict(
|
||||||
style = 'rounded', # or 'filled',
|
style = 'rounded', # or 'filled',
|
||||||
# fillcolor = "gray20", # bg color (should be #CCCCCC)
|
# fillcolor = 'gray20', # bg color (should be #CCCCCC)
|
||||||
color = 'gray10', # border color (should be #202020)
|
color = 'gray10', # border color (should be #202020)
|
||||||
fontcolor = 'white',
|
fontcolor = 'white',
|
||||||
font = 'sans',
|
font = 'sans',
|
||||||
|
|
||||||
)
|
)
|
||||||
inheritance_edge_attrs = dict(
|
inheritance_edge_attrs = dict(
|
||||||
color = 'dodgerblue3', # arrow color (should be #4399FF)
|
color = 'dodgerblue3', # arrow color (should be #4399FF)
|
||||||
dir = 'none', # arrow direction (back, forward, both or none)
|
dir = 'none', # arrow direction (back, forward, both or none)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -193,10 +123,11 @@ else:
|
||||||
# The theme to use for HTML and HTML Help pages. See the documentation for
|
# The theme to use for HTML and HTML Help pages. See the documentation for
|
||||||
# a list of builtin themes.
|
# a list of builtin themes.
|
||||||
#
|
#
|
||||||
|
# html_theme = 'alabaster' # Default sphinx theme
|
||||||
# html_theme = 'default' # Classic python style
|
# html_theme = 'default' # Classic python style
|
||||||
# html_theme = 'sphinxdoc' # Much modern sphinx style
|
# html_theme = 'sphinxdoc' # Much modern sphinx style
|
||||||
# html_theme = 'sphinx13' # The latest one from the sphinx site
|
# html_theme = 'sphinx13' # The latest one from the sphinx site
|
||||||
html_theme = 'efldoc' # EFL dark style
|
html_theme = 'efldoc' # Our custom EFL dark style
|
||||||
|
|
||||||
# Theme options are theme-specific and customize the look and feel of a theme
|
# Theme options are theme-specific and customize the look and feel of a theme
|
||||||
# further. For a list of options available for each theme, see the
|
# further. For a list of options available for each theme, see the
|
||||||
|
@ -211,16 +142,16 @@ html_theme_path = ['themes']
|
||||||
#html_title = None
|
#html_title = None
|
||||||
|
|
||||||
# A shorter title for the navigation bar. Default is the same as html_title.
|
# A shorter title for the navigation bar. Default is the same as html_title.
|
||||||
html_short_title = "Python EFL"
|
html_short_title = 'Python EFL'
|
||||||
|
|
||||||
# The name of an image file (relative to this directory) to place at the top
|
# The name of an image file (relative to this directory) to place at the top
|
||||||
# of the sidebar.
|
# of the sidebar.
|
||||||
html_logo = "images/logo.png"
|
html_logo = 'images/logo.png'
|
||||||
|
|
||||||
# The name of an image file (within the static path) to use as favicon of the
|
# The name of an image file (within the static path) to use as favicon of the
|
||||||
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
|
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
|
||||||
# pixels large.
|
# pixels large.
|
||||||
html_favicon = "images/logo.ico"
|
html_favicon = 'images/logo.ico'
|
||||||
|
|
||||||
# Add any paths that contain custom static files (such as style sheets) here,
|
# Add any paths that contain custom static files (such as style sheets) here,
|
||||||
# relative to this directory. They are copied after the builtin static files,
|
# relative to this directory. They are copied after the builtin static files,
|
||||||
|
@ -231,10 +162,6 @@ html_static_path = ['images']
|
||||||
# using the given strftime format.
|
# using the given strftime format.
|
||||||
html_last_updated_fmt = '%b %d, %Y'
|
html_last_updated_fmt = '%b %d, %Y'
|
||||||
|
|
||||||
# If true, SmartyPants will be used to convert quotes and dashes to
|
|
||||||
# typographically correct entities.
|
|
||||||
#html_use_smartypants = True
|
|
||||||
|
|
||||||
# Custom sidebar templates, maps document names to template names.
|
# Custom sidebar templates, maps document names to template names.
|
||||||
#html_sidebars = {}
|
#html_sidebars = {}
|
||||||
|
|
||||||
|
@ -270,121 +197,3 @@ html_show_sourcelink = False
|
||||||
|
|
||||||
# Output file base name for HTML help builder.
|
# Output file base name for HTML help builder.
|
||||||
htmlhelp_basename = 'PythonEFLdoc'
|
htmlhelp_basename = 'PythonEFLdoc'
|
||||||
|
|
||||||
|
|
||||||
# -- Options for LaTeX output --------------------------------------------------
|
|
||||||
|
|
||||||
latex_elements = {
|
|
||||||
# The paper size ('letterpaper' or 'a4paper').
|
|
||||||
#'papersize': 'letterpaper',
|
|
||||||
|
|
||||||
# The font size ('10pt', '11pt' or '12pt').
|
|
||||||
#'pointsize': '10pt',
|
|
||||||
|
|
||||||
# Additional stuff for the LaTeX preamble.
|
|
||||||
#'preamble': '',
|
|
||||||
}
|
|
||||||
|
|
||||||
# Grouping the document tree into LaTeX files. List of tuples
|
|
||||||
# (source start file, target name, title, author, documentclass [howto/manual]).
|
|
||||||
latex_documents = [
|
|
||||||
('index', 'PythonEFL.tex', u'Python Bindings for EFL Documentation',
|
|
||||||
u'Simon Busch, Gustavo Sverzut Barbieri, Ulisses Furquim, ProFUSION embedded systems, Boris Faure, Fabiano Fidencio, Davide Andreoli, Kai Huuhko', 'manual'),
|
|
||||||
]
|
|
||||||
|
|
||||||
# The name of an image file (relative to this directory) to place at the top of
|
|
||||||
# the title page.
|
|
||||||
#latex_logo = None
|
|
||||||
|
|
||||||
# For "manual" documents, if this is true, then toplevel headings are parts,
|
|
||||||
# not chapters.
|
|
||||||
#latex_use_parts = False
|
|
||||||
|
|
||||||
# If true, show page references after internal links.
|
|
||||||
#latex_show_pagerefs = False
|
|
||||||
|
|
||||||
# If true, show URL addresses after external links.
|
|
||||||
#latex_show_urls = False
|
|
||||||
|
|
||||||
# Documents to append as an appendix to all manuals.
|
|
||||||
#latex_appendices = []
|
|
||||||
|
|
||||||
# If false, no module index is generated.
|
|
||||||
#latex_domain_indices = True
|
|
||||||
|
|
||||||
|
|
||||||
# -- Options for manual page output --------------------------------------------
|
|
||||||
|
|
||||||
# One entry per manual page. List of tuples
|
|
||||||
# (source start file, name, description, authors, manual section).
|
|
||||||
man_pages = [
|
|
||||||
('index', 'python-efl', u'Python Bindings for EFL Documentation',
|
|
||||||
[u'Simon Busch, Gustavo Sverzut Barbieri, Ulisses Furquim, ProFUSION embedded systems, Boris Faure, Fabiano Fidencio, Davide Andreoli, Kai Huuhko'], 1)
|
|
||||||
]
|
|
||||||
|
|
||||||
# If true, show URL addresses after external links.
|
|
||||||
#man_show_urls = False
|
|
||||||
|
|
||||||
|
|
||||||
# -- Options for Texinfo output ------------------------------------------------
|
|
||||||
|
|
||||||
# Grouping the document tree into Texinfo files. List of tuples
|
|
||||||
# (source start file, target name, title, author,
|
|
||||||
# dir menu entry, description, category)
|
|
||||||
texinfo_documents = [
|
|
||||||
('index', 'PythonBindingsforEFLElementary', u'Python Bindings for EFL Elementary Documentation',
|
|
||||||
u'Simon Busch, Gustavo Sverzut Barbieri, Ulisses Furquim, ProFUSION embedded systems, Boris Faure, Fabiano Fidencio, Davide Andreoli, Kai Huuhko', 'PythonBindingsforEFLElementary', 'One line description of project.',
|
|
||||||
'Miscellaneous'),
|
|
||||||
]
|
|
||||||
|
|
||||||
# Documents to append as an appendix to all manuals.
|
|
||||||
#texinfo_appendices = []
|
|
||||||
|
|
||||||
# If false, no module index is generated.
|
|
||||||
#texinfo_domain_indices = True
|
|
||||||
|
|
||||||
# How to display URL addresses: 'footnote', 'no', or 'inline'.
|
|
||||||
#texinfo_show_urls = 'footnote'
|
|
||||||
|
|
||||||
|
|
||||||
# -- Options for Epub output ---------------------------------------------------
|
|
||||||
|
|
||||||
# Bibliographic Dublin Core info.
|
|
||||||
epub_title = u'Python Bindings for EFL'
|
|
||||||
epub_author = u'Simon Busch, Gustavo Sverzut Barbieri, Ulisses Furquim, ProFUSION embedded systems, Boris Faure, Fabiano Fidencio, Davide Andreoli, Kai Huuhko'
|
|
||||||
epub_publisher = u'Simon Busch, Gustavo Sverzut Barbieri, Ulisses Furquim, ProFUSION embedded systems, Boris Faure, Fabiano Fidencio, Davide Andreoli, Kai Huuhko'
|
|
||||||
epub_copyright = u'2008-2015, Simon Busch, Gustavo Sverzut Barbieri, Ulisses Furquim, ProFUSION embedded systems, Boris Faure, Fabiano Fidencio, Davide Andreoli, Kai Huuhko'
|
|
||||||
|
|
||||||
# The language of the text. It defaults to the language option
|
|
||||||
# or en if the language is not set.
|
|
||||||
#epub_language = ''
|
|
||||||
|
|
||||||
# The scheme of the identifier. Typical schemes are ISBN or URL.
|
|
||||||
#epub_scheme = ''
|
|
||||||
|
|
||||||
# The unique identifier of the text. This can be a ISBN number
|
|
||||||
# or the project homepage.
|
|
||||||
#epub_identifier = ''
|
|
||||||
|
|
||||||
# A unique identification for the text.
|
|
||||||
#epub_uid = ''
|
|
||||||
|
|
||||||
# A tuple containing the cover image and cover page html template filenames.
|
|
||||||
#epub_cover = ()
|
|
||||||
|
|
||||||
# HTML files that should be inserted before the pages created by sphinx.
|
|
||||||
# The format is a list of tuples containing the path and title.
|
|
||||||
#epub_pre_files = []
|
|
||||||
|
|
||||||
# HTML files shat should be inserted after the pages created by sphinx.
|
|
||||||
# The format is a list of tuples containing the path and title.
|
|
||||||
#epub_post_files = []
|
|
||||||
|
|
||||||
# A list of files that should not be packed into the epub file.
|
|
||||||
#epub_exclude_files = []
|
|
||||||
|
|
||||||
# The depth of the table of contents in toc.ncx.
|
|
||||||
#epub_tocdepth = 3
|
|
||||||
|
|
||||||
# Allow duplicate toc entries.
|
|
||||||
#epub_tocdup = True
|
|
||||||
|
|
|
@ -15,8 +15,8 @@ great responsiveness without the need for threads(or any other concurrency).
|
||||||
Timers
|
Timers
|
||||||
------
|
------
|
||||||
|
|
||||||
:py:class:`Timers<efl.ecore.Timer>` serve two main purposes: doing something at a specified time and
|
:py:class:`Timers<efl.ecore.Timer>` serve two main purposes: doing something at
|
||||||
repeatedly doing something with a set interval.
|
a specified time and repeatedly doing something with a set interval.
|
||||||
|
|
||||||
|
|
||||||
Animators
|
Animators
|
||||||
|
|
22
doc/efl.rst
22
doc/efl.rst
|
@ -6,10 +6,30 @@
|
||||||
.. versionadded:: 1.8
|
.. versionadded:: 1.8
|
||||||
|
|
||||||
|
|
||||||
|
Object lifetime
|
||||||
|
---------------
|
||||||
|
|
||||||
|
Eo objects (and any which have the delete() method) get their reference count
|
||||||
|
internally increased by one at object creation. This means that these objects
|
||||||
|
will not get freed when you release all references to them in your application.
|
||||||
|
You must call the objects' delete() method to decrease the internal reference
|
||||||
|
count. This will usually also trigger some kind of action to destroy
|
||||||
|
the object gracefully, i.e. hiding the graphical object etc, and will set the
|
||||||
|
C object pointer to NULL, which will prevent you from calling methods on the
|
||||||
|
object.
|
||||||
|
|
||||||
|
If you can't keep track of when your application calls the delete method, you
|
||||||
|
can check that your object is still valid with either the is_deleted() method,
|
||||||
|
or with a non-zero check::
|
||||||
|
|
||||||
|
if eo_obj:
|
||||||
|
print(repr(eo_obj))
|
||||||
|
|
||||||
|
|
||||||
Logging
|
Logging
|
||||||
-------
|
-------
|
||||||
|
|
||||||
PyEFL provides `logging <http://docs.python.org/2/library/logging.html>`_
|
PyEFL provides `logging <https://docs.python.org/library/logging.html>`_
|
||||||
to loggers which are usually named after their equivalent module,
|
to loggers which are usually named after their equivalent module,
|
||||||
f.e. *efl.eo*. There is a root logger called *efl* which also receives
|
f.e. *efl.eo*. There is a root logger called *efl* which also receives
|
||||||
any messages coming from the underlying C libraries.
|
any messages coming from the underlying C libraries.
|
||||||
|
|
|
@ -71,6 +71,12 @@ Calendar mark repeat types
|
||||||
Marks will be displayed every last day of month after event day
|
Marks will be displayed every last day of month after event day
|
||||||
(inclusive).
|
(inclusive).
|
||||||
|
|
||||||
|
.. data:: ELM_CALENDAR_REVERSE_DAILY
|
||||||
|
|
||||||
|
Marks will be displayed every day before event day.
|
||||||
|
|
||||||
|
.. versionadded:: 1.19
|
||||||
|
|
||||||
|
|
||||||
.. _Elm_Calendar_Select_Mode:
|
.. _Elm_Calendar_Select_Mode:
|
||||||
|
|
||||||
|
|
|
@ -469,7 +469,6 @@ Inheritance diagram
|
||||||
efl.elementary.Slider
|
efl.elementary.Slider
|
||||||
efl.elementary.Slideshow
|
efl.elementary.Slideshow
|
||||||
efl.elementary.Spinner
|
efl.elementary.Spinner
|
||||||
efl.elementary.Systray
|
|
||||||
efl.elementary.Table
|
efl.elementary.Table
|
||||||
efl.elementary.Theme
|
efl.elementary.Theme
|
||||||
efl.elementary.Thumb
|
efl.elementary.Thumb
|
||||||
|
|
|
@ -408,6 +408,12 @@ Input panel layouts
|
||||||
|
|
||||||
.. versionadded:: 1.10
|
.. versionadded:: 1.10
|
||||||
|
|
||||||
|
.. data:: ELM_INPUT_PANEL_LAYOUT_VOICE
|
||||||
|
|
||||||
|
Voice layout, but if the IME does not support voice, then normal layout will be shown
|
||||||
|
|
||||||
|
.. versionadded:: 1.19
|
||||||
|
|
||||||
|
|
||||||
.. _Elm_Input_Panel_Layout_Normal_Variation:
|
.. _Elm_Input_Panel_Layout_Normal_Variation:
|
||||||
|
|
||||||
|
|
|
@ -73,6 +73,7 @@ Available item styles
|
||||||
- ``no_icon`` No icon (since: 1.1)
|
- ``no_icon`` No icon (since: 1.1)
|
||||||
- ``full`` Only one object, elm.swallow.content, which consumes whole area of
|
- ``full`` Only one object, elm.swallow.content, which consumes whole area of
|
||||||
the genlist item (since: 1.7)
|
the genlist item (since: 1.7)
|
||||||
|
- ``indent`` Has indentation to match tree group items (since: 1.19)
|
||||||
|
|
||||||
|
|
||||||
Structure of items
|
Structure of items
|
||||||
|
|
|
@ -38,6 +38,13 @@ Emitted signals
|
||||||
- ``download,progress`` - url download in progress
|
- ``download,progress`` - url download in progress
|
||||||
- ``download,end`` - remote url download has finished
|
- ``download,end`` - remote url download has finished
|
||||||
- ``download,error`` - remote url download has finished with errors
|
- ``download,error`` - remote url download has finished with errors
|
||||||
|
- ``load,open`` - Triggered when the file has been opened, if async open is
|
||||||
|
enabled (image size is known). (since 1.19)
|
||||||
|
- ``load,ready`` - Triggered when the image file is ready for display, if
|
||||||
|
preload is enabled. (since 1.19)
|
||||||
|
- ``load,error`` - Triggered if an async I/O or decoding error occurred, if
|
||||||
|
async open or preload is enabled (since 1.19)
|
||||||
|
- ``load,cancel`` - Triggered whenener async I/O was cancelled. (since 1.19)
|
||||||
|
|
||||||
|
|
||||||
Enumerations
|
Enumerations
|
||||||
|
|
|
@ -65,6 +65,7 @@ Emitted signals
|
||||||
- ``transition,finished`` - When the transition is finished in changing the item
|
- ``transition,finished`` - When the transition is finished in changing the item
|
||||||
- ``title,transition,finished`` - When the title area's transition is finished
|
- ``title,transition,finished`` - When the title area's transition is finished
|
||||||
- ``title,clicked`` - User clicked title area
|
- ``title,clicked`` - User clicked title area
|
||||||
|
- ``item,activated`` - Naviframe item was activated (since 1.19)
|
||||||
|
|
||||||
All the parts, for content and text, described here will also be
|
All the parts, for content and text, described here will also be
|
||||||
reachable by naviframe **items** direct calls:
|
reachable by naviframe **items** direct calls:
|
||||||
|
|
|
@ -14,6 +14,11 @@ A panel is a type of animated container that contains subobjects.
|
||||||
It can be expanded or contracted by clicking the button on it's edge.
|
It can be expanded or contracted by clicking the button on it's edge.
|
||||||
|
|
||||||
|
|
||||||
|
Emitted signals
|
||||||
|
===============
|
||||||
|
|
||||||
|
- ``toggled`` - Emitted when the panel has been toggled. (since 1.19)
|
||||||
|
|
||||||
|
|
||||||
Layout content parts
|
Layout content parts
|
||||||
====================
|
====================
|
||||||
|
|
|
@ -31,6 +31,10 @@ Emitted signals
|
||||||
the user. This will be called only when the user stops dragging
|
the user. This will be called only when the user stops dragging
|
||||||
for a very short period or when they release their finger/mouse,
|
for a very short period or when they release their finger/mouse,
|
||||||
so it avoids possibly expensive reactions to the value change.
|
so it avoids possibly expensive reactions to the value change.
|
||||||
|
- ``spinner,drag,start`` - When dragging has started.
|
||||||
|
- ``spinner,drag,stop`` - When dragging has stopped.
|
||||||
|
- ``min,reached`` - Called when spinner value reached min (since 1.20)
|
||||||
|
- ``max,reached`` - Called when spinner value reached max (since 1.20)
|
||||||
|
|
||||||
|
|
||||||
Available styles
|
Available styles
|
||||||
|
|
|
@ -1,57 +0,0 @@
|
||||||
.. currentmodule:: efl.elementary
|
|
||||||
|
|
||||||
Systray
|
|
||||||
#######
|
|
||||||
|
|
||||||
Enumerations
|
|
||||||
============
|
|
||||||
|
|
||||||
.. _Elm_Systray_Category:
|
|
||||||
|
|
||||||
Category of the Status Notifier Item.
|
|
||||||
-------------------------------------
|
|
||||||
|
|
||||||
.. data:: ELM_SYSTRAY_CATEGORY_APP_STATUS
|
|
||||||
|
|
||||||
Indicators of application status
|
|
||||||
|
|
||||||
.. data:: ELM_SYSTRAY_CATEGORY_COMMUNICATIONS
|
|
||||||
|
|
||||||
Communications apps
|
|
||||||
|
|
||||||
.. data:: ELM_SYSTRAY_CATEGORY_SYS_SERVICES
|
|
||||||
|
|
||||||
System Service apps
|
|
||||||
|
|
||||||
.. data:: ELM_SYSTRAY_CATEGORY_HARDWARE
|
|
||||||
|
|
||||||
Hardware indicators
|
|
||||||
|
|
||||||
.. data:: ELM_SYSTRAY_CATEGORY_OTHER
|
|
||||||
|
|
||||||
Undefined category
|
|
||||||
|
|
||||||
|
|
||||||
.. _Elm_Systray_Status:
|
|
||||||
|
|
||||||
Application status information.
|
|
||||||
-------------------------------
|
|
||||||
|
|
||||||
.. data:: ELM_SYSTRAY_STATUS_PASSIVE
|
|
||||||
|
|
||||||
Passive (normal)
|
|
||||||
|
|
||||||
.. data:: ELM_SYSTRAY_STATUS_ACTIVE
|
|
||||||
|
|
||||||
Active
|
|
||||||
|
|
||||||
.. data:: ELM_SYSTRAY_STATUS_ATTENTION
|
|
||||||
|
|
||||||
Needs Attention
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.. autoclass:: Systray
|
|
||||||
.. autofunction:: on_systray_ready
|
|
||||||
|
|
||||||
.. autoclass:: EventSystrayReady
|
|
|
@ -47,9 +47,20 @@ loaded file.
|
||||||
|
|
||||||
There will be a delay between an API being called and it being really
|
There will be a delay between an API being called and it being really
|
||||||
executed, since this request will be done in the main thread, and it needs to
|
executed, since this request will be done in the main thread, and it needs to
|
||||||
be sent to the decoding thread. For this reason, always call functions like
|
be sent to the decoding thread. For this reason, never access properties or
|
||||||
emotion_object_size_get() or emotion_object_length_get() after some signal
|
call methods before a start up signal being sent, such "playback_started" or
|
||||||
being sent, like "playback_started" or "open_done".
|
"open_done".
|
||||||
|
|
||||||
|
|
||||||
|
Supported module names
|
||||||
|
======================
|
||||||
|
|
||||||
|
- **gstreamer1** (default)
|
||||||
|
- **xine**
|
||||||
|
- **libvlc**
|
||||||
|
- generic modules (launched in a separate process)
|
||||||
|
|
||||||
|
- **vlc**
|
||||||
|
|
||||||
|
|
||||||
Emitted signals
|
Emitted signals
|
||||||
|
@ -70,7 +81,7 @@ interesting signals:
|
||||||
- ``length_change`` Emitted if the media change it's size
|
- ``length_change`` Emitted if the media change it's size
|
||||||
- ``channels_change`` Emitted when the number of channels change
|
- ``channels_change`` Emitted when the number of channels change
|
||||||
- ``title_change`` Emitted when the title change (?)
|
- ``title_change`` Emitted when the title change (?)
|
||||||
- ``progress_change``
|
- ``progress_change``
|
||||||
- ``ref_change``
|
- ``ref_change``
|
||||||
- ``button_num_change``
|
- ``button_num_change``
|
||||||
- ``button_change``
|
- ``button_change``
|
||||||
|
|
|
@ -1,36 +1,7 @@
|
||||||
|
|
||||||
Python Bindings for Enlightenment Foundation Libraries' documentation
|
Python-EFL
|
||||||
#####################################################################
|
#####################################################################
|
||||||
|
|
||||||
EFL is a collection of libraries that are independent or may build on top of
|
|
||||||
each-other to provide useful features that complement an OS's existing
|
|
||||||
environment, rather than wrap and abstract it, trying to be their own
|
|
||||||
environment and OS in its entirety. This means that it expects you to use
|
|
||||||
other system libraries and API's in conjunction with EFL libraries, to provide
|
|
||||||
a whole working application or library, simply using EFL as a set of
|
|
||||||
convenient pre-made libraries to accomplish a whole host of complex
|
|
||||||
or painful tasks for you.
|
|
||||||
|
|
||||||
One thing that has been important to EFL is efficiency. That is in both
|
|
||||||
speed and size. The core EFL libraries even with Elementary are about half
|
|
||||||
the size of the equivalent "small stack" of GTK+ that things like GNOME
|
|
||||||
use. It is in the realm of one quarter the size of Qt. Of course these
|
|
||||||
are numbers that can be argued over as to what constitutes an equivalent
|
|
||||||
measurement. EFL is low on actual memory usage at runtime with memory
|
|
||||||
footprints a fraction the size of those in the GTK+ and Qt worlds. In
|
|
||||||
addition EFL is fast. For what it does. Some libraries claim to be very
|
|
||||||
fast - but then they also don't "do much". It's easy to be fast when you
|
|
||||||
don't tackle the more complex rendering problems involving alpha blending,
|
|
||||||
interpolated scaling and transforms with dithering etc. EFL tackles these,
|
|
||||||
and more.
|
|
||||||
|
|
||||||
.. seealso::
|
|
||||||
|
|
||||||
- `EFL Overview <http://trac.enlightenment.org/e/wiki/EFLOverview>`_
|
|
||||||
- `EFL Documentation <http://web.enlightenment.org/p.php?p=docs>`_
|
|
||||||
- `EDC Reference <https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessful Buil d/artifact/doc/html/edcref.html>`_
|
|
||||||
- `EFL Big Picture <http://docs.enlightenment.org/books/efl-big-picture/efl_big_picture.pdf>`_
|
|
||||||
|
|
||||||
|
|
||||||
EFL
|
EFL
|
||||||
===
|
===
|
||||||
|
@ -92,29 +63,25 @@ DBus integration
|
||||||
.. toctree:: dbus/dbus
|
.. toctree:: dbus/dbus
|
||||||
|
|
||||||
|
|
||||||
|
Tutorials
|
||||||
|
=========
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
tutorials/01-window.rst
|
||||||
|
tutorials/02-sizehints.rst
|
||||||
|
|
||||||
|
|
||||||
Acknowledgements
|
Acknowledgements
|
||||||
================
|
================
|
||||||
|
|
||||||
:Copyright:
|
:Copyright:
|
||||||
Python Bindings for EFL are Copyright (C) 2008-2015 Simon Busch
|
2008-2022 The Python-EFL community (see AUTHORS)
|
||||||
and various contributors (see AUTHORS).
|
|
||||||
|
|
||||||
:License:
|
:License:
|
||||||
Python Bindings for EFL are licensed LGPL-3 (see COPYING).
|
Python Bindings for EFL are licensed LGPL-3 (see COPYING)
|
||||||
|
|
||||||
:Authors:
|
:Contact:
|
||||||
- `Gustavo Sverzut Barbieri <mailto:barbieri@gmail.com>`_
|
`Enlightenment developer mailing list <mailto:enlightenment-devel@lists.sourceforge.net>`_
|
||||||
- `Simon Busch <mailto:morphis@gravedo.de>`_
|
|
||||||
- `Boris 'billiob' Faure <mailto:billiob@gmail.com>`_
|
|
||||||
- `Davide 'davemds' Andreoli <mailto:dave@gurumeditation.it>`_
|
|
||||||
- `Fabiano Fidêncio <mailto:fidencio@profusion.mobi>`_
|
|
||||||
- `Bruno Dilly <mailto:bdilly@profusion.mobi>`_
|
|
||||||
- `Tiago Falcão <mailto:tiago@profusion.mobi>`_
|
|
||||||
- `Joost Albers <mailto:joost.albers@nomadrail.com>`_
|
|
||||||
- `Kai Huuhko <mailto:kai.huuhko@gmail.com>`_
|
|
||||||
- `Ulisses Furquim <ulissesf@gmail.com>`_
|
|
||||||
|
|
||||||
:Contact: `Enlightenment developer mailing list <mailto:enlightenment-devel@lists.sourceforge.net>`_
|
|
||||||
|
|
||||||
|
|
||||||
Indices and tables
|
Indices and tables
|
||||||
|
|
190
doc/make.bat
190
doc/make.bat
|
@ -1,190 +0,0 @@
|
||||||
@ECHO OFF
|
|
||||||
|
|
||||||
REM Command file for Sphinx documentation
|
|
||||||
|
|
||||||
if "%SPHINXBUILD%" == "" (
|
|
||||||
set SPHINXBUILD=sphinx-build
|
|
||||||
)
|
|
||||||
set BUILDDIR=_build
|
|
||||||
set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% .
|
|
||||||
set I18NSPHINXOPTS=%SPHINXOPTS% .
|
|
||||||
if NOT "%PAPER%" == "" (
|
|
||||||
set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS%
|
|
||||||
set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS%
|
|
||||||
)
|
|
||||||
|
|
||||||
if "%1" == "" goto help
|
|
||||||
|
|
||||||
if "%1" == "help" (
|
|
||||||
:help
|
|
||||||
echo.Please use `make ^<target^>` where ^<target^> is one of
|
|
||||||
echo. html to make standalone HTML files
|
|
||||||
echo. dirhtml to make HTML files named index.html in directories
|
|
||||||
echo. singlehtml to make a single large HTML file
|
|
||||||
echo. pickle to make pickle files
|
|
||||||
echo. json to make JSON files
|
|
||||||
echo. htmlhelp to make HTML files and a HTML help project
|
|
||||||
echo. qthelp to make HTML files and a qthelp project
|
|
||||||
echo. devhelp to make HTML files and a Devhelp project
|
|
||||||
echo. epub to make an epub
|
|
||||||
echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter
|
|
||||||
echo. text to make text files
|
|
||||||
echo. man to make manual pages
|
|
||||||
echo. texinfo to make Texinfo files
|
|
||||||
echo. gettext to make PO message catalogs
|
|
||||||
echo. changes to make an overview over all changed/added/deprecated items
|
|
||||||
echo. linkcheck to check all external links for integrity
|
|
||||||
echo. doctest to run all doctests embedded in the documentation if enabled
|
|
||||||
goto end
|
|
||||||
)
|
|
||||||
|
|
||||||
if "%1" == "clean" (
|
|
||||||
for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i
|
|
||||||
del /q /s %BUILDDIR%\*
|
|
||||||
goto end
|
|
||||||
)
|
|
||||||
|
|
||||||
if "%1" == "html" (
|
|
||||||
%SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html
|
|
||||||
if errorlevel 1 exit /b 1
|
|
||||||
echo.
|
|
||||||
echo.Build finished. The HTML pages are in %BUILDDIR%/html.
|
|
||||||
goto end
|
|
||||||
)
|
|
||||||
|
|
||||||
if "%1" == "dirhtml" (
|
|
||||||
%SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml
|
|
||||||
if errorlevel 1 exit /b 1
|
|
||||||
echo.
|
|
||||||
echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml.
|
|
||||||
goto end
|
|
||||||
)
|
|
||||||
|
|
||||||
if "%1" == "singlehtml" (
|
|
||||||
%SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml
|
|
||||||
if errorlevel 1 exit /b 1
|
|
||||||
echo.
|
|
||||||
echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml.
|
|
||||||
goto end
|
|
||||||
)
|
|
||||||
|
|
||||||
if "%1" == "pickle" (
|
|
||||||
%SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle
|
|
||||||
if errorlevel 1 exit /b 1
|
|
||||||
echo.
|
|
||||||
echo.Build finished; now you can process the pickle files.
|
|
||||||
goto end
|
|
||||||
)
|
|
||||||
|
|
||||||
if "%1" == "json" (
|
|
||||||
%SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json
|
|
||||||
if errorlevel 1 exit /b 1
|
|
||||||
echo.
|
|
||||||
echo.Build finished; now you can process the JSON files.
|
|
||||||
goto end
|
|
||||||
)
|
|
||||||
|
|
||||||
if "%1" == "htmlhelp" (
|
|
||||||
%SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp
|
|
||||||
if errorlevel 1 exit /b 1
|
|
||||||
echo.
|
|
||||||
echo.Build finished; now you can run HTML Help Workshop with the ^
|
|
||||||
.hhp project file in %BUILDDIR%/htmlhelp.
|
|
||||||
goto end
|
|
||||||
)
|
|
||||||
|
|
||||||
if "%1" == "qthelp" (
|
|
||||||
%SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp
|
|
||||||
if errorlevel 1 exit /b 1
|
|
||||||
echo.
|
|
||||||
echo.Build finished; now you can run "qcollectiongenerator" with the ^
|
|
||||||
.qhcp project file in %BUILDDIR%/qthelp, like this:
|
|
||||||
echo.^> qcollectiongenerator %BUILDDIR%\qthelp\PythonBindingsforEnlightenmentFoundationLibraries.qhcp
|
|
||||||
echo.To view the help file:
|
|
||||||
echo.^> assistant -collectionFile %BUILDDIR%\qthelp\PythonBindingsforEnlightenmentFoundationLibraries.ghc
|
|
||||||
goto end
|
|
||||||
)
|
|
||||||
|
|
||||||
if "%1" == "devhelp" (
|
|
||||||
%SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp
|
|
||||||
if errorlevel 1 exit /b 1
|
|
||||||
echo.
|
|
||||||
echo.Build finished.
|
|
||||||
goto end
|
|
||||||
)
|
|
||||||
|
|
||||||
if "%1" == "epub" (
|
|
||||||
%SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub
|
|
||||||
if errorlevel 1 exit /b 1
|
|
||||||
echo.
|
|
||||||
echo.Build finished. The epub file is in %BUILDDIR%/epub.
|
|
||||||
goto end
|
|
||||||
)
|
|
||||||
|
|
||||||
if "%1" == "latex" (
|
|
||||||
%SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
|
|
||||||
if errorlevel 1 exit /b 1
|
|
||||||
echo.
|
|
||||||
echo.Build finished; the LaTeX files are in %BUILDDIR%/latex.
|
|
||||||
goto end
|
|
||||||
)
|
|
||||||
|
|
||||||
if "%1" == "text" (
|
|
||||||
%SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text
|
|
||||||
if errorlevel 1 exit /b 1
|
|
||||||
echo.
|
|
||||||
echo.Build finished. The text files are in %BUILDDIR%/text.
|
|
||||||
goto end
|
|
||||||
)
|
|
||||||
|
|
||||||
if "%1" == "man" (
|
|
||||||
%SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man
|
|
||||||
if errorlevel 1 exit /b 1
|
|
||||||
echo.
|
|
||||||
echo.Build finished. The manual pages are in %BUILDDIR%/man.
|
|
||||||
goto end
|
|
||||||
)
|
|
||||||
|
|
||||||
if "%1" == "texinfo" (
|
|
||||||
%SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo
|
|
||||||
if errorlevel 1 exit /b 1
|
|
||||||
echo.
|
|
||||||
echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo.
|
|
||||||
goto end
|
|
||||||
)
|
|
||||||
|
|
||||||
if "%1" == "gettext" (
|
|
||||||
%SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale
|
|
||||||
if errorlevel 1 exit /b 1
|
|
||||||
echo.
|
|
||||||
echo.Build finished. The message catalogs are in %BUILDDIR%/locale.
|
|
||||||
goto end
|
|
||||||
)
|
|
||||||
|
|
||||||
if "%1" == "changes" (
|
|
||||||
%SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes
|
|
||||||
if errorlevel 1 exit /b 1
|
|
||||||
echo.
|
|
||||||
echo.The overview file is in %BUILDDIR%/changes.
|
|
||||||
goto end
|
|
||||||
)
|
|
||||||
|
|
||||||
if "%1" == "linkcheck" (
|
|
||||||
%SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck
|
|
||||||
if errorlevel 1 exit /b 1
|
|
||||||
echo.
|
|
||||||
echo.Link check complete; look for any errors in the above output ^
|
|
||||||
or in %BUILDDIR%/linkcheck/output.txt.
|
|
||||||
goto end
|
|
||||||
)
|
|
||||||
|
|
||||||
if "%1" == "doctest" (
|
|
||||||
%SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest
|
|
||||||
if errorlevel 1 exit /b 1
|
|
||||||
echo.
|
|
||||||
echo.Testing of doctests in the sources finished, look at the ^
|
|
||||||
results in %BUILDDIR%/doctest/output.txt.
|
|
||||||
goto end
|
|
||||||
)
|
|
||||||
|
|
||||||
:end
|
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
Sphinx layout template for the sphinxdoc theme.
|
Sphinx layout template for the sphinxdoc theme.
|
||||||
|
|
||||||
:copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
|
:copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS.
|
||||||
:license: BSD, see LICENSE for details.
|
:license: BSD, see LICENSE for details.
|
||||||
#}
|
#}
|
||||||
{%- extends "basic/layout.html" %}
|
{%- extends "basic/layout.html" %}
|
||||||
|
@ -12,7 +12,7 @@
|
||||||
|
|
||||||
|
|
||||||
{% block extrahead %}
|
{% block extrahead %}
|
||||||
<link href='http://fonts.googleapis.com/css?family=Open+Sans:300,400,700'
|
<link href='https://fonts.googleapis.com/css?family=Open+Sans:300,400,700'
|
||||||
rel='stylesheet' type='text/css'>
|
rel='stylesheet' type='text/css'>
|
||||||
{{ super() }}
|
{{ super() }}
|
||||||
|
|
||||||
|
@ -20,46 +20,15 @@
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
table.right { float: right; margin-left: 20px; }
|
table.right { float: right; margin-left: 20px; }
|
||||||
table.right td { border: 1px solid #ccc; }
|
table.right td { border: 1px solid #ccc; }
|
||||||
{% if pagename == 'index' %}
|
|
||||||
.related { display: none; }
|
|
||||||
{% endif %}
|
|
||||||
</style>
|
</style>
|
||||||
<script type="text/javascript">
|
|
||||||
// intelligent scrolling of the sidebar content
|
|
||||||
$(window).scroll(function() {
|
|
||||||
var sb = $('.sphinxsidebarwrapper');
|
|
||||||
var win = $(window);
|
|
||||||
var sbh = sb.height();
|
|
||||||
var offset = $('.sphinxsidebar').position()['top'];
|
|
||||||
var wintop = win.scrollTop();
|
|
||||||
var winbot = wintop + win.innerHeight();
|
|
||||||
var curtop = sb.position()['top'];
|
|
||||||
var curbot = curtop + sbh;
|
|
||||||
// does sidebar fit in window?
|
|
||||||
if (sbh < win.innerHeight()) {
|
|
||||||
// yes: easy case -- always keep at the top
|
|
||||||
sb.css('top', $u.min([$u.max([0, wintop - offset - 10]),
|
|
||||||
$(document).height() - sbh - 200]));
|
|
||||||
} else {
|
|
||||||
// no: only scroll if top/bottom edge of sidebar is at
|
|
||||||
// top/bottom edge of window
|
|
||||||
if (curtop > wintop && curbot > winbot) {
|
|
||||||
sb.css('top', $u.max([wintop - offset - 10, 0]));
|
|
||||||
} else if (curtop < wintop && curbot < winbot) {
|
|
||||||
sb.css('top', $u.min([winbot - sbh - offset - 20,
|
|
||||||
$(document).height() - sbh - 200]));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
|
||||||
{% block rootrellink %}
|
{% block rootrellink %}
|
||||||
<li><a href="{{ pathto('index') }}">Home</a> |</li>
|
<li><a href="{{ pathto('index') }}">Home</a> |</li>
|
||||||
<!-- <li><a href="{{ pathto('contents') }}">Documentation</a> »</li>-->
|
<!-- <li><a href="{{ pathto('contents') }}">Documentation</a> »</li>-->
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block header %}
|
{% block header %}
|
||||||
|
@ -68,8 +37,8 @@
|
||||||
<li class="index"><a href="{{ pathto('index') }}"><span></span></a></li>
|
<li class="index"><a href="{{ pathto('index') }}"><span></span></a></li>
|
||||||
<li class="maintitle">{{ project }} - {{ version }}</li>
|
<li class="maintitle">{{ project }} - {{ version }}</li>
|
||||||
<li class="current"><a href="{{ pathto('index') }}"><span>python docs</span></a></li>
|
<li class="current"><a href="{{ pathto('index') }}"><span>python docs</span></a></li>
|
||||||
<li><a href="http://enlightenment.org/p.php?p=docs"><span>other docs</span></a></li>
|
<li><a href="https://www.enlightenment.org/docs"><span>other docs</span></a></li>
|
||||||
<li><a href="http://enlightenment.org/p.php?p=about"><span>EFL</span></a></li>
|
<li><a href="https://www.enlightenment.org/about-efl"><span>EFL</span></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
@ -77,20 +46,17 @@
|
||||||
{%- block content %}
|
{%- block content %}
|
||||||
<div class="document">
|
<div class="document">
|
||||||
{%- block document %}
|
{%- block document %}
|
||||||
{{ sidebar() }}
|
<div id="layout">
|
||||||
<div class="documentwrapper">
|
<div id="content">
|
||||||
{%- if render_sidebar %}
|
<div class="body">
|
||||||
<div class="bodywrapper">
|
{% block body %} {% endblock %}
|
||||||
{%- endif %}
|
|
||||||
<div class="body">
|
|
||||||
{% block body %} {% endblock %}
|
|
||||||
</div>
|
|
||||||
{%- if render_sidebar %}
|
|
||||||
</div>
|
</div>
|
||||||
{%- endif %}
|
|
||||||
</div>
|
</div>
|
||||||
|
{%- if render_sidebar %}
|
||||||
|
<div id="sidebar">{{ sidebar() }}</div>
|
||||||
|
{%- endif %}
|
||||||
|
</div>
|
||||||
{%- endblock %}
|
{%- endblock %}
|
||||||
<div class="clearer"></div>
|
|
||||||
</div>
|
</div>
|
||||||
{%- endblock %}
|
{%- endblock %}
|
||||||
|
|
||||||
|
|
|
@ -6,19 +6,27 @@
|
||||||
*
|
*
|
||||||
* Originally based on sphinx13 theme.
|
* Originally based on sphinx13 theme.
|
||||||
*
|
*
|
||||||
* All the modification done from the s13 theme are marked with the original
|
* :copyright: Copyright 2013-2022 by the Python-EFL team, see AUTHORS.
|
||||||
* value in a comment, new tags are marked with an empty comment, removed tags
|
|
||||||
* are just commented out.
|
|
||||||
* This is usefull when something looks not so good as the original one to
|
|
||||||
* understand the reason.
|
|
||||||
*
|
|
||||||
* :copyright: Copyright 2013-2015 by the Python-EFL team, see AUTHORS.
|
|
||||||
* :license: LGPL, see COPYING for details.
|
* :license: LGPL, see COPYING for details.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@import url("basic.css");
|
@import url("basic.css");
|
||||||
|
|
||||||
|
/* -- main flex layout ----------------------------------------------------- */
|
||||||
|
|
||||||
|
#layout {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
#content {
|
||||||
|
flex-grow: 1;
|
||||||
|
}
|
||||||
|
#sidebar {
|
||||||
|
flex-grow: 0;
|
||||||
|
width: 230px;
|
||||||
|
border-left: 1px solid rgb(111,111,111);
|
||||||
|
}
|
||||||
|
|
||||||
/* -- page layout ----------------------------------------------------------- */
|
/* -- page layout ----------------------------------------------------------- */
|
||||||
|
|
||||||
body {
|
body {
|
||||||
|
@ -26,9 +34,8 @@ body {
|
||||||
'Verdana', sans-serif;
|
'Verdana', sans-serif;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
/* background-image: url(bodybg.png); */
|
background-color: rgb(64,64,64);
|
||||||
background-color: rgb(64,64,64); /* */
|
color: white;
|
||||||
color: white; /*black*/
|
|
||||||
padding: 0;
|
padding: 0;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
@ -48,7 +55,6 @@ body {
|
||||||
height: 63px;
|
height: 63px;
|
||||||
padding-right: 18px;
|
padding-right: 18px;
|
||||||
background: url("header_menu_background_last.png") no-repeat scroll right center transparent;
|
background: url("header_menu_background_last.png") no-repeat scroll right center transparent;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.pageheader li {
|
.pageheader li {
|
||||||
|
@ -92,7 +98,6 @@ body {
|
||||||
}
|
}
|
||||||
|
|
||||||
div.document {
|
div.document {
|
||||||
/* background-color: white; */
|
|
||||||
text-align: left;
|
text-align: left;
|
||||||
border: 1px solid rgb(111,111,111);
|
border: 1px solid rgb(111,111,111);
|
||||||
width: 90%;
|
width: 90%;
|
||||||
|
@ -101,11 +106,6 @@ div.document {
|
||||||
max-width: 1080px;
|
max-width: 1080px;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.bodywrapper {
|
|
||||||
margin-right: 240px;
|
|
||||||
border-right: 1px solid rgb(111,111,111); /*#0a507a*/
|
|
||||||
}
|
|
||||||
|
|
||||||
div.body {
|
div.body {
|
||||||
padding: 0.5em 20px 20px 20px;
|
padding: 0.5em 20px 20px 20px;
|
||||||
}
|
}
|
||||||
|
@ -120,10 +120,10 @@ div.related {
|
||||||
}
|
}
|
||||||
|
|
||||||
div.related ul {
|
div.related ul {
|
||||||
background-image: url(rel_background.png); /*url(relbg.png)*/
|
background-image: url(rel_background.png);
|
||||||
height: 1.9em;
|
height: 1.9em;
|
||||||
border-top: 1px solid rgb(32,32,32); /*#002e50*/
|
border-top: 1px solid rgb(32,32,32);
|
||||||
border-bottom: 1px solid rgb(32,32,32); /*#002e50*/
|
border-bottom: 1px solid rgb(32,32,32);
|
||||||
margin-top: 6px;
|
margin-top: 6px;
|
||||||
margin-bottom: 6px;
|
margin-bottom: 6px;
|
||||||
}
|
}
|
||||||
|
@ -144,44 +144,49 @@ div.related ul li a {
|
||||||
padding: 0 5px 0 5px;
|
padding: 0 5px 0 5px;
|
||||||
line-height: 1.75em;
|
line-height: 1.75em;
|
||||||
color: rgb(249,249,240);
|
color: rgb(249,249,240);
|
||||||
/* text-shadow: 0px 0px 1px rgba(0, 0, 0, 0.5); */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
div.related ul li a:hover {
|
div.related ul li a:hover {
|
||||||
color: white;
|
color: white;
|
||||||
/*text-decoration: underline;*/
|
|
||||||
/* text-shadow: 0px 0px 1px rgba(255, 255, 255, 0.5); */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
div.sphinxsidebarwrapper {
|
|
||||||
/* Avoid the buggy moving sidebar
|
|
||||||
position: relative;
|
|
||||||
top: 0px;
|
|
||||||
*/
|
|
||||||
padding: 0;
|
|
||||||
|
|
||||||
}
|
/* -- sidebar ------------------------------------------------------------- */
|
||||||
|
|
||||||
div.sphinxsidebar {
|
div.sphinxsidebar {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0 15px 15px 0;
|
padding: 0;
|
||||||
width: 210px;
|
float: none;
|
||||||
float: right;
|
|
||||||
font-size: 1em;
|
font-size: 1em;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
|
position: sticky;
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.sphinxsidebarwrapper {
|
||||||
|
margin: 0;
|
||||||
|
padding: 15px 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.sphinxsidebar .logo {
|
div.sphinxsidebar .logo {
|
||||||
font-size: 1.8em;
|
|
||||||
color: rgb(10,80,122);
|
|
||||||
font-weight: 300;
|
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.sphinxsidebar .logo img {
|
div.sphinxsidebar .logo img {
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
div.sphinxsidebar .download a img {
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.subscribeformwrapper {
|
||||||
|
display: block;
|
||||||
|
overflow: auto;
|
||||||
|
margin-bottom: 1.2em;
|
||||||
|
}
|
||||||
|
|
||||||
div.sphinxsidebar input {
|
div.sphinxsidebar input {
|
||||||
border: 1px solid rgb(170,170,170);
|
border: 1px solid rgb(170,170,170);
|
||||||
font-family: 'Open Sans', 'Lucida Grande', 'Lucida Sans Unicode', 'Geneva',
|
font-family: 'Open Sans', 'Lucida Grande', 'Lucida Sans Unicode', 'Geneva',
|
||||||
|
@ -189,9 +194,30 @@ div.sphinxsidebar input {
|
||||||
font-size: 1em;
|
font-size: 1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
div.sphinxsidebar .subscribeform {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.sphinxsidebar .subscribeform input {
|
||||||
|
border: 1px solid #aaa;
|
||||||
|
font-size: 0.9em;
|
||||||
|
float: left;
|
||||||
|
padding: 0.25em 0.5em;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.sphinxsidebar .subscribeform input[type="text"] {
|
||||||
|
width: 60%;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.sphinxsidebar .subscribeform input[type="submit"] {
|
||||||
|
width: 40%;
|
||||||
|
border-left: none;
|
||||||
|
}
|
||||||
|
|
||||||
div.sphinxsidebar h3 {
|
div.sphinxsidebar h3 {
|
||||||
font-size: 1.5em;
|
font-size: 1.5em;
|
||||||
border-top: 1px solid rgb(111,111,111); /*#0a507a;*/
|
border-top: 1px solid rgb(111,111,111);
|
||||||
margin-top: 1em;
|
margin-top: 1em;
|
||||||
margin-bottom: 0.5em;
|
margin-bottom: 0.5em;
|
||||||
padding-top: 0.5em;
|
padding-top: 0.5em;
|
||||||
|
@ -202,14 +228,11 @@ div.sphinxsidebar h4 {
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.sphinxsidebar h3, div.sphinxsidebar h4 {
|
div.sphinxsidebar h3,
|
||||||
margin-right: -15px;
|
div.sphinxsidebar h4
|
||||||
margin-left: -15px;
|
{
|
||||||
padding-right: 14px;
|
color: rgb(51, 153, 255);
|
||||||
padding-left: 14px;
|
|
||||||
color: rgb(51, 153, 255); /*#333*/
|
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
/*text-shadow: 0px 0px 0.5px rgba(0, 0, 0, 0.4);*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
div.sphinxsidebarwrapper > h3:first-child {
|
div.sphinxsidebarwrapper > h3:first-child {
|
||||||
|
@ -218,7 +241,7 @@ div.sphinxsidebarwrapper > h3:first-child {
|
||||||
}
|
}
|
||||||
|
|
||||||
div.sphinxsidebar h3 a {
|
div.sphinxsidebar h3 a {
|
||||||
color: rgb(51, 153, 255); /*#333*/
|
color: rgb(51, 153, 255);
|
||||||
}
|
}
|
||||||
|
|
||||||
div.sphinxsidebar ul {
|
div.sphinxsidebar ul {
|
||||||
|
@ -233,15 +256,18 @@ div.sphinxsidebar ul ul {
|
||||||
list-style-image: url(listitem.png);
|
list-style-image: url(listitem.png);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* -- footer ----------------------------------------------------------- */
|
||||||
|
|
||||||
div.footer {
|
div.footer {
|
||||||
background-image: url(footer_background.png); /*url(footerbg.png)*/
|
background-image: url(footer_background.png);
|
||||||
color: rgb(204,204,204);
|
color: rgb(204,204,204);
|
||||||
text-shadow: 0 0 .2px rgba(255, 255, 255, 0.8);
|
text-shadow: 0 0 .2px rgba(255, 255, 255, 0.8);
|
||||||
padding: 6px; /*3px 8px 3px 0*/
|
padding: 6px;
|
||||||
clear: both;
|
clear: both;
|
||||||
font-size: 0.8em;
|
font-size: 0.8em;
|
||||||
text-align: center; /*right*/
|
text-align: center;
|
||||||
height: 50px; /*3em*/
|
height: 50px;
|
||||||
margin-top: 18px;
|
margin-top: 18px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -250,6 +276,7 @@ div.footer a {
|
||||||
color: rgb(204,204,204);
|
color: rgb(204,204,204);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* -- body styles ----------------------------------------------------------- */
|
/* -- body styles ----------------------------------------------------------- */
|
||||||
|
|
||||||
p {
|
p {
|
||||||
|
@ -263,7 +290,7 @@ a {
|
||||||
|
|
||||||
a:hover {
|
a:hover {
|
||||||
color: rgb(200,200,210);
|
color: rgb(200,200,210);
|
||||||
text-shadow: rgb(51, 153, 255) 0px 0px 6px; /* */
|
text-shadow: rgb(51, 153, 255) 0px 0px 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.body a {
|
div.body a {
|
||||||
|
@ -271,19 +298,18 @@ div.body a {
|
||||||
}
|
}
|
||||||
|
|
||||||
h1 {
|
h1 {
|
||||||
margin: 10px 0 0 0;
|
margin: 0.3em 0;
|
||||||
font-size: 2.4em;
|
font-size: 2.4em;
|
||||||
color: rgb(51, 153, 255); /*#0A507A*/
|
color: rgb(51, 153, 255);
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
}
|
}
|
||||||
|
|
||||||
h2 {
|
h2 {
|
||||||
margin: 1.em 0 0.2em 0;
|
margin: 0.8em 0 0 0;
|
||||||
font-size: 1.5em;
|
font-size: 1.5em;
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
color: rgb(51, 153, 255); /*#174967*/
|
color: rgb(51, 153, 255);
|
||||||
text-shadow: rgb(51, 153, 255) 0px 0px 10px; /* */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
h3 {
|
h3 {
|
||||||
|
@ -297,7 +323,7 @@ div.body h1 a, div.body h2 a, div.body h3 a, div.body h4 a, div.body h5 a, div.b
|
||||||
}
|
}
|
||||||
|
|
||||||
div.body h1 a tt, div.body h2 a tt, div.body h3 a tt, div.body h4 a tt, div.body h5 a tt, div.body h6 a tt {
|
div.body h1 a tt, div.body h2 a tt, div.body h3 a tt, div.body h4 a tt, div.body h5 a tt, div.body h6 a tt {
|
||||||
color: rgb(51, 153, 255) !important; /*#0A507A*/
|
color: rgb(51, 153, 255) !important;
|
||||||
font-size: inherit !important;
|
font-size: inherit !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -315,6 +341,11 @@ a.headerlink:hover {
|
||||||
color: white!important;
|
color: white!important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* avoid font-size when :mod: role in headings */
|
||||||
|
h1 code, h2 code, h3 code, h4 code {
|
||||||
|
font-size: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
cite, code, tt {
|
cite, code, tt {
|
||||||
font-family: 'Consolas', 'DejaVu Sans Mono',
|
font-family: 'Consolas', 'DejaVu Sans Mono',
|
||||||
'Bitstream Vera Sans Mono', monospace;
|
'Bitstream Vera Sans Mono', monospace;
|
||||||
|
@ -322,12 +353,16 @@ cite, code, tt {
|
||||||
letter-spacing: -0.02em;
|
letter-spacing: -0.02em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
table.deprecated code.literal {
|
||||||
|
word-break: break-all;
|
||||||
|
}
|
||||||
|
|
||||||
code, tt {
|
code, tt {
|
||||||
background-color: rgb(51,51,51); /*#f2f2f2*/
|
background-color: rgb(51,51,51);
|
||||||
border: 1px solid rgb(32,32,32); /*#ddd*/
|
border: 1px solid rgb(32,32,32);
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
color: white; /*#333*/
|
color: white;
|
||||||
padding: 1px;
|
padding: 1px 0.2em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.descname, .descclassname, .xref {
|
.descname, .descclassname, .xref {
|
||||||
|
@ -342,10 +377,6 @@ code, tt {
|
||||||
color: rgb(160,160,255);
|
color: rgb(160,160,255);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*tt.xref {
|
|
||||||
color: rgb(200,200,255);
|
|
||||||
}*/
|
|
||||||
|
|
||||||
hr {
|
hr {
|
||||||
border: 1px solid rgb(170,187,204);
|
border: 1px solid rgb(170,187,204);
|
||||||
margin: 2em;
|
margin: 2em;
|
||||||
|
@ -361,15 +392,14 @@ a tt:hover, a code:hover{
|
||||||
}
|
}
|
||||||
|
|
||||||
pre {
|
pre {
|
||||||
font-family: 'Consolas', 'DejaVu Sans Mono',
|
font-family: 'Consolas', 'Courier New', 'DejaVu Sans Mono',
|
||||||
'Bitstream Vera Sans Mono', monospace;
|
'Bitstream Vera Sans Mono', monospace;
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
letter-spacing: 0.015em;
|
letter-spacing: 0.015em;
|
||||||
line-height: 120%;
|
line-height: 120%;
|
||||||
padding: 0.5em;
|
padding: 0.5em;
|
||||||
border-radius: 4px; /*2px*/
|
border-radius: 6px;
|
||||||
background-color: rgb(51,51,51); /*#f8f8f8*/
|
background-color: rgb(51,51,51);
|
||||||
border: 1px solid rgb(32,32,32);/*#ccc*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pre a {
|
pre a {
|
||||||
|
@ -399,49 +429,41 @@ table {
|
||||||
margin: 0 -0.5em 0 -0.5em;
|
margin: 0 -0.5em 0 -0.5em;
|
||||||
}
|
}
|
||||||
|
|
||||||
table td, table th {
|
table td,
|
||||||
|
table th
|
||||||
|
{
|
||||||
padding: 0.2em 0.5em 0.2em 0.5em;
|
padding: 0.2em 0.5em 0.2em 0.5em;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.admonition, div.warning {
|
div.admonition,
|
||||||
font-size: 0.9em;
|
div.warning
|
||||||
margin: 1em 0 1em 0;
|
{
|
||||||
border: 1px dashed rgb(32,32,32); /*#86989B*/
|
background-color: rgb(51,51,51);
|
||||||
border-radius: 12px;
|
|
||||||
background-color: rgb(51,51,51); /*#f7f7f7*/
|
|
||||||
padding: 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
div.admonition p, div.warning p {
|
div.admonition > pre,
|
||||||
margin: 0.5em 1em 0.5em 1em;
|
div.warning > pre
|
||||||
padding: 0;
|
{
|
||||||
}
|
|
||||||
|
|
||||||
div.admonition pre, div.warning pre {
|
|
||||||
margin: 0.4em 1em 0.4em 1em;
|
margin: 0.4em 1em 0.4em 1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.admonition p.admonition-title,
|
|
||||||
div.warning p.admonition-title {
|
|
||||||
margin-top: 1em;
|
|
||||||
padding-top: 0.5em;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.warning {
|
div.warning {
|
||||||
border-color: rgb(101,16,16); /*#940000*/
|
border-color: rgb(101,16,16);
|
||||||
background-color: rgb(101,51,51); /*#FFCCCF*/
|
/* background-color: rgb(101,51,51); /*#FFCCCF*/
|
||||||
}
|
}
|
||||||
|
|
||||||
div.warning p.admonition-title {
|
div.admonition > ul,
|
||||||
}
|
div.admonition > ol,
|
||||||
|
div.warning > ul,
|
||||||
div.admonition ul, div.admonition ol,
|
div.warning > ol {
|
||||||
div.warning ul, div.warning ol {
|
|
||||||
margin: 0.1em 0.5em 0.5em 3em;
|
margin: 0.1em 0.5em 0.5em 3em;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
div.admonition div.highlight {
|
||||||
|
background: none;
|
||||||
|
}
|
||||||
|
|
||||||
.viewcode-back {
|
.viewcode-back {
|
||||||
font-family: 'Open Sans', 'Lucida Grande', 'Lucida Sans Unicode', 'Geneva',
|
font-family: 'Open Sans', 'Lucida Grande', 'Lucida Sans Unicode', 'Geneva',
|
||||||
'Verdana', sans-serif;
|
'Verdana', sans-serif;
|
||||||
|
@ -453,7 +475,13 @@ div.viewcode-block:target {
|
||||||
border-bottom: 1px solid rgb(170,204,153);
|
border-bottom: 1px solid rgb(170,204,153);
|
||||||
}
|
}
|
||||||
|
|
||||||
dt:target, .highlighted { /* */
|
.contentstable {
|
||||||
|
margin-left: 30px;
|
||||||
|
margin: 0 auto;
|
||||||
|
table-layout: fixed;
|
||||||
|
}
|
||||||
|
|
||||||
|
dt:target, .highlighted {
|
||||||
background-color: rgb(251,229,78);
|
background-color: rgb(251,229,78);
|
||||||
background-image: url(hilight_background.png);
|
background-image: url(hilight_background.png);
|
||||||
border-top: 1px solid rgb(32,32,32);
|
border-top: 1px solid rgb(32,32,32);
|
||||||
|
@ -475,57 +503,96 @@ div.deprecated span.versionmodified {
|
||||||
text-shadow: 0px 0px 3px rgba(180,60,20,0.6);
|
text-shadow: 0px 0px 3px rgba(180,60,20,0.6);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Toc tree */
|
||||||
|
div.toctree-wrapper ul {
|
||||||
|
padding-left: 1.5em;
|
||||||
|
list-style-type: disc;
|
||||||
|
margin-top: 0.2em;
|
||||||
|
margin-bottom: 0.2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.toctree-wrapper a {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* box for enumerations */
|
/* box for enumerations */
|
||||||
div#enumerations > div.section {
|
div#enumerations > div.section, /* older sphinx */
|
||||||
|
section#enumerations > section /* newer sphinx */
|
||||||
|
{
|
||||||
border: 1px solid #202020;
|
border: 1px solid #202020;
|
||||||
box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
|
box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
|
||||||
margin-bottom: 1em;
|
margin-bottom: 1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
div#enumerations > div.section h3 {
|
div#enumerations > div.section h3, /* older sphinx */
|
||||||
|
section#enumerations > section h3 /* newer sphinx */
|
||||||
|
{
|
||||||
background-color: #333;
|
background-color: #333;
|
||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
padding: 3px;
|
padding: 2px 4px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
div#enumerations > div.section dl,
|
div#enumerations > div.section > dl, /* older sphinx */
|
||||||
div#enumerations > div.section p {
|
div#enumerations > div.section > p,
|
||||||
padding-left: 3px;
|
section#enumerations > section > dl, /* newer sphinx */
|
||||||
|
section#enumerations > section > p
|
||||||
|
{
|
||||||
|
padding-left: 1em;
|
||||||
|
padding-right: 1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* box for classes */
|
/* box for classes */
|
||||||
dd {
|
|
||||||
padding-right: 3px;
|
|
||||||
}
|
|
||||||
|
|
||||||
dl.class {
|
dl.class {
|
||||||
border: 1px solid #202020;
|
border: 1px solid #202020;
|
||||||
box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
|
box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
|
||||||
|
padding-bottom: 1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
dl.class > dt {
|
dl.class > dt {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
background-color: #333;
|
background-color: #333;
|
||||||
padding: 2px;
|
padding: 2px 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
dl.class > dt em {
|
dl.class > dt em {
|
||||||
font-size: 0.8em;
|
font-size: 0.8em;
|
||||||
}
|
}
|
||||||
|
|
||||||
dl.class dt{
|
dl.class > dd {
|
||||||
|
margin-left: 1em;
|
||||||
|
margin-right: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* attributes/properties/methods/etc. */
|
||||||
|
dl.attribute > dt,
|
||||||
|
dl.method > dt,
|
||||||
|
dl.function > dt,
|
||||||
|
dl.data > dt
|
||||||
|
{
|
||||||
border-bottom: 1px solid #333;
|
border-bottom: 1px solid #333;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* attributes/properties/methods/etc. */
|
dl.attribute > dd,
|
||||||
dl.attribute dd, dl.method dd, dl.data dd {
|
dl.method > dd,
|
||||||
padding-left: 6px;
|
dl.function > dd,
|
||||||
border-left: 1px solid rgba(200,200,255,0.4);
|
dl.data > dd
|
||||||
|
{
|
||||||
|
margin-left: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
dl.field-list > dt {
|
||||||
|
padding-left: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -- pygments fix ---------------------------------------------------------- */
|
/* -- pygments fix ---------------------------------------------------------- */
|
||||||
|
.highlight {
|
||||||
|
background: none;
|
||||||
|
}
|
||||||
.highlight .go {
|
.highlight .go {
|
||||||
color: white !important;
|
color: white !important;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
[theme]
|
[theme]
|
||||||
inherit = basic
|
inherit = basic
|
||||||
stylesheet = efl.css
|
stylesheet = efl.css
|
||||||
pygments_style = trac
|
pygments_style = monokai
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
Sphinx layout template for the sphinxdoc theme.
|
Sphinx layout template for the sphinxdoc theme.
|
||||||
|
|
||||||
:copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
|
:copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS.
|
||||||
:license: BSD, see LICENSE for details.
|
:license: BSD, see LICENSE for details.
|
||||||
#}
|
#}
|
||||||
{%- extends "basic/layout.html" %}
|
{%- extends "basic/layout.html" %}
|
||||||
|
@ -14,8 +14,8 @@
|
||||||
{% block sidebar2 %}{% endblock %}
|
{% block sidebar2 %}{% endblock %}
|
||||||
|
|
||||||
{% block extrahead %}
|
{% block extrahead %}
|
||||||
<link href='http://fonts.googleapis.com/css?family=Open+Sans:300,400,700'
|
<link href='https://fonts.googleapis.com/css?family=Open+Sans:300,400,700'
|
||||||
rel='stylesheet' type='text/css'>
|
rel='stylesheet' type='text/css' />
|
||||||
{{ super() }}
|
{{ super() }}
|
||||||
{%- if not embedded %}
|
{%- if not embedded %}
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
|
@ -25,7 +25,7 @@
|
||||||
.related { display: none; }
|
.related { display: none; }
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</style>
|
</style>
|
||||||
<script type="text/javascript">
|
<script>
|
||||||
// intelligent scrolling of the sidebar content
|
// intelligent scrolling of the sidebar content
|
||||||
$(window).scroll(function() {
|
$(window).scroll(function() {
|
||||||
var sb = $('.sphinxsidebarwrapper');
|
var sb = $('.sphinxsidebarwrapper');
|
||||||
|
@ -57,17 +57,17 @@
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block rootrellink %}
|
{% block rootrellink %}
|
||||||
<li><a href="{{ pathto('index') }}">Sphinx home</a> |</li>
|
<li><a href="{{ pathto('index') }}">Sphinx home</a> |</li>
|
||||||
<li><a href="{{ pathto('contents') }}">Documentation</a> »</li>
|
<li><a href="{{ pathto('contents') }}">Documentation</a> »</li>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block header %}
|
{% block header %}
|
||||||
<div class="pageheader">
|
<div class="pageheader">
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="{{ pathto('index') }}">Home</a></li>
|
<li><a href="{{ pathto('index') }}">Home</a></li>
|
||||||
<li><a href="{{ pathto('install') }}">Get it</a></li>
|
<li><a href="{{ pathto('usage/installation') }}">Get it</a></li>
|
||||||
<li><a href="{{ pathto('contents') }}">Docs</a></li>
|
<li><a href="{{ pathto('contents') }}">Docs</a></li>
|
||||||
<li><a href="{{ pathto('develop') }}">Extend/Develop</a></li>
|
<li><a href="{{ pathto('development/index') }}">Extend</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<div>
|
<div>
|
||||||
<a href="{{ pathto('index') }}">
|
<a href="{{ pathto('index') }}">
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* Sphinx stylesheet -- sphinx13 theme.
|
* Sphinx stylesheet -- sphinx13 theme.
|
||||||
*
|
*
|
||||||
* :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
|
* :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS.
|
||||||
* :license: BSD, see LICENSE for details.
|
* :license: BSD, see LICENSE for details.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
@ -127,6 +127,7 @@ div.sphinxsidebar {
|
||||||
float: right;
|
float: right;
|
||||||
font-size: 1em;
|
font-size: 1em;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
|
max-height: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.sphinxsidebar .logo {
|
div.sphinxsidebar .logo {
|
||||||
|
@ -140,11 +141,41 @@ div.sphinxsidebar .logo img {
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
div.sphinxsidebar .download a img {
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.subscribeformwrapper {
|
||||||
|
display: block;
|
||||||
|
overflow: auto;
|
||||||
|
margin-bottom: 1.2em;
|
||||||
|
}
|
||||||
|
|
||||||
div.sphinxsidebar input {
|
div.sphinxsidebar input {
|
||||||
border: 1px solid #aaa;
|
border: 1px solid #aaa;
|
||||||
font-family: 'Open Sans', 'Lucida Grande', 'Lucida Sans Unicode', 'Geneva',
|
font-family: 'Open Sans', 'Lucida Grande', 'Lucida Sans Unicode', 'Geneva',
|
||||||
'Verdana', sans-serif;
|
'Verdana', sans-serif;
|
||||||
font-size: 1em;
|
}
|
||||||
|
|
||||||
|
div.sphinxsidebar .subscribeform {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.sphinxsidebar .subscribeform input {
|
||||||
|
border: 1px solid #aaa;
|
||||||
|
font-size: 0.9em;
|
||||||
|
float: left;
|
||||||
|
padding: 0.25em 0.5em;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.sphinxsidebar .subscribeform input[type="text"] {
|
||||||
|
width: 60%;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.sphinxsidebar .subscribeform input[type="submit"] {
|
||||||
|
width: 40%;
|
||||||
|
border-left: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.sphinxsidebar h3 {
|
div.sphinxsidebar h3 {
|
||||||
|
@ -208,7 +239,7 @@ div.footer a {
|
||||||
|
|
||||||
/* -- body styles ----------------------------------------------------------- */
|
/* -- body styles ----------------------------------------------------------- */
|
||||||
|
|
||||||
p {
|
p {
|
||||||
margin: 0.8em 0 0.5em 0;
|
margin: 0.8em 0 0.5em 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -269,6 +300,11 @@ a.headerlink:hover {
|
||||||
color: white!important;
|
color: white!important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* avoid font-size when :mod: role in headings */
|
||||||
|
h1 code, h2 code, h3 code, h4 code {
|
||||||
|
font-size: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
cite, code, tt {
|
cite, code, tt {
|
||||||
font-family: 'Consolas', 'DejaVu Sans Mono',
|
font-family: 'Consolas', 'DejaVu Sans Mono',
|
||||||
'Bitstream Vera Sans Mono', monospace;
|
'Bitstream Vera Sans Mono', monospace;
|
||||||
|
@ -276,12 +312,16 @@ cite, code, tt {
|
||||||
letter-spacing: -0.02em;
|
letter-spacing: -0.02em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
table.deprecated code.literal {
|
||||||
|
word-break: break-all;
|
||||||
|
}
|
||||||
|
|
||||||
tt {
|
tt {
|
||||||
background-color: #f2f2f2;
|
background-color: #f2f2f2;
|
||||||
border: 1px solid #ddd;
|
border: 1px solid #ddd;
|
||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
color: #333;
|
color: #333;
|
||||||
padding: 1px;
|
padding: 1px 0.2em;
|
||||||
}
|
}
|
||||||
|
|
||||||
tt.descname, tt.descclassname, tt.xref {
|
tt.descname, tt.descclassname, tt.xref {
|
||||||
|
@ -303,7 +343,7 @@ a tt:hover {
|
||||||
}
|
}
|
||||||
|
|
||||||
pre {
|
pre {
|
||||||
font-family: 'Consolas', 'DejaVu Sans Mono',
|
font-family: 'Consolas', 'Courier New', 'DejaVu Sans Mono',
|
||||||
'Bitstream Vera Sans Mono', monospace;
|
'Bitstream Vera Sans Mono', monospace;
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
letter-spacing: 0.015em;
|
letter-spacing: 0.015em;
|
||||||
|
@ -354,36 +394,37 @@ div.admonition, div.warning {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.admonition p, div.warning p {
|
div.admonition > p, div.warning > p {
|
||||||
margin: 0.5em 1em 0.5em 1em;
|
margin: 0.5em 1em 0.5em 1em;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.admonition pre, div.warning pre {
|
div.admonition > pre, div.warning > pre {
|
||||||
margin: 0.4em 1em 0.4em 1em;
|
margin: 0.4em 1em 0.4em 1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.admonition p.admonition-title,
|
div.admonition > p.admonition-title,
|
||||||
div.warning p.admonition-title {
|
div.warning > p.admonition-title {
|
||||||
margin-top: 1em;
|
margin-top: 0.5em;
|
||||||
padding-top: 0.5em;
|
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.warning {
|
div.warning {
|
||||||
border: 1px solid #940000;
|
border: 1px solid #940000;
|
||||||
/* background-color: #FFCCCF;*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
div.warning p.admonition-title {
|
div.admonition > ul,
|
||||||
}
|
div.admonition > ol,
|
||||||
|
div.warning > ul,
|
||||||
div.admonition ul, div.admonition ol,
|
div.warning > ol {
|
||||||
div.warning ul, div.warning ol {
|
|
||||||
margin: 0.1em 0.5em 0.5em 3em;
|
margin: 0.1em 0.5em 0.5em 3em;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
div.admonition div.highlight {
|
||||||
|
background: none;
|
||||||
|
}
|
||||||
|
|
||||||
.viewcode-back {
|
.viewcode-back {
|
||||||
font-family: 'Open Sans', 'Lucida Grande', 'Lucida Sans Unicode', 'Geneva',
|
font-family: 'Open Sans', 'Lucida Grande', 'Lucida Sans Unicode', 'Geneva',
|
||||||
'Verdana', sans-serif;
|
'Verdana', sans-serif;
|
||||||
|
@ -394,3 +435,9 @@ div.viewcode-block:target {
|
||||||
border-top: 1px solid #ac9;
|
border-top: 1px solid #ac9;
|
||||||
border-bottom: 1px solid #ac9;
|
border-bottom: 1px solid #ac9;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.contentstable {
|
||||||
|
margin-left: 30px;
|
||||||
|
margin: 0 auto;
|
||||||
|
table-layout: fixed;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
|
||||||
|
Tutorial 1 - Window
|
||||||
|
===================
|
||||||
|
|
||||||
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent mattis id dui
|
||||||
|
vitae lobortis. Fusce et tempus ipsum. Nulla non luctus urna. Pellentesque et
|
||||||
|
luctus diam. Etiam fermentum vestibulum nisi, eget vestibulum turpis aliquet vitae.
|
||||||
|
Integer interdum enim eu lacus pulvinar malesuada. Ut urna mi, congue non
|
||||||
|
pellentesque id, varius eget diam. Ut placerat neque sed orci tincidunt consequat.
|
||||||
|
Cras fermentum fringilla pulvinar. Ut tempor turpis odio.
|
||||||
|
|
||||||
|
Vivamus sed magna tempor orci pharetra dapibus. Phasellus est elit, rhoncus
|
||||||
|
vitae consequat id, semper at ligula. Sed vitae odio tempor, maximus mi placerat,
|
||||||
|
faucibus metus. Quisque eget mauris quis ex gravida iaculis finibus vitae arcu.
|
||||||
|
Morbi non porttitor velit. Nullam pretium ex neque, ac malesuada felis dapibus
|
||||||
|
sodales. Pellentesque tristique est vel accumsan lobortis. Curabitur viverra
|
||||||
|
diam sit amet odio tincidunt pellentesque. Vestibulum non eros orci. Aliquam
|
||||||
|
accumsan convallis ullamcorper. Donec tristique massa nec massa venenatis tempus.
|
||||||
|
Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
|
||||||
|
himenaeos. Aliquam augue nibh, viverra at urna in, lacinia maximus leo.
|
||||||
|
Nullam vestibulum lobortis elementum.
|
|
@ -0,0 +1,21 @@
|
||||||
|
|
||||||
|
Tutorial 2 - Size Hints
|
||||||
|
=======================
|
||||||
|
|
||||||
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent mattis id dui
|
||||||
|
vitae lobortis. Fusce et tempus ipsum. Nulla non luctus urna. Pellentesque et
|
||||||
|
luctus diam. Etiam fermentum vestibulum nisi, eget vestibulum turpis aliquet vitae.
|
||||||
|
Integer interdum enim eu lacus pulvinar malesuada. Ut urna mi, congue non
|
||||||
|
pellentesque id, varius eget diam. Ut placerat neque sed orci tincidunt consequat.
|
||||||
|
Cras fermentum fringilla pulvinar. Ut tempor turpis odio.
|
||||||
|
|
||||||
|
Vivamus sed magna tempor orci pharetra dapibus. Phasellus est elit, rhoncus
|
||||||
|
vitae consequat id, semper at ligula. Sed vitae odio tempor, maximus mi placerat,
|
||||||
|
faucibus metus. Quisque eget mauris quis ex gravida iaculis finibus vitae arcu.
|
||||||
|
Morbi non porttitor velit. Nullam pretium ex neque, ac malesuada felis dapibus
|
||||||
|
sodales. Pellentesque tristique est vel accumsan lobortis. Curabitur viverra
|
||||||
|
diam sit amet odio tincidunt pellentesque. Vestibulum non eros orci. Aliquam
|
||||||
|
accumsan convallis ullamcorper. Donec tristique massa nec massa venenatis tempus.
|
||||||
|
Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
|
||||||
|
himenaeos. Aliquam augue nibh, viverra at urna in, lacinia maximus leo.
|
||||||
|
Nullam vestibulum lobortis elementum.
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
||||||
|
@ -16,9 +16,26 @@
|
||||||
# along with this Python-EFL. If not, see <http://www.gnu.org/licenses/>.
|
# along with this Python-EFL. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
# semver examples:
|
# semver examples:
|
||||||
# development: "1.12.99" ( 1, 12, 99 )
|
# development: '1.12.99' ( 1, 12, 99 )
|
||||||
# pre-release: "1.13.0-beta1" ( 1, 13, 0 )
|
# pre-release: '1.13.0-beta1' ( 1, 13, 0 )
|
||||||
# release: "1.13.0" ( 1, 13, 0 )
|
# release: '1.13.0' ( 1, 13, 0 )
|
||||||
|
|
||||||
__version__ = "1.17.99"
|
__version__ = '1.26.99'
|
||||||
__version_info__ = ( 1, 17, 99 )
|
__version_info__ = (1, 26, 99)
|
||||||
|
|
||||||
|
|
||||||
|
__all__ = [
|
||||||
|
'dbus_mainloop',
|
||||||
|
'ecore',
|
||||||
|
'ecore_con',
|
||||||
|
'ecore_input',
|
||||||
|
'ecore_x',
|
||||||
|
'edje',
|
||||||
|
'edje_edit',
|
||||||
|
'elementary',
|
||||||
|
'emotion',
|
||||||
|
'eo',
|
||||||
|
'ethumb',
|
||||||
|
'evas',
|
||||||
|
'utils',
|
||||||
|
]
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
* Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
*
|
*
|
||||||
* This file is part of Python-EFL.
|
* This file is part of Python-EFL.
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
* Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
*
|
*
|
||||||
* This file is part of Python-EFL.
|
* This file is part of Python-EFL.
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
||||||
|
@ -114,6 +114,8 @@ Flags for executing a child with its stdin and/or stdout piped back.
|
||||||
Makes child receive SIGTERM when parent dies
|
Makes child receive SIGTERM when parent dies
|
||||||
|
|
||||||
|
|
||||||
|
.. _Ecore_Callback_Returns:
|
||||||
|
|
||||||
Callback return values
|
Callback return values
|
||||||
----------------------
|
----------------------
|
||||||
|
|
||||||
|
@ -126,6 +128,8 @@ Callback return values
|
||||||
Return value to keep a callback
|
Return value to keep a callback
|
||||||
|
|
||||||
|
|
||||||
|
.. _Ecore_Event_Returns:
|
||||||
|
|
||||||
Event return values
|
Event return values
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
|
@ -253,6 +257,80 @@ from cpython cimport Py_INCREF, Py_DECREF
|
||||||
import traceback
|
import traceback
|
||||||
import atexit
|
import atexit
|
||||||
|
|
||||||
|
cimport efl.ecore.enums as enums
|
||||||
|
|
||||||
|
ECORE_EVENT_NONE = enums.ECORE_EVENT_NONE
|
||||||
|
ECORE_EVENT_SIGNAL_USER = enums.ECORE_EVENT_SIGNAL_USER
|
||||||
|
ECORE_EVENT_SIGNAL_HUP = enums.ECORE_EVENT_SIGNAL_HUP
|
||||||
|
ECORE_EVENT_SIGNAL_EXIT = enums.ECORE_EVENT_SIGNAL_EXIT
|
||||||
|
ECORE_EVENT_SIGNAL_POWER = enums.ECORE_EVENT_SIGNAL_POWER
|
||||||
|
ECORE_EVENT_SIGNAL_REALTIME = enums.ECORE_EVENT_SIGNAL_REALTIME
|
||||||
|
ECORE_EVENT_MEMORY_STATE = enums.ECORE_EVENT_MEMORY_STATE
|
||||||
|
ECORE_EVENT_POWER_STATE = enums.ECORE_EVENT_POWER_STATE
|
||||||
|
ECORE_EVENT_LOCALE_CHANGED = enums.ECORE_EVENT_LOCALE_CHANGED
|
||||||
|
ECORE_EVENT_HOSTNAME_CHANGED = enums.ECORE_EVENT_HOSTNAME_CHANGED
|
||||||
|
ECORE_EVENT_SYSTEM_TIMEDATE_CHANGED = enums.ECORE_EVENT_SYSTEM_TIMEDATE_CHANGED
|
||||||
|
ECORE_EVENT_COUNT = enums.ECORE_EVENT_COUNT
|
||||||
|
|
||||||
|
ECORE_CALLBACK_CANCEL = enums.ECORE_CALLBACK_CANCEL
|
||||||
|
ECORE_CALLBACK_RENEW = enums.ECORE_CALLBACK_RENEW
|
||||||
|
|
||||||
|
ECORE_CALLBACK_PASS_ON = enums.ECORE_CALLBACK_PASS_ON
|
||||||
|
ECORE_CALLBACK_DONE = enums.ECORE_CALLBACK_DONE
|
||||||
|
|
||||||
|
ECORE_EXE_PRIORITY_INHERIT = enums.ECORE_EXE_PRIORITY_INHERIT
|
||||||
|
|
||||||
|
ECORE_EXE_EVENT_ADD = enums.ECORE_EXE_EVENT_ADD
|
||||||
|
ECORE_EXE_EVENT_DEL = enums.ECORE_EXE_EVENT_DEL
|
||||||
|
ECORE_EXE_EVENT_DATA = enums.ECORE_EXE_EVENT_DATA
|
||||||
|
ECORE_EXE_EVENT_ERROR = enums.ECORE_EXE_EVENT_ERROR
|
||||||
|
|
||||||
|
ECORE_FD_READ = enums.ECORE_FD_READ
|
||||||
|
ECORE_FD_WRITE = enums.ECORE_FD_WRITE
|
||||||
|
ECORE_FD_ERROR = enums.ECORE_FD_ERROR
|
||||||
|
|
||||||
|
ECORE_EXE_NONE = enums.ECORE_EXE_NONE
|
||||||
|
ECORE_EXE_PIPE_READ = enums.ECORE_EXE_PIPE_READ
|
||||||
|
ECORE_EXE_PIPE_WRITE = enums.ECORE_EXE_PIPE_WRITE
|
||||||
|
ECORE_EXE_PIPE_ERROR = enums.ECORE_EXE_PIPE_ERROR
|
||||||
|
ECORE_EXE_PIPE_READ_LINE_BUFFERED = enums.ECORE_EXE_PIPE_READ_LINE_BUFFERED
|
||||||
|
ECORE_EXE_PIPE_ERROR_LINE_BUFFERED = enums.ECORE_EXE_PIPE_ERROR_LINE_BUFFERED
|
||||||
|
ECORE_EXE_PIPE_AUTO = enums.ECORE_EXE_PIPE_AUTO
|
||||||
|
ECORE_EXE_RESPAWN = enums.ECORE_EXE_RESPAWN
|
||||||
|
ECORE_EXE_USE_SH = enums.ECORE_EXE_USE_SH
|
||||||
|
ECORE_EXE_NOT_LEADER = enums.ECORE_EXE_NOT_LEADER
|
||||||
|
ECORE_EXE_TERM_WITH_PARENT = enums.ECORE_EXE_TERM_WITH_PARENT
|
||||||
|
|
||||||
|
ECORE_POS_MAP_LINEAR = enums.ECORE_POS_MAP_LINEAR
|
||||||
|
ECORE_POS_MAP_ACCELERATE = enums.ECORE_POS_MAP_ACCELERATE
|
||||||
|
ECORE_POS_MAP_DECELERATE = enums.ECORE_POS_MAP_DECELERATE
|
||||||
|
ECORE_POS_MAP_SINUSOIDAL = enums.ECORE_POS_MAP_SINUSOIDAL
|
||||||
|
ECORE_POS_MAP_ACCELERATE_FACTOR = enums.ECORE_POS_MAP_ACCELERATE_FACTOR
|
||||||
|
ECORE_POS_MAP_DECELERATE_FACTOR = enums.ECORE_POS_MAP_DECELERATE_FACTOR
|
||||||
|
ECORE_POS_MAP_SINUSOIDAL_FACTOR = enums.ECORE_POS_MAP_SINUSOIDAL_FACTOR
|
||||||
|
ECORE_POS_MAP_DIVISOR_INTERP = enums.ECORE_POS_MAP_DIVISOR_INTERP
|
||||||
|
ECORE_POS_MAP_BOUNCE = enums.ECORE_POS_MAP_BOUNCE
|
||||||
|
ECORE_POS_MAP_SPRING = enums.ECORE_POS_MAP_SPRING
|
||||||
|
ECORE_POS_MAP_CUBIC_BEZIER = enums.ECORE_POS_MAP_CUBIC_BEZIER
|
||||||
|
|
||||||
|
ECORE_ANIMATOR_SOURCE_TIMER = enums.ECORE_ANIMATOR_SOURCE_TIMER
|
||||||
|
ECORE_ANIMATOR_SOURCE_CUSTOM = enums.ECORE_ANIMATOR_SOURCE_CUSTOM
|
||||||
|
|
||||||
|
ECORE_POLLER_CORE = enums.ECORE_POLLER_CORE
|
||||||
|
|
||||||
|
|
||||||
|
ECORE_FILE_EVENT_NONE = enums.ECORE_FILE_EVENT_NONE
|
||||||
|
ECORE_FILE_EVENT_CREATED_FILE = enums.ECORE_FILE_EVENT_CREATED_FILE
|
||||||
|
ECORE_FILE_EVENT_CREATED_DIRECTORY = enums.ECORE_FILE_EVENT_CREATED_DIRECTORY
|
||||||
|
ECORE_FILE_EVENT_DELETED_FILE = enums.ECORE_FILE_EVENT_DELETED_FILE
|
||||||
|
ECORE_FILE_EVENT_DELETED_DIRECTORY = enums.ECORE_FILE_EVENT_DELETED_DIRECTORY
|
||||||
|
ECORE_FILE_EVENT_DELETED_SELF = enums.ECORE_FILE_EVENT_DELETED_SELF
|
||||||
|
ECORE_FILE_EVENT_MODIFIED = enums.ECORE_FILE_EVENT_MODIFIED
|
||||||
|
ECORE_FILE_EVENT_CLOSED = enums.ECORE_FILE_EVENT_CLOSED
|
||||||
|
|
||||||
|
ECORE_FILE_PROGRESS_CONTINUE = enums.ECORE_FILE_PROGRESS_CONTINUE
|
||||||
|
ECORE_FILE_PROGRESS_ABORT = enums.ECORE_FILE_PROGRESS_ABORT
|
||||||
|
|
||||||
|
|
||||||
cdef Eina_Bool _ecore_task_cb(void *data) with gil:
|
cdef Eina_Bool _ecore_task_cb(void *data) with gil:
|
||||||
cdef:
|
cdef:
|
||||||
|
@ -284,15 +362,15 @@ def init():
|
||||||
|
|
||||||
global _event_type_mapping
|
global _event_type_mapping
|
||||||
_event_type_mapping = {
|
_event_type_mapping = {
|
||||||
ECORE_EVENT_SIGNAL_USER: EventSignalUser,
|
enums.ECORE_EVENT_SIGNAL_USER: EventSignalUser,
|
||||||
ECORE_EVENT_SIGNAL_HUP: EventSignalHup,
|
enums.ECORE_EVENT_SIGNAL_HUP: EventSignalHup,
|
||||||
ECORE_EVENT_SIGNAL_EXIT: EventSignalExit,
|
enums.ECORE_EVENT_SIGNAL_EXIT: EventSignalExit,
|
||||||
ECORE_EVENT_SIGNAL_POWER: EventSignalPower,
|
enums.ECORE_EVENT_SIGNAL_POWER: EventSignalPower,
|
||||||
ECORE_EVENT_SIGNAL_REALTIME: EventSignalRealtime,
|
enums.ECORE_EVENT_SIGNAL_REALTIME: EventSignalRealtime,
|
||||||
ECORE_EXE_EVENT_ADD: EventExeAdd,
|
enums.ECORE_EXE_EVENT_ADD: EventExeAdd,
|
||||||
ECORE_EXE_EVENT_DEL: EventExeDel,
|
enums.ECORE_EXE_EVENT_DEL: EventExeDel,
|
||||||
ECORE_EXE_EVENT_DATA: EventExeData,
|
enums.ECORE_EXE_EVENT_DATA: EventExeData,
|
||||||
ECORE_EXE_EVENT_ERROR: EventExeData,
|
enums.ECORE_EXE_EVENT_ERROR: EventExeData,
|
||||||
}
|
}
|
||||||
|
|
||||||
ecore_file_init()
|
ecore_file_init()
|
||||||
|
@ -347,28 +425,30 @@ init()
|
||||||
atexit.register(shutdown)
|
atexit.register(shutdown)
|
||||||
|
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
# This conflict seems to not exists anymore, see tests/ecore/test_08_exe.py
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# let's try to warn users that ecore conflicts with subprocess module
|
# let's try to warn users that ecore conflicts with subprocess module
|
||||||
import subprocess
|
# import subprocess
|
||||||
|
#
|
||||||
_orig_subprocess = None
|
# _orig_subprocess = None
|
||||||
|
#
|
||||||
def subprocess_warning(*a, **ka):
|
# def subprocess_warning(*a, **ka):
|
||||||
print(""" DEVELOPER WARNING:
|
# print(""" DEVELOPER WARNING:
|
||||||
Using subprocess (Popen and derivatives) with Ecore is a bad idea.
|
# Using subprocess (Popen and derivatives) with Ecore is a bad idea.
|
||||||
|
#
|
||||||
Ecore will set some signal handlers subprocess module depends and this
|
# Ecore will set some signal handlers subprocess module depends and this
|
||||||
may cause this module to operate unexpectedly.
|
# may cause this module to operate unexpectedly.
|
||||||
|
#
|
||||||
Instead of using subprocess.Popen(), please consider using Ecore's
|
# Instead of using subprocess.Popen(), please consider using Ecore's
|
||||||
Exe() class.
|
# Exe() class.
|
||||||
""")
|
# """)
|
||||||
traceback.print_stack()
|
# traceback.print_stack()
|
||||||
return _orig_subprocess(*a, **ka)
|
# return _orig_subprocess(*a, **ka)
|
||||||
|
#
|
||||||
if subprocess.Popen is not subprocess_warning:
|
# if subprocess.Popen is not subprocess_warning:
|
||||||
_orig_subprocess = subprocess.Popen
|
# _orig_subprocess = subprocess.Popen
|
||||||
subprocess.Popen = subprocess_warning
|
# subprocess.Popen = subprocess_warning
|
||||||
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
||||||
|
@ -40,7 +40,7 @@ cdef class Animator(Eo):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
def __init__(self, func, *args, **kargs):
|
def __init__(self, func, *args, **kargs):
|
||||||
"""Animator(...)
|
"""
|
||||||
|
|
||||||
:param func: function to call at every frame.
|
:param func: function to call at every frame.
|
||||||
:type func: callable
|
:type func: callable
|
||||||
|
@ -141,7 +141,7 @@ cdef class AnimatorTimeline(Animator):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, func, double runtime, *args, **kargs):
|
def __init__(self, func, double runtime, *args, **kargs):
|
||||||
"""AnimatorTimeline(...)
|
"""
|
||||||
|
|
||||||
:param func: The function to call when it ticks off
|
:param func: The function to call when it ticks off
|
||||||
:type func: callable
|
:type func: callable
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
||||||
|
@ -81,7 +81,7 @@ cdef class EventHandler(object):
|
||||||
raise TypeError("Parameter 'func' must be callable")
|
raise TypeError("Parameter 'func' must be callable")
|
||||||
event_cls = _event_type_mapping.get(type, None)
|
event_cls = _event_type_mapping.get(type, None)
|
||||||
if event_cls is None:
|
if event_cls is None:
|
||||||
raise ValueError("Unknow Ecore_Event type %d" % type)
|
raise ValueError("Unknown Ecore_Event type %d" % type)
|
||||||
self.type = type
|
self.type = type
|
||||||
self.event_cls = event_cls
|
self.event_cls = event_cls
|
||||||
self.func = func
|
self.func = func
|
||||||
|
@ -174,7 +174,7 @@ cdef class EventSignalUser2(EventSignalUser):
|
||||||
|
|
||||||
cdef class EventHandlerSignalUser(EventHandler):
|
cdef class EventHandlerSignalUser(EventHandler):
|
||||||
def __init__(self, func, *args, **kargs):
|
def __init__(self, func, *args, **kargs):
|
||||||
EventHandler.__init__(self, ECORE_EVENT_SIGNAL_USER,
|
EventHandler.__init__(self, enums.ECORE_EVENT_SIGNAL_USER,
|
||||||
func, *args, **kargs)
|
func, *args, **kargs)
|
||||||
|
|
||||||
cdef Eina_Bool _exec(self, void *event) except 2:
|
cdef Eina_Bool _exec(self, void *event) except 2:
|
||||||
|
@ -206,7 +206,7 @@ cdef class EventSignalHup(Event):
|
||||||
|
|
||||||
|
|
||||||
def on_signal_hup(func, *args, **kargs):
|
def on_signal_hup(func, *args, **kargs):
|
||||||
return EventHandler(ECORE_EVENT_SIGNAL_HUP, func, *args, **kargs)
|
return EventHandler(enums.ECORE_EVENT_SIGNAL_HUP, func, *args, **kargs)
|
||||||
|
|
||||||
|
|
||||||
cdef class EventSignalExit(Event):
|
cdef class EventSignalExit(Event):
|
||||||
|
@ -253,7 +253,7 @@ cdef class EventSignalTerminate(EventSignalExit):
|
||||||
|
|
||||||
cdef class EventHandlerSignalExit(EventHandler):
|
cdef class EventHandlerSignalExit(EventHandler):
|
||||||
def __init__(self, func, *args, **kargs):
|
def __init__(self, func, *args, **kargs):
|
||||||
EventHandler.__init__(self, ECORE_EVENT_SIGNAL_EXIT,
|
EventHandler.__init__(self, enums.ECORE_EVENT_SIGNAL_EXIT,
|
||||||
func, *args, **kargs)
|
func, *args, **kargs)
|
||||||
|
|
||||||
cdef Eina_Bool _exec(self, void *event) except 2:
|
cdef Eina_Bool _exec(self, void *event) except 2:
|
||||||
|
@ -287,7 +287,7 @@ cdef class EventSignalPower(Event):
|
||||||
|
|
||||||
|
|
||||||
def on_signal_power(func, *args, **kargs):
|
def on_signal_power(func, *args, **kargs):
|
||||||
return EventHandler(ECORE_EVENT_SIGNAL_POWER, func, *args, **kargs)
|
return EventHandler(enums.ECORE_EVENT_SIGNAL_POWER, func, *args, **kargs)
|
||||||
|
|
||||||
|
|
||||||
cdef class EventSignalRealtime(Event):
|
cdef class EventSignalRealtime(Event):
|
||||||
|
@ -305,7 +305,7 @@ cdef class EventSignalRealtime(Event):
|
||||||
|
|
||||||
|
|
||||||
def on_signal_realtime(func, *args, **kargs):
|
def on_signal_realtime(func, *args, **kargs):
|
||||||
return EventHandler(ECORE_EVENT_SIGNAL_REALTIME, func, *args, **kargs)
|
return EventHandler(enums.ECORE_EVENT_SIGNAL_REALTIME, func, *args, **kargs)
|
||||||
|
|
||||||
|
|
||||||
cdef class CustomEvent(Event):
|
cdef class CustomEvent(Event):
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
||||||
|
@ -25,26 +25,28 @@ cdef extern from "Python.h":
|
||||||
|
|
||||||
cdef exe_flags2str(int value):
|
cdef exe_flags2str(int value):
|
||||||
flags = []
|
flags = []
|
||||||
if value & ECORE_EXE_PIPE_READ:
|
if value & enums.ECORE_EXE_PIPE_READ:
|
||||||
flags.append("PIPE_READ")
|
flags.append("PIPE_READ")
|
||||||
if value & ECORE_EXE_PIPE_WRITE:
|
if value & enums.ECORE_EXE_PIPE_WRITE:
|
||||||
flags.append("PIPE_WRITE")
|
flags.append("PIPE_WRITE")
|
||||||
if value & ECORE_EXE_PIPE_ERROR:
|
if value & enums.ECORE_EXE_PIPE_ERROR:
|
||||||
flags.append("PIPE_ERROR")
|
flags.append("PIPE_ERROR")
|
||||||
if value & ECORE_EXE_PIPE_READ_LINE_BUFFERED:
|
if value & enums.ECORE_EXE_PIPE_READ_LINE_BUFFERED:
|
||||||
flags.append("PIPE_READ_LINE_BUFFERED")
|
flags.append("PIPE_READ_LINE_BUFFERED")
|
||||||
if value & ECORE_EXE_PIPE_ERROR_LINE_BUFFERED:
|
if value & enums.ECORE_EXE_PIPE_ERROR_LINE_BUFFERED:
|
||||||
flags.append("PIPE_ERROR_LINE_BUFFERED")
|
flags.append("PIPE_ERROR_LINE_BUFFERED")
|
||||||
if value & ECORE_EXE_PIPE_AUTO:
|
if value & enums.ECORE_EXE_PIPE_AUTO:
|
||||||
flags.append("PIPE_AUTO")
|
flags.append("PIPE_AUTO")
|
||||||
if value & ECORE_EXE_RESPAWN:
|
if value & enums.ECORE_EXE_RESPAWN:
|
||||||
flags.append("RESPAWN")
|
flags.append("RESPAWN")
|
||||||
if value & ECORE_EXE_USE_SH:
|
if value & enums.ECORE_EXE_USE_SH:
|
||||||
flags.append("USE_SH")
|
flags.append("USE_SH")
|
||||||
if value & ECORE_EXE_NOT_LEADER:
|
if value & enums.ECORE_EXE_NOT_LEADER:
|
||||||
flags.append("NOT_LEADER")
|
flags.append("NOT_LEADER")
|
||||||
if value & ECORE_EXE_TERM_WITH_PARENT:
|
if value & enums.ECORE_EXE_TERM_WITH_PARENT:
|
||||||
flags.append("ECORE_EXE_TERM_WITH_PARENT")
|
flags.append("ECORE_EXE_TERM_WITH_PARENT")
|
||||||
|
if value & enums.ECORE_EXE_ISOLATE_IO:
|
||||||
|
flags.append("ECORE_EXE_ISOLATE_IO")
|
||||||
return ", ".join(flags)
|
return ", ".join(flags)
|
||||||
|
|
||||||
|
|
||||||
|
@ -60,17 +62,17 @@ cdef Eina_Bool _exe_event_filter_cb(void *data, int type, void *event) with gil:
|
||||||
|
|
||||||
try:
|
try:
|
||||||
assert self.event_type == type, "event is not what we asked? impossible"
|
assert self.event_type == type, "event is not what we asked? impossible"
|
||||||
if type == ECORE_EXE_EVENT_ADD:
|
if type == enums.ECORE_EXE_EVENT_ADD:
|
||||||
e_add = <Ecore_Exe_Event_Add *>event
|
e_add = <Ecore_Exe_Event_Add *>event
|
||||||
if e_add.exe != self.exe:
|
if e_add.exe != self.exe:
|
||||||
return 1
|
return 1
|
||||||
e = EventExeAdd()
|
e = EventExeAdd()
|
||||||
elif type == ECORE_EXE_EVENT_DEL:
|
elif type == enums.ECORE_EXE_EVENT_DEL:
|
||||||
e_del = <Ecore_Exe_Event_Del *>event
|
e_del = <Ecore_Exe_Event_Del *>event
|
||||||
if e_del.exe != self.exe:
|
if e_del.exe != self.exe:
|
||||||
return 1
|
return 1
|
||||||
e = EventExeDel()
|
e = EventExeDel()
|
||||||
elif type == ECORE_EXE_EVENT_DATA or type == ECORE_EXE_EVENT_ERROR:
|
elif type == enums.ECORE_EXE_EVENT_DATA or type == enums.ECORE_EXE_EVENT_ERROR:
|
||||||
e_data = <Ecore_Exe_Event_Data *>event
|
e_data = <Ecore_Exe_Event_Data *>event
|
||||||
if e_data.exe != self.exe:
|
if e_data.exe != self.exe:
|
||||||
return 1
|
return 1
|
||||||
|
@ -303,6 +305,10 @@ cdef class Exe(object):
|
||||||
ECORE_EXE_TERM_WITH_PARENT
|
ECORE_EXE_TERM_WITH_PARENT
|
||||||
Makes child receive SIGTERM when parent dies
|
Makes child receive SIGTERM when parent dies
|
||||||
|
|
||||||
|
ECORE_EXE_ISOLATE_IO
|
||||||
|
Try and isolate stdin/out and err of the process so it isn't
|
||||||
|
shared with the parent. Since 1.21
|
||||||
|
|
||||||
:type flags: int
|
:type flags: int
|
||||||
:param data: extra data to be associated and available with ``data_get()``
|
:param data: extra data to be associated and available with ``data_get()``
|
||||||
|
|
||||||
|
@ -368,6 +374,17 @@ cdef class Exe(object):
|
||||||
<uintptr_t>self.exe, PY_REFCOUNT(self),
|
<uintptr_t>self.exe, PY_REFCOUNT(self),
|
||||||
pid, cmd, flags, data)
|
pid, cmd, flags, data)
|
||||||
|
|
||||||
|
def is_deleted(self):
|
||||||
|
"""Check if the object has been deleted thus leaving the object shallow.
|
||||||
|
|
||||||
|
:return: True if the object has been deleted yet, False otherwise.
|
||||||
|
:rtype: bool
|
||||||
|
|
||||||
|
.. versionadded:: 1.18
|
||||||
|
|
||||||
|
"""
|
||||||
|
return bool(self.exe == NULL)
|
||||||
|
|
||||||
def delete(self):
|
def delete(self):
|
||||||
"""Forcefully frees the given process handle.
|
"""Forcefully frees the given process handle.
|
||||||
|
|
||||||
|
@ -541,6 +558,10 @@ cdef class Exe(object):
|
||||||
- ECORE_EXE_USE_SH: Use /bin/sh to run the command.
|
- ECORE_EXE_USE_SH: Use /bin/sh to run the command.
|
||||||
- ECORE_EXE_NOT_LEADER Do not use setsid() to have the
|
- ECORE_EXE_NOT_LEADER Do not use setsid() to have the
|
||||||
executed process be its own session leader
|
executed process be its own session leader
|
||||||
|
- ECORE_EXE_TERM_WITH_PARENT Makes child receive SIGTERM when
|
||||||
|
parent dies
|
||||||
|
- ECORE_EXE_ISOLATE_IO Try and isolate stdin/out and err of the
|
||||||
|
process so it isn't shared with the parent
|
||||||
|
|
||||||
:return: set of masks, ORed.
|
:return: set of masks, ORed.
|
||||||
|
|
||||||
|
@ -637,10 +658,10 @@ cdef class Exe(object):
|
||||||
:see: on_exe_add_event_add()
|
:see: on_exe_add_event_add()
|
||||||
|
|
||||||
"""
|
"""
|
||||||
filter = self.__callbacks.get(ECORE_EXE_EVENT_ADD)
|
filter = self.__callbacks.get(enums.ECORE_EXE_EVENT_ADD)
|
||||||
if filter is None:
|
if filter is None:
|
||||||
filter = ExeEventFilter(self, ECORE_EXE_EVENT_ADD)
|
filter = ExeEventFilter(self, enums.ECORE_EXE_EVENT_ADD)
|
||||||
self.__callbacks[ECORE_EXE_EVENT_ADD] = filter
|
self.__callbacks[enums.ECORE_EXE_EVENT_ADD] = filter
|
||||||
filter.callback_add(func, args, kargs)
|
filter.callback_add(func, args, kargs)
|
||||||
|
|
||||||
def on_add_event_del(self, func, *args, **kargs):
|
def on_add_event_del(self, func, *args, **kargs):
|
||||||
|
@ -651,7 +672,7 @@ cdef class Exe(object):
|
||||||
:raise ValueError: if parameters don't match an already
|
:raise ValueError: if parameters don't match an already
|
||||||
registered callback.
|
registered callback.
|
||||||
"""
|
"""
|
||||||
filter = self.__callbacks.get(ECORE_EXE_EVENT_ADD)
|
filter = self.__callbacks.get(enums.ECORE_EXE_EVENT_ADD)
|
||||||
if filter is None:
|
if filter is None:
|
||||||
raise ValueError("callback not registered %s, args=%s, kargs=%s" %
|
raise ValueError("callback not registered %s, args=%s, kargs=%s" %
|
||||||
(func, args, kargs))
|
(func, args, kargs))
|
||||||
|
@ -673,10 +694,10 @@ cdef class Exe(object):
|
||||||
:see: on_del_event_del()
|
:see: on_del_event_del()
|
||||||
:see: on_exe_del_event_add()
|
:see: on_exe_del_event_add()
|
||||||
"""
|
"""
|
||||||
filter = self.__callbacks.get(ECORE_EXE_EVENT_DEL)
|
filter = self.__callbacks.get(enums.ECORE_EXE_EVENT_DEL)
|
||||||
if filter is None:
|
if filter is None:
|
||||||
filter = ExeEventFilter(self, ECORE_EXE_EVENT_DEL)
|
filter = ExeEventFilter(self, enums.ECORE_EXE_EVENT_DEL)
|
||||||
self.__callbacks[ECORE_EXE_EVENT_DEL] = filter
|
self.__callbacks[enums.ECORE_EXE_EVENT_DEL] = filter
|
||||||
filter.callback_add(func, args, kargs)
|
filter.callback_add(func, args, kargs)
|
||||||
|
|
||||||
def on_del_event_del(self, func, *args, **kargs):
|
def on_del_event_del(self, func, *args, **kargs):
|
||||||
|
@ -687,7 +708,7 @@ cdef class Exe(object):
|
||||||
:raise ValueError: if parameters don't match an already
|
:raise ValueError: if parameters don't match an already
|
||||||
registered callback.
|
registered callback.
|
||||||
"""
|
"""
|
||||||
filter = self.__callbacks.get(ECORE_EXE_EVENT_DEL)
|
filter = self.__callbacks.get(enums.ECORE_EXE_EVENT_DEL)
|
||||||
if filter is None:
|
if filter is None:
|
||||||
raise ValueError("callback not registered %s, args=%s, kargs=%s" %
|
raise ValueError("callback not registered %s, args=%s, kargs=%s" %
|
||||||
(func, args, kargs))
|
(func, args, kargs))
|
||||||
|
@ -709,10 +730,10 @@ cdef class Exe(object):
|
||||||
:see: on_data_event_del()
|
:see: on_data_event_del()
|
||||||
:see: on_exe_data_event_add()
|
:see: on_exe_data_event_add()
|
||||||
"""
|
"""
|
||||||
filter = self.__callbacks.get(ECORE_EXE_EVENT_DATA)
|
filter = self.__callbacks.get(enums.ECORE_EXE_EVENT_DATA)
|
||||||
if filter is None:
|
if filter is None:
|
||||||
filter = ExeEventFilter(self, ECORE_EXE_EVENT_DATA)
|
filter = ExeEventFilter(self, enums.ECORE_EXE_EVENT_DATA)
|
||||||
self.__callbacks[ECORE_EXE_EVENT_DATA] = filter
|
self.__callbacks[enums.ECORE_EXE_EVENT_DATA] = filter
|
||||||
filter.callback_add(func, args, kargs)
|
filter.callback_add(func, args, kargs)
|
||||||
|
|
||||||
def on_data_event_del(self, func, *args, **kargs):
|
def on_data_event_del(self, func, *args, **kargs):
|
||||||
|
@ -723,7 +744,7 @@ cdef class Exe(object):
|
||||||
:raise ValueError: if parameters don't match an already
|
:raise ValueError: if parameters don't match an already
|
||||||
registered callback.
|
registered callback.
|
||||||
"""
|
"""
|
||||||
filter = self.__callbacks.get(ECORE_EXE_EVENT_DATA)
|
filter = self.__callbacks.get(enums.ECORE_EXE_EVENT_DATA)
|
||||||
if filter is None:
|
if filter is None:
|
||||||
raise ValueError("callback not registered %s, args=%s, kargs=%s" %
|
raise ValueError("callback not registered %s, args=%s, kargs=%s" %
|
||||||
(func, args, kargs))
|
(func, args, kargs))
|
||||||
|
@ -745,10 +766,10 @@ cdef class Exe(object):
|
||||||
:see: on_error_event_del()
|
:see: on_error_event_del()
|
||||||
:see: on_exe_error_event_add()
|
:see: on_exe_error_event_add()
|
||||||
"""
|
"""
|
||||||
filter = self.__callbacks.get(ECORE_EXE_EVENT_ERROR)
|
filter = self.__callbacks.get(enums.ECORE_EXE_EVENT_ERROR)
|
||||||
if filter is None:
|
if filter is None:
|
||||||
filter = ExeEventFilter(self, ECORE_EXE_EVENT_ERROR)
|
filter = ExeEventFilter(self, enums.ECORE_EXE_EVENT_ERROR)
|
||||||
self.__callbacks[ECORE_EXE_EVENT_ERROR] = filter
|
self.__callbacks[enums.ECORE_EXE_EVENT_ERROR] = filter
|
||||||
filter.callback_add(func, args, kargs)
|
filter.callback_add(func, args, kargs)
|
||||||
|
|
||||||
def on_error_event_del(self, func, *args, **kargs):
|
def on_error_event_del(self, func, *args, **kargs):
|
||||||
|
@ -759,7 +780,7 @@ cdef class Exe(object):
|
||||||
:raise ValueError: if parameters don't match an already
|
:raise ValueError: if parameters don't match an already
|
||||||
registered callback.
|
registered callback.
|
||||||
"""
|
"""
|
||||||
filter = self.__callbacks.get(ECORE_EXE_EVENT_ERROR)
|
filter = self.__callbacks.get(enums.ECORE_EXE_EVENT_ERROR)
|
||||||
if filter is None:
|
if filter is None:
|
||||||
raise ValueError("callback not registered %s, args=%s, kargs=%s" %
|
raise ValueError("callback not registered %s, args=%s, kargs=%s" %
|
||||||
(func, args, kargs))
|
(func, args, kargs))
|
||||||
|
@ -888,7 +909,7 @@ def on_exe_add_event_add(func, *args, **kargs):
|
||||||
:see: EventHandler
|
:see: EventHandler
|
||||||
:see: EventHandlerExe
|
:see: EventHandlerExe
|
||||||
"""
|
"""
|
||||||
return EventHandlerExe(ECORE_EXE_EVENT_ADD, func, *args, **kargs)
|
return EventHandlerExe(enums.ECORE_EXE_EVENT_ADD, func, *args, **kargs)
|
||||||
|
|
||||||
|
|
||||||
def on_exe_del_event_add(func, *args, **kargs):
|
def on_exe_del_event_add(func, *args, **kargs):
|
||||||
|
@ -897,7 +918,7 @@ def on_exe_del_event_add(func, *args, **kargs):
|
||||||
:see: EventHandler
|
:see: EventHandler
|
||||||
:see: EventHandlerExe
|
:see: EventHandlerExe
|
||||||
"""
|
"""
|
||||||
return EventHandlerExe(ECORE_EXE_EVENT_DEL, func, *args, **kargs)
|
return EventHandlerExe(enums.ECORE_EXE_EVENT_DEL, func, *args, **kargs)
|
||||||
|
|
||||||
|
|
||||||
def on_exe_data_event_add(func, *args, **kargs):
|
def on_exe_data_event_add(func, *args, **kargs):
|
||||||
|
@ -906,7 +927,7 @@ def on_exe_data_event_add(func, *args, **kargs):
|
||||||
:see: EventHandler
|
:see: EventHandler
|
||||||
:see: EventHandlerExe
|
:see: EventHandlerExe
|
||||||
"""
|
"""
|
||||||
return EventHandlerExe(ECORE_EXE_EVENT_DATA, func, *args, **kargs)
|
return EventHandlerExe(enums.ECORE_EXE_EVENT_DATA, func, *args, **kargs)
|
||||||
|
|
||||||
|
|
||||||
def on_exe_error_event_add(func, *args, **kargs):
|
def on_exe_error_event_add(func, *args, **kargs):
|
||||||
|
@ -915,4 +936,4 @@ def on_exe_error_event_add(func, *args, **kargs):
|
||||||
:see: :py:class:`EventHandler`
|
:see: :py:class:`EventHandler`
|
||||||
:see: :py:class:`EventHandlerExe`
|
:see: :py:class:`EventHandlerExe`
|
||||||
"""
|
"""
|
||||||
return EventHandlerExe(ECORE_EXE_EVENT_ERROR, func, *args, **kargs)
|
return EventHandlerExe(enums.ECORE_EXE_EVENT_ERROR, func, *args, **kargs)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
||||||
|
@ -31,11 +31,11 @@ cdef void fd_handler_prepare_cb(void *data, Ecore_Fd_Handler *fdh) with gil:
|
||||||
|
|
||||||
cdef flags2str(int value):
|
cdef flags2str(int value):
|
||||||
flags = []
|
flags = []
|
||||||
if value & <int>ECORE_FD_READ:
|
if value & <int>enums.ECORE_FD_READ:
|
||||||
flags.append("READ")
|
flags.append("READ")
|
||||||
if value & <int>ECORE_FD_WRITE:
|
if value & <int>enums.ECORE_FD_WRITE:
|
||||||
flags.append("WRITE")
|
flags.append("WRITE")
|
||||||
if value & <int>ECORE_FD_ERROR:
|
if value & <int>enums.ECORE_FD_ERROR:
|
||||||
flags.append("ERROR")
|
flags.append("ERROR")
|
||||||
return ", ".join(flags)
|
return ", ".join(flags)
|
||||||
|
|
||||||
|
@ -78,7 +78,7 @@ cdef class FdHandler(object):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
def __init__(self, fd, int flags, func, *args, **kargs):
|
def __init__(self, fd, int flags, func, *args, **kargs):
|
||||||
"""FdHandler(...)
|
"""
|
||||||
|
|
||||||
:param fd: file descriptor or object with fileno() method.
|
:param fd: file descriptor or object with fileno() method.
|
||||||
:param flags: bitwise OR of ECORE_FD_READ, ECORE_FD_WRITE...
|
:param flags: bitwise OR of ECORE_FD_READ, ECORE_FD_WRITE...
|
||||||
|
@ -144,6 +144,17 @@ cdef class FdHandler(object):
|
||||||
cdef object _exec(self):
|
cdef object _exec(self):
|
||||||
return self.func(self, *self.args, **self.kargs)
|
return self.func(self, *self.args, **self.kargs)
|
||||||
|
|
||||||
|
def is_deleted(self):
|
||||||
|
"""Check if the object has been deleted thus leaving the object shallow.
|
||||||
|
|
||||||
|
:return: True if the object has been deleted yet, False otherwise.
|
||||||
|
:rtype: bool
|
||||||
|
|
||||||
|
.. versionadded:: 1.18
|
||||||
|
|
||||||
|
"""
|
||||||
|
return bool(self.obj == NULL)
|
||||||
|
|
||||||
def delete(self):
|
def delete(self):
|
||||||
"""Stop callback emission and free internal resources."""
|
"""Stop callback emission and free internal resources."""
|
||||||
if self.obj != NULL:
|
if self.obj != NULL:
|
||||||
|
@ -193,15 +204,15 @@ cdef class FdHandler(object):
|
||||||
|
|
||||||
def can_read(self):
|
def can_read(self):
|
||||||
""":rtype: bool"""
|
""":rtype: bool"""
|
||||||
return bool(ecore_main_fd_handler_active_get(self.obj, ECORE_FD_READ))
|
return bool(ecore_main_fd_handler_active_get(self.obj, enums.ECORE_FD_READ))
|
||||||
|
|
||||||
def can_write(self):
|
def can_write(self):
|
||||||
""":rtype: bool"""
|
""":rtype: bool"""
|
||||||
return bool(ecore_main_fd_handler_active_get(self.obj, ECORE_FD_WRITE))
|
return bool(ecore_main_fd_handler_active_get(self.obj, enums.ECORE_FD_WRITE))
|
||||||
|
|
||||||
def has_error(self):
|
def has_error(self):
|
||||||
""":rtype: bool"""
|
""":rtype: bool"""
|
||||||
return bool(ecore_main_fd_handler_active_get(self.obj, ECORE_FD_ERROR))
|
return bool(ecore_main_fd_handler_active_get(self.obj, enums.ECORE_FD_ERROR))
|
||||||
|
|
||||||
def prepare_callback_set(self, func, *args, **kargs):
|
def prepare_callback_set(self, func, *args, **kargs):
|
||||||
"""Set a function to call before doing the select() on the fd.
|
"""Set a function to call before doing the select() on the fd.
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
||||||
|
@ -73,7 +73,7 @@ cdef class FileDownload(object):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
def __init__(self, url, dst, completion_cb, progress_cb, *args, **kargs):
|
def __init__(self, url, dst, completion_cb, progress_cb, *args, **kargs):
|
||||||
"""FileDownload(...)
|
"""
|
||||||
|
|
||||||
:param url: The complete url to download
|
:param url: The complete url to download
|
||||||
:param dst: Where to download the file
|
:param dst: Where to download the file
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
||||||
|
@ -60,7 +60,7 @@ cdef class FileMonitor(object):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
def __init__(self, path, monitor_cb, *args, **kargs):
|
def __init__(self, path, monitor_cb, *args, **kargs):
|
||||||
"""FileMonitor(...)
|
"""
|
||||||
|
|
||||||
:param path: The complete path of the folder you want to monitor.
|
:param path: The complete path of the folder you want to monitor.
|
||||||
:type path: str
|
:type path: str
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
||||||
|
@ -40,7 +40,7 @@ cdef class Idler(Eo):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
def __init__(self, func, *args, **kargs):
|
def __init__(self, func, *args, **kargs):
|
||||||
"""Idler(...)
|
"""
|
||||||
|
|
||||||
:param func: Function to call when system is idle.
|
:param func: Function to call when system is idle.
|
||||||
:type func: callable
|
:type func: callable
|
||||||
|
@ -123,7 +123,7 @@ cdef class IdleEnterer(Idler):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
def __init__(self, func, *args, **kargs):
|
def __init__(self, func, *args, **kargs):
|
||||||
"""IdleEnterer(...)
|
"""
|
||||||
|
|
||||||
:param func: Function to call when system enters idle.
|
:param func: Function to call when system enters idle.
|
||||||
:type func: callable
|
:type func: callable
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
||||||
|
@ -60,7 +60,7 @@ cdef class Poller(Eo):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
def __init__(self, int interval, func, pol_type=0, *args, **kargs):
|
def __init__(self, int interval, func, pol_type=0, *args, **kargs):
|
||||||
"""Poller(...)
|
"""
|
||||||
|
|
||||||
:param interval: The poll interval
|
:param interval: The poll interval
|
||||||
:type interval: int
|
:type interval: int
|
||||||
|
@ -83,24 +83,39 @@ cdef class Poller(Eo):
|
||||||
self.func = func
|
self.func = func
|
||||||
self.args = args
|
self.args = args
|
||||||
self.kargs = kargs
|
self.kargs = kargs
|
||||||
self._set_obj(ecore_poller_add(pol_type, interval, _ecore_task_cb, <void *>self))
|
|
||||||
|
# From efl 1.20 pollers are no more Eo objects in C, thus
|
||||||
|
# we cannot use Eo.obj and _set_obj() anymore :(
|
||||||
|
# self._set_obj(ecore_poller_add(pol_type, interval, _ecore_task_cb, <void *>self))
|
||||||
|
self.obj2 = ecore_poller_add(pol_type, interval, _ecore_task_cb, <void *>self)
|
||||||
|
Py_INCREF(self)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return "%s Poller(func=%s, args=%s, kargs=%s)" % (Eo.__str__(self),
|
return "Poller(func=%s, args=%s, kargs=%s)" % (
|
||||||
self.func, self.args, self.kargs)
|
self.func, self.args, self.kargs)
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return "%s Poller(interval=%d, func=%s, args=%s, kargs=%s)" % (Eo.__repr__(self),
|
return "Poller(interval=%d, func=%s, args=%s, kargs=%s)" % (
|
||||||
self.interval if self.obj else -1,
|
self.interval if self.obj2 else -1,
|
||||||
self.func, self.args, self.kargs)
|
self.func, self.args, self.kargs)
|
||||||
|
|
||||||
cpdef bint _task_exec(self) except *:
|
cpdef bint _task_exec(self) except *:
|
||||||
return self.func(*self.args, **self.kargs)
|
return self.func(*self.args, **self.kargs)
|
||||||
|
|
||||||
|
def is_deleted(self):
|
||||||
|
"""Check if the object has been deleted thus leaving the object shallow.
|
||||||
|
|
||||||
|
:return: True if the object has been deleted yet, False otherwise.
|
||||||
|
:rtype: bool
|
||||||
|
|
||||||
|
"""
|
||||||
|
return bool(self.obj2 == NULL)
|
||||||
|
|
||||||
def delete(self):
|
def delete(self):
|
||||||
""" Stop callback emission and free internal resources. """
|
""" Stop callback emission and free internal resources. """
|
||||||
ecore_poller_del(self.obj)
|
ecore_poller_del(self.obj2)
|
||||||
|
self.obj2 = NULL
|
||||||
|
Py_DECREF(self)
|
||||||
|
|
||||||
property interval:
|
property interval:
|
||||||
""" The interval (in ticks) between each call of the poller
|
""" The interval (in ticks) between each call of the poller
|
||||||
|
@ -109,15 +124,15 @@ cdef class Poller(Eo):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
def __get__(self):
|
def __get__(self):
|
||||||
return ecore_poller_poller_interval_get(self.obj)
|
return ecore_poller_poller_interval_get(self.obj2)
|
||||||
|
|
||||||
def __set__(self, int t):
|
def __set__(self, int t):
|
||||||
ecore_poller_poller_interval_set(self.obj, t)
|
ecore_poller_poller_interval_set(self.obj2, t)
|
||||||
|
|
||||||
def interval_set(self, int t):
|
def interval_set(self, int t):
|
||||||
ecore_poller_poller_interval_set(self.obj, t)
|
ecore_poller_poller_interval_set(self.obj2, t)
|
||||||
def interval_get(self):
|
def interval_get(self):
|
||||||
return ecore_poller_poller_interval_get(self.obj)
|
return ecore_poller_poller_interval_get(self.obj2)
|
||||||
|
|
||||||
|
|
||||||
def poller_add(int t, func, *args, **kargs):
|
def poller_add(int t, func, *args, **kargs):
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
||||||
|
@ -36,9 +36,13 @@ cdef class Timer(Eo):
|
||||||
returning *False* from ``func``, otherwise they'll continue alive, even
|
returning *False* from ``func``, otherwise they'll continue alive, even
|
||||||
if the current python context delete it's reference to it.
|
if the current python context delete it's reference to it.
|
||||||
|
|
||||||
|
For convenience and readability callback can also return one of the
|
||||||
|
:ref:`Ecore_Callback_Returns`. That is ``ECORE_CALLBACK_RENEW`` (like
|
||||||
|
returning True) or ``ECORE_CALLBACK_CANCEL`` (like returning False).
|
||||||
|
|
||||||
"""
|
"""
|
||||||
def __init__(self, double interval, func, *args, **kargs):
|
def __init__(self, double interval, func, *args, **kargs):
|
||||||
"""Timer(...)
|
"""
|
||||||
|
|
||||||
:param interval: interval in seconds.
|
:param interval: interval in seconds.
|
||||||
:type interval: float
|
:type interval: float
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
||||||
|
@ -127,7 +127,7 @@ that headers such as "If-Modified-Since" are used.
|
||||||
|
|
||||||
.. data:: ECORE_CON_URL_TIME_NONE
|
.. data:: ECORE_CON_URL_TIME_NONE
|
||||||
|
|
||||||
Do not place time restrictions on the HTTP requests.
|
Do not place time restrictions on the HTTP requests.
|
||||||
|
|
||||||
.. data:: ECORE_CON_URL_TIME_IFMODSINCE
|
.. data:: ECORE_CON_URL_TIME_IFMODSINCE
|
||||||
|
|
||||||
|
@ -173,6 +173,32 @@ import atexit
|
||||||
from efl.ecore cimport _event_mapping_register, _event_mapping_get, \
|
from efl.ecore cimport _event_mapping_register, _event_mapping_get, \
|
||||||
ecore_event_handler_add, ecore_event_handler_del
|
ecore_event_handler_add, ecore_event_handler_del
|
||||||
|
|
||||||
|
cimport efl.ecore_con.enums as enums
|
||||||
|
|
||||||
|
ECORE_CON_LOCAL_USER = enums.ECORE_CON_LOCAL_USER
|
||||||
|
ECORE_CON_LOCAL_SYSTEM = enums.ECORE_CON_LOCAL_SYSTEM
|
||||||
|
ECORE_CON_LOCAL_ABSTRACT = enums.ECORE_CON_LOCAL_ABSTRACT
|
||||||
|
ECORE_CON_REMOTE_TCP = enums.ECORE_CON_REMOTE_TCP
|
||||||
|
ECORE_CON_REMOTE_MCAST = enums.ECORE_CON_REMOTE_MCAST
|
||||||
|
ECORE_CON_REMOTE_UDP = enums.ECORE_CON_REMOTE_UDP
|
||||||
|
ECORE_CON_REMOTE_BROADCAST = enums.ECORE_CON_REMOTE_BROADCAST
|
||||||
|
ECORE_CON_REMOTE_NODELAY = enums.ECORE_CON_REMOTE_NODELAY
|
||||||
|
ECORE_CON_REMOTE_CORK = enums.ECORE_CON_REMOTE_CORK
|
||||||
|
ECORE_CON_USE_SSL2 = enums.ECORE_CON_USE_SSL2
|
||||||
|
ECORE_CON_USE_SSL3 = enums.ECORE_CON_USE_SSL3
|
||||||
|
ECORE_CON_USE_TLS = enums.ECORE_CON_USE_TLS
|
||||||
|
ECORE_CON_USE_MIXED = enums.ECORE_CON_USE_MIXED
|
||||||
|
ECORE_CON_LOAD_CERT = enums.ECORE_CON_LOAD_CERT
|
||||||
|
ECORE_CON_NO_PROXY = enums.ECORE_CON_NO_PROXY
|
||||||
|
ECORE_CON_SOCKET_ACTIVATE = enums.ECORE_CON_SOCKET_ACTIVATE
|
||||||
|
|
||||||
|
ECORE_CON_URL_TIME_NONE = enums.ECORE_CON_URL_TIME_NONE
|
||||||
|
ECORE_CON_URL_TIME_IFMODSINCE = enums.ECORE_CON_URL_TIME_IFMODSINCE
|
||||||
|
ECORE_CON_URL_TIME_IFUNMODSINCE = enums.ECORE_CON_URL_TIME_IFUNMODSINCE
|
||||||
|
|
||||||
|
ECORE_CON_URL_HTTP_VERSION_1_0 = enums.ECORE_CON_URL_HTTP_VERSION_1_0
|
||||||
|
ECORE_CON_URL_HTTP_VERSION_1_1 = enums.ECORE_CON_URL_HTTP_VERSION_1_1
|
||||||
|
|
||||||
|
|
||||||
cdef int _con_events_registered = 0
|
cdef int _con_events_registered = 0
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
||||||
|
@ -31,7 +31,7 @@ cdef void _con_dns_lookup_cb(const char *canonname, const char *ip, sockaddr *so
|
||||||
|
|
||||||
cdef class Lookup(object):
|
cdef class Lookup(object):
|
||||||
def __init__(self, name, done_cb, *args, **kargs):
|
def __init__(self, name, done_cb, *args, **kargs):
|
||||||
"""Lookup()
|
"""
|
||||||
|
|
||||||
A simple class to perform asynchronous DNS lookups.
|
A simple class to perform asynchronous DNS lookups.
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
||||||
|
@ -37,7 +37,7 @@ cdef class EventUrlProgress(Event):
|
||||||
cdef Ecore_Con_Event_Url_Progress *event
|
cdef Ecore_Con_Event_Url_Progress *event
|
||||||
event = <Ecore_Con_Event_Url_Progress*>ev
|
event = <Ecore_Con_Event_Url_Progress*>ev
|
||||||
|
|
||||||
self.url = object_from_instance(event.url_con)
|
self.url = <Url>ecore_con_url_data_get(event.url_con)
|
||||||
self.down_total = event.down.total
|
self.down_total = event.down.total
|
||||||
self.down_now = event.down.now
|
self.down_now = event.down.now
|
||||||
self.up_total = event.up.total
|
self.up_total = event.up.total
|
||||||
|
@ -61,7 +61,7 @@ cdef class EventUrlComplete(Event):
|
||||||
cdef Ecore_Con_Event_Url_Complete *event
|
cdef Ecore_Con_Event_Url_Complete *event
|
||||||
event = <Ecore_Con_Event_Url_Complete*>ev
|
event = <Ecore_Con_Event_Url_Complete*>ev
|
||||||
|
|
||||||
self.url = object_from_instance(event.url_con)
|
self.url = <Url>ecore_con_url_data_get(event.url_con)
|
||||||
self.status = event.status
|
self.status = event.status
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
|
@ -87,7 +87,7 @@ cdef class EventUrlData(Event):
|
||||||
cdef Ecore_Con_Event_Url_Data *event
|
cdef Ecore_Con_Event_Url_Data *event
|
||||||
event = <Ecore_Con_Event_Url_Data*>ev
|
event = <Ecore_Con_Event_Url_Data*>ev
|
||||||
|
|
||||||
self.url = object_from_instance(event.url_con)
|
self.url = <Url>ecore_con_url_data_get(event.url_con)
|
||||||
self.size = event.size
|
self.size = event.size
|
||||||
self.data = event.data[:event.size] #raw string copy
|
self.data = event.data[:event.size] #raw string copy
|
||||||
return 1
|
return 1
|
||||||
|
@ -196,7 +196,7 @@ cdef class Url(Eo):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
def __init__(self, url, custom_request=None, **kargs):
|
def __init__(self, url, custom_request=None, **kargs):
|
||||||
"""Url(...)
|
"""
|
||||||
|
|
||||||
:param url: URL that will receive requests.
|
:param url: URL that will receive requests.
|
||||||
:type url: string
|
:type url: string
|
||||||
|
@ -211,15 +211,22 @@ cdef class Url(Eo):
|
||||||
"""
|
"""
|
||||||
if isinstance(url, unicode): url = PyUnicode_AsUTF8String(url)
|
if isinstance(url, unicode): url = PyUnicode_AsUTF8String(url)
|
||||||
if custom_request is None:
|
if custom_request is None:
|
||||||
self._set_obj(ecore_con_url_new(
|
# From efl 1.19 url are no more Eo objects in C, thus
|
||||||
<const char *>url if url is not None else NULL))
|
# we cannot use Eo.obj and _set_obj() anymore :(
|
||||||
|
# self._set_obj(ecore_con_url_new(
|
||||||
|
# <const char *>url if url is not None else NULL))
|
||||||
|
self.obj2 = ecore_con_url_new(
|
||||||
|
<const char *>url if url is not None else NULL)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
if isinstance(custom_request, unicode):
|
if isinstance(custom_request, unicode):
|
||||||
custom_request = PyUnicode_AsUTF8String(custom_request)
|
custom_request = PyUnicode_AsUTF8String(custom_request)
|
||||||
self._set_obj(ecore_con_url_custom_new(
|
self.obj2 = ecore_con_url_custom_new(
|
||||||
<const char *>url if url is not None else NULL,
|
<const char *>url if url is not None else NULL,
|
||||||
<const char *>custom_request if custom_request is not None else NULL))
|
<const char *>custom_request if custom_request is not None else NULL)
|
||||||
|
|
||||||
|
ecore_con_url_data_set(self.obj2, <void *>self)
|
||||||
|
Py_INCREF(self)
|
||||||
self._set_properties_from_keyword_args(kargs)
|
self._set_properties_from_keyword_args(kargs)
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
|
@ -235,7 +242,18 @@ cdef class Url(Eo):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
GEF.callback_del_full(self)
|
GEF.callback_del_full(self)
|
||||||
ecore_con_url_free(self.obj)
|
ecore_con_url_free(self.obj2)
|
||||||
|
self.obj2 = NULL
|
||||||
|
Py_DECREF(self)
|
||||||
|
|
||||||
|
def is_deleted(self):
|
||||||
|
"""Check if the object has been deleted thus leaving the object shallow.
|
||||||
|
|
||||||
|
:return: True if the object has been deleted yet, False otherwise.
|
||||||
|
:rtype: bool
|
||||||
|
|
||||||
|
"""
|
||||||
|
return bool(self.obj2 == NULL)
|
||||||
|
|
||||||
property fd:
|
property fd:
|
||||||
"""Set up a file to have response data written into.
|
"""Set up a file to have response data written into.
|
||||||
|
@ -254,7 +272,7 @@ cdef class Url(Eo):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
def __set__(self, int fd):
|
def __set__(self, int fd):
|
||||||
ecore_con_url_fd_set(self.obj, fd)
|
ecore_con_url_fd_set(self.obj2, fd)
|
||||||
|
|
||||||
def get(self):
|
def get(self):
|
||||||
"""Send a GET request.
|
"""Send a GET request.
|
||||||
|
@ -266,7 +284,7 @@ cdef class Url(Eo):
|
||||||
:return: ``True`` on success, ``False`` on error.
|
:return: ``True`` on success, ``False`` on error.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
return bool(ecore_con_url_get(self.obj))
|
return bool(ecore_con_url_get(self.obj2))
|
||||||
|
|
||||||
def head(self):
|
def head(self):
|
||||||
"""Send a HEAD request.
|
"""Send a HEAD request.
|
||||||
|
@ -278,7 +296,7 @@ cdef class Url(Eo):
|
||||||
:return: ``True`` on success, ``False`` on error.
|
:return: ``True`` on success, ``False`` on error.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
return bool(ecore_con_url_head(self.obj))
|
return bool(ecore_con_url_head(self.obj2))
|
||||||
|
|
||||||
def post(self, bytes data, content_type):
|
def post(self, bytes data, content_type):
|
||||||
"""Send a post request.
|
"""Send a post request.
|
||||||
|
@ -298,7 +316,7 @@ cdef class Url(Eo):
|
||||||
"""
|
"""
|
||||||
if isinstance(content_type, unicode):
|
if isinstance(content_type, unicode):
|
||||||
content_type = PyUnicode_AsUTF8String(content_type)
|
content_type = PyUnicode_AsUTF8String(content_type)
|
||||||
return bool(ecore_con_url_post(self.obj,
|
return bool(ecore_con_url_post(self.obj2,
|
||||||
<const void*><const char *>data if data is not None else NULL,
|
<const void*><const char *>data if data is not None else NULL,
|
||||||
len(data),
|
len(data),
|
||||||
<const char *>content_type if content_type is not None else NULL))
|
<const char *>content_type if content_type is not None else NULL))
|
||||||
|
@ -317,7 +335,7 @@ cdef class Url(Eo):
|
||||||
:type timestamp: double
|
:type timestamp: double
|
||||||
|
|
||||||
"""
|
"""
|
||||||
ecore_con_url_time(self.obj, time_condition, timestamp)
|
ecore_con_url_time(self.obj2, time_condition, timestamp)
|
||||||
|
|
||||||
def ftp_upload(self, filename, user, passwd, upload_dir):
|
def ftp_upload(self, filename, user, passwd, upload_dir):
|
||||||
"""Upload a file to an ftp site.
|
"""Upload a file to an ftp site.
|
||||||
|
@ -335,7 +353,7 @@ cdef class Url(Eo):
|
||||||
if isinstance(user, unicode): user = PyUnicode_AsUTF8String(user)
|
if isinstance(user, unicode): user = PyUnicode_AsUTF8String(user)
|
||||||
if isinstance(passwd, unicode): passwd = PyUnicode_AsUTF8String(passwd)
|
if isinstance(passwd, unicode): passwd = PyUnicode_AsUTF8String(passwd)
|
||||||
if isinstance(upload_dir, unicode): upload_dir = PyUnicode_AsUTF8String(upload_dir)
|
if isinstance(upload_dir, unicode): upload_dir = PyUnicode_AsUTF8String(upload_dir)
|
||||||
return bool(ecore_con_url_ftp_upload(self.obj,
|
return bool(ecore_con_url_ftp_upload(self.obj2,
|
||||||
<const char *>filename if filename is not None else NULL,
|
<const char *>filename if filename is not None else NULL,
|
||||||
<const char *>user if user is not None else NULL,
|
<const char *>user if user is not None else NULL,
|
||||||
<const char *>passwd if passwd is not None else NULL,
|
<const char *>passwd if passwd is not None else NULL,
|
||||||
|
@ -348,7 +366,7 @@ cdef class Url(Eo):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
def __set__(self, bint use_epsv):
|
def __set__(self, bint use_epsv):
|
||||||
ecore_con_url_ftp_use_epsv_set(self.obj, use_epsv)
|
ecore_con_url_ftp_use_epsv_set(self.obj2, use_epsv)
|
||||||
|
|
||||||
def cookies_init(self):
|
def cookies_init(self):
|
||||||
"""Enable the cookie engine for subsequent HTTP requests.
|
"""Enable the cookie engine for subsequent HTTP requests.
|
||||||
|
@ -358,7 +376,7 @@ cdef class Url(Eo):
|
||||||
in new HTTP requests.
|
in new HTTP requests.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
ecore_con_url_cookies_init(self.obj)
|
ecore_con_url_cookies_init(self.obj2)
|
||||||
|
|
||||||
def cookies_clear(self):
|
def cookies_clear(self):
|
||||||
"""Clear currently loaded cookies.
|
"""Clear currently loaded cookies.
|
||||||
|
@ -380,7 +398,7 @@ cdef class Url(Eo):
|
||||||
this handler.
|
this handler.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
ecore_con_url_cookies_clear(self.obj)
|
ecore_con_url_cookies_clear(self.obj2)
|
||||||
|
|
||||||
def cookies_session_clear(self):
|
def cookies_session_clear(self):
|
||||||
"""Clear currently loaded session cookies.
|
"""Clear currently loaded session cookies.
|
||||||
|
@ -407,7 +425,7 @@ cdef class Url(Eo):
|
||||||
:attr:`cookies_ignore_old_session`.
|
:attr:`cookies_ignore_old_session`.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
ecore_con_url_cookies_session_clear(self.obj)
|
ecore_con_url_cookies_session_clear(self.obj2)
|
||||||
|
|
||||||
def cookies_file_add(self, file_name):
|
def cookies_file_add(self, file_name):
|
||||||
"""Add a file to the list of files from which to load cookies.
|
"""Add a file to the list of files from which to load cookies.
|
||||||
|
@ -435,7 +453,7 @@ cdef class Url(Eo):
|
||||||
"""
|
"""
|
||||||
if isinstance(file_name, unicode):
|
if isinstance(file_name, unicode):
|
||||||
file_name = PyUnicode_AsUTF8String(file_name)
|
file_name = PyUnicode_AsUTF8String(file_name)
|
||||||
ecore_con_url_cookies_file_add(self.obj,
|
ecore_con_url_cookies_file_add(self.obj2,
|
||||||
<const char *>file_name if file_name is not None else NULL)
|
<const char *>file_name if file_name is not None else NULL)
|
||||||
|
|
||||||
property cookies_jar_file:
|
property cookies_jar_file:
|
||||||
|
@ -460,11 +478,11 @@ cdef class Url(Eo):
|
||||||
def __set__(self, cookiejar_file):
|
def __set__(self, cookiejar_file):
|
||||||
if isinstance(cookiejar_file, unicode):
|
if isinstance(cookiejar_file, unicode):
|
||||||
cookiejar_file = PyUnicode_AsUTF8String(cookiejar_file)
|
cookiejar_file = PyUnicode_AsUTF8String(cookiejar_file)
|
||||||
ecore_con_url_cookies_jar_file_set(self.obj,
|
ecore_con_url_cookies_jar_file_set(self.obj2,
|
||||||
<const char *>cookiejar_file if cookiejar_file is not None else NULL)
|
<const char *>cookiejar_file if cookiejar_file is not None else NULL)
|
||||||
if isinstance(cookiejar_file, unicode):
|
if isinstance(cookiejar_file, unicode):
|
||||||
cookiejar_file = PyUnicode_AsUTF8String(cookiejar_file)
|
cookiejar_file = PyUnicode_AsUTF8String(cookiejar_file)
|
||||||
ecore_con_url_cookies_jar_file_set(self.obj,
|
ecore_con_url_cookies_jar_file_set(self.obj2,
|
||||||
<const char *>cookiejar_file if cookiejar_file is not None else NULL)
|
<const char *>cookiejar_file if cookiejar_file is not None else NULL)
|
||||||
|
|
||||||
def cookies_jar_write(self):
|
def cookies_jar_write(self):
|
||||||
|
@ -480,7 +498,7 @@ cdef class Url(Eo):
|
||||||
.. seealso:: :attr:`cookies_jar_file`
|
.. seealso:: :attr:`cookies_jar_file`
|
||||||
|
|
||||||
"""
|
"""
|
||||||
ecore_con_url_cookies_jar_write(self.obj)
|
ecore_con_url_cookies_jar_write(self.obj2)
|
||||||
|
|
||||||
property cookies_ignore_old_session:
|
property cookies_ignore_old_session:
|
||||||
"""Control whether session cookies from previous sessions shall be loaded.
|
"""Control whether session cookies from previous sessions shall be loaded.
|
||||||
|
@ -500,7 +518,7 @@ cdef class Url(Eo):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
def __set__(self, bint ignore):
|
def __set__(self, bint ignore):
|
||||||
ecore_con_url_cookies_ignore_old_session_set(self.obj, ignore)
|
ecore_con_url_cookies_ignore_old_session_set(self.obj2, ignore)
|
||||||
|
|
||||||
property ssl_verify_peer:
|
property ssl_verify_peer:
|
||||||
"""Toggle libcurl's verify peer's certificate option.
|
"""Toggle libcurl's verify peer's certificate option.
|
||||||
|
@ -513,7 +531,7 @@ cdef class Url(Eo):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
def __set__(self, bint verify):
|
def __set__(self, bint verify):
|
||||||
ecore_con_url_ssl_verify_peer_set(self.obj, verify)
|
ecore_con_url_ssl_verify_peer_set(self.obj2, verify)
|
||||||
|
|
||||||
property ssl_ca:
|
property ssl_ca:
|
||||||
"""Set a custom CA to trust for SSL/TLS connections.
|
"""Set a custom CA to trust for SSL/TLS connections.
|
||||||
|
@ -532,7 +550,7 @@ cdef class Url(Eo):
|
||||||
def __set__(self, ca_path):
|
def __set__(self, ca_path):
|
||||||
if isinstance(ca_path, unicode):
|
if isinstance(ca_path, unicode):
|
||||||
ca_path = PyUnicode_AsUTF8String(ca_path)
|
ca_path = PyUnicode_AsUTF8String(ca_path)
|
||||||
ecore_con_url_ssl_ca_set(self.obj,
|
ecore_con_url_ssl_ca_set(self.obj2,
|
||||||
<const char *>ca_path if ca_path is not None else NULL)
|
<const char *>ca_path if ca_path is not None else NULL)
|
||||||
|
|
||||||
property proxy:
|
property proxy:
|
||||||
|
@ -552,7 +570,7 @@ cdef class Url(Eo):
|
||||||
"""
|
"""
|
||||||
def __set__(self, proxy):
|
def __set__(self, proxy):
|
||||||
if isinstance(proxy, unicode): proxy = PyUnicode_AsUTF8String(proxy)
|
if isinstance(proxy, unicode): proxy = PyUnicode_AsUTF8String(proxy)
|
||||||
ecore_con_url_proxy_set(self.obj,
|
ecore_con_url_proxy_set(self.obj2,
|
||||||
<const char *>proxy if proxy is not None else NULL)
|
<const char *>proxy if proxy is not None else NULL)
|
||||||
|
|
||||||
property proxy_username:
|
property proxy_username:
|
||||||
|
@ -566,7 +584,7 @@ cdef class Url(Eo):
|
||||||
"""
|
"""
|
||||||
def __set__(self, user):
|
def __set__(self, user):
|
||||||
if isinstance(user, unicode): user = PyUnicode_AsUTF8String(user)
|
if isinstance(user, unicode): user = PyUnicode_AsUTF8String(user)
|
||||||
ecore_con_url_proxy_username_set(self.obj,
|
ecore_con_url_proxy_username_set(self.obj2,
|
||||||
<const char *>user if user is not None else NULL)
|
<const char *>user if user is not None else NULL)
|
||||||
|
|
||||||
property proxy_password:
|
property proxy_password:
|
||||||
|
@ -580,7 +598,7 @@ cdef class Url(Eo):
|
||||||
"""
|
"""
|
||||||
def __set__(self, passwd):
|
def __set__(self, passwd):
|
||||||
if isinstance(passwd, unicode): passwd = PyUnicode_AsUTF8String(passwd)
|
if isinstance(passwd, unicode): passwd = PyUnicode_AsUTF8String(passwd)
|
||||||
ecore_con_url_proxy_username_set(self.obj,
|
ecore_con_url_proxy_username_set(self.obj2,
|
||||||
<const char *>passwd if passwd is not None else NULL)
|
<const char *>passwd if passwd is not None else NULL)
|
||||||
|
|
||||||
property timeout:
|
property timeout:
|
||||||
|
@ -595,7 +613,7 @@ cdef class Url(Eo):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
def __set__(self, double timeout):
|
def __set__(self, double timeout):
|
||||||
ecore_con_url_timeout_set(self.obj, timeout)
|
ecore_con_url_timeout_set(self.obj2, timeout)
|
||||||
|
|
||||||
property http_version:
|
property http_version:
|
||||||
"""The HTTP version used for the request.
|
"""The HTTP version used for the request.
|
||||||
|
@ -607,7 +625,7 @@ cdef class Url(Eo):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
def __set__(self, Ecore_Con_Url_Http_Version version):
|
def __set__(self, Ecore_Con_Url_Http_Version version):
|
||||||
ecore_con_url_http_version_set(self.obj, version)
|
ecore_con_url_http_version_set(self.obj2, version)
|
||||||
|
|
||||||
property status_code:
|
property status_code:
|
||||||
"""The returned HTTP STATUS code.
|
"""The returned HTTP STATUS code.
|
||||||
|
@ -619,7 +637,7 @@ cdef class Url(Eo):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
def __get__(self):
|
def __get__(self):
|
||||||
return ecore_con_url_status_code_get(self.obj)
|
return ecore_con_url_status_code_get(self.obj2)
|
||||||
|
|
||||||
property url:
|
property url:
|
||||||
"""Controls the URL to send the request to.
|
"""Controls the URL to send the request to.
|
||||||
|
@ -628,11 +646,11 @@ cdef class Url(Eo):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
def __get__(self):
|
def __get__(self):
|
||||||
return _ctouni(ecore_con_url_url_get(self.obj))
|
return _ctouni(ecore_con_url_url_get(self.obj2))
|
||||||
|
|
||||||
def __set__(self, url):
|
def __set__(self, url):
|
||||||
if isinstance(url, unicode): url = PyUnicode_AsUTF8String(url)
|
if isinstance(url, unicode): url = PyUnicode_AsUTF8String(url)
|
||||||
ecore_con_url_url_set(self.obj, <const char *>url if url is not None else NULL)
|
ecore_con_url_url_set(self.obj2, <const char *>url if url is not None else NULL)
|
||||||
|
|
||||||
property verbose:
|
property verbose:
|
||||||
"""Toggle libcurl's verbose output.
|
"""Toggle libcurl's verbose output.
|
||||||
|
@ -645,7 +663,7 @@ cdef class Url(Eo):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
def __set__(self, bint verbose):
|
def __set__(self, bint verbose):
|
||||||
ecore_con_url_verbose_set(self.obj, verbose)
|
ecore_con_url_verbose_set(self.obj2, verbose)
|
||||||
|
|
||||||
def additional_header_add(self, key, value):
|
def additional_header_add(self, key, value):
|
||||||
"""Add an additional header to the request connection object.
|
"""Add an additional header to the request connection object.
|
||||||
|
@ -662,7 +680,7 @@ cdef class Url(Eo):
|
||||||
"""
|
"""
|
||||||
if isinstance(key, unicode): key = PyUnicode_AsUTF8String(key)
|
if isinstance(key, unicode): key = PyUnicode_AsUTF8String(key)
|
||||||
if isinstance(value, unicode): value = PyUnicode_AsUTF8String(value)
|
if isinstance(value, unicode): value = PyUnicode_AsUTF8String(value)
|
||||||
ecore_con_url_additional_header_add(self.obj,
|
ecore_con_url_additional_header_add(self.obj2,
|
||||||
<const char *>key if key is not None else NULL,
|
<const char *>key if key is not None else NULL,
|
||||||
<const char *>value if value is not None else NULL)
|
<const char *>value if value is not None else NULL)
|
||||||
|
|
||||||
|
@ -673,7 +691,7 @@ cdef class Url(Eo):
|
||||||
(previously added with :func:additional_header_add`).
|
(previously added with :func:additional_header_add`).
|
||||||
|
|
||||||
"""
|
"""
|
||||||
ecore_con_url_additional_headers_clear(self.obj)
|
ecore_con_url_additional_headers_clear(self.obj2)
|
||||||
|
|
||||||
property response_headers:
|
property response_headers:
|
||||||
"""The headers from last request sent.
|
"""The headers from last request sent.
|
||||||
|
@ -687,7 +705,7 @@ cdef class Url(Eo):
|
||||||
"""
|
"""
|
||||||
def __get__(self):
|
def __get__(self):
|
||||||
return eina_list_strings_to_python_list(
|
return eina_list_strings_to_python_list(
|
||||||
ecore_con_url_response_headers_get(self.obj))
|
ecore_con_url_response_headers_get(self.obj2))
|
||||||
|
|
||||||
property received_bytes:
|
property received_bytes:
|
||||||
"""The number of bytes received.
|
"""The number of bytes received.
|
||||||
|
@ -699,7 +717,7 @@ cdef class Url(Eo):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
def __get__(self):
|
def __get__(self):
|
||||||
return ecore_con_url_received_bytes_get(self.obj)
|
return ecore_con_url_received_bytes_get(self.obj2)
|
||||||
|
|
||||||
def httpauth_set(self, username, password, bint safe):
|
def httpauth_set(self, username, password, bint safe):
|
||||||
"""Set to use http auth, with given username and password
|
"""Set to use http auth, with given username and password
|
||||||
|
@ -719,7 +737,7 @@ cdef class Url(Eo):
|
||||||
username = PyUnicode_AsUTF8String(username)
|
username = PyUnicode_AsUTF8String(username)
|
||||||
if isinstance(password, unicode):
|
if isinstance(password, unicode):
|
||||||
password = PyUnicode_AsUTF8String(password)
|
password = PyUnicode_AsUTF8String(password)
|
||||||
return bool(ecore_con_url_httpauth_set(self.obj,
|
return bool(ecore_con_url_httpauth_set(self.obj2,
|
||||||
<const char *>username if username is not None else NULL,
|
<const char *>username if username is not None else NULL,
|
||||||
<const char *>password if password is not None else NULL,
|
<const char *>password if password is not None else NULL,
|
||||||
safe))
|
safe))
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
||||||
|
@ -55,27 +55,27 @@ Ecore_Event_Modifier
|
||||||
|
|
||||||
.. data:: ECORE_EVENT_MODIFIER_SHIFT
|
.. data:: ECORE_EVENT_MODIFIER_SHIFT
|
||||||
|
|
||||||
.. data:: ECORE_EVENT_MODIFIER_CTRL
|
.. data:: ECORE_EVENT_MODIFIER_CTRL
|
||||||
|
|
||||||
.. data:: ECORE_EVENT_MODIFIER_ALT
|
.. data:: ECORE_EVENT_MODIFIER_ALT
|
||||||
|
|
||||||
.. data:: ECORE_EVENT_MODIFIER_WIN
|
.. data:: ECORE_EVENT_MODIFIER_WIN
|
||||||
|
|
||||||
.. data:: ECORE_EVENT_MODIFIER_SCROLL
|
.. data:: ECORE_EVENT_MODIFIER_SCROLL
|
||||||
|
|
||||||
.. data:: ECORE_EVENT_MODIFIER_NUM
|
.. data:: ECORE_EVENT_MODIFIER_NUM
|
||||||
|
|
||||||
.. data:: ECORE_EVENT_MODIFIER_CAPS
|
.. data:: ECORE_EVENT_MODIFIER_CAPS
|
||||||
|
|
||||||
.. data:: ECORE_EVENT_LOCK_SCROLL
|
.. data:: ECORE_EVENT_LOCK_SCROLL
|
||||||
|
|
||||||
.. data:: ECORE_EVENT_LOCK_NUM
|
.. data:: ECORE_EVENT_LOCK_NUM
|
||||||
|
|
||||||
.. data:: ECORE_EVENT_LOCK_CAPS
|
.. data:: ECORE_EVENT_LOCK_CAPS
|
||||||
|
|
||||||
.. data:: ECORE_EVENT_LOCK_SHIFT
|
.. data:: ECORE_EVENT_LOCK_SHIFT
|
||||||
|
|
||||||
.. data:: ECORE_EVENT_MODIFIER_ALTGR
|
.. data:: ECORE_EVENT_MODIFIER_ALTGR
|
||||||
|
|
||||||
|
|
||||||
Classes and Functions
|
Classes and Functions
|
||||||
|
@ -87,6 +87,7 @@ Classes and Functions
|
||||||
import atexit
|
import atexit
|
||||||
import traceback
|
import traceback
|
||||||
|
|
||||||
|
cimport efl.ecore_input.enums as enums
|
||||||
|
|
||||||
def init():
|
def init():
|
||||||
""" Initialize the Ecore Input library
|
""" Initialize the Ecore Input library
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
||||||
|
@ -17,25 +17,41 @@
|
||||||
|
|
||||||
|
|
||||||
from efl.utils.conversions cimport _ctouni
|
from efl.utils.conversions cimport _ctouni
|
||||||
from efl.ecore cimport _event_mapping_register, _event_mapping_get
|
|
||||||
|
|
||||||
|
|
||||||
cdef int _input_events_registered = 0
|
ECORE_EVENT_MODIFIER_SHIFT = enums.ECORE_EVENT_MODIFIER_SHIFT
|
||||||
|
ECORE_EVENT_MODIFIER_CTRL = enums.ECORE_EVENT_MODIFIER_CTRL
|
||||||
|
ECORE_EVENT_MODIFIER_ALT = enums.ECORE_EVENT_MODIFIER_ALT
|
||||||
|
ECORE_EVENT_MODIFIER_WIN = enums.ECORE_EVENT_MODIFIER_WIN
|
||||||
|
ECORE_EVENT_MODIFIER_SCROLL = enums.ECORE_EVENT_MODIFIER_SCROLL
|
||||||
|
ECORE_EVENT_MODIFIER_NUM = enums.ECORE_EVENT_MODIFIER_NUM
|
||||||
|
ECORE_EVENT_MODIFIER_CAPS = enums.ECORE_EVENT_MODIFIER_CAPS
|
||||||
|
ECORE_EVENT_LOCK_SCROLL = enums.ECORE_EVENT_LOCK_SCROLL
|
||||||
|
ECORE_EVENT_LOCK_NUM = enums.ECORE_EVENT_LOCK_NUM
|
||||||
|
ECORE_EVENT_LOCK_CAPS = enums.ECORE_EVENT_LOCK_CAPS
|
||||||
|
ECORE_EVENT_LOCK_SHIFT = enums.ECORE_EVENT_LOCK_SHIFT
|
||||||
|
ECORE_EVENT_MODIFIER_ALTGR = enums.ECORE_EVENT_MODIFIER_ALTGR
|
||||||
|
|
||||||
|
|
||||||
|
# NOTE: Cannot use ecore._event_mapping_register helper here
|
||||||
|
# because ECORE_EVENT_* are already registered by ecore.x
|
||||||
|
# Thus we need a separate mapping to not conflict.
|
||||||
|
cdef object _input_event_type_mapping = None
|
||||||
|
|
||||||
cdef int _ecore_input_events_register() except 0:
|
cdef int _ecore_input_events_register() except 0:
|
||||||
global _input_events_registered
|
global _input_event_type_mapping
|
||||||
|
|
||||||
if _input_events_registered == 0:
|
if not _input_event_type_mapping:
|
||||||
_event_mapping_register(ECORE_EVENT_KEY_DOWN, EventKey)
|
_input_event_type_mapping = {
|
||||||
_event_mapping_register(ECORE_EVENT_KEY_UP, EventKey)
|
ECORE_EVENT_KEY_DOWN: EventKey,
|
||||||
_event_mapping_register(ECORE_EVENT_MOUSE_BUTTON_DOWN, EventMouseButton)
|
ECORE_EVENT_KEY_UP: EventKey,
|
||||||
_event_mapping_register(ECORE_EVENT_MOUSE_BUTTON_UP, EventMouseButton)
|
ECORE_EVENT_MOUSE_BUTTON_DOWN: EventMouseButton,
|
||||||
_event_mapping_register(ECORE_EVENT_MOUSE_MOVE, EventMouseMove)
|
ECORE_EVENT_MOUSE_BUTTON_UP: EventMouseButton,
|
||||||
_event_mapping_register(ECORE_EVENT_MOUSE_IN, EventMouseIO)
|
ECORE_EVENT_MOUSE_MOVE: EventMouseMove,
|
||||||
_event_mapping_register(ECORE_EVENT_MOUSE_OUT, EventMouseIO)
|
ECORE_EVENT_MOUSE_IN: EventMouseIO,
|
||||||
_event_mapping_register(ECORE_EVENT_MOUSE_WHEEL, EventMouseWheel)
|
ECORE_EVENT_MOUSE_OUT: EventMouseIO,
|
||||||
|
ECORE_EVENT_MOUSE_WHEEL: EventMouseWheel,
|
||||||
_input_events_registered = 1
|
}
|
||||||
|
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
|
@ -70,7 +86,7 @@ cdef class InputEventHandler(EventHandler):
|
||||||
if not callable(func):
|
if not callable(func):
|
||||||
raise TypeError("Parameter 'func' must be callable")
|
raise TypeError("Parameter 'func' must be callable")
|
||||||
|
|
||||||
event_cls = _event_mapping_get(type)
|
event_cls = _input_event_type_mapping.get(type)
|
||||||
if event_cls is None:
|
if event_cls is None:
|
||||||
raise ValueError("Unknow Ecore_Event type %d" % type)
|
raise ValueError("Unknow Ecore_Event type %d" % type)
|
||||||
|
|
||||||
|
@ -93,7 +109,7 @@ cdef class EventKey(Event):
|
||||||
:ivar str keyname: The key name
|
:ivar str keyname: The key name
|
||||||
:ivar str key: The key symbol
|
:ivar str key: The key symbol
|
||||||
:ivar str string:
|
:ivar str string:
|
||||||
:ivar int compose: Final string corresponding to the key symbol composed
|
:ivar int compose: Final string corresponding to the key symbol composed
|
||||||
:ivar int timestamp: Time when the event occurred.
|
:ivar int timestamp: Time when the event occurred.
|
||||||
:ivar int modifiers: :ref:`Ecore_Event_Modifier` The OR combination of modifiers key
|
:ivar int modifiers: :ref:`Ecore_Event_Modifier` The OR combination of modifiers key
|
||||||
:ivar bool same_screen: Same screen flag
|
:ivar bool same_screen: Same screen flag
|
||||||
|
@ -130,18 +146,19 @@ cdef class EventPoint:
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return "<EventPoint x=%d y=%d>" % (self.x, self.y)
|
return "<EventPoint x=%d y=%d>" % (self.x, self.y)
|
||||||
|
|
||||||
|
|
||||||
cdef class EventMulti:
|
cdef class EventMulti:
|
||||||
"""
|
"""
|
||||||
:ivar int device: 0 if normal mouse, 1+ for other mouse-devices (eg multi-touch - other fingers)
|
:ivar int device: 0 if normal mouse, 1+ for other mouse-devices (eg multi-touch - other fingers)
|
||||||
:ivar double radius: radius of press point - radius_x and y if its an ellipse (radius is the average of the 2)
|
:ivar double radius: radius of press point - radius_x and y if its an ellipse (radius is the average of the 2)
|
||||||
:ivar double radius_x:
|
:ivar double radius_x:
|
||||||
:ivar double radius_y:
|
:ivar double radius_y:
|
||||||
:ivar double pressure: 1.0 == normal, > 1.0 == more, 0.0 == none
|
:ivar double pressure: 1.0 == normal, > 1.0 == more, 0.0 == none
|
||||||
:ivar double angle: relative to perpendicular (0.0 == perpendicular), in degrees
|
:ivar double angle: relative to perpendicular (0.0 == perpendicular), in degrees
|
||||||
:ivar double x: with sub-pixel precision, if available
|
:ivar double x: with sub-pixel precision, if available
|
||||||
:ivar double y: with sub-pixel precision, if available
|
:ivar double y: with sub-pixel precision, if available
|
||||||
:ivar double root_x: with sub-pixel precision, if available
|
:ivar double root_x: with sub-pixel precision, if available
|
||||||
:ivar double root_y: with sub-pixel precision, if available
|
:ivar double root_y: with sub-pixel precision, if available
|
||||||
"""
|
"""
|
||||||
def __init__(self, int device, double radius, double radius_x, double radius_y,
|
def __init__(self, int device, double radius, double radius_x, double radius_y,
|
||||||
double pressure, double angle, double x, double y,
|
double pressure, double angle, double x, double y,
|
||||||
|
@ -173,9 +190,9 @@ cdef class EventMouseButton(Event):
|
||||||
:ivar int buttons: The button that was used
|
:ivar int buttons: The button that was used
|
||||||
:ivar bool double_click: Double click event
|
:ivar bool double_click: Double click event
|
||||||
:ivar bool triple_click: Triple click event
|
:ivar bool triple_click: Triple click event
|
||||||
:ivar bool same_screen: Same screen flag
|
:ivar bool same_screen: Same screen flag
|
||||||
:ivar int x: x coordinate relative to window where event happened
|
:ivar int x: x coordinate relative to window where event happened
|
||||||
:ivar int y: y coordinate relative to window where event happened
|
:ivar int y: y coordinate relative to window where event happened
|
||||||
:ivar EventPoint root: :class:`EventPoint` Coordinates relative to root window
|
:ivar EventPoint root: :class:`EventPoint` Coordinates relative to root window
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
@ -211,9 +228,9 @@ cdef class EventMouseMove(Event):
|
||||||
|
|
||||||
:ivar int timestamp: Time when the event occurred
|
:ivar int timestamp: Time when the event occurred
|
||||||
:ivar int modifiers: :ref:`Ecore_Event_Modifier` The OR combination of modifiers key
|
:ivar int modifiers: :ref:`Ecore_Event_Modifier` The OR combination of modifiers key
|
||||||
:ivar bool same_screen: Same screen flag
|
:ivar bool same_screen: Same screen flag
|
||||||
:ivar int x: x coordinate relative to window where event happened
|
:ivar int x: x coordinate relative to window where event happened
|
||||||
:ivar int y: y coordinate relative to window where event happened
|
:ivar int y: y coordinate relative to window where event happened
|
||||||
:ivar EventPoint root: Coordinates relative to root window
|
:ivar EventPoint root: Coordinates relative to root window
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
@ -246,8 +263,8 @@ cdef class EventMouseIO(Event):
|
||||||
|
|
||||||
:ivar int timestamp: Time when the event occurred
|
:ivar int timestamp: Time when the event occurred
|
||||||
:ivar int modifiers: :ref:`Ecore_Event_Modifier` The OR combination of modifiers key
|
:ivar int modifiers: :ref:`Ecore_Event_Modifier` The OR combination of modifiers key
|
||||||
:ivar int x: x coordinate relative to window where event happened
|
:ivar int x: x coordinate relative to window where event happened
|
||||||
:ivar int y: y coordinate relative to window where event happened
|
:ivar int y: y coordinate relative to window where event happened
|
||||||
|
|
||||||
"""
|
"""
|
||||||
cdef int _set_obj(self, void *o) except 0:
|
cdef int _set_obj(self, void *o) except 0:
|
||||||
|
@ -271,12 +288,12 @@ cdef class EventMouseWheel(Event):
|
||||||
|
|
||||||
:ivar int timestamp: Time when the event occurred
|
:ivar int timestamp: Time when the event occurred
|
||||||
:ivar int modifiers: :ref:`Ecore_Event_Modifier` The OR combination of modifiers key
|
:ivar int modifiers: :ref:`Ecore_Event_Modifier` The OR combination of modifiers key
|
||||||
:ivar bool same_screen: Same screen flag
|
:ivar bool same_screen: Same screen flag
|
||||||
:ivar int direction: Orientation of the wheel (horizontal/vertical)
|
:ivar int direction: Orientation of the wheel (horizontal/vertical)
|
||||||
:ivar int z: Value of the wheel event (+1/-1)
|
:ivar int z: Value of the wheel event (+1/-1)
|
||||||
:ivar int x: x coordinate relative to window where event happened
|
:ivar int x: x coordinate relative to window where event happened
|
||||||
:ivar int y: y coordinate relative to window where event happened
|
:ivar int y: y coordinate relative to window where event happened
|
||||||
:ivar EventPoint root: Coordinates relative to root window.
|
:ivar EventPoint root: Coordinates relative to root window.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
cdef int _set_obj(self, void *o) except 0:
|
cdef int _set_obj(self, void *o) except 0:
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
#from cpython cimport PyObject, Py_INCREF, Py_DECREF
|
#from cpython cimport PyObject, Py_INCREF, Py_DECREF
|
||||||
from cpython cimport PyMem_Malloc, PyMem_Free, PyUnicode_AsUTF8String
|
from cpython cimport PyMem_Malloc, PyMem_Free, PyUnicode_AsUTF8String
|
||||||
from efl.utils.deprecated cimport DEPRECATED
|
from efl.utils.deprecated import DEPRECATED
|
||||||
|
|
||||||
import atexit
|
import atexit
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
||||||
|
@ -45,13 +45,142 @@ import traceback
|
||||||
import warnings
|
import warnings
|
||||||
import atexit
|
import atexit
|
||||||
|
|
||||||
|
cimport efl.edje.enums as enums
|
||||||
|
|
||||||
|
EDJE_MESSAGE_NONE = enums.EDJE_MESSAGE_NONE
|
||||||
|
EDJE_MESSAGE_SIGNAL = enums.EDJE_MESSAGE_SIGNAL
|
||||||
|
EDJE_MESSAGE_STRING = enums.EDJE_MESSAGE_STRING
|
||||||
|
EDJE_MESSAGE_INT = enums.EDJE_MESSAGE_INT
|
||||||
|
EDJE_MESSAGE_FLOAT = enums.EDJE_MESSAGE_FLOAT
|
||||||
|
EDJE_MESSAGE_STRING_SET = enums.EDJE_MESSAGE_STRING_SET
|
||||||
|
EDJE_MESSAGE_INT_SET = enums.EDJE_MESSAGE_INT_SET
|
||||||
|
EDJE_MESSAGE_FLOAT_SET = enums.EDJE_MESSAGE_FLOAT_SET
|
||||||
|
EDJE_MESSAGE_STRING_INT = enums.EDJE_MESSAGE_STRING_INT
|
||||||
|
EDJE_MESSAGE_STRING_FLOAT = enums.EDJE_MESSAGE_STRING_FLOAT
|
||||||
|
EDJE_MESSAGE_STRING_INT_SET = enums.EDJE_MESSAGE_STRING_INT_SET
|
||||||
|
EDJE_MESSAGE_STRING_FLOAT_SET = enums.EDJE_MESSAGE_STRING_FLOAT_SET
|
||||||
|
|
||||||
|
EDJE_ASPECT_CONTROL_NONE = enums.EDJE_ASPECT_CONTROL_NONE
|
||||||
|
EDJE_ASPECT_CONTROL_NEITHER = enums.EDJE_ASPECT_CONTROL_NEITHER
|
||||||
|
EDJE_ASPECT_CONTROL_HORIZONTAL = enums.EDJE_ASPECT_CONTROL_HORIZONTAL
|
||||||
|
EDJE_ASPECT_CONTROL_VERTICAL = enums.EDJE_ASPECT_CONTROL_VERTICAL
|
||||||
|
EDJE_ASPECT_CONTROL_BOTH = enums.EDJE_ASPECT_CONTROL_BOTH
|
||||||
|
|
||||||
|
EDJE_DRAG_DIR_NONE = enums.EDJE_DRAG_DIR_NONE
|
||||||
|
EDJE_DRAG_DIR_X = enums.EDJE_DRAG_DIR_X
|
||||||
|
EDJE_DRAG_DIR_Y = enums.EDJE_DRAG_DIR_Y
|
||||||
|
EDJE_DRAG_DIR_XY = enums.EDJE_DRAG_DIR_XY
|
||||||
|
|
||||||
|
EDJE_LOAD_ERROR_NONE = enums.EDJE_LOAD_ERROR_NONE
|
||||||
|
EDJE_LOAD_ERROR_GENERIC = enums.EDJE_LOAD_ERROR_GENERIC
|
||||||
|
EDJE_LOAD_ERROR_DOES_NOT_EXIST = enums.EDJE_LOAD_ERROR_DOES_NOT_EXIST
|
||||||
|
EDJE_LOAD_ERROR_PERMISSION_DENIED = enums.EDJE_LOAD_ERROR_PERMISSION_DENIED
|
||||||
|
EDJE_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED = enums.EDJE_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED
|
||||||
|
EDJE_LOAD_ERROR_CORRUPT_FILE = enums.EDJE_LOAD_ERROR_CORRUPT_FILE
|
||||||
|
EDJE_LOAD_ERROR_UNKNOWN_FORMAT = enums.EDJE_LOAD_ERROR_UNKNOWN_FORMAT
|
||||||
|
EDJE_LOAD_ERROR_INCOMPATIBLE_FILE = enums.EDJE_LOAD_ERROR_INCOMPATIBLE_FILE
|
||||||
|
EDJE_LOAD_ERROR_UNKNOWN_COLLECTION = enums.EDJE_LOAD_ERROR_UNKNOWN_COLLECTION
|
||||||
|
EDJE_LOAD_ERROR_RECURSIVE_REFERENCE = enums.EDJE_LOAD_ERROR_RECURSIVE_REFERENCE
|
||||||
|
|
||||||
|
EDJE_PART_TYPE_NONE = enums.EDJE_PART_TYPE_NONE
|
||||||
|
EDJE_PART_TYPE_RECTANGLE = enums.EDJE_PART_TYPE_RECTANGLE
|
||||||
|
EDJE_PART_TYPE_TEXT = enums.EDJE_PART_TYPE_TEXT
|
||||||
|
EDJE_PART_TYPE_IMAGE = enums.EDJE_PART_TYPE_IMAGE
|
||||||
|
EDJE_PART_TYPE_SWALLOW = enums.EDJE_PART_TYPE_SWALLOW
|
||||||
|
EDJE_PART_TYPE_TEXTBLOCK = enums.EDJE_PART_TYPE_TEXTBLOCK
|
||||||
|
EDJE_PART_TYPE_GRADIENT = enums.EDJE_PART_TYPE_GRADIENT
|
||||||
|
EDJE_PART_TYPE_GROUP = enums.EDJE_PART_TYPE_GROUP
|
||||||
|
EDJE_PART_TYPE_BOX = enums.EDJE_PART_TYPE_BOX
|
||||||
|
EDJE_PART_TYPE_TABLE = enums.EDJE_PART_TYPE_TABLE
|
||||||
|
EDJE_PART_TYPE_EXTERNAL = enums.EDJE_PART_TYPE_EXTERNAL
|
||||||
|
EDJE_PART_TYPE_SPACER = enums.EDJE_PART_TYPE_SPACER
|
||||||
|
EDJE_PART_TYPE_MESH_NODE = enums.EDJE_PART_TYPE_MESH_NODE
|
||||||
|
EDJE_PART_TYPE_LIGHT = enums.EDJE_PART_TYPE_LIGHT
|
||||||
|
EDJE_PART_TYPE_CAMERA = enums.EDJE_PART_TYPE_CAMERA
|
||||||
|
EDJE_PART_TYPE_LAST = enums.EDJE_PART_TYPE_LAST
|
||||||
|
|
||||||
|
EDJE_TEXT_EFFECT_NONE = enums.EDJE_TEXT_EFFECT_NONE
|
||||||
|
EDJE_TEXT_EFFECT_PLAIN = enums.EDJE_TEXT_EFFECT_PLAIN
|
||||||
|
EDJE_TEXT_EFFECT_OUTLINE = enums.EDJE_TEXT_EFFECT_OUTLINE
|
||||||
|
EDJE_TEXT_EFFECT_SOFT_OUTLINE = enums.EDJE_TEXT_EFFECT_SOFT_OUTLINE
|
||||||
|
EDJE_TEXT_EFFECT_SHADOW = enums.EDJE_TEXT_EFFECT_SHADOW
|
||||||
|
EDJE_TEXT_EFFECT_SOFT_SHADOW = enums.EDJE_TEXT_EFFECT_SOFT_SHADOW
|
||||||
|
EDJE_TEXT_EFFECT_OUTLINE_SHADOW = enums.EDJE_TEXT_EFFECT_OUTLINE_SHADOW
|
||||||
|
EDJE_TEXT_EFFECT_OUTLINE_SOFT_SHADOW = enums.EDJE_TEXT_EFFECT_OUTLINE_SOFT_SHADOW
|
||||||
|
EDJE_TEXT_EFFECT_FAR_SHADOW = enums.EDJE_TEXT_EFFECT_FAR_SHADOW
|
||||||
|
EDJE_TEXT_EFFECT_FAR_SOFT_SHADOW = enums.EDJE_TEXT_EFFECT_FAR_SOFT_SHADOW
|
||||||
|
EDJE_TEXT_EFFECT_GLOW = enums.EDJE_TEXT_EFFECT_GLOW
|
||||||
|
EDJE_TEXT_EFFECT_LAST = enums.EDJE_TEXT_EFFECT_LAST
|
||||||
|
EDJE_TEXT_EFFECT_SHADOW_DIRECTION_BOTTOM_RIGHT = enums.EDJE_TEXT_EFFECT_SHADOW_DIRECTION_BOTTOM_RIGHT
|
||||||
|
EDJE_TEXT_EFFECT_SHADOW_DIRECTION_BOTTOM = enums.EDJE_TEXT_EFFECT_SHADOW_DIRECTION_BOTTOM
|
||||||
|
EDJE_TEXT_EFFECT_SHADOW_DIRECTION_BOTTOM_LEFT = enums.EDJE_TEXT_EFFECT_SHADOW_DIRECTION_BOTTOM_LEFT
|
||||||
|
EDJE_TEXT_EFFECT_SHADOW_DIRECTION_LEFT = enums.EDJE_TEXT_EFFECT_SHADOW_DIRECTION_LEFT
|
||||||
|
EDJE_TEXT_EFFECT_SHADOW_DIRECTION_TOP_LEFT = enums.EDJE_TEXT_EFFECT_SHADOW_DIRECTION_TOP_LEFT
|
||||||
|
EDJE_TEXT_EFFECT_SHADOW_DIRECTION_TOP = enums.EDJE_TEXT_EFFECT_SHADOW_DIRECTION_TOP
|
||||||
|
EDJE_TEXT_EFFECT_SHADOW_DIRECTION_TOP_RIGHT = enums.EDJE_TEXT_EFFECT_SHADOW_DIRECTION_TOP_RIGHT
|
||||||
|
EDJE_TEXT_EFFECT_SHADOW_DIRECTION_RIGHT = enums.EDJE_TEXT_EFFECT_SHADOW_DIRECTION_RIGHT
|
||||||
|
|
||||||
|
EDJE_ACTION_TYPE_NONE = enums.EDJE_ACTION_TYPE_NONE
|
||||||
|
EDJE_ACTION_TYPE_STATE_SET = enums.EDJE_ACTION_TYPE_STATE_SET
|
||||||
|
EDJE_ACTION_TYPE_ACTION_STOP = enums.EDJE_ACTION_TYPE_ACTION_STOP
|
||||||
|
EDJE_ACTION_TYPE_SIGNAL_EMIT = enums.EDJE_ACTION_TYPE_SIGNAL_EMIT
|
||||||
|
EDJE_ACTION_TYPE_DRAG_VAL_SET = enums.EDJE_ACTION_TYPE_DRAG_VAL_SET
|
||||||
|
EDJE_ACTION_TYPE_DRAG_VAL_STEP = enums.EDJE_ACTION_TYPE_DRAG_VAL_STEP
|
||||||
|
EDJE_ACTION_TYPE_DRAG_VAL_PAGE = enums.EDJE_ACTION_TYPE_DRAG_VAL_PAGE
|
||||||
|
EDJE_ACTION_TYPE_SCRIPT = enums.EDJE_ACTION_TYPE_SCRIPT
|
||||||
|
EDJE_ACTION_TYPE_FOCUS_SET = enums.EDJE_ACTION_TYPE_FOCUS_SET
|
||||||
|
EDJE_ACTION_TYPE_RESERVED00 = enums.EDJE_ACTION_TYPE_RESERVED00
|
||||||
|
EDJE_ACTION_TYPE_FOCUS_OBJECT = enums.EDJE_ACTION_TYPE_FOCUS_OBJECT
|
||||||
|
EDJE_ACTION_TYPE_PARAM_COPY = enums.EDJE_ACTION_TYPE_PARAM_COPY
|
||||||
|
EDJE_ACTION_TYPE_PARAM_SET = enums.EDJE_ACTION_TYPE_PARAM_SET
|
||||||
|
EDJE_ACTION_TYPE_SOUND_SAMPLE = enums.EDJE_ACTION_TYPE_SOUND_SAMPLE
|
||||||
|
EDJE_ACTION_TYPE_SOUND_TONE = enums.EDJE_ACTION_TYPE_SOUND_TONE
|
||||||
|
EDJE_ACTION_TYPE_PHYSICS_IMPULSE = enums.EDJE_ACTION_TYPE_PHYSICS_IMPULSE
|
||||||
|
EDJE_ACTION_TYPE_PHYSICS_TORQUE_IMPULSE = enums.EDJE_ACTION_TYPE_PHYSICS_TORQUE_IMPULSE
|
||||||
|
EDJE_ACTION_TYPE_PHYSICS_FORCE = enums.EDJE_ACTION_TYPE_PHYSICS_FORCE
|
||||||
|
EDJE_ACTION_TYPE_PHYSICS_TORQUE = enums.EDJE_ACTION_TYPE_PHYSICS_TORQUE
|
||||||
|
EDJE_ACTION_TYPE_PHYSICS_FORCES_CLEAR = enums.EDJE_ACTION_TYPE_PHYSICS_FORCES_CLEAR
|
||||||
|
EDJE_ACTION_TYPE_PHYSICS_VEL_SET = enums.EDJE_ACTION_TYPE_PHYSICS_VEL_SET
|
||||||
|
EDJE_ACTION_TYPE_PHYSICS_ANG_VEL_SET = enums.EDJE_ACTION_TYPE_PHYSICS_ANG_VEL_SET
|
||||||
|
EDJE_ACTION_TYPE_PHYSICS_STOP = enums.EDJE_ACTION_TYPE_PHYSICS_STOP
|
||||||
|
EDJE_ACTION_TYPE_PHYSICS_ROT_SET = enums.EDJE_ACTION_TYPE_PHYSICS_ROT_SET
|
||||||
|
EDJE_ACTION_TYPE_VIBRATION_SAMPLE = enums.EDJE_ACTION_TYPE_VIBRATION_SAMPLE
|
||||||
|
EDJE_ACTION_TYPE_LAST = enums.EDJE_ACTION_TYPE_LAST
|
||||||
|
|
||||||
|
EDJE_TWEEN_MODE_NONE = enums.EDJE_TWEEN_MODE_NONE
|
||||||
|
EDJE_TWEEN_MODE_LINEAR = enums.EDJE_TWEEN_MODE_LINEAR
|
||||||
|
EDJE_TWEEN_MODE_SINUSOIDAL = enums.EDJE_TWEEN_MODE_SINUSOIDAL
|
||||||
|
EDJE_TWEEN_MODE_ACCELERATE = enums.EDJE_TWEEN_MODE_ACCELERATE
|
||||||
|
EDJE_TWEEN_MODE_DECELERATE = enums.EDJE_TWEEN_MODE_DECELERATE
|
||||||
|
EDJE_TWEEN_MODE_ACCELERATE_FACTOR = enums.EDJE_TWEEN_MODE_ACCELERATE_FACTOR
|
||||||
|
EDJE_TWEEN_MODE_DECELERATE_FACTOR = enums.EDJE_TWEEN_MODE_DECELERATE_FACTOR
|
||||||
|
EDJE_TWEEN_MODE_SINUSOIDAL_FACTOR = enums.EDJE_TWEEN_MODE_SINUSOIDAL_FACTOR
|
||||||
|
EDJE_TWEEN_MODE_DIVISOR_INTERP = enums.EDJE_TWEEN_MODE_DIVISOR_INTERP
|
||||||
|
EDJE_TWEEN_MODE_BOUNCE = enums.EDJE_TWEEN_MODE_BOUNCE
|
||||||
|
EDJE_TWEEN_MODE_SPRING = enums.EDJE_TWEEN_MODE_SPRING
|
||||||
|
EDJE_TWEEN_MODE_CUBIC_BEZIER = enums.EDJE_TWEEN_MODE_CUBIC_BEZIER
|
||||||
|
EDJE_TWEEN_MODE_LAST = enums.EDJE_TWEEN_MODE_LAST
|
||||||
|
EDJE_TWEEN_MODE_MASK = enums.EDJE_TWEEN_MODE_MASK
|
||||||
|
EDJE_TWEEN_MODE_OPT_FROM_CURRENT = enums.EDJE_TWEEN_MODE_OPT_FROM_CURRENT
|
||||||
|
|
||||||
|
EDJE_EXTERNAL_PARAM_TYPE_INT = enums.EDJE_EXTERNAL_PARAM_TYPE_INT
|
||||||
|
EDJE_EXTERNAL_PARAM_TYPE_DOUBLE = enums.EDJE_EXTERNAL_PARAM_TYPE_DOUBLE
|
||||||
|
EDJE_EXTERNAL_PARAM_TYPE_STRING = enums.EDJE_EXTERNAL_PARAM_TYPE_STRING
|
||||||
|
EDJE_EXTERNAL_PARAM_TYPE_BOOL = enums.EDJE_EXTERNAL_PARAM_TYPE_BOOL
|
||||||
|
EDJE_EXTERNAL_PARAM_TYPE_CHOICE = enums.EDJE_EXTERNAL_PARAM_TYPE_CHOICE
|
||||||
|
EDJE_EXTERNAL_PARAM_TYPE_MAX = enums.EDJE_EXTERNAL_PARAM_TYPE_MAX
|
||||||
|
|
||||||
|
EDJE_INPUT_HINT_NONE = enums.EDJE_INPUT_HINT_NONE
|
||||||
|
EDJE_INPUT_HINT_AUTO_COMPLETE = enums.EDJE_INPUT_HINT_AUTO_COMPLETE
|
||||||
|
EDJE_INPUT_HINT_SENSITIVE_DATA = enums.EDJE_INPUT_HINT_SENSITIVE_DATA
|
||||||
|
|
||||||
|
|
||||||
def init():
|
def init():
|
||||||
cdef int r = edje_init()
|
cdef int r = edje_init()
|
||||||
|
|
||||||
if edje_external_type_abi_version_get() != EDJE_EXTERNAL_TYPE_ABI_VERSION:
|
if edje_external_type_abi_version_get() != EDJE_EXTERNAL_TYPE_ABI_VERSION:
|
||||||
raise TypeError("python-edje Edje_External_Type abi_version differs "
|
raise TypeError("python-edje Edje_External_Type abi_version differs "
|
||||||
"from libedje.so. Recompile python-edje!")
|
"from libedje.so. Recompile python-efl!")
|
||||||
return r
|
return r
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
||||||
|
@ -60,15 +60,15 @@ cdef class ExternalParam:
|
||||||
def __get__(self):
|
def __get__(self):
|
||||||
if self.obj == NULL:
|
if self.obj == NULL:
|
||||||
raise ValueError("Object uninitialized")
|
raise ValueError("Object uninitialized")
|
||||||
if self.obj.type == <int>EDJE_EXTERNAL_PARAM_TYPE_INT:
|
if self.obj.type == <int>enums.EDJE_EXTERNAL_PARAM_TYPE_INT:
|
||||||
return self.obj.i
|
return self.obj.i
|
||||||
elif self.obj.type == <int>EDJE_EXTERNAL_PARAM_TYPE_DOUBLE:
|
elif self.obj.type == <int>enums.EDJE_EXTERNAL_PARAM_TYPE_DOUBLE:
|
||||||
return self.obj.d
|
return self.obj.d
|
||||||
elif self.obj.type == <int>EDJE_EXTERNAL_PARAM_TYPE_STRING or \
|
elif self.obj.type == <int>enums.EDJE_EXTERNAL_PARAM_TYPE_STRING or \
|
||||||
self.obj.type == <int>EDJE_EXTERNAL_PARAM_TYPE_CHOICE:
|
self.obj.type == <int>enums.EDJE_EXTERNAL_PARAM_TYPE_CHOICE:
|
||||||
if self.obj.s != NULL:
|
if self.obj.s != NULL:
|
||||||
return self.obj.s
|
return self.obj.s
|
||||||
elif self.obj.type == <int>EDJE_EXTERNAL_PARAM_TYPE_BOOL:
|
elif self.obj.type == <int>enums.EDJE_EXTERNAL_PARAM_TYPE_BOOL:
|
||||||
return bool(self.obj.i)
|
return bool(self.obj.i)
|
||||||
|
|
||||||
|
|
||||||
|
@ -292,7 +292,7 @@ cdef class ExternalParamInfoChoice(ExternalParamInfo):
|
||||||
|
|
||||||
property translated_choices:
|
property translated_choices:
|
||||||
def __get__(self):
|
def __get__(self):
|
||||||
cdef const char *t
|
cdef const char *trans
|
||||||
if self._external_type_obj == NULL or \
|
if self._external_type_obj == NULL or \
|
||||||
self._external_type_obj.translate == NULL:
|
self._external_type_obj.translate == NULL:
|
||||||
return self.choices
|
return self.choices
|
||||||
|
@ -308,15 +308,15 @@ cdef class ExternalParamInfoChoice(ExternalParamInfo):
|
||||||
|
|
||||||
cdef ExternalParamInfo ExternalParamInfo_from_ptr(type, Edje_External_Param_Info *ptr):
|
cdef ExternalParamInfo ExternalParamInfo_from_ptr(type, Edje_External_Param_Info *ptr):
|
||||||
cdef ExternalParamInfo p
|
cdef ExternalParamInfo p
|
||||||
if ptr.type == <int>EDJE_EXTERNAL_PARAM_TYPE_INT:
|
if ptr.type == <int>enums.EDJE_EXTERNAL_PARAM_TYPE_INT:
|
||||||
p = ExternalParamInfoInt()
|
p = ExternalParamInfoInt()
|
||||||
elif ptr.type == <int>EDJE_EXTERNAL_PARAM_TYPE_DOUBLE:
|
elif ptr.type == <int>enums.EDJE_EXTERNAL_PARAM_TYPE_DOUBLE:
|
||||||
p = ExternalParamInfoDouble()
|
p = ExternalParamInfoDouble()
|
||||||
elif ptr.type == <int>EDJE_EXTERNAL_PARAM_TYPE_STRING:
|
elif ptr.type == <int>enums.EDJE_EXTERNAL_PARAM_TYPE_STRING:
|
||||||
p = ExternalParamInfoString()
|
p = ExternalParamInfoString()
|
||||||
elif ptr.type == <int>EDJE_EXTERNAL_PARAM_TYPE_BOOL:
|
elif ptr.type == <int>enums.EDJE_EXTERNAL_PARAM_TYPE_BOOL:
|
||||||
p = ExternalParamInfoBool()
|
p = ExternalParamInfoBool()
|
||||||
elif ptr.type == <int>EDJE_EXTERNAL_PARAM_TYPE_CHOICE:
|
elif ptr.type == <int>enums.EDJE_EXTERNAL_PARAM_TYPE_CHOICE:
|
||||||
p = ExternalParamInfoChoice()
|
p = ExternalParamInfoChoice()
|
||||||
else:
|
else:
|
||||||
msg = "Don't know how to convert parameter %s of type %s" % \
|
msg = "Don't know how to convert parameter %s of type %s" % \
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
||||||
|
@ -345,29 +345,29 @@ cdef Message MessageStringFloatSet_from_ptr(void *msg):
|
||||||
|
|
||||||
cdef Message Message_from_type(Edje_Message_Type type, int id, void *msg):
|
cdef Message Message_from_type(Edje_Message_Type type, int id, void *msg):
|
||||||
cdef Message m
|
cdef Message m
|
||||||
if type == <int>EDJE_MESSAGE_NONE:
|
if type == <int>enums.EDJE_MESSAGE_NONE:
|
||||||
return None
|
return None
|
||||||
elif type == <int>EDJE_MESSAGE_SIGNAL:
|
elif type == <int>enums.EDJE_MESSAGE_SIGNAL:
|
||||||
m = MessageSignal()
|
m = MessageSignal()
|
||||||
elif type == <int>EDJE_MESSAGE_STRING:
|
elif type == <int>enums.EDJE_MESSAGE_STRING:
|
||||||
m = MessageString_from_ptr(msg)
|
m = MessageString_from_ptr(msg)
|
||||||
elif type == <int>EDJE_MESSAGE_INT:
|
elif type == <int>enums.EDJE_MESSAGE_INT:
|
||||||
m = MessageInt_from_ptr(msg)
|
m = MessageInt_from_ptr(msg)
|
||||||
elif type == <int>EDJE_MESSAGE_FLOAT:
|
elif type == <int>enums.EDJE_MESSAGE_FLOAT:
|
||||||
m = MessageFloat_from_ptr(msg)
|
m = MessageFloat_from_ptr(msg)
|
||||||
elif type == <int>EDJE_MESSAGE_STRING_SET:
|
elif type == <int>enums.EDJE_MESSAGE_STRING_SET:
|
||||||
m = MessageStringSet_from_ptr(msg)
|
m = MessageStringSet_from_ptr(msg)
|
||||||
elif type == <int>EDJE_MESSAGE_INT_SET:
|
elif type == <int>enums.EDJE_MESSAGE_INT_SET:
|
||||||
m = MessageIntSet_from_ptr(msg)
|
m = MessageIntSet_from_ptr(msg)
|
||||||
elif type == <int>EDJE_MESSAGE_FLOAT_SET:
|
elif type == <int>enums.EDJE_MESSAGE_FLOAT_SET:
|
||||||
m = MessageFloatSet_from_ptr(msg)
|
m = MessageFloatSet_from_ptr(msg)
|
||||||
elif type == <int>EDJE_MESSAGE_STRING_INT:
|
elif type == <int>enums.EDJE_MESSAGE_STRING_INT:
|
||||||
m = MessageStringInt_from_ptr(msg)
|
m = MessageStringInt_from_ptr(msg)
|
||||||
elif type == <int>EDJE_MESSAGE_STRING_FLOAT:
|
elif type == <int>enums.EDJE_MESSAGE_STRING_FLOAT:
|
||||||
m = MessageStringFloat_from_ptr(msg)
|
m = MessageStringFloat_from_ptr(msg)
|
||||||
elif type == <int>EDJE_MESSAGE_STRING_INT_SET :
|
elif type == <int>enums.EDJE_MESSAGE_STRING_INT_SET :
|
||||||
m = MessageStringIntSet_from_ptr(msg)
|
m = MessageStringIntSet_from_ptr(msg)
|
||||||
elif type == <int>EDJE_MESSAGE_STRING_FLOAT_SET :
|
elif type == <int>enums.EDJE_MESSAGE_STRING_FLOAT_SET :
|
||||||
m = MessageStringFloatSet_from_ptr(msg)
|
m = MessageStringFloatSet_from_ptr(msg)
|
||||||
|
|
||||||
m._type = type
|
m._type = type
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
||||||
|
@ -60,23 +60,23 @@ cdef void signal_cb(void *data, Evas_Object *obj,
|
||||||
|
|
||||||
class EdjeLoadError(Exception):
|
class EdjeLoadError(Exception):
|
||||||
def __init__(self, int code, char *file, char *group):
|
def __init__(self, int code, char *file, char *group):
|
||||||
if code == EDJE_LOAD_ERROR_NONE:
|
if code == enums.EDJE_LOAD_ERROR_NONE:
|
||||||
msg = "No error"
|
msg = "No error"
|
||||||
elif code == EDJE_LOAD_ERROR_GENERIC:
|
elif code == enums.EDJE_LOAD_ERROR_GENERIC:
|
||||||
msg = "Generic error"
|
msg = "Generic error"
|
||||||
elif code == EDJE_LOAD_ERROR_DOES_NOT_EXIST:
|
elif code == enums.EDJE_LOAD_ERROR_DOES_NOT_EXIST:
|
||||||
msg = "Does not exist"
|
msg = "Does not exist"
|
||||||
elif code == EDJE_LOAD_ERROR_PERMISSION_DENIED:
|
elif code == enums.EDJE_LOAD_ERROR_PERMISSION_DENIED:
|
||||||
msg = "Permission denied"
|
msg = "Permission denied"
|
||||||
elif code == EDJE_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED:
|
elif code == enums.EDJE_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED:
|
||||||
msg = "Resource allocation failed"
|
msg = "Resource allocation failed"
|
||||||
elif code == EDJE_LOAD_ERROR_CORRUPT_FILE:
|
elif code == enums.EDJE_LOAD_ERROR_CORRUPT_FILE:
|
||||||
msg = "Corrupt file"
|
msg = "Corrupt file"
|
||||||
elif code == EDJE_LOAD_ERROR_UNKNOWN_FORMAT:
|
elif code == enums.EDJE_LOAD_ERROR_UNKNOWN_FORMAT:
|
||||||
msg = "Unknown format"
|
msg = "Unknown format"
|
||||||
elif code == EDJE_LOAD_ERROR_INCOMPATIBLE_FILE:
|
elif code == enums.EDJE_LOAD_ERROR_INCOMPATIBLE_FILE:
|
||||||
msg = "Incompatible file"
|
msg = "Incompatible file"
|
||||||
elif code == EDJE_LOAD_ERROR_UNKNOWN_COLLECTION:
|
elif code == enums.EDJE_LOAD_ERROR_UNKNOWN_COLLECTION:
|
||||||
msg = "Unknown collection"
|
msg = "Unknown collection"
|
||||||
|
|
||||||
self.code = code
|
self.code = code
|
||||||
|
@ -106,7 +106,7 @@ cdef class Edje(Object):
|
||||||
|
|
||||||
def __init__(self, Canvas canvas not None, file=None, group=None, size=None,
|
def __init__(self, Canvas canvas not None, file=None, group=None, size=None,
|
||||||
geometry=None, **kwargs):
|
geometry=None, **kwargs):
|
||||||
"""Edje(...)
|
"""
|
||||||
|
|
||||||
:param canvas: Evas canvas for this object
|
:param canvas: Evas canvas for this object
|
||||||
:type canvas: :py:class:`~efl.evas.Canvas`
|
:type canvas: :py:class:`~efl.evas.Canvas`
|
||||||
|
@ -137,22 +137,6 @@ cdef class Edje(Object):
|
||||||
self._text_change_cb = None
|
self._text_change_cb = None
|
||||||
self._message_handler_cb = None
|
self._message_handler_cb = None
|
||||||
|
|
||||||
def __repr__(self):
|
|
||||||
x, y, w, h = self.geometry_get()
|
|
||||||
r, g, b, a = self.color_get()
|
|
||||||
file, group = self.file_get()
|
|
||||||
name = self.name_get()
|
|
||||||
if name:
|
|
||||||
name_str = "name=%r, "
|
|
||||||
else:
|
|
||||||
name_str = ""
|
|
||||||
clip = bool(self.clip_get() is not None)
|
|
||||||
return ("<%s(%sfile=%r, group=%r, geometry=(%d, %d, %d, %d), "
|
|
||||||
"color=(%d, %d, %d, %d), layer=%s, clip=%r, visible=%s)>") % \
|
|
||||||
(self.__class__.__name__, name_str, file, group,
|
|
||||||
x, y, w, h, r, g, b, a,
|
|
||||||
self.layer_get(), clip, self.visible_get())
|
|
||||||
|
|
||||||
def data_get(self, key):
|
def data_get(self, key):
|
||||||
"""Get data from Edje data collection (defined in .edj).
|
"""Get data from Edje data collection (defined in .edj).
|
||||||
|
|
||||||
|
@ -400,7 +384,7 @@ cdef class Edje(Object):
|
||||||
text_class = PyUnicode_AsUTF8String(text_class)
|
text_class = PyUnicode_AsUTF8String(text_class)
|
||||||
edje_object_text_class_del(self.obj,
|
edje_object_text_class_del(self.obj,
|
||||||
<const char *>text_class if text_class is not None else NULL)
|
<const char *>text_class if text_class is not None else NULL)
|
||||||
|
|
||||||
def size_class_set(self, size_class, int minw, int minh, int maxw, int maxh):
|
def size_class_set(self, size_class, int minw, int minh, int maxw, int maxh):
|
||||||
"""Sets the object size class.
|
"""Sets the object size class.
|
||||||
|
|
||||||
|
@ -419,7 +403,7 @@ cdef class Edje(Object):
|
||||||
:rtype: bool
|
:rtype: bool
|
||||||
|
|
||||||
.. versionadded:: 1.17
|
.. versionadded:: 1.17
|
||||||
|
|
||||||
"""
|
"""
|
||||||
if isinstance(size_class, unicode):
|
if isinstance(size_class, unicode):
|
||||||
size_class = PyUnicode_AsUTF8String(size_class)
|
size_class = PyUnicode_AsUTF8String(size_class)
|
||||||
|
@ -783,6 +767,70 @@ cdef class Edje(Object):
|
||||||
return edje_object_part_text_input_hint_get(self.obj,
|
return edje_object_part_text_input_hint_get(self.obj,
|
||||||
<const char *>part if part is not None else NULL)
|
<const char *>part if part is not None else NULL)
|
||||||
|
|
||||||
|
def part_text_prediction_hint_set(self, part, hint):
|
||||||
|
"""Sets the prediction hint to use an intelligent reply suggestion
|
||||||
|
service.
|
||||||
|
|
||||||
|
:param part: the part name
|
||||||
|
:type part: str
|
||||||
|
|
||||||
|
:param hint: the prediction hint text
|
||||||
|
:type hint: str
|
||||||
|
|
||||||
|
.. versionadded:: 1.20
|
||||||
|
|
||||||
|
"""
|
||||||
|
if isinstance(part, unicode): part = PyUnicode_AsUTF8String(part)
|
||||||
|
if isinstance(hint, unicode): hint = PyUnicode_AsUTF8String(hint)
|
||||||
|
edje_object_part_text_prediction_hint_set(self.obj,
|
||||||
|
<const char *>part if part is not None else NULL,
|
||||||
|
<const char *>hint if hint is not None else NULL)
|
||||||
|
|
||||||
|
def part_text_prediction_hint_hash_set(self, part, key, value):
|
||||||
|
"""Sets the prediction hint data at the specified key
|
||||||
|
|
||||||
|
:param part: the part name
|
||||||
|
:type part: str
|
||||||
|
|
||||||
|
:param key: the key of the prediction hint
|
||||||
|
:type key: str
|
||||||
|
|
||||||
|
:param value: the data to replace
|
||||||
|
:type value: str
|
||||||
|
|
||||||
|
:return bool: `True` on success, `False` otherwise
|
||||||
|
|
||||||
|
.. versionadded:: 1.21
|
||||||
|
|
||||||
|
"""
|
||||||
|
if isinstance(part, unicode): part = PyUnicode_AsUTF8String(part)
|
||||||
|
if isinstance(key, unicode): key = PyUnicode_AsUTF8String(key)
|
||||||
|
if isinstance(value, unicode): value = PyUnicode_AsUTF8String(value)
|
||||||
|
edje_object_part_text_prediction_hint_hash_set(self.obj,
|
||||||
|
<const char *>part if part is not None else NULL,
|
||||||
|
<const char *>key if key is not None else NULL,
|
||||||
|
<const char *>value if value is not None else NULL)
|
||||||
|
|
||||||
|
def part_text_prediction_hint_hash_del(self, part, key):
|
||||||
|
"""Removes the prediction hint data identified by a key
|
||||||
|
|
||||||
|
:param part: the part name
|
||||||
|
:type part: str
|
||||||
|
|
||||||
|
:param key: the key of the prediction hint
|
||||||
|
:type key: str
|
||||||
|
|
||||||
|
:return bool: `True` on success, `False` otherwise
|
||||||
|
|
||||||
|
.. versionadded:: 1.21
|
||||||
|
|
||||||
|
"""
|
||||||
|
if isinstance(part, unicode): part = PyUnicode_AsUTF8String(part)
|
||||||
|
if isinstance(key, unicode): key = PyUnicode_AsUTF8String(key)
|
||||||
|
edje_object_part_text_prediction_hint_hash_del(self.obj,
|
||||||
|
<const char *>part if part is not None else NULL,
|
||||||
|
<const char *>key if key is not None else NULL)
|
||||||
|
|
||||||
def part_swallow(self, part, Object obj):
|
def part_swallow(self, part, Object obj):
|
||||||
"""Swallows an object into the edje
|
"""Swallows an object into the edje
|
||||||
|
|
||||||
|
@ -852,13 +900,13 @@ cdef class Edje(Object):
|
||||||
|
|
||||||
p.name = c_param
|
p.name = c_param
|
||||||
if isinstance(value, bool): # bool is int, so keep it before!
|
if isinstance(value, bool): # bool is int, so keep it before!
|
||||||
p.type = EDJE_EXTERNAL_PARAM_TYPE_BOOL
|
p.type = enums.EDJE_EXTERNAL_PARAM_TYPE_BOOL
|
||||||
p.i = value
|
p.i = value
|
||||||
elif isinstance(value, int):
|
elif isinstance(value, int):
|
||||||
p.type = EDJE_EXTERNAL_PARAM_TYPE_INT
|
p.type = enums.EDJE_EXTERNAL_PARAM_TYPE_INT
|
||||||
p.i = value
|
p.i = value
|
||||||
elif isinstance(value, float):
|
elif isinstance(value, float):
|
||||||
p.type = EDJE_EXTERNAL_PARAM_TYPE_DOUBLE
|
p.type = enums.EDJE_EXTERNAL_PARAM_TYPE_DOUBLE
|
||||||
p.d = value
|
p.d = value
|
||||||
elif isinstance(value, (str, unicode)):
|
elif isinstance(value, (str, unicode)):
|
||||||
# may be STRING or CHOICE
|
# may be STRING or CHOICE
|
||||||
|
@ -904,19 +952,19 @@ cdef class Edje(Object):
|
||||||
|
|
||||||
p.name = c_param
|
p.name = c_param
|
||||||
p.type = edje_object_part_external_param_type_get(self.obj, c_part, c_param)
|
p.type = edje_object_part_external_param_type_get(self.obj, c_part, c_param)
|
||||||
if p.type >= <int>EDJE_EXTERNAL_PARAM_TYPE_MAX:
|
if p.type >= <int>enums.EDJE_EXTERNAL_PARAM_TYPE_MAX:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
if not edje_object_part_external_param_get(self.obj, c_part, &p):
|
if not edje_object_part_external_param_get(self.obj, c_part, &p):
|
||||||
return None
|
return None
|
||||||
if p.type == <int>EDJE_EXTERNAL_PARAM_TYPE_BOOL:
|
if p.type == <int>enums.EDJE_EXTERNAL_PARAM_TYPE_BOOL:
|
||||||
return bool(p.i)
|
return bool(p.i)
|
||||||
elif p.type == <int>EDJE_EXTERNAL_PARAM_TYPE_INT:
|
elif p.type == <int>enums.EDJE_EXTERNAL_PARAM_TYPE_INT:
|
||||||
return p.i
|
return p.i
|
||||||
elif p.type == <int>EDJE_EXTERNAL_PARAM_TYPE_DOUBLE:
|
elif p.type == <int>enums.EDJE_EXTERNAL_PARAM_TYPE_DOUBLE:
|
||||||
return p.d
|
return p.d
|
||||||
elif p.type == <int>EDJE_EXTERNAL_PARAM_TYPE_STRING or \
|
elif p.type == <int>enums.EDJE_EXTERNAL_PARAM_TYPE_STRING or \
|
||||||
p.type == <int>EDJE_EXTERNAL_PARAM_TYPE_CHOICE:
|
p.type == <int>enums.EDJE_EXTERNAL_PARAM_TYPE_CHOICE:
|
||||||
return _ctouni(p.s)
|
return _ctouni(p.s)
|
||||||
|
|
||||||
def part_box_append(self, part, Object obj):
|
def part_box_append(self, part, Object obj):
|
||||||
|
@ -1199,18 +1247,18 @@ cdef class Edje(Object):
|
||||||
cdef void message_send_int(self, int id, int data):
|
cdef void message_send_int(self, int id, int data):
|
||||||
cdef Edje_Message_Int m
|
cdef Edje_Message_Int m
|
||||||
m.val = data
|
m.val = data
|
||||||
edje_object_message_send(self.obj, EDJE_MESSAGE_INT, id, <void*>&m)
|
edje_object_message_send(self.obj, enums.EDJE_MESSAGE_INT, id, <void*>&m)
|
||||||
|
|
||||||
cdef void message_send_float(self, int id, float data):
|
cdef void message_send_float(self, int id, float data):
|
||||||
cdef Edje_Message_Float m
|
cdef Edje_Message_Float m
|
||||||
m.val = data
|
m.val = data
|
||||||
edje_object_message_send(self.obj, EDJE_MESSAGE_FLOAT, id, <void*>&m)
|
edje_object_message_send(self.obj, enums.EDJE_MESSAGE_FLOAT, id, <void*>&m)
|
||||||
|
|
||||||
cdef void message_send_str(self, int id, data):
|
cdef void message_send_str(self, int id, data):
|
||||||
cdef Edje_Message_String m
|
cdef Edje_Message_String m
|
||||||
if isinstance(data, unicode): data = PyUnicode_AsUTF8String(data)
|
if isinstance(data, unicode): data = PyUnicode_AsUTF8String(data)
|
||||||
m.str = <char *>data if data is not None else NULL
|
m.str = <char *>data if data is not None else NULL
|
||||||
edje_object_message_send(self.obj, EDJE_MESSAGE_STRING, id, <void*>&m)
|
edje_object_message_send(self.obj, enums.EDJE_MESSAGE_STRING, id, <void*>&m)
|
||||||
|
|
||||||
cdef void message_send_str_set(self, int id, data):
|
cdef void message_send_str_set(self, int id, data):
|
||||||
cdef int count, i
|
cdef int count, i
|
||||||
|
@ -1226,7 +1274,7 @@ cdef class Edje(Object):
|
||||||
m.str[i] = s
|
m.str[i] = s
|
||||||
i += 1
|
i += 1
|
||||||
|
|
||||||
edje_object_message_send(self.obj, EDJE_MESSAGE_STRING_SET, id,
|
edje_object_message_send(self.obj, enums.EDJE_MESSAGE_STRING_SET, id,
|
||||||
<void*>m)
|
<void*>m)
|
||||||
PyMem_Free(m)
|
PyMem_Free(m)
|
||||||
|
|
||||||
|
@ -1235,7 +1283,7 @@ cdef class Edje(Object):
|
||||||
if isinstance(s, unicode): s = PyUnicode_AsUTF8String(s)
|
if isinstance(s, unicode): s = PyUnicode_AsUTF8String(s)
|
||||||
m.str = <char *>s if s is not None else NULL
|
m.str = <char *>s if s is not None else NULL
|
||||||
m.val = i
|
m.val = i
|
||||||
edje_object_message_send(self.obj, EDJE_MESSAGE_STRING_INT, id,
|
edje_object_message_send(self.obj, enums.EDJE_MESSAGE_STRING_INT, id,
|
||||||
<void*>&m)
|
<void*>&m)
|
||||||
|
|
||||||
cdef void message_send_str_float(self, int id, s, float f):
|
cdef void message_send_str_float(self, int id, s, float f):
|
||||||
|
@ -1243,7 +1291,7 @@ cdef class Edje(Object):
|
||||||
if isinstance(s, unicode): s = PyUnicode_AsUTF8String(s)
|
if isinstance(s, unicode): s = PyUnicode_AsUTF8String(s)
|
||||||
m.str = <char *>s if s is not None else NULL
|
m.str = <char *>s if s is not None else NULL
|
||||||
m.val = f
|
m.val = f
|
||||||
edje_object_message_send(self.obj, EDJE_MESSAGE_STRING_FLOAT, id,
|
edje_object_message_send(self.obj, enums.EDJE_MESSAGE_STRING_FLOAT, id,
|
||||||
<void*>&m)
|
<void*>&m)
|
||||||
|
|
||||||
cdef void message_send_str_int_set(self, int id, s, data):
|
cdef void message_send_str_int_set(self, int id, s, data):
|
||||||
|
@ -1262,7 +1310,7 @@ cdef class Edje(Object):
|
||||||
m.val[i] = f
|
m.val[i] = f
|
||||||
i += 1
|
i += 1
|
||||||
|
|
||||||
edje_object_message_send(self.obj, EDJE_MESSAGE_STRING_INT_SET, id,
|
edje_object_message_send(self.obj, enums.EDJE_MESSAGE_STRING_INT_SET, id,
|
||||||
<void*>m)
|
<void*>m)
|
||||||
PyMem_Free(m)
|
PyMem_Free(m)
|
||||||
|
|
||||||
|
@ -1283,7 +1331,7 @@ cdef class Edje(Object):
|
||||||
m.val[i] = f
|
m.val[i] = f
|
||||||
i += 1
|
i += 1
|
||||||
|
|
||||||
edje_object_message_send(self.obj, EDJE_MESSAGE_STRING_FLOAT_SET, id,
|
edje_object_message_send(self.obj, enums.EDJE_MESSAGE_STRING_FLOAT_SET, id,
|
||||||
<void*>m)
|
<void*>m)
|
||||||
PyMem_Free(m)
|
PyMem_Free(m)
|
||||||
|
|
||||||
|
@ -1301,7 +1349,7 @@ cdef class Edje(Object):
|
||||||
m.val[i] = f
|
m.val[i] = f
|
||||||
i += 1
|
i += 1
|
||||||
|
|
||||||
edje_object_message_send(self.obj, EDJE_MESSAGE_INT_SET, id,
|
edje_object_message_send(self.obj, enums.EDJE_MESSAGE_INT_SET, id,
|
||||||
<void*>m)
|
<void*>m)
|
||||||
PyMem_Free(m)
|
PyMem_Free(m)
|
||||||
|
|
||||||
|
@ -1319,7 +1367,7 @@ cdef class Edje(Object):
|
||||||
m.val[i] = f
|
m.val[i] = f
|
||||||
i += 1
|
i += 1
|
||||||
|
|
||||||
edje_object_message_send(self.obj, EDJE_MESSAGE_FLOAT_SET, id,
|
edje_object_message_send(self.obj, enums.EDJE_MESSAGE_FLOAT_SET, id,
|
||||||
<void*>m)
|
<void*>m)
|
||||||
PyMem_Free(m)
|
PyMem_Free(m)
|
||||||
|
|
||||||
|
@ -1506,4 +1554,4 @@ def on_text_change(func):
|
||||||
return func
|
return func
|
||||||
|
|
||||||
|
|
||||||
_object_mapping_register("Edje_Object", Edje)
|
_object_mapping_register("Efl.Canvas.Layout", Edje)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
||||||
|
@ -26,6 +26,12 @@ from efl.evas cimport Canvas
|
||||||
from efl.edje cimport Edje_Part_Type, Edje, ExternalParam_from_ptr
|
from efl.edje cimport Edje_Part_Type, Edje, ExternalParam_from_ptr
|
||||||
from efl.edje import EDJE_PART_TYPE_EXTERNAL
|
from efl.edje import EDJE_PART_TYPE_EXTERNAL
|
||||||
|
|
||||||
|
cimport efl.edje_edit.enums as enums
|
||||||
|
|
||||||
|
EDJE_EDIT_IMAGE_COMP_RAW = enums.EDJE_EDIT_IMAGE_COMP_RAW
|
||||||
|
EDJE_EDIT_IMAGE_COMP_USER = enums.EDJE_EDIT_IMAGE_COMP_USER
|
||||||
|
EDJE_EDIT_IMAGE_COMP_COMP = enums.EDJE_EDIT_IMAGE_COMP_COMP
|
||||||
|
EDJE_EDIT_IMAGE_COMP_LOSSY = enums.EDJE_EDIT_IMAGE_COMP_LOSSY
|
||||||
|
|
||||||
cdef class EdjeEdit(Edje):
|
cdef class EdjeEdit(Edje):
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
||||||
|
@ -78,7 +78,6 @@ __all__ = (
|
||||||
"slideshow",
|
"slideshow",
|
||||||
"spinner",
|
"spinner",
|
||||||
#"store",
|
#"store",
|
||||||
"systray",
|
|
||||||
"table",
|
"table",
|
||||||
"theme",
|
"theme",
|
||||||
"thumb",
|
"thumb",
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
||||||
|
@ -39,9 +39,603 @@ import traceback
|
||||||
import atexit
|
import atexit
|
||||||
|
|
||||||
|
|
||||||
include "elementary_cdef.pxi"
|
cimport efl.elementary.enums as enums
|
||||||
|
|
||||||
|
|
||||||
|
EDJE_CHANNEL_EFFECT = enums.EDJE_CHANNEL_EFFECT
|
||||||
|
EDJE_CHANNEL_BACKGROUND = enums.EDJE_CHANNEL_BACKGROUND
|
||||||
|
EDJE_CHANNEL_MUSIC = enums.EDJE_CHANNEL_MUSIC
|
||||||
|
EDJE_CHANNEL_FOREGROUND = enums.EDJE_CHANNEL_FOREGROUND
|
||||||
|
EDJE_CHANNEL_INTERFACE = enums.EDJE_CHANNEL_INTERFACE
|
||||||
|
EDJE_CHANNEL_INPUT = enums.EDJE_CHANNEL_INPUT
|
||||||
|
EDJE_CHANNEL_ALERT = enums.EDJE_CHANNEL_ALERT
|
||||||
|
EDJE_CHANNEL_ALL = enums.EDJE_CHANNEL_ALL
|
||||||
|
|
||||||
|
|
||||||
|
ELM_EVENT_CONFIG_ALL_CHANGED = enums.ELM_EVENT_CONFIG_ALL_CHANGED
|
||||||
|
ELM_EVENT_POLICY_CHANGED = enums.ELM_EVENT_POLICY_CHANGED
|
||||||
|
ELM_EVENT_PROCESS_BACKGROUND = enums.ELM_EVENT_PROCESS_BACKGROUND
|
||||||
|
ELM_EVENT_PROCESS_FOREGROUND = enums.ELM_EVENT_PROCESS_FOREGROUND
|
||||||
|
ELM_ECORE_EVENT_ETHUMB_CONNECT = enums.ELM_ECORE_EVENT_ETHUMB_CONNECT
|
||||||
|
ELM_EVENT_SYS_NOTIFY_NOTIFICATION_CLOSED = enums.ELM_EVENT_SYS_NOTIFY_NOTIFICATION_CLOSED
|
||||||
|
ELM_EVENT_SYS_NOTIFY_ACTION_INVOKED = enums.ELM_EVENT_SYS_NOTIFY_ACTION_INVOKED
|
||||||
|
|
||||||
|
ELM_FOCUS_PREVIOUS = enums.ELM_FOCUS_PREVIOUS
|
||||||
|
ELM_FOCUS_NEXT = enums.ELM_FOCUS_NEXT
|
||||||
|
ELM_FOCUS_UP = enums.ELM_FOCUS_UP
|
||||||
|
ELM_FOCUS_DOWN = enums.ELM_FOCUS_DOWN
|
||||||
|
ELM_FOCUS_RIGHT = enums.ELM_FOCUS_RIGHT
|
||||||
|
ELM_FOCUS_LEFT = enums.ELM_FOCUS_LEFT
|
||||||
|
|
||||||
|
ELM_FOCUS_MOVE_POLICY_CLICK = enums.ELM_FOCUS_MOVE_POLICY_CLICK
|
||||||
|
ELM_FOCUS_MOVE_POLICY_IN = enums.ELM_FOCUS_MOVE_POLICY_IN
|
||||||
|
ELM_FOCUS_MOVE_POLICY_KEY_ONLY = enums.ELM_FOCUS_MOVE_POLICY_KEY_ONLY
|
||||||
|
|
||||||
|
ELM_FOCUS_REGION_SHOW_WIDGET = enums.ELM_FOCUS_REGION_SHOW_WIDGET
|
||||||
|
ELM_FOCUS_REGION_SHOW_ITEM = enums.ELM_FOCUS_REGION_SHOW_ITEM
|
||||||
|
|
||||||
|
ELM_FOCUS_AUTOSCROLL_MODE_SHOW = enums.ELM_FOCUS_AUTOSCROLL_MODE_SHOW
|
||||||
|
ELM_FOCUS_AUTOSCROLL_MODE_NONE = enums.ELM_FOCUS_AUTOSCROLL_MODE_NONE
|
||||||
|
ELM_FOCUS_AUTOSCROLL_MODE_BRING_IN = enums.ELM_FOCUS_AUTOSCROLL_MODE_BRING_IN
|
||||||
|
|
||||||
|
ELM_SEL_TYPE_PRIMARY = enums.ELM_SEL_TYPE_PRIMARY
|
||||||
|
ELM_SEL_TYPE_SECONDARY = enums.ELM_SEL_TYPE_SECONDARY
|
||||||
|
ELM_SEL_TYPE_XDND = enums.ELM_SEL_TYPE_XDND
|
||||||
|
ELM_SEL_TYPE_CLIPBOARD = enums.ELM_SEL_TYPE_CLIPBOARD
|
||||||
|
|
||||||
|
ELM_SEL_FORMAT_TARGETS = enums.ELM_SEL_FORMAT_TARGETS
|
||||||
|
ELM_SEL_FORMAT_NONE = enums.ELM_SEL_FORMAT_NONE
|
||||||
|
ELM_SEL_FORMAT_TEXT = enums.ELM_SEL_FORMAT_TEXT
|
||||||
|
ELM_SEL_FORMAT_MARKUP = enums.ELM_SEL_FORMAT_MARKUP
|
||||||
|
ELM_SEL_FORMAT_IMAGE = enums.ELM_SEL_FORMAT_IMAGE
|
||||||
|
ELM_SEL_FORMAT_VCARD = enums.ELM_SEL_FORMAT_VCARD
|
||||||
|
ELM_SEL_FORMAT_HTML = enums.ELM_SEL_FORMAT_HTML
|
||||||
|
|
||||||
|
ELM_XDND_ACTION_UNKNOWN = enums.ELM_XDND_ACTION_UNKNOWN
|
||||||
|
ELM_XDND_ACTION_COPY = enums.ELM_XDND_ACTION_COPY
|
||||||
|
ELM_XDND_ACTION_MOVE = enums.ELM_XDND_ACTION_MOVE
|
||||||
|
ELM_XDND_ACTION_PRIVATE = enums.ELM_XDND_ACTION_PRIVATE
|
||||||
|
ELM_XDND_ACTION_ASK = enums.ELM_XDND_ACTION_ASK
|
||||||
|
ELM_XDND_ACTION_LIST = enums.ELM_XDND_ACTION_LIST
|
||||||
|
ELM_XDND_ACTION_LINK = enums.ELM_XDND_ACTION_LINK
|
||||||
|
ELM_XDND_ACTION_DESCRIPTION = enums.ELM_XDND_ACTION_DESCRIPTION
|
||||||
|
|
||||||
|
ELM_TOOLTIP_ORIENT_NONE = enums.ELM_TOOLTIP_ORIENT_NONE
|
||||||
|
ELM_TOOLTIP_ORIENT_TOP_LEFT = enums.ELM_TOOLTIP_ORIENT_TOP_LEFT
|
||||||
|
ELM_TOOLTIP_ORIENT_TOP = enums.ELM_TOOLTIP_ORIENT_TOP
|
||||||
|
ELM_TOOLTIP_ORIENT_TOP_RIGHT = enums.ELM_TOOLTIP_ORIENT_TOP_RIGHT
|
||||||
|
ELM_TOOLTIP_ORIENT_LEFT = enums.ELM_TOOLTIP_ORIENT_LEFT
|
||||||
|
ELM_TOOLTIP_ORIENT_CENTER = enums.ELM_TOOLTIP_ORIENT_CENTER
|
||||||
|
ELM_TOOLTIP_ORIENT_RIGHT = enums.ELM_TOOLTIP_ORIENT_RIGHT
|
||||||
|
ELM_TOOLTIP_ORIENT_BOTTOM_LEFT = enums.ELM_TOOLTIP_ORIENT_BOTTOM_LEFT
|
||||||
|
ELM_TOOLTIP_ORIENT_BOTTOM = enums.ELM_TOOLTIP_ORIENT_BOTTOM
|
||||||
|
ELM_TOOLTIP_ORIENT_BOTTOM_RIGHT = enums.ELM_TOOLTIP_ORIENT_BOTTOM_RIGHT
|
||||||
|
ELM_TOOLTIP_ORIENT_LAST = enums.ELM_TOOLTIP_ORIENT_LAST
|
||||||
|
|
||||||
|
ELM_POLICY_QUIT = enums.ELM_POLICY_QUIT
|
||||||
|
ELM_POLICY_EXIT = enums.ELM_POLICY_EXIT
|
||||||
|
ELM_POLICY_THROTTLE = enums.ELM_POLICY_THROTTLE
|
||||||
|
ELM_POLICY_LAST = enums.ELM_POLICY_LAST
|
||||||
|
|
||||||
|
ELM_POLICY_QUIT_NONE = enums.ELM_POLICY_QUIT_NONE
|
||||||
|
ELM_POLICY_QUIT_LAST_WINDOW_CLOSED = enums.ELM_POLICY_QUIT_LAST_WINDOW_CLOSED
|
||||||
|
ELM_POLICY_QUIT_LAST_WINDOW_HIDDEN = enums.ELM_POLICY_QUIT_LAST_WINDOW_HIDDEN
|
||||||
|
|
||||||
|
ELM_POLICY_EXIT_NONE = enums.ELM_POLICY_EXIT_NONE
|
||||||
|
ELM_POLICY_EXIT_WINDOWS_DEL = enums.ELM_POLICY_EXIT_WINDOWS_DEL
|
||||||
|
|
||||||
|
ELM_POLICY_THROTTLE_CONFIG = enums.ELM_POLICY_THROTTLE_CONFIG
|
||||||
|
ELM_POLICY_THROTTLE_HIDDEN_ALWAYS = enums.ELM_POLICY_THROTTLE_HIDDEN_ALWAYS
|
||||||
|
ELM_POLICY_THROTTLE_NEVER = enums.ELM_POLICY_THROTTLE_NEVER
|
||||||
|
|
||||||
|
ELM_SYS_NOTIFY_URGENCY_LOW = enums.ELM_SYS_NOTIFY_URGENCY_LOW
|
||||||
|
ELM_SYS_NOTIFY_URGENCY_NORMAL = enums.ELM_SYS_NOTIFY_URGENCY_NORMAL
|
||||||
|
ELM_SYS_NOTIFY_URGENCY_CRITICAL = enums.ELM_SYS_NOTIFY_URGENCY_CRITICAL
|
||||||
|
|
||||||
|
ELM_GLOB_MATCH_NO_ESCAPE = enums.ELM_GLOB_MATCH_NO_ESCAPE
|
||||||
|
ELM_GLOB_MATCH_PATH = enums.ELM_GLOB_MATCH_PATH
|
||||||
|
ELM_GLOB_MATCH_PERIOD = enums.ELM_GLOB_MATCH_PERIOD
|
||||||
|
ELM_GLOB_MATCH_NOCASE = enums.ELM_GLOB_MATCH_NOCASE
|
||||||
|
|
||||||
|
ELM_PROCESS_STATE_FOREGROUND = enums.ELM_PROCESS_STATE_FOREGROUND
|
||||||
|
ELM_PROCESS_STATE_BACKGROUND = enums.ELM_PROCESS_STATE_BACKGROUND
|
||||||
|
|
||||||
|
ELM_SYS_NOTIFY_URGENCY_LOW = enums.ELM_SYS_NOTIFY_URGENCY_LOW
|
||||||
|
ELM_SYS_NOTIFY_URGENCY_NORMAL = enums.ELM_SYS_NOTIFY_URGENCY_NORMAL
|
||||||
|
ELM_SYS_NOTIFY_URGENCY_CRITICAL = enums.ELM_SYS_NOTIFY_URGENCY_CRITICAL
|
||||||
|
|
||||||
|
ELM_ACTIONSLIDER_NONE = enums.ELM_ACTIONSLIDER_NONE
|
||||||
|
ELM_ACTIONSLIDER_LEFT = enums.ELM_ACTIONSLIDER_LEFT
|
||||||
|
ELM_ACTIONSLIDER_CENTER = enums.ELM_ACTIONSLIDER_CENTER
|
||||||
|
ELM_ACTIONSLIDER_RIGHT = enums.ELM_ACTIONSLIDER_RIGHT
|
||||||
|
ELM_ACTIONSLIDER_ALL = enums.ELM_ACTIONSLIDER_ALL
|
||||||
|
|
||||||
|
ELM_BG_OPTION_CENTER = enums.ELM_BG_OPTION_CENTER
|
||||||
|
ELM_BG_OPTION_SCALE = enums.ELM_BG_OPTION_SCALE
|
||||||
|
ELM_BG_OPTION_STRETCH = enums.ELM_BG_OPTION_STRETCH
|
||||||
|
ELM_BG_OPTION_TILE = enums.ELM_BG_OPTION_TILE
|
||||||
|
ELM_BG_OPTION_LAST = enums.ELM_BG_OPTION_LAST
|
||||||
|
|
||||||
|
ELM_BUBBLE_POS_TOP_LEFT = enums.ELM_BUBBLE_POS_TOP_LEFT
|
||||||
|
ELM_BUBBLE_POS_TOP_RIGHT = enums.ELM_BUBBLE_POS_TOP_RIGHT
|
||||||
|
ELM_BUBBLE_POS_BOTTOM_LEFT = enums.ELM_BUBBLE_POS_BOTTOM_LEFT
|
||||||
|
ELM_BUBBLE_POS_BOTTOM_RIGHT = enums.ELM_BUBBLE_POS_BOTTOM_RIGHT
|
||||||
|
|
||||||
|
ELM_CALENDAR_UNIQUE = enums.ELM_CALENDAR_UNIQUE
|
||||||
|
ELM_CALENDAR_DAILY = enums.ELM_CALENDAR_DAILY
|
||||||
|
ELM_CALENDAR_WEEKLY = enums.ELM_CALENDAR_WEEKLY
|
||||||
|
ELM_CALENDAR_MONTHLY = enums.ELM_CALENDAR_MONTHLY
|
||||||
|
ELM_CALENDAR_ANNUALLY = enums.ELM_CALENDAR_ANNUALLY
|
||||||
|
ELM_CALENDAR_LAST_DAY_OF_MONTH = enums.ELM_CALENDAR_LAST_DAY_OF_MONTH
|
||||||
|
ELM_CALENDAR_REVERSE_DAILY = enums.ELM_CALENDAR_REVERSE_DAILY
|
||||||
|
|
||||||
|
ELM_CALENDAR_SELECT_MODE_DEFAULT = enums.ELM_CALENDAR_SELECT_MODE_DEFAULT
|
||||||
|
ELM_CALENDAR_SELECT_MODE_ALWAYS = enums.ELM_CALENDAR_SELECT_MODE_ALWAYS
|
||||||
|
ELM_CALENDAR_SELECT_MODE_NONE = enums.ELM_CALENDAR_SELECT_MODE_NONE
|
||||||
|
ELM_CALENDAR_SELECT_MODE_ONDEMAND = enums.ELM_CALENDAR_SELECT_MODE_ONDEMAND
|
||||||
|
|
||||||
|
ELM_CALENDAR_SELECTABLE_NONE = enums.ELM_CALENDAR_SELECTABLE_NONE
|
||||||
|
ELM_CALENDAR_SELECTABLE_YEAR = enums.ELM_CALENDAR_SELECTABLE_YEAR
|
||||||
|
ELM_CALENDAR_SELECTABLE_MONTH = enums.ELM_CALENDAR_SELECTABLE_MONTH
|
||||||
|
ELM_CALENDAR_SELECTABLE_DAY = enums.ELM_CALENDAR_SELECTABLE_DAY
|
||||||
|
|
||||||
|
ELM_DAY_SUNDAY = enums.ELM_DAY_SUNDAY
|
||||||
|
ELM_DAY_MONDAY = enums.ELM_DAY_MONDAY
|
||||||
|
ELM_DAY_TUESDAY = enums.ELM_DAY_TUESDAY
|
||||||
|
ELM_DAY_WEDNESDAY = enums.ELM_DAY_WEDNESDAY
|
||||||
|
ELM_DAY_THURSDAY = enums.ELM_DAY_THURSDAY
|
||||||
|
ELM_DAY_FRIDAY = enums.ELM_DAY_FRIDAY
|
||||||
|
ELM_DAY_SATURDAY = enums.ELM_DAY_SATURDAY
|
||||||
|
ELM_DAY_LAST = enums.ELM_DAY_LAST
|
||||||
|
|
||||||
|
ELM_CLOCK_EDIT_DEFAULT = enums.ELM_CLOCK_EDIT_DEFAULT
|
||||||
|
ELM_CLOCK_EDIT_HOUR_DECIMAL = enums.ELM_CLOCK_EDIT_HOUR_DECIMAL
|
||||||
|
ELM_CLOCK_EDIT_HOUR_UNIT = enums.ELM_CLOCK_EDIT_HOUR_UNIT
|
||||||
|
ELM_CLOCK_EDIT_MIN_DECIMAL = enums.ELM_CLOCK_EDIT_MIN_DECIMAL
|
||||||
|
ELM_CLOCK_EDIT_MIN_UNIT = enums.ELM_CLOCK_EDIT_MIN_UNIT
|
||||||
|
ELM_CLOCK_EDIT_SEC_DECIMAL = enums.ELM_CLOCK_EDIT_SEC_DECIMAL
|
||||||
|
ELM_CLOCK_EDIT_SEC_UNIT = enums.ELM_CLOCK_EDIT_SEC_UNIT
|
||||||
|
ELM_CLOCK_EDIT_ALL = enums.ELM_CLOCK_EDIT_ALL
|
||||||
|
|
||||||
|
ELM_COLORSELECTOR_PALETTE = enums.ELM_COLORSELECTOR_PALETTE
|
||||||
|
ELM_COLORSELECTOR_COMPONENTS = enums.ELM_COLORSELECTOR_COMPONENTS
|
||||||
|
ELM_COLORSELECTOR_BOTH = enums.ELM_COLORSELECTOR_BOTH
|
||||||
|
|
||||||
|
ELM_SOFTCURSOR_MODE_AUTO = enums.ELM_SOFTCURSOR_MODE_AUTO
|
||||||
|
ELM_SOFTCURSOR_MODE_ON = enums.ELM_SOFTCURSOR_MODE_ON
|
||||||
|
ELM_SOFTCURSOR_MODE_OFF = enums.ELM_SOFTCURSOR_MODE_OFF
|
||||||
|
|
||||||
|
ELM_SLIDER_INDICATOR_VISIBLE_MODE_DEFAULT = enums.ELM_SLIDER_INDICATOR_VISIBLE_MODE_DEFAULT
|
||||||
|
ELM_SLIDER_INDICATOR_VISIBLE_MODE_ALWAYS = enums.ELM_SLIDER_INDICATOR_VISIBLE_MODE_ALWAYS
|
||||||
|
ELM_SLIDER_INDICATOR_VISIBLE_MODE_ON_FOCUS = enums.ELM_SLIDER_INDICATOR_VISIBLE_MODE_ON_FOCUS
|
||||||
|
ELM_SLIDER_INDICATOR_VISIBLE_MODE_NONE = enums.ELM_SLIDER_INDICATOR_VISIBLE_MODE_NONE
|
||||||
|
|
||||||
|
ELM_CTXPOPUP_DIRECTION_DOWN = enums.ELM_CTXPOPUP_DIRECTION_DOWN
|
||||||
|
ELM_CTXPOPUP_DIRECTION_RIGHT = enums.ELM_CTXPOPUP_DIRECTION_RIGHT
|
||||||
|
ELM_CTXPOPUP_DIRECTION_LEFT = enums.ELM_CTXPOPUP_DIRECTION_LEFT
|
||||||
|
ELM_CTXPOPUP_DIRECTION_UP = enums.ELM_CTXPOPUP_DIRECTION_UP
|
||||||
|
ELM_CTXPOPUP_DIRECTION_UNKNOWN = enums.ELM_CTXPOPUP_DIRECTION_UNKNOWN
|
||||||
|
|
||||||
|
ELM_DATETIME_YEAR = enums.ELM_DATETIME_YEAR
|
||||||
|
ELM_DATETIME_MONTH = enums.ELM_DATETIME_MONTH
|
||||||
|
ELM_DATETIME_DATE = enums.ELM_DATETIME_DATE
|
||||||
|
ELM_DATETIME_HOUR = enums.ELM_DATETIME_HOUR
|
||||||
|
ELM_DATETIME_MINUTE = enums.ELM_DATETIME_MINUTE
|
||||||
|
ELM_DATETIME_AMPM = enums.ELM_DATETIME_AMPM
|
||||||
|
|
||||||
|
ELM_DAYSELECTOR_SUN = enums.ELM_DAYSELECTOR_SUN
|
||||||
|
ELM_DAYSELECTOR_MON = enums.ELM_DAYSELECTOR_MON
|
||||||
|
ELM_DAYSELECTOR_TUE = enums.ELM_DAYSELECTOR_TUE
|
||||||
|
ELM_DAYSELECTOR_WED = enums.ELM_DAYSELECTOR_WED
|
||||||
|
ELM_DAYSELECTOR_THU = enums.ELM_DAYSELECTOR_THU
|
||||||
|
ELM_DAYSELECTOR_FRI = enums.ELM_DAYSELECTOR_FRI
|
||||||
|
ELM_DAYSELECTOR_SAT = enums.ELM_DAYSELECTOR_SAT
|
||||||
|
ELM_DAYSELECTOR_MAX = enums.ELM_DAYSELECTOR_MAX
|
||||||
|
|
||||||
|
ELM_AUTOCAPITAL_TYPE_NONE = enums.ELM_AUTOCAPITAL_TYPE_NONE
|
||||||
|
ELM_AUTOCAPITAL_TYPE_WORD = enums.ELM_AUTOCAPITAL_TYPE_WORD
|
||||||
|
ELM_AUTOCAPITAL_TYPE_SENTENCE = enums.ELM_AUTOCAPITAL_TYPE_SENTENCE
|
||||||
|
ELM_AUTOCAPITAL_TYPE_ALLCHARACTER = enums.ELM_AUTOCAPITAL_TYPE_ALLCHARACTER
|
||||||
|
|
||||||
|
ELM_CNP_MODE_MARKUP = enums.ELM_CNP_MODE_MARKUP
|
||||||
|
ELM_CNP_MODE_NO_IMAGE = enums.ELM_CNP_MODE_NO_IMAGE
|
||||||
|
ELM_CNP_MODE_PLAINTEXT = enums.ELM_CNP_MODE_PLAINTEXT
|
||||||
|
|
||||||
|
ELM_INPUT_HINT_NONE = enums.ELM_INPUT_HINT_NONE
|
||||||
|
ELM_INPUT_HINT_AUTO_COMPLETE = enums.ELM_INPUT_HINT_AUTO_COMPLETE
|
||||||
|
ELM_INPUT_HINT_SENSITIVE_DATA = enums.ELM_INPUT_HINT_SENSITIVE_DATA
|
||||||
|
|
||||||
|
ELM_INPUT_PANEL_LANG_AUTOMATIC = enums.ELM_INPUT_PANEL_LANG_AUTOMATIC
|
||||||
|
ELM_INPUT_PANEL_LANG_ALPHABET = enums.ELM_INPUT_PANEL_LANG_ALPHABET
|
||||||
|
|
||||||
|
ELM_INPUT_PANEL_LAYOUT_NORMAL = enums.ELM_INPUT_PANEL_LAYOUT_NORMAL
|
||||||
|
ELM_INPUT_PANEL_LAYOUT_NUMBER = enums.ELM_INPUT_PANEL_LAYOUT_NUMBER
|
||||||
|
ELM_INPUT_PANEL_LAYOUT_EMAIL = enums.ELM_INPUT_PANEL_LAYOUT_EMAIL
|
||||||
|
ELM_INPUT_PANEL_LAYOUT_URL = enums.ELM_INPUT_PANEL_LAYOUT_URL
|
||||||
|
ELM_INPUT_PANEL_LAYOUT_PHONENUMBER = enums.ELM_INPUT_PANEL_LAYOUT_PHONENUMBER
|
||||||
|
ELM_INPUT_PANEL_LAYOUT_IP = enums.ELM_INPUT_PANEL_LAYOUT_IP
|
||||||
|
ELM_INPUT_PANEL_LAYOUT_MONTH = enums.ELM_INPUT_PANEL_LAYOUT_MONTH
|
||||||
|
ELM_INPUT_PANEL_LAYOUT_NUMBERONLY = enums.ELM_INPUT_PANEL_LAYOUT_NUMBERONLY
|
||||||
|
ELM_INPUT_PANEL_LAYOUT_INVALID = enums.ELM_INPUT_PANEL_LAYOUT_INVALID
|
||||||
|
ELM_INPUT_PANEL_LAYOUT_HEX = enums.ELM_INPUT_PANEL_LAYOUT_HEX
|
||||||
|
ELM_INPUT_PANEL_LAYOUT_TERMINAL = enums.ELM_INPUT_PANEL_LAYOUT_TERMINAL
|
||||||
|
ELM_INPUT_PANEL_LAYOUT_PASSWORD = enums.ELM_INPUT_PANEL_LAYOUT_PASSWORD
|
||||||
|
ELM_INPUT_PANEL_LAYOUT_DATETIME = enums.ELM_INPUT_PANEL_LAYOUT_DATETIME
|
||||||
|
ELM_INPUT_PANEL_LAYOUT_EMOTICON = enums.ELM_INPUT_PANEL_LAYOUT_EMOTICON
|
||||||
|
ELM_INPUT_PANEL_LAYOUT_VOICE = enums.ELM_INPUT_PANEL_LAYOUT_VOICE
|
||||||
|
|
||||||
|
ELM_INPUT_PANEL_LAYOUT_NORMAL_VARIATION_NORMAL = enums.ELM_INPUT_PANEL_LAYOUT_NORMAL_VARIATION_NORMAL
|
||||||
|
ELM_INPUT_PANEL_LAYOUT_NORMAL_VARIATION_FILENAME = enums.ELM_INPUT_PANEL_LAYOUT_NORMAL_VARIATION_FILENAME
|
||||||
|
ELM_INPUT_PANEL_LAYOUT_NORMAL_VARIATION_PERSON_NAME = enums.ELM_INPUT_PANEL_LAYOUT_NORMAL_VARIATION_PERSON_NAME
|
||||||
|
|
||||||
|
ELM_INPUT_PANEL_LAYOUT_NUMBERONLY_VARIATION_NORMAL = enums.ELM_INPUT_PANEL_LAYOUT_NUMBERONLY_VARIATION_NORMAL
|
||||||
|
ELM_INPUT_PANEL_LAYOUT_NUMBERONLY_VARIATION_SIGNED = enums.ELM_INPUT_PANEL_LAYOUT_NUMBERONLY_VARIATION_SIGNED
|
||||||
|
ELM_INPUT_PANEL_LAYOUT_NUMBERONLY_VARIATION_DECIMAL = enums.ELM_INPUT_PANEL_LAYOUT_NUMBERONLY_VARIATION_DECIMAL
|
||||||
|
ELM_INPUT_PANEL_LAYOUT_NUMBERONLY_VARIATION_SIGNED_AND_DECIMAL = enums.ELM_INPUT_PANEL_LAYOUT_NUMBERONLY_VARIATION_SIGNED_AND_DECIMAL
|
||||||
|
|
||||||
|
ELM_INPUT_PANEL_LAYOUT_PASSWORD_VARIATION_NORMAL = enums.ELM_INPUT_PANEL_LAYOUT_PASSWORD_VARIATION_NORMAL
|
||||||
|
ELM_INPUT_PANEL_LAYOUT_PASSWORD_VARIATION_NUMBERONLY = enums.ELM_INPUT_PANEL_LAYOUT_PASSWORD_VARIATION_NUMBERONLY
|
||||||
|
|
||||||
|
ELM_INPUT_PANEL_RETURN_KEY_TYPE_DEFAULT = enums.ELM_INPUT_PANEL_RETURN_KEY_TYPE_DEFAULT
|
||||||
|
ELM_INPUT_PANEL_RETURN_KEY_TYPE_DONE = enums.ELM_INPUT_PANEL_RETURN_KEY_TYPE_DONE
|
||||||
|
ELM_INPUT_PANEL_RETURN_KEY_TYPE_GO = enums.ELM_INPUT_PANEL_RETURN_KEY_TYPE_GO
|
||||||
|
ELM_INPUT_PANEL_RETURN_KEY_TYPE_JOIN = enums.ELM_INPUT_PANEL_RETURN_KEY_TYPE_JOIN
|
||||||
|
ELM_INPUT_PANEL_RETURN_KEY_TYPE_LOGIN = enums.ELM_INPUT_PANEL_RETURN_KEY_TYPE_LOGIN
|
||||||
|
ELM_INPUT_PANEL_RETURN_KEY_TYPE_NEXT = enums.ELM_INPUT_PANEL_RETURN_KEY_TYPE_NEXT
|
||||||
|
ELM_INPUT_PANEL_RETURN_KEY_TYPE_SEARCH = enums.ELM_INPUT_PANEL_RETURN_KEY_TYPE_SEARCH
|
||||||
|
ELM_INPUT_PANEL_RETURN_KEY_TYPE_SEND = enums.ELM_INPUT_PANEL_RETURN_KEY_TYPE_SEND
|
||||||
|
ELM_INPUT_PANEL_RETURN_KEY_TYPE_SIGNIN = enums.ELM_INPUT_PANEL_RETURN_KEY_TYPE_SIGNIN
|
||||||
|
|
||||||
|
ELM_TEXT_FORMAT_PLAIN_UTF8 = enums.ELM_TEXT_FORMAT_PLAIN_UTF8
|
||||||
|
ELM_TEXT_FORMAT_MARKUP_UTF8 = enums.ELM_TEXT_FORMAT_MARKUP_UTF8
|
||||||
|
|
||||||
|
ELM_WRAP_NONE = enums.ELM_WRAP_NONE
|
||||||
|
ELM_WRAP_CHAR = enums.ELM_WRAP_CHAR
|
||||||
|
ELM_WRAP_WORD = enums.ELM_WRAP_WORD
|
||||||
|
ELM_WRAP_MIXED = enums.ELM_WRAP_MIXED
|
||||||
|
|
||||||
|
ELM_FILESELECTOR_LIST = enums.ELM_FILESELECTOR_LIST
|
||||||
|
ELM_FILESELECTOR_GRID = enums.ELM_FILESELECTOR_GRID
|
||||||
|
|
||||||
|
ELM_FILESELECTOR_SORT_BY_FILENAME_ASC = enums.ELM_FILESELECTOR_SORT_BY_FILENAME_ASC
|
||||||
|
ELM_FILESELECTOR_SORT_BY_FILENAME_DESC = enums.ELM_FILESELECTOR_SORT_BY_FILENAME_DESC
|
||||||
|
ELM_FILESELECTOR_SORT_BY_TYPE_ASC = enums.ELM_FILESELECTOR_SORT_BY_TYPE_ASC
|
||||||
|
ELM_FILESELECTOR_SORT_BY_TYPE_DESC = enums.ELM_FILESELECTOR_SORT_BY_TYPE_DESC
|
||||||
|
ELM_FILESELECTOR_SORT_BY_SIZE_ASC = enums.ELM_FILESELECTOR_SORT_BY_SIZE_ASC
|
||||||
|
ELM_FILESELECTOR_SORT_BY_SIZE_DESC = enums.ELM_FILESELECTOR_SORT_BY_SIZE_DESC
|
||||||
|
ELM_FILESELECTOR_SORT_BY_MODIFIED_ASC = enums.ELM_FILESELECTOR_SORT_BY_MODIFIED_ASC
|
||||||
|
ELM_FILESELECTOR_SORT_BY_MODIFIED_DESC = enums.ELM_FILESELECTOR_SORT_BY_MODIFIED_DESC
|
||||||
|
ELM_FILESELECTOR_SORT_LAST = enums.ELM_FILESELECTOR_SORT_LAST
|
||||||
|
|
||||||
|
ELM_FLIP_DIRECTION_UP = enums.ELM_FLIP_DIRECTION_UP
|
||||||
|
ELM_FLIP_DIRECTION_DOWN = enums.ELM_FLIP_DIRECTION_DOWN
|
||||||
|
ELM_FLIP_DIRECTION_LEFT = enums.ELM_FLIP_DIRECTION_LEFT
|
||||||
|
ELM_FLIP_DIRECTION_RIGHT = enums.ELM_FLIP_DIRECTION_RIGHT
|
||||||
|
|
||||||
|
ELM_FLIP_INTERACTION_NONE = enums.ELM_FLIP_INTERACTION_NONE
|
||||||
|
ELM_FLIP_INTERACTION_ROTATE = enums.ELM_FLIP_INTERACTION_ROTATE
|
||||||
|
ELM_FLIP_INTERACTION_CUBE = enums.ELM_FLIP_INTERACTION_CUBE
|
||||||
|
ELM_FLIP_INTERACTION_PAGE = enums.ELM_FLIP_INTERACTION_PAGE
|
||||||
|
|
||||||
|
ELM_FLIP_ROTATE_Y_CENTER_AXIS = enums.ELM_FLIP_ROTATE_Y_CENTER_AXIS
|
||||||
|
ELM_FLIP_ROTATE_X_CENTER_AXIS = enums.ELM_FLIP_ROTATE_X_CENTER_AXIS
|
||||||
|
ELM_FLIP_ROTATE_XZ_CENTER_AXIS = enums.ELM_FLIP_ROTATE_XZ_CENTER_AXIS
|
||||||
|
ELM_FLIP_ROTATE_YZ_CENTER_AXIS = enums.ELM_FLIP_ROTATE_YZ_CENTER_AXIS
|
||||||
|
ELM_FLIP_CUBE_LEFT = enums.ELM_FLIP_CUBE_LEFT
|
||||||
|
ELM_FLIP_CUBE_RIGHT = enums.ELM_FLIP_CUBE_RIGHT
|
||||||
|
ELM_FLIP_CUBE_UP = enums.ELM_FLIP_CUBE_UP
|
||||||
|
ELM_FLIP_CUBE_DOWN = enums.ELM_FLIP_CUBE_DOWN
|
||||||
|
ELM_FLIP_PAGE_LEFT = enums.ELM_FLIP_PAGE_LEFT
|
||||||
|
ELM_FLIP_PAGE_RIGHT = enums.ELM_FLIP_PAGE_RIGHT
|
||||||
|
ELM_FLIP_PAGE_UP = enums.ELM_FLIP_PAGE_UP
|
||||||
|
ELM_FLIP_PAGE_DOWN = enums.ELM_FLIP_PAGE_DOWN
|
||||||
|
|
||||||
|
ELM_GENGRID_ITEM_SCROLLTO_NONE = enums.ELM_GENGRID_ITEM_SCROLLTO_NONE
|
||||||
|
ELM_GENGRID_ITEM_SCROLLTO_IN = enums.ELM_GENGRID_ITEM_SCROLLTO_IN
|
||||||
|
ELM_GENGRID_ITEM_SCROLLTO_TOP = enums.ELM_GENGRID_ITEM_SCROLLTO_TOP
|
||||||
|
ELM_GENGRID_ITEM_SCROLLTO_MIDDLE = enums.ELM_GENGRID_ITEM_SCROLLTO_MIDDLE
|
||||||
|
ELM_GENGRID_ITEM_SCROLLTO_BOTTOM = enums.ELM_GENGRID_ITEM_SCROLLTO_BOTTOM
|
||||||
|
|
||||||
|
ELM_GENGRID_REORDER_TYPE_NORMAL = enums.ELM_GENGRID_REORDER_TYPE_NORMAL
|
||||||
|
ELM_GENGRID_REORDER_TYPE_SWAP = enums.ELM_GENGRID_REORDER_TYPE_SWAP
|
||||||
|
|
||||||
|
ELM_GENLIST_ITEM_NONE = enums.ELM_GENLIST_ITEM_NONE
|
||||||
|
ELM_GENLIST_ITEM_TREE = enums.ELM_GENLIST_ITEM_TREE
|
||||||
|
ELM_GENLIST_ITEM_GROUP = enums.ELM_GENLIST_ITEM_GROUP
|
||||||
|
ELM_GENLIST_ITEM_MAX = enums.ELM_GENLIST_ITEM_MAX
|
||||||
|
|
||||||
|
ELM_GENLIST_ITEM_FIELD_ALL = enums.ELM_GENLIST_ITEM_FIELD_ALL
|
||||||
|
ELM_GENLIST_ITEM_FIELD_TEXT = enums.ELM_GENLIST_ITEM_FIELD_TEXT
|
||||||
|
ELM_GENLIST_ITEM_FIELD_CONTENT = enums.ELM_GENLIST_ITEM_FIELD_CONTENT
|
||||||
|
ELM_GENLIST_ITEM_FIELD_STATE = enums.ELM_GENLIST_ITEM_FIELD_STATE
|
||||||
|
|
||||||
|
ELM_GENLIST_ITEM_SCROLLTO_NONE = enums.ELM_GENLIST_ITEM_SCROLLTO_NONE
|
||||||
|
ELM_GENLIST_ITEM_SCROLLTO_IN = enums.ELM_GENLIST_ITEM_SCROLLTO_IN
|
||||||
|
ELM_GENLIST_ITEM_SCROLLTO_TOP = enums.ELM_GENLIST_ITEM_SCROLLTO_TOP
|
||||||
|
ELM_GENLIST_ITEM_SCROLLTO_MIDDLE = enums.ELM_GENLIST_ITEM_SCROLLTO_MIDDLE
|
||||||
|
ELM_GENLIST_ITEM_SCROLLTO_BOTTOM = enums.ELM_GENLIST_ITEM_SCROLLTO_BOTTOM
|
||||||
|
|
||||||
|
ELM_GESTURE_STATE_UNDEFINED = enums.ELM_GESTURE_STATE_UNDEFINED
|
||||||
|
ELM_GESTURE_STATE_START = enums.ELM_GESTURE_STATE_START
|
||||||
|
ELM_GESTURE_STATE_MOVE = enums.ELM_GESTURE_STATE_MOVE
|
||||||
|
ELM_GESTURE_STATE_END = enums.ELM_GESTURE_STATE_END
|
||||||
|
ELM_GESTURE_STATE_ABORT = enums.ELM_GESTURE_STATE_ABORT
|
||||||
|
|
||||||
|
ELM_GESTURE_FIRST = enums.ELM_GESTURE_FIRST
|
||||||
|
ELM_GESTURE_N_TAPS = enums.ELM_GESTURE_N_TAPS
|
||||||
|
ELM_GESTURE_N_LONG_TAPS = enums.ELM_GESTURE_N_LONG_TAPS
|
||||||
|
ELM_GESTURE_N_DOUBLE_TAPS = enums.ELM_GESTURE_N_DOUBLE_TAPS
|
||||||
|
ELM_GESTURE_N_TRIPLE_TAPS = enums.ELM_GESTURE_N_TRIPLE_TAPS
|
||||||
|
ELM_GESTURE_MOMENTUM = enums.ELM_GESTURE_MOMENTUM
|
||||||
|
ELM_GESTURE_N_LINES = enums.ELM_GESTURE_N_LINES
|
||||||
|
ELM_GESTURE_N_FLICKS = enums.ELM_GESTURE_N_FLICKS
|
||||||
|
ELM_GESTURE_ZOOM = enums.ELM_GESTURE_ZOOM
|
||||||
|
ELM_GESTURE_ROTATE = enums.ELM_GESTURE_ROTATE
|
||||||
|
ELM_GESTURE_LAST = enums.ELM_GESTURE_LAST
|
||||||
|
|
||||||
|
ELM_HOVER_AXIS_NONE = enums.ELM_HOVER_AXIS_NONE
|
||||||
|
ELM_HOVER_AXIS_HORIZONTAL = enums.ELM_HOVER_AXIS_HORIZONTAL
|
||||||
|
ELM_HOVER_AXIS_VERTICAL = enums.ELM_HOVER_AXIS_VERTICAL
|
||||||
|
ELM_HOVER_AXIS_BOTH = enums.ELM_HOVER_AXIS_BOTH
|
||||||
|
|
||||||
|
ELM_ICON_LOOKUP_FDO_THEME = enums.ELM_ICON_LOOKUP_FDO_THEME
|
||||||
|
ELM_ICON_LOOKUP_THEME_FDO = enums.ELM_ICON_LOOKUP_THEME_FDO
|
||||||
|
ELM_ICON_LOOKUP_FDO = enums.ELM_ICON_LOOKUP_FDO
|
||||||
|
ELM_ICON_LOOKUP_THEME = enums.ELM_ICON_LOOKUP_THEME
|
||||||
|
|
||||||
|
ELM_ICON_NONE = enums.ELM_ICON_NONE
|
||||||
|
ELM_ICON_FILE = enums.ELM_ICON_FILE
|
||||||
|
ELM_ICON_STANDARD = enums.ELM_ICON_STANDARD
|
||||||
|
|
||||||
|
ELM_IMAGE_ORIENT_NONE = enums.ELM_IMAGE_ORIENT_NONE
|
||||||
|
ELM_IMAGE_ORIENT_0 = enums.ELM_IMAGE_ORIENT_0
|
||||||
|
ELM_IMAGE_ROTATE_90 = enums.ELM_IMAGE_ROTATE_90
|
||||||
|
ELM_IMAGE_ROTATE_180 = enums.ELM_IMAGE_ROTATE_180
|
||||||
|
ELM_IMAGE_ROTATE_270 = enums.ELM_IMAGE_ROTATE_270
|
||||||
|
ELM_IMAGE_FLIP_HORIZONTAL = enums.ELM_IMAGE_FLIP_HORIZONTAL
|
||||||
|
ELM_IMAGE_FLIP_VERTICAL = enums.ELM_IMAGE_FLIP_VERTICAL
|
||||||
|
ELM_IMAGE_FLIP_TRANSPOSE = enums.ELM_IMAGE_FLIP_TRANSPOSE
|
||||||
|
ELM_IMAGE_FLIP_TRANSVERSE = enums.ELM_IMAGE_FLIP_TRANSVERSE
|
||||||
|
|
||||||
|
ELM_WRAP_NONE = enums.ELM_WRAP_NONE
|
||||||
|
ELM_WRAP_CHAR = enums.ELM_WRAP_CHAR
|
||||||
|
ELM_WRAP_WORD = enums.ELM_WRAP_WORD
|
||||||
|
ELM_WRAP_MIXED = enums.ELM_WRAP_MIXED
|
||||||
|
|
||||||
|
ELM_LABEL_SLIDE_MODE_NONE = enums.ELM_LABEL_SLIDE_MODE_NONE
|
||||||
|
ELM_LABEL_SLIDE_MODE_AUTO = enums.ELM_LABEL_SLIDE_MODE_AUTO
|
||||||
|
ELM_LABEL_SLIDE_MODE_ALWAYS = enums.ELM_LABEL_SLIDE_MODE_ALWAYS
|
||||||
|
|
||||||
|
ELM_LIST_COMPRESS = enums.ELM_LIST_COMPRESS
|
||||||
|
ELM_LIST_SCROLL = enums.ELM_LIST_SCROLL
|
||||||
|
ELM_LIST_LIMIT = enums.ELM_LIST_LIMIT
|
||||||
|
ELM_LIST_EXPAND = enums.ELM_LIST_EXPAND
|
||||||
|
|
||||||
|
ELM_MAP_OVERLAY_TYPE_NONE = enums.ELM_MAP_OVERLAY_TYPE_NONE
|
||||||
|
ELM_MAP_OVERLAY_TYPE_DEFAULT = enums.ELM_MAP_OVERLAY_TYPE_DEFAULT
|
||||||
|
ELM_MAP_OVERLAY_TYPE_CLASS = enums.ELM_MAP_OVERLAY_TYPE_CLASS
|
||||||
|
ELM_MAP_OVERLAY_TYPE_GROUP = enums.ELM_MAP_OVERLAY_TYPE_GROUP
|
||||||
|
ELM_MAP_OVERLAY_TYPE_BUBBLE = enums.ELM_MAP_OVERLAY_TYPE_BUBBLE
|
||||||
|
ELM_MAP_OVERLAY_TYPE_ROUTE = enums.ELM_MAP_OVERLAY_TYPE_ROUTE
|
||||||
|
ELM_MAP_OVERLAY_TYPE_LINE = enums.ELM_MAP_OVERLAY_TYPE_LINE
|
||||||
|
ELM_MAP_OVERLAY_TYPE_POLYGON = enums.ELM_MAP_OVERLAY_TYPE_POLYGON
|
||||||
|
ELM_MAP_OVERLAY_TYPE_CIRCLE = enums.ELM_MAP_OVERLAY_TYPE_CIRCLE
|
||||||
|
ELM_MAP_OVERLAY_TYPE_SCALE = enums.ELM_MAP_OVERLAY_TYPE_SCALE
|
||||||
|
|
||||||
|
ELM_MAP_ROUTE_METHOD_FASTEST = enums.ELM_MAP_ROUTE_METHOD_FASTEST
|
||||||
|
ELM_MAP_ROUTE_METHOD_SHORTEST = enums.ELM_MAP_ROUTE_METHOD_SHORTEST
|
||||||
|
ELM_MAP_ROUTE_METHOD_LAST = enums.ELM_MAP_ROUTE_METHOD_LAST
|
||||||
|
|
||||||
|
ELM_MAP_ROUTE_TYPE_MOTOCAR = enums.ELM_MAP_ROUTE_TYPE_MOTOCAR
|
||||||
|
ELM_MAP_ROUTE_TYPE_BICYCLE = enums.ELM_MAP_ROUTE_TYPE_BICYCLE
|
||||||
|
ELM_MAP_ROUTE_TYPE_FOOT = enums.ELM_MAP_ROUTE_TYPE_FOOT
|
||||||
|
ELM_MAP_ROUTE_TYPE_LAST = enums.ELM_MAP_ROUTE_TYPE_LAST
|
||||||
|
|
||||||
|
ELM_MAP_SOURCE_TYPE_TILE = enums.ELM_MAP_SOURCE_TYPE_TILE
|
||||||
|
ELM_MAP_SOURCE_TYPE_ROUTE = enums.ELM_MAP_SOURCE_TYPE_ROUTE
|
||||||
|
ELM_MAP_SOURCE_TYPE_NAME = enums.ELM_MAP_SOURCE_TYPE_NAME
|
||||||
|
ELM_MAP_SOURCE_TYPE_LAST = enums.ELM_MAP_SOURCE_TYPE_LAST
|
||||||
|
|
||||||
|
ELM_MAP_ZOOM_MODE_MANUAL = enums.ELM_MAP_ZOOM_MODE_MANUAL
|
||||||
|
ELM_MAP_ZOOM_MODE_AUTO_FIT = enums.ELM_MAP_ZOOM_MODE_AUTO_FIT
|
||||||
|
ELM_MAP_ZOOM_MODE_AUTO_FILL = enums.ELM_MAP_ZOOM_MODE_AUTO_FILL
|
||||||
|
ELM_MAP_ZOOM_MODE_LAST = enums.ELM_MAP_ZOOM_MODE_LAST
|
||||||
|
|
||||||
|
ELM_SYS_NOTIFY_CLOSED_EXPIRED = enums.ELM_SYS_NOTIFY_CLOSED_EXPIRED
|
||||||
|
ELM_SYS_NOTIFY_CLOSED_DISMISSED = enums.ELM_SYS_NOTIFY_CLOSED_DISMISSED
|
||||||
|
ELM_SYS_NOTIFY_CLOSED_REQUESTED = enums.ELM_SYS_NOTIFY_CLOSED_REQUESTED
|
||||||
|
ELM_SYS_NOTIFY_CLOSED_UNDEFINED = enums.ELM_SYS_NOTIFY_CLOSED_UNDEFINED
|
||||||
|
|
||||||
|
ELM_NOTIFY_ORIENT_TOP = enums.ELM_NOTIFY_ORIENT_TOP
|
||||||
|
ELM_NOTIFY_ORIENT_CENTER = enums.ELM_NOTIFY_ORIENT_CENTER
|
||||||
|
ELM_NOTIFY_ORIENT_BOTTOM = enums.ELM_NOTIFY_ORIENT_BOTTOM
|
||||||
|
ELM_NOTIFY_ORIENT_LEFT = enums.ELM_NOTIFY_ORIENT_LEFT
|
||||||
|
ELM_NOTIFY_ORIENT_RIGHT = enums.ELM_NOTIFY_ORIENT_RIGHT
|
||||||
|
ELM_NOTIFY_ORIENT_TOP_LEFT = enums.ELM_NOTIFY_ORIENT_TOP_LEFT
|
||||||
|
ELM_NOTIFY_ORIENT_TOP_RIGHT = enums.ELM_NOTIFY_ORIENT_TOP_RIGHT
|
||||||
|
ELM_NOTIFY_ORIENT_BOTTOM_LEFT = enums.ELM_NOTIFY_ORIENT_BOTTOM_LEFT
|
||||||
|
ELM_NOTIFY_ORIENT_BOTTOM_RIGHT = enums.ELM_NOTIFY_ORIENT_BOTTOM_RIGHT
|
||||||
|
ELM_NOTIFY_ORIENT_LAST = enums.ELM_NOTIFY_ORIENT_LAST
|
||||||
|
|
||||||
|
ELM_OBJECT_SELECT_MODE_DEFAULT = enums.ELM_OBJECT_SELECT_MODE_DEFAULT
|
||||||
|
ELM_OBJECT_SELECT_MODE_ALWAYS = enums.ELM_OBJECT_SELECT_MODE_ALWAYS
|
||||||
|
ELM_OBJECT_SELECT_MODE_NONE = enums.ELM_OBJECT_SELECT_MODE_NONE
|
||||||
|
ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY = enums.ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY
|
||||||
|
ELM_OBJECT_SELECT_MODE_MAX = enums.ELM_OBJECT_SELECT_MODE_MAX
|
||||||
|
|
||||||
|
ELM_OBJECT_MULTI_SELECT_MODE_DEFAULT = enums.ELM_OBJECT_MULTI_SELECT_MODE_DEFAULT
|
||||||
|
ELM_OBJECT_MULTI_SELECT_MODE_WITH_CONTROL = enums.ELM_OBJECT_MULTI_SELECT_MODE_WITH_CONTROL
|
||||||
|
ELM_OBJECT_MULTI_SELECT_MODE_MAX = enums.ELM_OBJECT_MULTI_SELECT_MODE_MAX
|
||||||
|
|
||||||
|
ELM_OBJECT_LAYER_BACKGROUND = enums.ELM_OBJECT_LAYER_BACKGROUND
|
||||||
|
ELM_OBJECT_LAYER_DEFAULT = enums.ELM_OBJECT_LAYER_DEFAULT
|
||||||
|
ELM_OBJECT_LAYER_FOCUS = enums.ELM_OBJECT_LAYER_FOCUS
|
||||||
|
ELM_OBJECT_LAYER_TOOLTIP = enums.ELM_OBJECT_LAYER_TOOLTIP
|
||||||
|
ELM_OBJECT_LAYER_CURSOR = enums.ELM_OBJECT_LAYER_CURSOR
|
||||||
|
ELM_OBJECT_LAYER_LAST = enums.ELM_OBJECT_LAYER_LAST
|
||||||
|
|
||||||
|
ELM_PANEL_ORIENT_TOP = enums.ELM_PANEL_ORIENT_TOP
|
||||||
|
ELM_PANEL_ORIENT_BOTTOM = enums.ELM_PANEL_ORIENT_BOTTOM
|
||||||
|
ELM_PANEL_ORIENT_LEFT = enums.ELM_PANEL_ORIENT_LEFT
|
||||||
|
ELM_PANEL_ORIENT_RIGHT = enums.ELM_PANEL_ORIENT_RIGHT
|
||||||
|
|
||||||
|
ELM_PHOTOCAM_ZOOM_MODE_MANUAL = enums.ELM_PHOTOCAM_ZOOM_MODE_MANUAL
|
||||||
|
ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT = enums.ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT
|
||||||
|
ELM_PHOTOCAM_ZOOM_MODE_AUTO_FILL = enums.ELM_PHOTOCAM_ZOOM_MODE_AUTO_FILL
|
||||||
|
ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT_IN = enums.ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT_IN
|
||||||
|
ELM_PHOTOCAM_ZOOM_MODE_LAST = enums.ELM_PHOTOCAM_ZOOM_MODE_LAST
|
||||||
|
|
||||||
|
ELM_POPUP_ORIENT_TOP = enums.ELM_POPUP_ORIENT_TOP
|
||||||
|
ELM_POPUP_ORIENT_CENTER = enums.ELM_POPUP_ORIENT_CENTER
|
||||||
|
ELM_POPUP_ORIENT_BOTTOM = enums.ELM_POPUP_ORIENT_BOTTOM
|
||||||
|
ELM_POPUP_ORIENT_LEFT = enums.ELM_POPUP_ORIENT_LEFT
|
||||||
|
ELM_POPUP_ORIENT_RIGHT = enums.ELM_POPUP_ORIENT_RIGHT
|
||||||
|
ELM_POPUP_ORIENT_TOP_LEFT = enums.ELM_POPUP_ORIENT_TOP_LEFT
|
||||||
|
ELM_POPUP_ORIENT_TOP_RIGHT = enums.ELM_POPUP_ORIENT_TOP_RIGHT
|
||||||
|
ELM_POPUP_ORIENT_BOTTOM_LEFT = enums.ELM_POPUP_ORIENT_BOTTOM_LEFT
|
||||||
|
ELM_POPUP_ORIENT_BOTTOM_RIGHT = enums.ELM_POPUP_ORIENT_BOTTOM_RIGHT
|
||||||
|
ELM_POPUP_ORIENT_LAST = enums.ELM_POPUP_ORIENT_LAST
|
||||||
|
|
||||||
|
ELM_SCROLLER_POLICY_AUTO = enums.ELM_SCROLLER_POLICY_AUTO
|
||||||
|
ELM_SCROLLER_POLICY_ON = enums.ELM_SCROLLER_POLICY_ON
|
||||||
|
ELM_SCROLLER_POLICY_OFF = enums.ELM_SCROLLER_POLICY_OFF
|
||||||
|
|
||||||
|
ELM_SCROLLER_SINGLE_DIRECTION_NONE = enums.ELM_SCROLLER_SINGLE_DIRECTION_NONE
|
||||||
|
ELM_SCROLLER_SINGLE_DIRECTION_SOFT = enums.ELM_SCROLLER_SINGLE_DIRECTION_SOFT
|
||||||
|
ELM_SCROLLER_SINGLE_DIRECTION_HARD = enums.ELM_SCROLLER_SINGLE_DIRECTION_HARD
|
||||||
|
ELM_SCROLLER_SINGLE_DIRECTION_LAST = enums.ELM_SCROLLER_SINGLE_DIRECTION_LAST
|
||||||
|
|
||||||
|
ELM_SCROLLER_MOVEMENT_NO_BLOCK = enums.ELM_SCROLLER_MOVEMENT_NO_BLOCK
|
||||||
|
ELM_SCROLLER_MOVEMENT_BLOCK_VERTICAL = enums.ELM_SCROLLER_MOVEMENT_BLOCK_VERTICAL
|
||||||
|
ELM_SCROLLER_MOVEMENT_BLOCK_HORIZONTAL = enums.ELM_SCROLLER_MOVEMENT_BLOCK_HORIZONTAL
|
||||||
|
|
||||||
|
ELM_SLIDER_INDICATOR_VISIBLE_MODE_DEFAULT = enums.ELM_SLIDER_INDICATOR_VISIBLE_MODE_DEFAULT
|
||||||
|
ELM_SLIDER_INDICATOR_VISIBLE_MODE_ALWAYS = enums.ELM_SLIDER_INDICATOR_VISIBLE_MODE_ALWAYS
|
||||||
|
ELM_SLIDER_INDICATOR_VISIBLE_MODE_ON_FOCUS = enums.ELM_SLIDER_INDICATOR_VISIBLE_MODE_ON_FOCUS
|
||||||
|
ELM_SLIDER_INDICATOR_VISIBLE_MODE_NONE = enums.ELM_SLIDER_INDICATOR_VISIBLE_MODE_NONE
|
||||||
|
|
||||||
|
ELM_THUMB_ANIMATION_START = enums.ELM_THUMB_ANIMATION_START
|
||||||
|
ELM_THUMB_ANIMATION_LOOP = enums.ELM_THUMB_ANIMATION_LOOP
|
||||||
|
ELM_THUMB_ANIMATION_STOP = enums.ELM_THUMB_ANIMATION_STOP
|
||||||
|
ELM_THUMB_ANIMATION_LAST = enums.ELM_THUMB_ANIMATION_LAST
|
||||||
|
|
||||||
|
ETHUMB_THUMB_NORMAL = enums.ETHUMB_THUMB_NORMAL
|
||||||
|
ETHUMB_THUMB_LARGE = enums.ETHUMB_THUMB_LARGE
|
||||||
|
|
||||||
|
ETHUMB_THUMB_FDO = enums.ETHUMB_THUMB_FDO
|
||||||
|
ETHUMB_THUMB_JPEG = enums.ETHUMB_THUMB_JPEG
|
||||||
|
ETHUMB_THUMB_EET = enums.ETHUMB_THUMB_EET
|
||||||
|
|
||||||
|
ETHUMB_THUMB_KEEP_ASPECT = enums.ETHUMB_THUMB_KEEP_ASPECT
|
||||||
|
ETHUMB_THUMB_IGNORE_ASPECT = enums.ETHUMB_THUMB_IGNORE_ASPECT
|
||||||
|
ETHUMB_THUMB_CROP = enums.ETHUMB_THUMB_CROP
|
||||||
|
|
||||||
|
ETHUMB_THUMB_ORIENT_NONE = enums.ETHUMB_THUMB_ORIENT_NONE
|
||||||
|
ETHUMB_THUMB_ROTATE_90_CW = enums.ETHUMB_THUMB_ROTATE_90_CW
|
||||||
|
ETHUMB_THUMB_ROTATE_180 = enums.ETHUMB_THUMB_ROTATE_180
|
||||||
|
ETHUMB_THUMB_ROTATE_90_CCW = enums.ETHUMB_THUMB_ROTATE_90_CCW
|
||||||
|
ETHUMB_THUMB_FLIP_HORIZONTAL = enums.ETHUMB_THUMB_FLIP_HORIZONTAL
|
||||||
|
ETHUMB_THUMB_FLIP_VERTICAL = enums.ETHUMB_THUMB_FLIP_VERTICAL
|
||||||
|
ETHUMB_THUMB_FLIP_TRANSPOSE = enums.ETHUMB_THUMB_FLIP_TRANSPOSE
|
||||||
|
ETHUMB_THUMB_FLIP_TRANSVERSE = enums.ETHUMB_THUMB_FLIP_TRANSVERSE
|
||||||
|
ETHUMB_THUMB_ORIENT_ORIGINAL = enums.ETHUMB_THUMB_ORIENT_ORIGINAL
|
||||||
|
|
||||||
|
ELM_TOOLBAR_ITEM_SCROLLTO_NONE = enums.ELM_TOOLBAR_ITEM_SCROLLTO_NONE
|
||||||
|
ELM_TOOLBAR_ITEM_SCROLLTO_IN = enums.ELM_TOOLBAR_ITEM_SCROLLTO_IN
|
||||||
|
ELM_TOOLBAR_ITEM_SCROLLTO_FIRST = enums.ELM_TOOLBAR_ITEM_SCROLLTO_FIRST
|
||||||
|
ELM_TOOLBAR_ITEM_SCROLLTO_MIDDLE = enums.ELM_TOOLBAR_ITEM_SCROLLTO_MIDDLE
|
||||||
|
ELM_TOOLBAR_ITEM_SCROLLTO_LAST = enums.ELM_TOOLBAR_ITEM_SCROLLTO_LAST
|
||||||
|
|
||||||
|
ELM_TOOLBAR_SHRINK_NONE = enums.ELM_TOOLBAR_SHRINK_NONE
|
||||||
|
ELM_TOOLBAR_SHRINK_HIDE = enums.ELM_TOOLBAR_SHRINK_HIDE
|
||||||
|
ELM_TOOLBAR_SHRINK_SCROLL = enums.ELM_TOOLBAR_SHRINK_SCROLL
|
||||||
|
ELM_TOOLBAR_SHRINK_MENU = enums.ELM_TOOLBAR_SHRINK_MENU
|
||||||
|
ELM_TOOLBAR_SHRINK_EXPAND = enums.ELM_TOOLBAR_SHRINK_EXPAND
|
||||||
|
ELM_TOOLBAR_SHRINK_LAST = enums.ELM_TOOLBAR_SHRINK_LAST
|
||||||
|
|
||||||
|
ELM_TRANSIT_EFFECT_FLIP_AXIS_X = enums.ELM_TRANSIT_EFFECT_FLIP_AXIS_X
|
||||||
|
ELM_TRANSIT_EFFECT_FLIP_AXIS_Y = enums.ELM_TRANSIT_EFFECT_FLIP_AXIS_Y
|
||||||
|
|
||||||
|
ELM_TRANSIT_EFFECT_WIPE_DIR_LEFT = enums.ELM_TRANSIT_EFFECT_WIPE_DIR_LEFT
|
||||||
|
ELM_TRANSIT_EFFECT_WIPE_DIR_RIGHT = enums.ELM_TRANSIT_EFFECT_WIPE_DIR_RIGHT
|
||||||
|
ELM_TRANSIT_EFFECT_WIPE_DIR_UP = enums.ELM_TRANSIT_EFFECT_WIPE_DIR_UP
|
||||||
|
ELM_TRANSIT_EFFECT_WIPE_DIR_DOWN = enums.ELM_TRANSIT_EFFECT_WIPE_DIR_DOWN
|
||||||
|
|
||||||
|
ELM_TRANSIT_EFFECT_WIPE_TYPE_HIDE = enums.ELM_TRANSIT_EFFECT_WIPE_TYPE_HIDE
|
||||||
|
ELM_TRANSIT_EFFECT_WIPE_TYPE_SHOW = enums.ELM_TRANSIT_EFFECT_WIPE_TYPE_SHOW
|
||||||
|
|
||||||
|
ELM_TRANSIT_TWEEN_MODE_LINEAR = enums.ELM_TRANSIT_TWEEN_MODE_LINEAR
|
||||||
|
ELM_TRANSIT_TWEEN_MODE_SINUSOIDAL = enums.ELM_TRANSIT_TWEEN_MODE_SINUSOIDAL
|
||||||
|
ELM_TRANSIT_TWEEN_MODE_DECELERATE = enums.ELM_TRANSIT_TWEEN_MODE_DECELERATE
|
||||||
|
ELM_TRANSIT_TWEEN_MODE_ACCELERATE = enums.ELM_TRANSIT_TWEEN_MODE_ACCELERATE
|
||||||
|
ELM_TRANSIT_TWEEN_MODE_DIVISOR_INTERP = enums.ELM_TRANSIT_TWEEN_MODE_DIVISOR_INTERP
|
||||||
|
ELM_TRANSIT_TWEEN_MODE_BOUNCE = enums.ELM_TRANSIT_TWEEN_MODE_BOUNCE
|
||||||
|
ELM_TRANSIT_TWEEN_MODE_SPRING = enums.ELM_TRANSIT_TWEEN_MODE_SPRING
|
||||||
|
ELM_TRANSIT_TWEEN_MODE_BEZIER_CURVE = enums.ELM_TRANSIT_TWEEN_MODE_BEZIER_CURVE
|
||||||
|
|
||||||
|
ELM_WEB_WINDOW_FEATURE_TOOLBAR = enums.ELM_WEB_WINDOW_FEATURE_TOOLBAR
|
||||||
|
ELM_WEB_WINDOW_FEATURE_STATUSBAR = enums.ELM_WEB_WINDOW_FEATURE_STATUSBAR
|
||||||
|
ELM_WEB_WINDOW_FEATURE_SCROLLBARS = enums.ELM_WEB_WINDOW_FEATURE_SCROLLBARS
|
||||||
|
ELM_WEB_WINDOW_FEATURE_MENUBAR = enums.ELM_WEB_WINDOW_FEATURE_MENUBAR
|
||||||
|
ELM_WEB_WINDOW_FEATURE_LOCATIONBAR = enums.ELM_WEB_WINDOW_FEATURE_LOCATIONBAR
|
||||||
|
ELM_WEB_WINDOW_FEATURE_FULLSCREEN = enums.ELM_WEB_WINDOW_FEATURE_FULLSCREEN
|
||||||
|
|
||||||
|
ELM_WEB_ZOOM_MODE_MANUAL = enums.ELM_WEB_ZOOM_MODE_MANUAL
|
||||||
|
ELM_WEB_ZOOM_MODE_AUTO_FIT = enums.ELM_WEB_ZOOM_MODE_AUTO_FIT
|
||||||
|
ELM_WEB_ZOOM_MODE_AUTO_FILL = enums.ELM_WEB_ZOOM_MODE_AUTO_FILL
|
||||||
|
|
||||||
|
ELM_WIN_UNKNOWN = enums.ELM_WIN_UNKNOWN
|
||||||
|
ELM_WIN_BASIC = enums.ELM_WIN_BASIC
|
||||||
|
ELM_WIN_DIALOG_BASIC = enums.ELM_WIN_DIALOG_BASIC
|
||||||
|
ELM_WIN_DESKTOP = enums.ELM_WIN_DESKTOP
|
||||||
|
ELM_WIN_DOCK = enums.ELM_WIN_DOCK
|
||||||
|
ELM_WIN_TOOLBAR = enums.ELM_WIN_TOOLBAR
|
||||||
|
ELM_WIN_MENU = enums.ELM_WIN_MENU
|
||||||
|
ELM_WIN_UTILITY = enums.ELM_WIN_UTILITY
|
||||||
|
ELM_WIN_SPLASH = enums.ELM_WIN_SPLASH
|
||||||
|
ELM_WIN_DROPDOWN_MENU = enums.ELM_WIN_DROPDOWN_MENU
|
||||||
|
ELM_WIN_POPUP_MENU = enums.ELM_WIN_POPUP_MENU
|
||||||
|
ELM_WIN_TOOLTIP = enums.ELM_WIN_TOOLTIP
|
||||||
|
ELM_WIN_NOTIFICATION = enums.ELM_WIN_NOTIFICATION
|
||||||
|
ELM_WIN_COMBO = enums.ELM_WIN_COMBO
|
||||||
|
ELM_WIN_DND = enums.ELM_WIN_DND
|
||||||
|
ELM_WIN_INLINED_IMAGE = enums.ELM_WIN_INLINED_IMAGE
|
||||||
|
ELM_WIN_SOCKET_IMAGE = enums.ELM_WIN_SOCKET_IMAGE
|
||||||
|
|
||||||
|
ELM_WIN_INDICATOR_UNKNOWN = enums.ELM_WIN_INDICATOR_UNKNOWN
|
||||||
|
ELM_WIN_INDICATOR_HIDE = enums.ELM_WIN_INDICATOR_HIDE
|
||||||
|
ELM_WIN_INDICATOR_SHOW = enums.ELM_WIN_INDICATOR_SHOW
|
||||||
|
|
||||||
|
ELM_WIN_INDICATOR_OPACITY_UNKNOWN = enums.ELM_WIN_INDICATOR_OPACITY_UNKNOWN
|
||||||
|
ELM_WIN_INDICATOR_OPAQUE = enums.ELM_WIN_INDICATOR_OPAQUE
|
||||||
|
ELM_WIN_INDICATOR_TRANSLUCENT = enums.ELM_WIN_INDICATOR_TRANSLUCENT
|
||||||
|
ELM_WIN_INDICATOR_TRANSPARENT = enums.ELM_WIN_INDICATOR_TRANSPARENT
|
||||||
|
|
||||||
|
ELM_WIN_KEYBOARD_UNKNOWN = enums.ELM_WIN_KEYBOARD_UNKNOWN
|
||||||
|
ELM_WIN_KEYBOARD_OFF = enums.ELM_WIN_KEYBOARD_OFF
|
||||||
|
ELM_WIN_KEYBOARD_ON = enums.ELM_WIN_KEYBOARD_ON
|
||||||
|
ELM_WIN_KEYBOARD_ALPHA = enums.ELM_WIN_KEYBOARD_ALPHA
|
||||||
|
ELM_WIN_KEYBOARD_NUMERIC = enums.ELM_WIN_KEYBOARD_NUMERIC
|
||||||
|
ELM_WIN_KEYBOARD_PIN = enums.ELM_WIN_KEYBOARD_PIN
|
||||||
|
ELM_WIN_KEYBOARD_PHONE_NUMBER = enums.ELM_WIN_KEYBOARD_PHONE_NUMBER
|
||||||
|
ELM_WIN_KEYBOARD_HEX = enums.ELM_WIN_KEYBOARD_HEX
|
||||||
|
ELM_WIN_KEYBOARD_TERMINAL = enums.ELM_WIN_KEYBOARD_TERMINAL
|
||||||
|
ELM_WIN_KEYBOARD_PASSWORD = enums.ELM_WIN_KEYBOARD_PASSWORD
|
||||||
|
ELM_WIN_KEYBOARD_IP = enums.ELM_WIN_KEYBOARD_IP
|
||||||
|
ELM_WIN_KEYBOARD_HOST = enums.ELM_WIN_KEYBOARD_HOST
|
||||||
|
ELM_WIN_KEYBOARD_FILE = enums.ELM_WIN_KEYBOARD_FILE
|
||||||
|
ELM_WIN_KEYBOARD_URL = enums.ELM_WIN_KEYBOARD_URL
|
||||||
|
ELM_WIN_KEYBOARD_KEYPAD = enums.ELM_WIN_KEYBOARD_KEYPAD
|
||||||
|
ELM_WIN_KEYBOARD_J2ME = enums.ELM_WIN_KEYBOARD_J2ME
|
||||||
|
|
||||||
|
ELM_ILLUME_COMMAND_FOCUS_BACK = enums.ELM_ILLUME_COMMAND_FOCUS_BACK
|
||||||
|
ELM_ILLUME_COMMAND_FOCUS_FORWARD = enums.ELM_ILLUME_COMMAND_FOCUS_FORWARD
|
||||||
|
ELM_ILLUME_COMMAND_FOCUS_HOME = enums.ELM_ILLUME_COMMAND_FOCUS_HOME
|
||||||
|
ELM_ILLUME_COMMAND_CLOSE = enums.ELM_ILLUME_COMMAND_CLOSE
|
||||||
|
|
||||||
|
|
||||||
|
include "elementary_cdef.pxi"
|
||||||
|
|
||||||
|
|
||||||
elm_log = add_logger("efl.elementary")
|
elm_log = add_logger("efl.elementary")
|
||||||
cdef int PY_EFL_ELM_LOG_DOMAIN = elm_log.eina_log_domain
|
cdef int PY_EFL_ELM_LOG_DOMAIN = elm_log.eina_log_domain
|
||||||
|
@ -107,8 +701,12 @@ def init():
|
||||||
not carry any penalty though.
|
not carry any penalty though.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
EINA_LOG_DOM_INFO(PY_EFL_ELM_LOG_DOMAIN,
|
EINA_LOG_DOM_INFO(PY_EFL_ELM_LOG_DOMAIN, "Initializing efl.elementary")
|
||||||
"Initializing efl.elementary", NULL)
|
|
||||||
|
# Force Edje object type to be always available, since we cannot
|
||||||
|
# anticipate when Elementary is going to return a pointer to one.
|
||||||
|
|
||||||
|
import efl.edje
|
||||||
|
|
||||||
# argc and argv are currently used by EFL to support app restart
|
# argc and argv are currently used by EFL to support app restart
|
||||||
# and binary relocation. These are probably not useful to us but we
|
# and binary relocation. These are probably not useful to us but we
|
||||||
|
@ -155,18 +753,17 @@ def shutdown():
|
||||||
not carry any penalty though.
|
not carry any penalty though.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
EINA_LOG_DOM_INFO(PY_EFL_ELM_LOG_DOMAIN,
|
EINA_LOG_DOM_INFO(PY_EFL_ELM_LOG_DOMAIN, "Shutting down efl.elementary")
|
||||||
"Shutting down efl.elementary", NULL)
|
|
||||||
return elm_shutdown()
|
return elm_shutdown()
|
||||||
|
|
||||||
|
|
||||||
init()
|
init()
|
||||||
atexit.register(shutdown)
|
atexit.register(shutdown)
|
||||||
|
|
||||||
_event_mapping_register(ELM_EVENT_CONFIG_ALL_CHANGED, ConfigAllChanged)
|
_event_mapping_register(enums.ELM_EVENT_CONFIG_ALL_CHANGED, ConfigAllChanged)
|
||||||
_event_mapping_register(ELM_EVENT_POLICY_CHANGED, PolicyChanged)
|
_event_mapping_register(enums.ELM_EVENT_POLICY_CHANGED, PolicyChanged)
|
||||||
_event_mapping_register(ELM_EVENT_PROCESS_BACKGROUND, ProcessBackground)
|
_event_mapping_register(enums.ELM_EVENT_PROCESS_BACKGROUND, ProcessBackground)
|
||||||
_event_mapping_register(ELM_EVENT_PROCESS_FOREGROUND, ProcessForeground)
|
_event_mapping_register(enums.ELM_EVENT_PROCESS_FOREGROUND, ProcessForeground)
|
||||||
|
|
||||||
|
|
||||||
cdef void py_elm_sys_notify_send_cb(void *data, unsigned int id):
|
cdef void py_elm_sys_notify_send_cb(void *data, unsigned int id):
|
||||||
|
@ -184,7 +781,7 @@ def on_ethumb_connect(func, *args, **kwargs):
|
||||||
|
|
||||||
.. versionadded:: 1.14
|
.. versionadded:: 1.14
|
||||||
"""
|
"""
|
||||||
return EventHandler(ELM_ECORE_EVENT_ETHUMB_CONNECT, func, *args, **kwargs)
|
return EventHandler(enums.ELM_ECORE_EVENT_ETHUMB_CONNECT, func, *args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
def on_config_all_changed(func, *args, **kwargs):
|
def on_config_all_changed(func, *args, **kwargs):
|
||||||
|
@ -195,7 +792,7 @@ def on_config_all_changed(func, *args, **kwargs):
|
||||||
|
|
||||||
.. versionadded:: 1.14
|
.. versionadded:: 1.14
|
||||||
"""
|
"""
|
||||||
return EventHandler(ELM_EVENT_CONFIG_ALL_CHANGED, func, *args, **kwargs)
|
return EventHandler(enums.ELM_EVENT_CONFIG_ALL_CHANGED, func, *args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
def on_policy_changed(func, *args, **kwargs):
|
def on_policy_changed(func, *args, **kwargs):
|
||||||
|
@ -205,7 +802,7 @@ def on_policy_changed(func, *args, **kwargs):
|
||||||
|
|
||||||
.. versionadded:: 1.14
|
.. versionadded:: 1.14
|
||||||
"""
|
"""
|
||||||
return EventHandler(ELM_EVENT_POLICY_CHANGED, func, *args, **kwargs)
|
return EventHandler(enums.ELM_EVENT_POLICY_CHANGED, func, *args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
def on_process_background(func, *args, **kwargs):
|
def on_process_background(func, *args, **kwargs):
|
||||||
|
@ -216,7 +813,7 @@ def on_process_background(func, *args, **kwargs):
|
||||||
|
|
||||||
.. versionadded:: 1.14
|
.. versionadded:: 1.14
|
||||||
"""
|
"""
|
||||||
return EventHandler(ELM_EVENT_PROCESS_BACKGROUND, func, *args, **kwargs)
|
return EventHandler(enums.ELM_EVENT_PROCESS_BACKGROUND, func, *args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
def on_process_foreground(func, *args, **kwargs):
|
def on_process_foreground(func, *args, **kwargs):
|
||||||
|
@ -227,18 +824,18 @@ def on_process_foreground(func, *args, **kwargs):
|
||||||
|
|
||||||
.. versionadded:: 1.14
|
.. versionadded:: 1.14
|
||||||
"""
|
"""
|
||||||
return EventHandler(ELM_EVENT_PROCESS_FOREGROUND, func, *args, **kwargs)
|
return EventHandler(enums.ELM_EVENT_PROCESS_FOREGROUND, func, *args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
def on_sys_notify_notification_closed(func, *args, **kargs):
|
def on_sys_notify_notification_closed(func, *args, **kargs):
|
||||||
return EventHandler(
|
return EventHandler(
|
||||||
ELM_EVENT_SYS_NOTIFY_NOTIFICATION_CLOSED, func, *args, **kargs
|
enums.ELM_EVENT_SYS_NOTIFY_NOTIFICATION_CLOSED, func, *args, **kargs
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def on_sys_notify_action_invoked(func, *args, **kargs):
|
def on_sys_notify_action_invoked(func, *args, **kargs):
|
||||||
return EventHandler(
|
return EventHandler(
|
||||||
ELM_EVENT_SYS_NOTIFY_ACTION_INVOKED, func, *args, **kargs
|
enums.ELM_EVENT_SYS_NOTIFY_ACTION_INVOKED, func, *args, **kargs
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -248,6 +845,10 @@ cdef class FontProperties(object):
|
||||||
|
|
||||||
cdef Elm_Font_Properties *efp
|
cdef Elm_Font_Properties *efp
|
||||||
|
|
||||||
|
def __dealloc__(self):
|
||||||
|
elm_font_properties_free(self.efp)
|
||||||
|
self.efp = NULL
|
||||||
|
|
||||||
property name:
|
property name:
|
||||||
""":type: unicode"""
|
""":type: unicode"""
|
||||||
def __set__(self, value):
|
def __set__(self, value):
|
||||||
|
@ -274,8 +875,7 @@ def run():
|
||||||
running the main (event/processing) loop for Elementary.
|
running the main (event/processing) loop for Elementary.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
EINA_LOG_DOM_DBG(PY_EFL_ELM_LOG_DOMAIN,
|
EINA_LOG_DOM_DBG(PY_EFL_ELM_LOG_DOMAIN, "Starting up main loop.")
|
||||||
"Starting up main loop.", NULL)
|
|
||||||
with nogil:
|
with nogil:
|
||||||
elm_run()
|
elm_run()
|
||||||
|
|
||||||
|
@ -295,8 +895,7 @@ def exit():
|
||||||
for you.
|
for you.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
EINA_LOG_DOM_DBG(PY_EFL_ELM_LOG_DOMAIN,
|
EINA_LOG_DOM_DBG(PY_EFL_ELM_LOG_DOMAIN, "Ending main loop.")
|
||||||
"Ending main loop.", NULL)
|
|
||||||
elm_exit()
|
elm_exit()
|
||||||
|
|
||||||
def policy_set(Elm_Policy policy, value):
|
def policy_set(Elm_Policy policy, value):
|
||||||
|
@ -428,7 +1027,7 @@ def font_properties_get(font not None):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
if isinstance(font, unicode): font = PyUnicode_AsUTF8String(font)
|
if isinstance(font, unicode): font = PyUnicode_AsUTF8String(font)
|
||||||
cdef FontProperties ret = FontProperties.__new__()
|
cdef FontProperties ret = FontProperties.__new__(FontProperties)
|
||||||
|
|
||||||
ret.efp = elm_font_properties_get(<const char *>font)
|
ret.efp = elm_font_properties_get(<const char *>font)
|
||||||
|
|
||||||
|
@ -441,9 +1040,13 @@ def font_properties_free(FontProperties fp):
|
||||||
|
|
||||||
.. versionadded:: 1.8
|
.. versionadded:: 1.8
|
||||||
|
|
||||||
|
.. versionchanged:: 1.19
|
||||||
|
|
||||||
|
Changed to no-op as we now do the free automatically when there are
|
||||||
|
no more references to the FontProperties object
|
||||||
|
|
||||||
"""
|
"""
|
||||||
elm_font_properties_free(fp.efp)
|
pass
|
||||||
Py_DECREF(fp)
|
|
||||||
|
|
||||||
def font_fontconfig_name_get(font_name, style = None):
|
def font_fontconfig_name_get(font_name, style = None):
|
||||||
"""Translate a font name, bound to a style, into fontconfig's font names
|
"""Translate a font name, bound to a style, into fontconfig's font names
|
||||||
|
@ -543,7 +1146,7 @@ def sys_notify_close(unsigned int id):
|
||||||
def sys_notify_send(
|
def sys_notify_send(
|
||||||
unsigned int replaces_id=0,
|
unsigned int replaces_id=0,
|
||||||
icon=None, summary=None, body=None,
|
icon=None, summary=None, body=None,
|
||||||
Elm_Sys_Notify_Urgency urgency=ELM_SYS_NOTIFY_URGENCY_NORMAL,
|
Elm_Sys_Notify_Urgency urgency=enums.ELM_SYS_NOTIFY_URGENCY_NORMAL,
|
||||||
int timeout=-1, cb=None, cb_data=None
|
int timeout=-1, cb=None, cb_data=None
|
||||||
):
|
):
|
||||||
"""Sends a notification to the notification server.
|
"""Sends a notification to the notification server.
|
||||||
|
@ -585,7 +1188,7 @@ def sys_notify_send(
|
||||||
from cpython cimport PyObject_GetBuffer, PyBuffer_Release, PyBUF_SIMPLE, \
|
from cpython cimport PyObject_GetBuffer, PyBuffer_Release, PyBUF_SIMPLE, \
|
||||||
PyObject_CheckBuffer
|
PyObject_CheckBuffer
|
||||||
|
|
||||||
from efl.utils.deprecated cimport DEPRECATED
|
from efl.utils.deprecated import DEPRECATED
|
||||||
from efl.utils.conversions cimport *
|
from efl.utils.conversions cimport *
|
||||||
from efl.eo cimport Eo, object_from_instance
|
from efl.eo cimport Eo, object_from_instance
|
||||||
from efl.evas cimport SmartObject, EventKeyDown, EventKeyUp, EventMouseWheel
|
from efl.evas cimport SmartObject, EventKeyDown, EventKeyUp, EventMouseWheel
|
||||||
|
@ -668,7 +1271,6 @@ include "slider.pxi"
|
||||||
include "slideshow.pxi"
|
include "slideshow.pxi"
|
||||||
include "spinner.pxi"
|
include "spinner.pxi"
|
||||||
#include "store.pxi"
|
#include "store.pxi"
|
||||||
include "systray.pxi"
|
|
||||||
include "table.pxi"
|
include "table.pxi"
|
||||||
include "theme.pxi"
|
include "theme.pxi"
|
||||||
include "thumb.pxi"
|
include "thumb.pxi"
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
||||||
|
@ -47,7 +47,7 @@ cdef class Accessible(Object):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, target, parent = None):
|
def __init__(self, target, parent = None):
|
||||||
"""Accessible(...)
|
"""
|
||||||
|
|
||||||
:param target: The evas object to register as an accessible object.
|
:param target: The evas object to register as an accessible object.
|
||||||
:param parent: The elementary object which is used for creating
|
:param parent: The elementary object which is used for creating
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
||||||
|
@ -26,7 +26,7 @@ cdef class Actionslider(LayoutClass):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, evasObject parent, *args, **kwargs):
|
def __init__(self, evasObject parent, *args, **kwargs):
|
||||||
"""Actionslider(..)
|
"""
|
||||||
|
|
||||||
:param parent: Parent object
|
:param parent: Parent object
|
||||||
:type parent: :py:class:`efl.evas.Object`
|
:type parent: :py:class:`efl.evas.Object`
|
||||||
|
@ -120,4 +120,4 @@ cdef class Actionslider(LayoutClass):
|
||||||
self._callback_del_full("pos_changed", _cb_string_conv, func)
|
self._callback_del_full("pos_changed", _cb_string_conv, func)
|
||||||
|
|
||||||
|
|
||||||
_object_mapping_register("Elm_Actionslider", Actionslider)
|
_object_mapping_register("Elm.Actionslider", Actionslider)
|
||||||
|
|
|
@ -1,15 +1,6 @@
|
||||||
|
from efl.elementary.enums cimport Elm_Actionslider_Pos
|
||||||
|
|
||||||
cdef extern from "Elementary.h":
|
cdef extern from "Elementary.h":
|
||||||
|
|
||||||
cpdef enum Elm_Actionslider_Pos:
|
|
||||||
ELM_ACTIONSLIDER_NONE
|
|
||||||
ELM_ACTIONSLIDER_LEFT
|
|
||||||
ELM_ACTIONSLIDER_CENTER
|
|
||||||
ELM_ACTIONSLIDER_RIGHT
|
|
||||||
ELM_ACTIONSLIDER_ALL
|
|
||||||
ctypedef enum Elm_Actionslider_Pos:
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
Evas_Object *elm_actionslider_add(Evas_Object *parent)
|
Evas_Object *elm_actionslider_add(Evas_Object *parent)
|
||||||
const char *elm_actionslider_selected_label_get(const Evas_Object *obj)
|
const char *elm_actionslider_selected_label_get(const Evas_Object *obj)
|
||||||
void elm_actionslider_indicator_pos_set(Evas_Object *obj, Elm_Actionslider_Pos pos)
|
void elm_actionslider_indicator_pos_set(Evas_Object *obj, Elm_Actionslider_Pos pos)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
||||||
|
@ -28,7 +28,7 @@ cdef class Background(LayoutClass):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, evasObject parent, *args, **kwargs):
|
def __init__(self, evasObject parent, *args, **kwargs):
|
||||||
"""Background(...)
|
"""
|
||||||
|
|
||||||
:param parent: The parent object
|
:param parent: The parent object
|
||||||
:type parent: :py:class:`efl.evas.Object`
|
:type parent: :py:class:`efl.evas.Object`
|
||||||
|
@ -184,4 +184,4 @@ cdef class Background(LayoutClass):
|
||||||
def load_size_set(self, w, h):
|
def load_size_set(self, w, h):
|
||||||
elm_bg_load_size_set(self.obj, w, h)
|
elm_bg_load_size_set(self.obj, w, h)
|
||||||
|
|
||||||
_object_mapping_register("Elm_Bg", Background)
|
_object_mapping_register("Efl.Ui.Bg_Legacy", Background)
|
||||||
|
|
|
@ -1,15 +1,6 @@
|
||||||
|
from efl.elementary.enums cimport Elm_Bg_Option
|
||||||
|
|
||||||
cdef extern from "Elementary.h":
|
cdef extern from "Elementary.h":
|
||||||
|
|
||||||
cpdef enum Elm_Bg_Option:
|
|
||||||
ELM_BG_OPTION_CENTER
|
|
||||||
ELM_BG_OPTION_SCALE
|
|
||||||
ELM_BG_OPTION_STRETCH
|
|
||||||
ELM_BG_OPTION_TILE
|
|
||||||
ELM_BG_OPTION_LAST
|
|
||||||
ctypedef enum Elm_Bg_Option:
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
Evas_Object *elm_bg_add(Evas_Object *parent)
|
Evas_Object *elm_bg_add(Evas_Object *parent)
|
||||||
Eina_Bool elm_bg_file_set(Evas_Object *obj, const char *file, const char *group)
|
Eina_Bool elm_bg_file_set(Evas_Object *obj, const char *file, const char *group)
|
||||||
void elm_bg_file_get(const Evas_Object *obj, const char **file, const char **group)
|
void elm_bg_file_get(const Evas_Object *obj, const char **file, const char **group)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
||||||
|
@ -75,7 +75,7 @@ cdef class Box(Object):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, evasObject parent, *args, **kwargs):
|
def __init__(self, evasObject parent, *args, **kwargs):
|
||||||
"""Box(...)
|
"""
|
||||||
|
|
||||||
:param parent: The parent object
|
:param parent: The parent object
|
||||||
:type parent: :py:class:`efl.evas.Object`
|
:type parent: :py:class:`efl.evas.Object`
|
||||||
|
@ -366,4 +366,4 @@ cdef class Box(Object):
|
||||||
elm_box_transition_free)
|
elm_box_transition_free)
|
||||||
|
|
||||||
|
|
||||||
_object_mapping_register("Elm_Box", Box)
|
_object_mapping_register("Elm.Box", Box)
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
cdef extern from "Ecore.h":
|
|
||||||
ctypedef void (*Ecore_Cb)(void *data)
|
|
||||||
|
|
||||||
cdef extern from "Evas.h":
|
cdef extern from "Evas.h":
|
||||||
ctypedef void *Evas_Object_Box_Data
|
ctypedef void *Evas_Object_Box_Data
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
||||||
|
@ -26,7 +26,7 @@ cdef class Bubble(LayoutClass):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, evasObject parent, *args, **kwargs):
|
def __init__(self, evasObject parent, *args, **kwargs):
|
||||||
"""Bubble(...)
|
"""
|
||||||
|
|
||||||
:param parent: The parent object
|
:param parent: The parent object
|
||||||
:type parent: :py:class:`efl.evas.Object`
|
:type parent: :py:class:`efl.evas.Object`
|
||||||
|
@ -66,4 +66,4 @@ cdef class Bubble(LayoutClass):
|
||||||
self._callback_del("clicked", func)
|
self._callback_del("clicked", func)
|
||||||
|
|
||||||
|
|
||||||
_object_mapping_register("Elm_Bubble", Bubble)
|
_object_mapping_register("Elm.Bubble", Bubble)
|
||||||
|
|
|
@ -1,14 +1,6 @@
|
||||||
|
from efl.elementary.enums cimport Elm_Bubble_Pos
|
||||||
|
|
||||||
cdef extern from "Elementary.h":
|
cdef extern from "Elementary.h":
|
||||||
|
|
||||||
cpdef enum Elm_Bubble_Pos:
|
|
||||||
ELM_BUBBLE_POS_TOP_LEFT
|
|
||||||
ELM_BUBBLE_POS_TOP_RIGHT
|
|
||||||
ELM_BUBBLE_POS_BOTTOM_LEFT
|
|
||||||
ELM_BUBBLE_POS_BOTTOM_RIGHT
|
|
||||||
ctypedef enum Elm_Bubble_Pos:
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
Evas_Object *elm_bubble_add(Evas_Object *parent)
|
Evas_Object *elm_bubble_add(Evas_Object *parent)
|
||||||
void elm_bubble_pos_set(Evas_Object *obj, Elm_Bubble_Pos pos)
|
void elm_bubble_pos_set(Evas_Object *obj, Elm_Bubble_Pos pos)
|
||||||
Elm_Bubble_Pos elm_bubble_pos_get(const Evas_Object *obj)
|
Elm_Bubble_Pos elm_bubble_pos_get(const Evas_Object *obj)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
||||||
|
@ -25,7 +25,7 @@ cdef class Button(LayoutClass):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, evasObject parent, *args, **kwargs):
|
def __init__(self, evasObject parent, *args, **kwargs):
|
||||||
"""Button(...)
|
"""
|
||||||
|
|
||||||
:param parent: The parent object
|
:param parent: The parent object
|
||||||
:type parent: :py:class:`efl.evas.Object`
|
:type parent: :py:class:`efl.evas.Object`
|
||||||
|
@ -135,4 +135,4 @@ cdef class Button(LayoutClass):
|
||||||
self._callback_del("unpressed", func)
|
self._callback_del("unpressed", func)
|
||||||
|
|
||||||
|
|
||||||
_object_mapping_register("Elm_Button", Button)
|
_object_mapping_register("Efl.Ui.Button_Legacy", Button)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
||||||
|
@ -53,7 +53,7 @@ cdef class CalendarMark(object):
|
||||||
|
|
||||||
def __init__(self, evasObject cal, mark_type, mark_time,
|
def __init__(self, evasObject cal, mark_type, mark_time,
|
||||||
Elm_Calendar_Mark_Repeat_Type repeat):
|
Elm_Calendar_Mark_Repeat_Type repeat):
|
||||||
"""CalendarMark(...)
|
"""
|
||||||
|
|
||||||
:param parent: The parent object
|
:param parent: The parent object
|
||||||
:type parent: :py:class:`efl.evas.Object`
|
:type parent: :py:class:`efl.evas.Object`
|
||||||
|
@ -109,7 +109,7 @@ cdef class Calendar(LayoutClass):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, evasObject parent, *args, **kwargs):
|
def __init__(self, evasObject parent, *args, **kwargs):
|
||||||
"""Calendar(..)
|
"""
|
||||||
|
|
||||||
:param parent: The parent object
|
:param parent: The parent object
|
||||||
:type parent: :py:class:`efl.evas.Object`
|
:type parent: :py:class:`efl.evas.Object`
|
||||||
|
@ -216,6 +216,73 @@ cdef class Calendar(LayoutClass):
|
||||||
time.tm_isdst = tmtup.tm_isdst
|
time.tm_isdst = tmtup.tm_isdst
|
||||||
elm_calendar_selected_time_set(self.obj, &time)
|
elm_calendar_selected_time_set(self.obj, &time)
|
||||||
|
|
||||||
|
property date_min:
|
||||||
|
""" Minimum date on calendar.
|
||||||
|
|
||||||
|
:type: datetime.date
|
||||||
|
|
||||||
|
.. versionadded:: 1.19
|
||||||
|
|
||||||
|
"""
|
||||||
|
def __get__(self):
|
||||||
|
cdef const tm *time
|
||||||
|
time = elm_calendar_date_min_get(self.obj)
|
||||||
|
if time == NULL:
|
||||||
|
return None
|
||||||
|
return date(time.tm_year + 1900,
|
||||||
|
time.tm_mon + 1,
|
||||||
|
time.tm_mday)
|
||||||
|
|
||||||
|
def __set__(self, min_date):
|
||||||
|
cdef tm time
|
||||||
|
tmtup = min_date.timetuple()
|
||||||
|
time.tm_mday = tmtup.tm_mday
|
||||||
|
time.tm_mon = tmtup.tm_mon - 1
|
||||||
|
time.tm_year = tmtup.tm_year - 1900
|
||||||
|
time.tm_wday = tmtup.tm_wday
|
||||||
|
time.tm_yday = tmtup.tm_yday
|
||||||
|
time.tm_isdst = tmtup.tm_isdst
|
||||||
|
elm_calendar_date_min_set(self.obj, &time)
|
||||||
|
|
||||||
|
def date_min_get(self):
|
||||||
|
return self.date_min
|
||||||
|
def date_min_set(self, min_date):
|
||||||
|
self.date_min = min_date
|
||||||
|
|
||||||
|
property date_max:
|
||||||
|
""" Maximum date on calendar.
|
||||||
|
|
||||||
|
:type: datetime.date
|
||||||
|
|
||||||
|
.. versionadded:: 1.19
|
||||||
|
|
||||||
|
"""
|
||||||
|
def __get__(self):
|
||||||
|
cdef const tm *time
|
||||||
|
time = elm_calendar_date_max_get(self.obj)
|
||||||
|
if time == NULL:
|
||||||
|
return None
|
||||||
|
return date(time.tm_year + 1900,
|
||||||
|
time.tm_mon + 1,
|
||||||
|
time.tm_mday)
|
||||||
|
|
||||||
|
def __set__(self, max_date):
|
||||||
|
cdef tm time
|
||||||
|
tmtup = max_date.timetuple()
|
||||||
|
time.tm_mday = tmtup.tm_mday
|
||||||
|
time.tm_mon = tmtup.tm_mon - 1
|
||||||
|
time.tm_year = tmtup.tm_year - 1900
|
||||||
|
time.tm_wday = tmtup.tm_wday
|
||||||
|
time.tm_yday = tmtup.tm_yday
|
||||||
|
time.tm_isdst = tmtup.tm_isdst
|
||||||
|
elm_calendar_date_max_set(self.obj, &time)
|
||||||
|
|
||||||
|
def date_max_get(self):
|
||||||
|
return self.date_max
|
||||||
|
def date_max_set(self, max_date):
|
||||||
|
self.date_max = max_date
|
||||||
|
|
||||||
|
|
||||||
# TODO:
|
# TODO:
|
||||||
# property format_function:
|
# property format_function:
|
||||||
# """Set a function to format the string that will be used to display
|
# """Set a function to format the string that will be used to display
|
||||||
|
@ -391,4 +458,4 @@ cdef class Calendar(LayoutClass):
|
||||||
self._callback_del("display,changed", func)
|
self._callback_del("display,changed", func)
|
||||||
|
|
||||||
|
|
||||||
_object_mapping_register("Elm_Calendar", Calendar)
|
_object_mapping_register("Elm.Calendar", Calendar)
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
from efl.elementary.enums cimport Elm_Calendar_Mark_Repeat_Type, \
|
||||||
|
Elm_Calendar_Select_Mode, Elm_Calendar_Selectable, Elm_Calendar_Weekday
|
||||||
|
|
||||||
cdef extern from "time.h":
|
cdef extern from "time.h":
|
||||||
struct tm:
|
struct tm:
|
||||||
int tm_sec
|
int tm_sec
|
||||||
|
@ -14,46 +17,6 @@ cdef extern from "time.h":
|
||||||
const char *tm_zone
|
const char *tm_zone
|
||||||
|
|
||||||
cdef extern from "Elementary.h":
|
cdef extern from "Elementary.h":
|
||||||
|
|
||||||
cpdef enum Elm_Calendar_Mark_Repeat_Type:
|
|
||||||
ELM_CALENDAR_UNIQUE
|
|
||||||
ELM_CALENDAR_DAILY
|
|
||||||
ELM_CALENDAR_WEEKLY
|
|
||||||
ELM_CALENDAR_MONTHLY
|
|
||||||
ELM_CALENDAR_ANNUALLY
|
|
||||||
ELM_CALENDAR_LAST_DAY_OF_MONTH
|
|
||||||
ctypedef enum Elm_Calendar_Mark_Repeat_Type:
|
|
||||||
pass
|
|
||||||
|
|
||||||
cpdef enum Elm_Calendar_Select_Mode:
|
|
||||||
ELM_CALENDAR_SELECT_MODE_DEFAULT
|
|
||||||
ELM_CALENDAR_SELECT_MODE_ALWAYS
|
|
||||||
ELM_CALENDAR_SELECT_MODE_NONE
|
|
||||||
ELM_CALENDAR_SELECT_MODE_ONDEMAND
|
|
||||||
ctypedef enum Elm_Calendar_Select_Mode:
|
|
||||||
pass
|
|
||||||
|
|
||||||
cpdef enum Elm_Calendar_Selectable:
|
|
||||||
ELM_CALENDAR_SELECTABLE_NONE
|
|
||||||
ELM_CALENDAR_SELECTABLE_YEAR
|
|
||||||
ELM_CALENDAR_SELECTABLE_MONTH
|
|
||||||
ELM_CALENDAR_SELECTABLE_DAY
|
|
||||||
ctypedef enum Elm_Calendar_Selectable:
|
|
||||||
pass
|
|
||||||
|
|
||||||
cpdef enum Elm_Calendar_Weekday:
|
|
||||||
ELM_DAY_SUNDAY
|
|
||||||
ELM_DAY_MONDAY
|
|
||||||
ELM_DAY_TUESDAY
|
|
||||||
ELM_DAY_WEDNESDAY
|
|
||||||
ELM_DAY_THURSDAY
|
|
||||||
ELM_DAY_FRIDAY
|
|
||||||
ELM_DAY_SATURDAY
|
|
||||||
ELM_DAY_LAST
|
|
||||||
ctypedef enum Elm_Calendar_Weekday:
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
ctypedef char *(*Elm_Calendar_Format_Cb) (tm *stime)
|
ctypedef char *(*Elm_Calendar_Format_Cb) (tm *stime)
|
||||||
|
|
||||||
|
|
||||||
|
@ -83,4 +46,7 @@ cdef extern from "Elementary.h":
|
||||||
void elm_calendar_selectable_set(Evas_Object *obj, Elm_Calendar_Selectable selectable)
|
void elm_calendar_selectable_set(Evas_Object *obj, Elm_Calendar_Selectable selectable)
|
||||||
Elm_Calendar_Selectable elm_calendar_selectable_get(const Evas_Object *obj)
|
Elm_Calendar_Selectable elm_calendar_selectable_get(const Evas_Object *obj)
|
||||||
Eina_Bool elm_calendar_displayed_time_get(const Evas_Object *obj, tm *displayed_time)
|
Eina_Bool elm_calendar_displayed_time_get(const Evas_Object *obj, tm *displayed_time)
|
||||||
|
const tm * elm_calendar_date_min_get(const Evas_Object *obj)
|
||||||
|
void elm_calendar_date_min_set(Evas_Object *obj, const tm *min)
|
||||||
|
const tm * elm_calendar_date_max_get(const Evas_Object *obj)
|
||||||
|
void elm_calendar_date_max_set(Evas_Object *obj, const tm *max)
|
||||||
|
|
|
@ -6,6 +6,7 @@ from . import ELM_CALENDAR_WEEKLY
|
||||||
from . import ELM_CALENDAR_MONTHLY
|
from . import ELM_CALENDAR_MONTHLY
|
||||||
from . import ELM_CALENDAR_ANNUALLY
|
from . import ELM_CALENDAR_ANNUALLY
|
||||||
from . import ELM_CALENDAR_LAST_DAY_OF_MONTH
|
from . import ELM_CALENDAR_LAST_DAY_OF_MONTH
|
||||||
|
from . import ELM_CALENDAR_REVERSE_DAILY
|
||||||
|
|
||||||
from . import ELM_CALENDAR_SELECT_MODE_DEFAULT
|
from . import ELM_CALENDAR_SELECT_MODE_DEFAULT
|
||||||
from . import ELM_CALENDAR_SELECT_MODE_ALWAYS
|
from . import ELM_CALENDAR_SELECT_MODE_ALWAYS
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
||||||
|
@ -25,7 +25,7 @@ cdef class Check(LayoutClass):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, evasObject parent, *args, **kwargs):
|
def __init__(self, evasObject parent, *args, **kwargs):
|
||||||
"""Check(...)
|
"""
|
||||||
|
|
||||||
:param parent: The parent object
|
:param parent: The parent object
|
||||||
:type parent: :py:class:`efl.evas.Object`
|
:type parent: :py:class:`efl.evas.Object`
|
||||||
|
@ -65,4 +65,4 @@ cdef class Check(LayoutClass):
|
||||||
self._callback_del("changed", func)
|
self._callback_del("changed", func)
|
||||||
|
|
||||||
|
|
||||||
_object_mapping_register("Elm_Check", Check)
|
_object_mapping_register("Efl.Ui.Check_Legacy", Check)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
||||||
|
@ -26,7 +26,7 @@ cdef class Clock(LayoutClass):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, evasObject parent, *args, **kwargs):
|
def __init__(self, evasObject parent, *args, **kwargs):
|
||||||
"""Clock(...)
|
"""
|
||||||
|
|
||||||
:param parent: The parent object
|
:param parent: The parent object
|
||||||
:type parent: :py:class:`efl.evas.Object`
|
:type parent: :py:class:`efl.evas.Object`
|
||||||
|
@ -221,4 +221,4 @@ cdef class Clock(LayoutClass):
|
||||||
self._callback_del("changed", func)
|
self._callback_del("changed", func)
|
||||||
|
|
||||||
|
|
||||||
_object_mapping_register("Elm_Clock", Clock)
|
_object_mapping_register("Elm.Clock", Clock)
|
||||||
|
|
|
@ -1,18 +1,6 @@
|
||||||
|
from efl.elementary.enums cimport Elm_Clock_Edit_Mode
|
||||||
|
|
||||||
cdef extern from "Elementary.h":
|
cdef extern from "Elementary.h":
|
||||||
|
|
||||||
cpdef enum Elm_Clock_Edit_Mode:
|
|
||||||
ELM_CLOCK_EDIT_DEFAULT
|
|
||||||
ELM_CLOCK_EDIT_HOUR_DECIMAL
|
|
||||||
ELM_CLOCK_EDIT_HOUR_UNIT
|
|
||||||
ELM_CLOCK_EDIT_MIN_DECIMAL
|
|
||||||
ELM_CLOCK_EDIT_MIN_UNIT
|
|
||||||
ELM_CLOCK_EDIT_SEC_DECIMAL
|
|
||||||
ELM_CLOCK_EDIT_SEC_UNIT
|
|
||||||
ELM_CLOCK_EDIT_ALL
|
|
||||||
ctypedef enum Elm_Clock_Edit_Mode:
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
Evas_Object *elm_clock_add(Evas_Object *parent)
|
Evas_Object *elm_clock_add(Evas_Object *parent)
|
||||||
void elm_clock_time_set(Evas_Object *obj, int hrs, int min, int sec)
|
void elm_clock_time_set(Evas_Object *obj, int hrs, int min, int sec)
|
||||||
void elm_clock_time_get(const Evas_Object *obj, int *hrs, int *min, int *sec)
|
void elm_clock_time_get(const Evas_Object *obj, int *hrs, int *min, int *sec)
|
||||||
|
|
|
@ -1,14 +1,6 @@
|
||||||
from efl.utils.conversions cimport python_list_objects_to_eina_list
|
from efl.utils.conversions cimport python_list_objects_to_eina_list
|
||||||
|
|
||||||
cdef extern from "Elementary.h":
|
cdef extern from "Elementary.h":
|
||||||
struct _Elm_Selection_Data:
|
|
||||||
Evas_Coord x, y
|
|
||||||
Elm_Sel_Format format
|
|
||||||
void *data
|
|
||||||
size_t len
|
|
||||||
Elm_Xdnd_Action action
|
|
||||||
|
|
||||||
ctypedef _Elm_Selection_Data Elm_Selection_Data
|
|
||||||
|
|
||||||
ctypedef Eina_Bool (*Elm_Drop_Cb) (void *data, Evas_Object *obj, Elm_Selection_Data *ev)
|
ctypedef Eina_Bool (*Elm_Drop_Cb) (void *data, Evas_Object *obj, Elm_Selection_Data *ev)
|
||||||
ctypedef Elm_Object_Item *(*Elm_Xy_Item_Get_Cb) (Evas_Object *obj, Evas_Coord x, Evas_Coord y, int *xposret, int *yposret)
|
ctypedef Elm_Object_Item *(*Elm_Xy_Item_Get_Cb) (Evas_Object *obj, Evas_Coord x, Evas_Coord y, int *xposret, int *yposret)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
||||||
|
@ -29,7 +29,7 @@ cdef class ColorselectorPaletteItem(ObjectItem):
|
||||||
cdef int r, g, b, a
|
cdef int r, g, b, a
|
||||||
|
|
||||||
def __init__(self, int r, int g, int b, int a, *args, **kwargs):
|
def __init__(self, int r, int g, int b, int a, *args, **kwargs):
|
||||||
"""ColorselectorPaletteItem(...)
|
"""
|
||||||
|
|
||||||
:param r: Red value of color
|
:param r: Red value of color
|
||||||
:type r: int
|
:type r: int
|
||||||
|
@ -108,7 +108,7 @@ cdef class Colorselector(LayoutClass):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, evasObject parent, *args, **kwargs):
|
def __init__(self, evasObject parent, *args, **kwargs):
|
||||||
"""Colorselector(...)
|
"""
|
||||||
|
|
||||||
:param parent: The parent object
|
:param parent: The parent object
|
||||||
:type parent: :py:class:`efl.evas.Object`
|
:type parent: :py:class:`efl.evas.Object`
|
||||||
|
@ -280,4 +280,4 @@ cdef class Colorselector(LayoutClass):
|
||||||
_cb_object_item_conv, func)
|
_cb_object_item_conv, func)
|
||||||
|
|
||||||
|
|
||||||
_object_mapping_register("Elm_Colorselector", Colorselector)
|
_object_mapping_register("Elm.Colorselector", Colorselector)
|
||||||
|
|
|
@ -1,13 +1,6 @@
|
||||||
|
from efl.elementary.enums cimport Elm_Colorselector_Mode
|
||||||
|
|
||||||
cdef extern from "Elementary.h":
|
cdef extern from "Elementary.h":
|
||||||
|
|
||||||
cpdef enum Elm_Colorselector_Mode:
|
|
||||||
ELM_COLORSELECTOR_PALETTE
|
|
||||||
ELM_COLORSELECTOR_COMPONENTS
|
|
||||||
ELM_COLORSELECTOR_BOTH
|
|
||||||
ctypedef enum Elm_Colorselector_Mode:
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
Evas_Object * elm_colorselector_add(Evas_Object *parent)
|
Evas_Object * elm_colorselector_add(Evas_Object *parent)
|
||||||
void elm_colorselector_color_set(Evas_Object *obj, int r, int g, int b, int a)
|
void elm_colorselector_color_set(Evas_Object *obj, int r, int g, int b, int a)
|
||||||
void elm_colorselector_color_get(const Evas_Object *obj, int *r, int *g, int *b, int *a)
|
void elm_colorselector_color_get(const Evas_Object *obj, int *r, int *g, int *b, int *a)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
||||||
|
@ -115,7 +115,7 @@ class Combobox(_Combobox, Button, Entry, Genlist, Hover):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
def __init__(self, evasObject parent, *args, **kwargs):
|
def __init__(self, evasObject parent, *args, **kwargs):
|
||||||
"""Combobox(...)
|
"""
|
||||||
|
|
||||||
:param parent: The parent object
|
:param parent: The parent object
|
||||||
:type parent: :py:class:`efl.evas.Object`
|
:type parent: :py:class:`efl.evas.Object`
|
||||||
|
@ -138,4 +138,4 @@ class Combobox(_Combobox, Button, Entry, Genlist, Hover):
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
_object_mapping_register("Elm_Combobox", Combobox)
|
_object_mapping_register("Elm.Combobox", Combobox)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
||||||
|
|
|
@ -1,35 +1,8 @@
|
||||||
cdef extern from "Edje.h":
|
from efl.elementary.enums cimport Elm_Softcursor_Mode, \
|
||||||
|
Elm_Slider_Indicator_Visible_Mode, Elm_Focus_Move_Policy, \
|
||||||
cpdef enum Edje_Channel:
|
Elm_Focus_Autoscroll_Mode, Edje_Channel
|
||||||
EDJE_CHANNEL_EFFECT
|
|
||||||
EDJE_CHANNEL_BACKGROUND
|
|
||||||
EDJE_CHANNEL_MUSIC
|
|
||||||
EDJE_CHANNEL_FOREGROUND
|
|
||||||
EDJE_CHANNEL_INTERFACE
|
|
||||||
EDJE_CHANNEL_INPUT
|
|
||||||
EDJE_CHANNEL_ALERT
|
|
||||||
EDJE_CHANNEL_ALL
|
|
||||||
ctypedef enum Edje_Channel:
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
cdef extern from "Elementary.h":
|
cdef extern from "Elementary.h":
|
||||||
|
|
||||||
cpdef enum Elm_Softcursor_Mode:
|
|
||||||
ELM_SOFTCURSOR_MODE_AUTO
|
|
||||||
ELM_SOFTCURSOR_MODE_ON
|
|
||||||
ELM_SOFTCURSOR_MODE_OFF
|
|
||||||
ctypedef enum Elm_Softcursor_Mode:
|
|
||||||
pass
|
|
||||||
|
|
||||||
cpdef enum Elm_Slider_Indicator_Visible_Mode:
|
|
||||||
ELM_SLIDER_INDICATOR_VISIBLE_MODE_DEFAULT
|
|
||||||
ELM_SLIDER_INDICATOR_VISIBLE_MODE_ALWAYS
|
|
||||||
ELM_SLIDER_INDICATOR_VISIBLE_MODE_ON_FOCUS
|
|
||||||
ELM_SLIDER_INDICATOR_VISIBLE_MODE_NONE
|
|
||||||
ctypedef enum Elm_Slider_Indicator_Visible_Mode:
|
|
||||||
pass
|
|
||||||
|
|
||||||
ctypedef struct Elm_Font_Overlay:
|
ctypedef struct Elm_Font_Overlay:
|
||||||
const char *text_class
|
const char *text_class
|
||||||
const char *font
|
const char *font
|
||||||
|
@ -193,7 +166,7 @@ cdef extern from "Elementary.h":
|
||||||
|
|
||||||
Eina_Bool elm_config_vsync_get()
|
Eina_Bool elm_config_vsync_get()
|
||||||
void elm_config_vsync_set(Eina_Bool enabled)
|
void elm_config_vsync_set(Eina_Bool enabled)
|
||||||
|
|
||||||
Elm_Focus_Autoscroll_Mode elm_config_focus_autoscroll_mode_get()
|
Elm_Focus_Autoscroll_Mode elm_config_focus_autoscroll_mode_get()
|
||||||
void elm_config_focus_autoscroll_mode_set(Elm_Focus_Autoscroll_Mode mode)
|
void elm_config_focus_autoscroll_mode_set(Elm_Focus_Autoscroll_Mode mode)
|
||||||
Eina_Bool elm_config_window_auto_focus_enable_get()
|
Eina_Bool elm_config_window_auto_focus_enable_get()
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
||||||
|
@ -25,7 +25,7 @@ cdef class Conformant(LayoutClass):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, evasObject parent, *args, **kwargs):
|
def __init__(self, evasObject parent, *args, **kwargs):
|
||||||
"""Conformant(...)
|
"""
|
||||||
|
|
||||||
:param parent: The parent object
|
:param parent: The parent object
|
||||||
:type parent: :py:class:`efl.evas.Object`
|
:type parent: :py:class:`efl.evas.Object`
|
||||||
|
@ -81,4 +81,4 @@ cdef class Conformant(LayoutClass):
|
||||||
self._callback_del("clipboard,state,off", func)
|
self._callback_del("clipboard,state,off", func)
|
||||||
|
|
||||||
|
|
||||||
_object_mapping_register("Elm_Conformant", Conformant)
|
_object_mapping_register("Elm.Conformant", Conformant)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
||||||
|
@ -35,7 +35,7 @@ cdef class CtxpopupItem(ObjectItem):
|
||||||
|
|
||||||
def __init__(self, label = None, evasObject icon = None,
|
def __init__(self, label = None, evasObject icon = None,
|
||||||
callback = None, cb_data = None, *args, **kargs):
|
callback = None, cb_data = None, *args, **kargs):
|
||||||
"""CtxpopupItem(...)
|
"""
|
||||||
|
|
||||||
:param label: The Label of the new item
|
:param label: The Label of the new item
|
||||||
:type label: string
|
:type label: string
|
||||||
|
@ -142,6 +142,7 @@ cdef class CtxpopupItem(ObjectItem):
|
||||||
def __get__(self):
|
def __get__(self):
|
||||||
return _object_item_to_python(elm_ctxpopup_item_next_get(self.item))
|
return _object_item_to_python(elm_ctxpopup_item_next_get(self.item))
|
||||||
|
|
||||||
|
|
||||||
cdef class Ctxpopup(LayoutClass):
|
cdef class Ctxpopup(LayoutClass):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
@ -154,7 +155,7 @@ cdef class Ctxpopup(LayoutClass):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, evasObject parent, *args, **kwargs):
|
def __init__(self, evasObject parent, *args, **kwargs):
|
||||||
"""Ctxpopup(...)
|
"""
|
||||||
|
|
||||||
:param parent: The parent object
|
:param parent: The parent object
|
||||||
:type parent: :py:class:`efl.evas.Object`
|
:type parent: :py:class:`efl.evas.Object`
|
||||||
|
@ -234,6 +235,86 @@ cdef class Ctxpopup(LayoutClass):
|
||||||
else:
|
else:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
def item_insert_before(self, CtxpopupItem before, label, evasObject icon=None,
|
||||||
|
func=None, *args, **kwargs):
|
||||||
|
"""Add a new item to the list before the indicated item
|
||||||
|
|
||||||
|
:param CtxpopupItem before: The item before which to add it
|
||||||
|
:param string label: The label of new item
|
||||||
|
:param evasObject icon: The icon of new item
|
||||||
|
:param func: The callback function to be invoked when this item is selected.
|
||||||
|
:param \*args: The data to be attached for callback
|
||||||
|
:param \*\*kwargs: The data to be attached for callback
|
||||||
|
:return: :class:`CtxpopupItem`
|
||||||
|
|
||||||
|
.. versionadded:: 1.21
|
||||||
|
|
||||||
|
"""
|
||||||
|
cdef:
|
||||||
|
Elm_Object_Item *item
|
||||||
|
Evas_Smart_Cb cb = NULL
|
||||||
|
CtxpopupItem ret = CtxpopupItem.__new__(CtxpopupItem)
|
||||||
|
|
||||||
|
if func is not None and callable(func):
|
||||||
|
cb = _object_item_callback
|
||||||
|
|
||||||
|
if isinstance(label, unicode): label = PyUnicode_AsUTF8String(label)
|
||||||
|
|
||||||
|
item = elm_ctxpopup_item_insert_before(self.obj,
|
||||||
|
before.item if before is not None else NULL,
|
||||||
|
<const char *>label if label is not None else NULL,
|
||||||
|
icon.obj if icon is not None else NULL,
|
||||||
|
cb, <void*>ret)
|
||||||
|
|
||||||
|
if item != NULL:
|
||||||
|
ret._set_obj(item)
|
||||||
|
ret.cb_func = func
|
||||||
|
ret.args = args
|
||||||
|
ret.kwargs = kwargs
|
||||||
|
return ret
|
||||||
|
else:
|
||||||
|
return None
|
||||||
|
|
||||||
|
def item_insert_after(self, CtxpopupItem after, label, evasObject icon=None,
|
||||||
|
func=None, *args, **kwargs):
|
||||||
|
"""Add a new item to the list after the indicated item
|
||||||
|
|
||||||
|
:param CtxpopupItem after: The item after which to add it
|
||||||
|
:param string label: The label of new item
|
||||||
|
:param evasObject icon: The icon of new item
|
||||||
|
:param func: The callback function to be invoked when this item is selected.
|
||||||
|
:param \*args: The data to be attached for callback
|
||||||
|
:param \*\*kwargs: The data to be attached for callback
|
||||||
|
:return: :class:`CtxpopupItem`
|
||||||
|
|
||||||
|
.. versionadded:: 1.21
|
||||||
|
|
||||||
|
"""
|
||||||
|
cdef:
|
||||||
|
Elm_Object_Item *item
|
||||||
|
Evas_Smart_Cb cb = NULL
|
||||||
|
CtxpopupItem ret = CtxpopupItem.__new__(CtxpopupItem)
|
||||||
|
|
||||||
|
if func is not None and callable(func):
|
||||||
|
cb = _object_item_callback
|
||||||
|
|
||||||
|
if isinstance(label, unicode): label = PyUnicode_AsUTF8String(label)
|
||||||
|
|
||||||
|
item = elm_ctxpopup_item_insert_after(self.obj,
|
||||||
|
after.item if after is not None else NULL,
|
||||||
|
<const char *>label if label is not None else NULL,
|
||||||
|
icon.obj if icon is not None else NULL,
|
||||||
|
cb, <void*>ret)
|
||||||
|
|
||||||
|
if item != NULL:
|
||||||
|
ret._set_obj(item)
|
||||||
|
ret.cb_func = func
|
||||||
|
ret.args = args
|
||||||
|
ret.kwargs = kwargs
|
||||||
|
return ret
|
||||||
|
else:
|
||||||
|
return None
|
||||||
|
|
||||||
def item_prepend(self, label, evasObject icon=None,
|
def item_prepend(self, label, evasObject icon=None,
|
||||||
func=None, *args, **kwargs):
|
func=None, *args, **kwargs):
|
||||||
"""A constructor for a :py:class:`CtxpopupItem`.
|
"""A constructor for a :py:class:`CtxpopupItem`.
|
||||||
|
@ -407,4 +488,4 @@ cdef class Ctxpopup(LayoutClass):
|
||||||
self._callback_del_full("geometry,update", _cb_rectangle_conv, func)
|
self._callback_del_full("geometry,update", _cb_rectangle_conv, func)
|
||||||
|
|
||||||
|
|
||||||
_object_mapping_register("Elm_Ctxpopup", Ctxpopup)
|
_object_mapping_register("Elm.Ctxpopup", Ctxpopup)
|
||||||
|
|
|
@ -1,15 +1,6 @@
|
||||||
|
from efl.elementary.enums cimport Elm_Ctxpopup_Direction
|
||||||
|
|
||||||
cdef extern from "Elementary.h":
|
cdef extern from "Elementary.h":
|
||||||
|
|
||||||
cpdef enum Elm_Ctxpopup_Direction:
|
|
||||||
ELM_CTXPOPUP_DIRECTION_DOWN
|
|
||||||
ELM_CTXPOPUP_DIRECTION_RIGHT
|
|
||||||
ELM_CTXPOPUP_DIRECTION_LEFT
|
|
||||||
ELM_CTXPOPUP_DIRECTION_UP
|
|
||||||
ELM_CTXPOPUP_DIRECTION_UNKNOWN
|
|
||||||
ctypedef enum Elm_Ctxpopup_Direction:
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
Evas_Object *elm_ctxpopup_add(Evas_Object *parent)
|
Evas_Object *elm_ctxpopup_add(Evas_Object *parent)
|
||||||
void elm_ctxpopup_hover_parent_set(Evas_Object *obj, Evas_Object *parent)
|
void elm_ctxpopup_hover_parent_set(Evas_Object *obj, Evas_Object *parent)
|
||||||
Evas_Object *elm_ctxpopup_hover_parent_get(const Evas_Object *obj)
|
Evas_Object *elm_ctxpopup_hover_parent_get(const Evas_Object *obj)
|
||||||
|
@ -29,3 +20,5 @@ cdef extern from "Elementary.h":
|
||||||
Elm_Object_Item *elm_ctxpopup_last_item_get(const Evas_Object *obj)
|
Elm_Object_Item *elm_ctxpopup_last_item_get(const Evas_Object *obj)
|
||||||
Elm_Object_Item *elm_ctxpopup_item_prev_get(const Elm_Object_Item *it)
|
Elm_Object_Item *elm_ctxpopup_item_prev_get(const Elm_Object_Item *it)
|
||||||
Elm_Object_Item *elm_ctxpopup_item_next_get(const Elm_Object_Item *it)
|
Elm_Object_Item *elm_ctxpopup_item_next_get(const Elm_Object_Item *it)
|
||||||
|
Elm_Object_Item *elm_ctxpopup_item_insert_before(Evas_Object *obj, Elm_Object_Item *before, const char *label, Evas_Object *icon, Evas_Smart_Cb func, const void *data)
|
||||||
|
Elm_Object_Item *elm_ctxpopup_item_insert_after(Evas_Object *obj, Elm_Object_Item *before, const char *label, Evas_Object *icon, Evas_Smart_Cb func, const void *data)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
||||||
|
@ -26,7 +26,7 @@ cdef class Datetime(Object):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, evasObject parent, *args, **kwargs):
|
def __init__(self, evasObject parent, *args, **kwargs):
|
||||||
"""Datetime(...)
|
"""
|
||||||
|
|
||||||
:param parent: The parent object
|
:param parent: The parent object
|
||||||
:type parent: :py:class:`efl.evas.Object`
|
:type parent: :py:class:`efl.evas.Object`
|
||||||
|
@ -347,4 +347,4 @@ cdef class Datetime(Object):
|
||||||
self._callback_del("changed", func)
|
self._callback_del("changed", func)
|
||||||
|
|
||||||
|
|
||||||
_object_mapping_register("Elm_Datetime", Datetime)
|
_object_mapping_register("Efl.Ui.Clock_Legacy", Datetime)
|
||||||
|
|
|
@ -1,16 +1,6 @@
|
||||||
|
from efl.elementary.enums cimport Elm_Datetime_Field_Type
|
||||||
|
|
||||||
cdef extern from "Elementary.h":
|
cdef extern from "Elementary.h":
|
||||||
|
|
||||||
cpdef enum Elm_Datetime_Field_Type:
|
|
||||||
ELM_DATETIME_YEAR
|
|
||||||
ELM_DATETIME_MONTH
|
|
||||||
ELM_DATETIME_DATE
|
|
||||||
ELM_DATETIME_HOUR
|
|
||||||
ELM_DATETIME_MINUTE
|
|
||||||
ELM_DATETIME_AMPM
|
|
||||||
ctypedef enum Elm_Datetime_Field_Type:
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
Evas_Object * elm_datetime_add(Evas_Object *parent)
|
Evas_Object * elm_datetime_add(Evas_Object *parent)
|
||||||
const char * elm_datetime_format_get(const Evas_Object *obj)
|
const char * elm_datetime_format_get(const Evas_Object *obj)
|
||||||
void elm_datetime_format_set(Evas_Object *obj, const char *fmt)
|
void elm_datetime_format_set(Evas_Object *obj, const char *fmt)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
||||||
|
@ -26,7 +26,7 @@ cdef class Dayselector(LayoutClass):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, evasObject parent, *args, **kwargs):
|
def __init__(self, evasObject parent, *args, **kwargs):
|
||||||
"""Dayselector(...)
|
"""
|
||||||
|
|
||||||
:param parent: The parent object
|
:param parent: The parent object
|
||||||
:type parent: :py:class:`efl.evas.Object`
|
:type parent: :py:class:`efl.evas.Object`
|
||||||
|
@ -134,4 +134,4 @@ cdef class Dayselector(LayoutClass):
|
||||||
self._callback_del("dayselector,changed", func)
|
self._callback_del("dayselector,changed", func)
|
||||||
|
|
||||||
|
|
||||||
_object_mapping_register("Elm_Dayselector", Dayselector)
|
_object_mapping_register("Elm.Dayselector", Dayselector)
|
||||||
|
|
|
@ -1,18 +1,6 @@
|
||||||
|
from efl.elementary.enums cimport Elm_Dayselector_Day
|
||||||
|
|
||||||
cdef extern from "Elementary.h":
|
cdef extern from "Elementary.h":
|
||||||
|
|
||||||
cpdef enum Elm_Dayselector_Day:
|
|
||||||
ELM_DAYSELECTOR_SUN
|
|
||||||
ELM_DAYSELECTOR_MON
|
|
||||||
ELM_DAYSELECTOR_TUE
|
|
||||||
ELM_DAYSELECTOR_WED
|
|
||||||
ELM_DAYSELECTOR_THU
|
|
||||||
ELM_DAYSELECTOR_FRI
|
|
||||||
ELM_DAYSELECTOR_SAT
|
|
||||||
ELM_DAYSELECTOR_MAX
|
|
||||||
ctypedef enum Elm_Dayselector_Day:
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
Evas_Object *elm_dayselector_add(Evas_Object *parent)
|
Evas_Object *elm_dayselector_add(Evas_Object *parent)
|
||||||
void elm_dayselector_day_selected_set(Evas_Object *obj, Elm_Dayselector_Day day, Eina_Bool selected)
|
void elm_dayselector_day_selected_set(Evas_Object *obj, Elm_Dayselector_Day day, Eina_Bool selected)
|
||||||
Eina_Bool elm_dayselector_day_selected_get(const Evas_Object *obj, Elm_Dayselector_Day day)
|
Eina_Bool elm_dayselector_day_selected_get(const Evas_Object *obj, Elm_Dayselector_Day day)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
||||||
|
@ -56,7 +56,7 @@ cdef class DiskselectorItem(ObjectItem):
|
||||||
|
|
||||||
def __init__(self, label=None, evasObject icon=None, callback=None,
|
def __init__(self, label=None, evasObject icon=None, callback=None,
|
||||||
cb_data=None, *args, **kargs):
|
cb_data=None, *args, **kargs):
|
||||||
"""DiskselectorItem(...)
|
"""
|
||||||
|
|
||||||
:param label: The label of the diskselector item.
|
:param label: The label of the diskselector item.
|
||||||
:type label: string
|
:type label: string
|
||||||
|
@ -183,7 +183,7 @@ cdef class Diskselector(Object):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, evasObject parent, *args, **kwargs):
|
def __init__(self, evasObject parent, *args, **kwargs):
|
||||||
"""Diskselector(...)
|
"""
|
||||||
|
|
||||||
:param parent: The parent object
|
:param parent: The parent object
|
||||||
:type parent: :py:class:`efl.evas.Object`
|
:type parent: :py:class:`efl.evas.Object`
|
||||||
|
@ -455,4 +455,4 @@ cdef class Diskselector(Object):
|
||||||
return (h, v)
|
return (h, v)
|
||||||
|
|
||||||
|
|
||||||
_object_mapping_register("Elm_Diskselector", Diskselector)
|
_object_mapping_register("Elm.Diskselector", Diskselector)
|
||||||
|
|
|
@ -1,14 +1,19 @@
|
||||||
from efl.c_eo cimport Eo as cEo, Eo_Class, eo_add
|
from efl.c_eo cimport Eo as cEo, Efl_Class, efl_add
|
||||||
from efl.eina cimport Eina_Rectangle, Eina_Compare_Cb, \
|
from efl.eina cimport Eina_Rectangle, Eina_Compare_Cb, \
|
||||||
eina_list_free, eina_list_append, eina_stringshare_del
|
eina_list_free, eina_list_append, eina_stringshare_del
|
||||||
from efl.evas cimport Eina_List, Eina_Bool, Evas_Object, Evas_Font_Size, \
|
from efl.evas cimport Eina_List, Eina_Bool, Evas_Object, Evas_Font_Size, \
|
||||||
Evas_Coord, Evas_Callback_Type, Evas_Smart_Cb, Evas_Event_Flags, \
|
Evas_Coord, Evas_Callback_Type, Evas_Smart_Cb, Evas_Event_Flags, \
|
||||||
Evas_Load_Error, Evas_Image_Orient, EVAS_EVENT_FLAG_NONE, \
|
Evas_Load_Error, Evas_Image_Orient, \
|
||||||
evas_object_smart_callback_add, EVAS_CALLBACK_KEY_DOWN, \
|
evas_object_smart_callback_add
|
||||||
|
from efl.evas.enums cimport EVAS_EVENT_FLAG_NONE, EVAS_CALLBACK_KEY_DOWN, \
|
||||||
EVAS_CALLBACK_KEY_UP, EVAS_CALLBACK_MOUSE_WHEEL
|
EVAS_CALLBACK_KEY_UP, EVAS_CALLBACK_MOUSE_WHEEL
|
||||||
|
|
||||||
from efl.ecore cimport Ecore_Pos_Map
|
from efl.ecore cimport Ecore_Pos_Map
|
||||||
|
|
||||||
|
from efl.elementary.enums cimport Elm_Process_State, Elm_Sys_Notify_Urgency, \
|
||||||
|
Elm_Policy, Elm_Policy_Quit, Elm_Policy_Exit, Elm_Policy_Throttle, \
|
||||||
|
Elm_Sel_Format, Elm_Xdnd_Action
|
||||||
|
|
||||||
|
|
||||||
cdef extern from "time.h":
|
cdef extern from "time.h":
|
||||||
struct tm:
|
struct tm:
|
||||||
|
@ -32,85 +37,6 @@ cdef extern from "Edje.h":
|
||||||
ctypedef void (*Edje_Signal_Cb)(void *data, Evas_Object *obj, const char *emission, const char *source)
|
ctypedef void (*Edje_Signal_Cb)(void *data, Evas_Object *obj, const char *emission, const char *source)
|
||||||
|
|
||||||
cdef extern from "Elementary.h":
|
cdef extern from "Elementary.h":
|
||||||
|
|
||||||
#define
|
|
||||||
cpdef enum:
|
|
||||||
ELM_ECORE_EVENT_ETHUMB_CONNECT
|
|
||||||
ELM_EVENT_CONFIG_ALL_CHANGED
|
|
||||||
ELM_EVENT_POLICY_CHANGED
|
|
||||||
ELM_EVENT_PROCESS_BACKGROUND
|
|
||||||
ELM_EVENT_PROCESS_FOREGROUND
|
|
||||||
ELM_EVENT_SYS_NOTIFY_NOTIFICATION_CLOSED
|
|
||||||
ELM_EVENT_SYS_NOTIFY_ACTION_INVOKED
|
|
||||||
ELM_EVENT_SYSTRAY_READY
|
|
||||||
|
|
||||||
#enums
|
|
||||||
cpdef enum Elm_Object_Layer:
|
|
||||||
ELM_OBJECT_LAYER_BACKGROUND # where to place backgrounds
|
|
||||||
ELM_OBJECT_LAYER_DEFAULT # Evas_Object default layer (and thus for Elementary)
|
|
||||||
ELM_OBJECT_LAYER_FOCUS # where focus object visualization is
|
|
||||||
ELM_OBJECT_LAYER_TOOLTIP # where to show tooltips
|
|
||||||
ELM_OBJECT_LAYER_CURSOR # where to show cursors
|
|
||||||
ELM_OBJECT_LAYER_LAST # last layer known by Elementary
|
|
||||||
ctypedef enum Elm_Object_Layer:
|
|
||||||
pass
|
|
||||||
|
|
||||||
cpdef enum Elm_Policy:
|
|
||||||
ELM_POLICY_QUIT
|
|
||||||
ELM_POLICY_EXIT
|
|
||||||
ELM_POLICY_THROTTLE
|
|
||||||
ELM_POLICY_LAST
|
|
||||||
ctypedef enum Elm_Policy:
|
|
||||||
pass
|
|
||||||
|
|
||||||
cpdef enum Elm_Policy_Quit:
|
|
||||||
ELM_POLICY_QUIT_NONE
|
|
||||||
ELM_POLICY_QUIT_LAST_WINDOW_CLOSED
|
|
||||||
ELM_POLICY_QUIT_LAST_WINDOW_HIDDEN
|
|
||||||
ctypedef enum Elm_Policy_Quit:
|
|
||||||
pass
|
|
||||||
|
|
||||||
cpdef enum Elm_Policy_Exit:
|
|
||||||
ELM_POLICY_EXIT_NONE
|
|
||||||
ELM_POLICY_EXIT_WINDOWS_DEL
|
|
||||||
ctypedef enum Elm_Policy_Exit:
|
|
||||||
pass
|
|
||||||
|
|
||||||
cpdef enum Elm_Policy_Throttle:
|
|
||||||
ELM_POLICY_THROTTLE_CONFIG
|
|
||||||
ELM_POLICY_THROTTLE_HIDDEN_ALWAYS
|
|
||||||
ELM_POLICY_THROTTLE_NEVER
|
|
||||||
ctypedef enum Elm_Policy_Throttle:
|
|
||||||
pass
|
|
||||||
|
|
||||||
cpdef enum Elm_Object_Multi_Select_Mode:
|
|
||||||
ELM_OBJECT_MULTI_SELECT_MODE_DEFAULT
|
|
||||||
ELM_OBJECT_MULTI_SELECT_MODE_WITH_CONTROL
|
|
||||||
ELM_OBJECT_MULTI_SELECT_MODE_MAX
|
|
||||||
ctypedef enum Elm_Object_Multi_Select_Mode:
|
|
||||||
pass
|
|
||||||
|
|
||||||
cpdef enum Elm_Sys_Notify_Urgency:
|
|
||||||
ELM_SYS_NOTIFY_URGENCY_LOW
|
|
||||||
ELM_SYS_NOTIFY_URGENCY_NORMAL
|
|
||||||
ELM_SYS_NOTIFY_URGENCY_CRITICAL
|
|
||||||
ctypedef enum Elm_Sys_Notify_Urgency:
|
|
||||||
pass
|
|
||||||
|
|
||||||
cpdef enum Elm_Glob_Match_Flags:
|
|
||||||
ELM_GLOB_MATCH_NO_ESCAPE
|
|
||||||
ELM_GLOB_MATCH_PATH
|
|
||||||
ELM_GLOB_MATCH_PERIOD
|
|
||||||
ELM_GLOB_MATCH_NOCASE
|
|
||||||
ctypedef enum Elm_Glob_Match_Flags:
|
|
||||||
pass
|
|
||||||
|
|
||||||
cpdef enum Elm_Process_State:
|
|
||||||
ELM_PROCESS_STATE_FOREGROUND
|
|
||||||
ELM_PROCESS_STATE_BACKGROUND
|
|
||||||
ctypedef enum Elm_Process_State:
|
|
||||||
pass
|
|
||||||
|
|
||||||
#colors
|
#colors
|
||||||
ctypedef struct Elm_Color_RGBA:
|
ctypedef struct Elm_Color_RGBA:
|
||||||
unsigned int r
|
unsigned int r
|
||||||
|
@ -122,6 +48,14 @@ cdef extern from "Elementary.h":
|
||||||
const char *palette_name
|
const char *palette_name
|
||||||
Eina_List *color_list
|
Eina_List *color_list
|
||||||
|
|
||||||
|
#selection
|
||||||
|
ctypedef struct Elm_Selection_Data:
|
||||||
|
Evas_Coord x, y
|
||||||
|
Elm_Sel_Format format
|
||||||
|
void *data
|
||||||
|
size_t len
|
||||||
|
Elm_Xdnd_Action action
|
||||||
|
|
||||||
#event
|
#event
|
||||||
ctypedef Eina_Bool (*Elm_Event_Cb) (void *data, Evas_Object *obj, Evas_Object *src, Evas_Callback_Type t, void *event_info)
|
ctypedef Eina_Bool (*Elm_Event_Cb) (void *data, Evas_Object *obj, Evas_Object *src, Evas_Callback_Type t, void *event_info)
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2007-2016 various contributors (see AUTHORS)
|
# Copyright (C) 2007-2022 various contributors (see AUTHORS)
|
||||||
#
|
#
|
||||||
# This file is part of Python-EFL.
|
# This file is part of Python-EFL.
|
||||||
#
|
#
|
||||||
|
@ -49,7 +49,7 @@ def utf8_to_markup(string):
|
||||||
<const char *>string if string is not None else NULL))
|
<const char *>string if string is not None else NULL))
|
||||||
|
|
||||||
cdef class EntryContextMenuItem(object):
|
cdef class EntryContextMenuItem(object):
|
||||||
"""EntryContextMenuItem(...)
|
"""
|
||||||
|
|
||||||
Type of contextual item that can be added in to long press menu.
|
Type of contextual item that can be added in to long press menu.
|
||||||
|
|
||||||
|
@ -192,7 +192,7 @@ cdef void py_elm_entry_filter_cb(void *data, Evas_Object *entry, char **text) wi
|
||||||
|
|
||||||
|
|
||||||
cdef class EntryAnchorInfo(object):
|
cdef class EntryAnchorInfo(object):
|
||||||
"""EntryAnchorInfo(...)
|
"""
|
||||||
|
|
||||||
The info sent in the callback for the ``anchor,clicked`` signals emitted
|
The info sent in the callback for the ``anchor,clicked`` signals emitted
|
||||||
by entries.
|
by entries.
|
||||||
|
@ -254,7 +254,7 @@ cdef object _entryanchor_conv(void *addr):
|
||||||
|
|
||||||
|
|
||||||
cdef class EntryAnchorHoverInfo(object):
|
cdef class EntryAnchorHoverInfo(object):
|
||||||
"""EntryAnchorHoverInfo(...)
|
"""
|
||||||
|
|
||||||
The info sent in the callback for ``anchor,hover,opened`` signals emitted
|
The info sent in the callback for ``anchor,hover,opened`` signals emitted
|
||||||
by the entries.
|
by the entries.
|
||||||
|
@ -348,7 +348,7 @@ cdef class Entry(LayoutClass):
|
||||||
self.markup_filters = []
|
self.markup_filters = []
|
||||||
|
|
||||||
def __init__(self, evasObject parent, *args, **kwargs):
|
def __init__(self, evasObject parent, *args, **kwargs):
|
||||||
"""Entry(...)
|
"""
|
||||||
|
|
||||||
:param parent: The parent object
|
:param parent: The parent object
|
||||||
:type parent: :py:class:`efl.evas.Object`
|
:type parent: :py:class:`efl.evas.Object`
|
||||||
|
@ -650,7 +650,7 @@ cdef class Entry(LayoutClass):
|
||||||
|
|
||||||
:type: 2 ints tuple (start, end)
|
:type: 2 ints tuple (start, end)
|
||||||
|
|
||||||
.. versionadded: 1.18
|
.. versionadded:: 1.18
|
||||||
|
|
||||||
"""
|
"""
|
||||||
def __get__(self):
|
def __get__(self):
|
||||||
|
@ -670,7 +670,7 @@ cdef class Entry(LayoutClass):
|
||||||
:param end: The ending position
|
:param end: The ending position
|
||||||
:type end: int
|
:type end: int
|
||||||
|
|
||||||
.. versionadded: 1.9
|
.. versionadded:: 1.9
|
||||||
|
|
||||||
"""
|
"""
|
||||||
elm_entry_select_region_set(self.obj, start, end)
|
elm_entry_select_region_set(self.obj, start, end)
|
||||||
|
@ -680,7 +680,7 @@ cdef class Entry(LayoutClass):
|
||||||
:return: the 2 ints tuple (start, end)
|
:return: the 2 ints tuple (start, end)
|
||||||
:rtype: tuple
|
:rtype: tuple
|
||||||
|
|
||||||
.. versionadded: 1.18
|
.. versionadded:: 1.18
|
||||||
|
|
||||||
"""
|
"""
|
||||||
cdef int start, end
|
cdef int start, end
|
||||||
|
@ -871,7 +871,7 @@ cdef class Entry(LayoutClass):
|
||||||
"""
|
"""
|
||||||
elm_entry_context_menu_clear(self.obj)
|
elm_entry_context_menu_clear(self.obj)
|
||||||
|
|
||||||
def context_menu_item_add(self, label = None, icon_file = None, Elm_Icon_Type icon_type = ELM_ICON_NONE, func = None, *args, **kwargs):
|
def context_menu_item_add(self, label = None, icon_file = None, Elm_Icon_Type icon_type = enums.ELM_ICON_NONE, func = None, *args, **kwargs):
|
||||||
"""This adds an item to the entry's contextual menu.
|
"""This adds an item to the entry's contextual menu.
|
||||||
|
|
||||||
A longpress on an entry will make the contextual menu show up, if this
|
A longpress on an entry will make the contextual menu show up, if this
|
||||||
|
@ -1096,7 +1096,7 @@ cdef class Entry(LayoutClass):
|
||||||
if isinstance(a1, unicode): a1 = PyUnicode_AsUTF8String(a1)
|
if isinstance(a1, unicode): a1 = PyUnicode_AsUTF8String(a1)
|
||||||
if not elm_entry_file_set(self.obj,
|
if not elm_entry_file_set(self.obj,
|
||||||
<const char *>a1 if a1 is not None else NULL,
|
<const char *>a1 if a1 is not None else NULL,
|
||||||
a2 if a2 is not None else ELM_TEXT_FORMAT_PLAIN_UTF8):
|
a2 if a2 is not None else enums.ELM_TEXT_FORMAT_PLAIN_UTF8):
|
||||||
raise RuntimeError("Could not set file")
|
raise RuntimeError("Could not set file")
|
||||||
|
|
||||||
def file_set(self, file_name, file_format):
|
def file_set(self, file_name, file_format):
|
||||||
|
@ -1105,7 +1105,7 @@ cdef class Entry(LayoutClass):
|
||||||
if isinstance(a1, unicode): a1 = PyUnicode_AsUTF8String(a1)
|
if isinstance(a1, unicode): a1 = PyUnicode_AsUTF8String(a1)
|
||||||
if not elm_entry_file_set(self.obj,
|
if not elm_entry_file_set(self.obj,
|
||||||
<const char *>a1 if a1 is not None else NULL,
|
<const char *>a1 if a1 is not None else NULL,
|
||||||
a2 if a2 is not None else ELM_TEXT_FORMAT_PLAIN_UTF8):
|
a2 if a2 is not None else enums.ELM_TEXT_FORMAT_PLAIN_UTF8):
|
||||||
raise RuntimeError("Could not set file")
|
raise RuntimeError("Could not set file")
|
||||||
def file_get(self):
|
def file_get(self):
|
||||||
cdef const char *file
|
cdef const char *file
|
||||||
|
@ -1128,7 +1128,7 @@ cdef class Entry(LayoutClass):
|
||||||
Default is ``ELM_TEXT_FORMAT_PLAIN_UTF8``, if you want to use
|
Default is ``ELM_TEXT_FORMAT_PLAIN_UTF8``, if you want to use
|
||||||
``ELM_TEXT_FORMAT_MARKUP_UTF8`` then you need to set the text format
|
``ELM_TEXT_FORMAT_MARKUP_UTF8`` then you need to set the text format
|
||||||
before calling :attr:`file` or :func:`file_set`.
|
before calling :attr:`file` or :func:`file_set`.
|
||||||
|
|
||||||
You could also set it before a call to :func:`file_save` in order to
|
You could also set it before a call to :func:`file_save` in order to
|
||||||
save with the given format.
|
save with the given format.
|
||||||
|
|
||||||
|
@ -1472,6 +1472,58 @@ cdef class Entry(LayoutClass):
|
||||||
def prediction_allow_get(self):
|
def prediction_allow_get(self):
|
||||||
return elm_entry_prediction_allow_get(self.obj)
|
return elm_entry_prediction_allow_get(self.obj)
|
||||||
|
|
||||||
|
property prediction_hint:
|
||||||
|
"""The prediction hint to use an intelligent reply suggestion service.
|
||||||
|
|
||||||
|
:type: string (**writeonly**)
|
||||||
|
|
||||||
|
.. versionadded:: 1.20
|
||||||
|
|
||||||
|
"""
|
||||||
|
def __set__(self, string):
|
||||||
|
if isinstance(string, unicode): string = PyUnicode_AsUTF8String(string)
|
||||||
|
elm_entry_prediction_hint_set(self.obj,
|
||||||
|
<const char *>string if string is not None else NULL)
|
||||||
|
|
||||||
|
def prediction_hint_set(self, string):
|
||||||
|
if isinstance(string, unicode): string = PyUnicode_AsUTF8String(string)
|
||||||
|
elm_entry_prediction_hint_set(self.obj,
|
||||||
|
<const char *>string if string is not None else NULL)
|
||||||
|
|
||||||
|
def prediction_hint_hash_set(self, key, value):
|
||||||
|
"""Sets the prediction hint data at the specified key.
|
||||||
|
|
||||||
|
:param key: The key of the prediction hint
|
||||||
|
:type key: string
|
||||||
|
:param value: The data to replace
|
||||||
|
:type value: string
|
||||||
|
|
||||||
|
:return bool: `True` on success, `False` otherwise
|
||||||
|
|
||||||
|
.. versionadded:: 1.21
|
||||||
|
|
||||||
|
"""
|
||||||
|
if isinstance(key, unicode): key = PyUnicode_AsUTF8String(key)
|
||||||
|
if isinstance(value, unicode): value = PyUnicode_AsUTF8String(value)
|
||||||
|
return bool(elm_entry_prediction_hint_hash_set(self.obj,
|
||||||
|
<const char *>key if key is not None else NULL,
|
||||||
|
<const char *>value if value is not None else NULL))
|
||||||
|
|
||||||
|
def prediction_hint_hash_del(self, key):
|
||||||
|
"""Removes the prediction hint data identified by a key.
|
||||||
|
|
||||||
|
:param key: The key of the prediction hint
|
||||||
|
:type key: string
|
||||||
|
|
||||||
|
:return bool: `True` on success, `False` otherwise
|
||||||
|
|
||||||
|
.. versionadded:: 1.21
|
||||||
|
|
||||||
|
"""
|
||||||
|
if isinstance(key, unicode): key = PyUnicode_AsUTF8String(key)
|
||||||
|
return bool(elm_entry_prediction_hint_hash_del(self.obj,
|
||||||
|
<const char *>key if key is not None else NULL))
|
||||||
|
|
||||||
# TODO:
|
# TODO:
|
||||||
# def filter_limit_size(self, data, text):
|
# def filter_limit_size(self, data, text):
|
||||||
# """Filter inserted text based on user defined character and byte limits
|
# """Filter inserted text based on user defined character and byte limits
|
||||||
|
@ -1912,4 +1964,4 @@ cdef class Entry(LayoutClass):
|
||||||
return (h, v)
|
return (h, v)
|
||||||
|
|
||||||
|
|
||||||
_object_mapping_register("Elm_Entry", Entry)
|
_object_mapping_register("Elm.Entry", Entry)
|
||||||
|
|
|
@ -31,6 +31,7 @@ from . import ELM_INPUT_PANEL_LAYOUT_TERMINAL
|
||||||
from . import ELM_INPUT_PANEL_LAYOUT_PASSWORD
|
from . import ELM_INPUT_PANEL_LAYOUT_PASSWORD
|
||||||
from . import ELM_INPUT_PANEL_LAYOUT_DATETIME
|
from . import ELM_INPUT_PANEL_LAYOUT_DATETIME
|
||||||
from . import ELM_INPUT_PANEL_LAYOUT_EMOTICON
|
from . import ELM_INPUT_PANEL_LAYOUT_EMOTICON
|
||||||
|
from . import ELM_INPUT_PANEL_LAYOUT_VOICE
|
||||||
|
|
||||||
from . import ELM_INPUT_PANEL_LAYOUT_NORMAL_VARIATION_NORMAL
|
from . import ELM_INPUT_PANEL_LAYOUT_NORMAL_VARIATION_NORMAL
|
||||||
from . import ELM_INPUT_PANEL_LAYOUT_NORMAL_VARIATION_FILENAME
|
from . import ELM_INPUT_PANEL_LAYOUT_NORMAL_VARIATION_FILENAME
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue