Compare commits
332 Commits
devs/kuuko
...
master
Author | SHA1 | Date |
---|---|---|
Davide Andreoli | c8d7bddb47 | |
Davide Andreoli | 4bb6d9fa9f | |
Davide Andreoli | 0b089a5623 | |
Davide Andreoli | a7464e66e6 | |
Davide Andreoli | d1b4512e52 | |
Davide Andreoli | 9896656574 | |
Davide Andreoli | fb649f30e7 | |
Davide Andreoli | f0ab762e16 | |
Davide Andreoli | 4548c5a01b | |
Davide Andreoli | cadc757e7e | |
Davide Andreoli | ed959b59af | |
Davide Andreoli | ec2b95ceab | |
Davide Andreoli | dcf362b03f | |
Davide Andreoli | d420f60e0d | |
Davide Andreoli | 0848286409 | |
Davide Andreoli | 3ca71a067e | |
Davide Andreoli | 9dce9ccad4 | |
Davide Andreoli | 7141f21f0b | |
Davide Andreoli | fabcef1278 | |
Davide Andreoli | a0a6d756b5 | |
Davide Andreoli | e467b3e871 | |
Davide Andreoli | 69cfc2c7fc | |
Davide Andreoli | f70d7c949f | |
Davide Andreoli | 838d4b38c5 | |
Davide Andreoli | b821107688 | |
Davide Andreoli | e7545e3185 | |
Davide Andreoli | 5ac4f71131 | |
Davide Andreoli | 7e4116335a | |
Davide Andreoli | 26e2b89a9d | |
Davide Andreoli | 2d0668c548 | |
Davide Andreoli | a83da00bc7 | |
Davide Andreoli | 31a147fc7c | |
Davide Andreoli | 1f441a18c8 | |
Davide Andreoli | d7275844f1 | |
Davide Andreoli | f3c99eeafa | |
Davide Andreoli | 3dfacc01ab | |
Davide Andreoli | 22274ae81d | |
Davide Andreoli | 25ed1cc567 | |
Davide Andreoli | 22203c0838 | |
Davide Andreoli | 0253f9e178 | |
Davide Andreoli | 55e9e51f69 | |
Davide Andreoli | 5a81c2c944 | |
Davide Andreoli | 5a02f13210 | |
Davide Andreoli | 22cc200a61 | |
Davide Andreoli | 09e016bdbd | |
Davide Andreoli | bd81c36cd0 | |
Davide Andreoli | 81c48dd2d9 | |
Davide Andreoli | b9117cb590 | |
Davide Andreoli | 32aec52918 | |
Davide Andreoli | a7e86793c3 | |
Davide Andreoli | a1eeae15f8 | |
Davide Andreoli | 9ba5210a6a | |
Davide Andreoli | d61c596278 | |
Davide Andreoli | e2ce1b49a3 | |
Davide Andreoli | 8ff30f9edd | |
Davide Andreoli | d544412cd1 | |
Davide Andreoli | 3b0552259d | |
Davide Andreoli | 4fa39916ee | |
Davide Andreoli | 42ee207c16 | |
Davide Andreoli | c9f5b53e28 | |
Davide Andreoli | 8cc259ca26 | |
Davide Andreoli | d25784cca8 | |
Davide Andreoli | 7c555cc9da | |
Davide Andreoli | 3e198f7294 | |
Davide Andreoli | b855a82160 | |
Davide Andreoli | 583f42b131 | |
Davide Andreoli | 2991a6683e | |
Davide Andreoli | fb9b06931e | |
Davide Andreoli | 48d9c26945 | |
Davide Andreoli | 4721842b1e | |
Davide Andreoli | 6aa3501136 | |
Davide Andreoli | 18ca98e66f | |
Davide Andreoli | 006052543f | |
Davide Andreoli | 30c9c60b5d | |
Davide Andreoli | 26607a0986 | |
Davide Andreoli | ffc3c337dc | |
Davide Andreoli | 4b8ddcff7d | |
Davide Andreoli | 00d92cbebe | |
Davide Andreoli | f81fc890bb | |
Davide Andreoli | 28c9775898 | |
Davide Andreoli | 344da31ceb | |
Davide Andreoli | bc9d5648e7 | |
Davide Andreoli | 58ab1d26f7 | |
Davide Andreoli | fe144b8f96 | |
Davide Andreoli | efcebb52bf | |
Davide Andreoli | 7d3799d7fa | |
Davide Andreoli | 85e23f2851 | |
Davide Andreoli | c5759b6d67 | |
Davide Andreoli | 5bbaba2a6e | |
Davide Andreoli | 74ed9e86a4 | |
Davide Andreoli | 3ef64e685c | |
Davide Andreoli | 6e2b444712 | |
Davide Andreoli | 7d8049b0c5 | |
Davide Andreoli | 741000d423 | |
Davide Andreoli | fecc0c2604 | |
Davide Andreoli | 9d5efd8aef | |
Davide Andreoli | 25f620ef19 | |
Davide Andreoli | 6e80968778 | |
Davide Andreoli | 64584362b7 | |
Davide Andreoli | 8ad73b3e69 | |
Davide Andreoli | 5b9ba62e8f | |
Davide Andreoli | 26a4c38d67 | |
Davide Andreoli | 15b29e3ce8 | |
Davide Andreoli | 6bd7daa883 | |
Kai Huuhko | 5864a9dd2d | |
Kai Huuhko | a475ecba44 | |
Davide Andreoli | eace418f9b | |
Davide Andreoli | bb2a45f013 | |
Davide Andreoli | 8c7ad9f31f | |
Davide Andreoli | d9f06e72a2 | |
Davide Andreoli | df221788f0 | |
Davide Andreoli | 6a7e698368 | |
Davide Andreoli | 4557daa602 | |
Kai Huuhko | a70c42e681 | |
Davide Andreoli | d87e0a5484 | |
Davide Andreoli | 89bb6a1998 | |
Kai Huuhko | b06c3151f7 | |
Davide Andreoli | add166fb62 | |
Davide Andreoli | 7aec398ede | |
Davide Andreoli | da9258f474 | |
Davide Andreoli | 9c00cbb0fe | |
Davide Andreoli | 18e2d9c102 | |
Davide Andreoli | 71354b3bb8 | |
Davide Andreoli | a293b4e124 | |
Davide Andreoli | e3224c882a | |
Davide Andreoli | dccd0ed62f | |
Davide Andreoli | 9231e530bf | |
Davide Andreoli | 6f92607ba4 | |
Davide Andreoli | f76e272990 | |
Davide Andreoli | 3e0dbeb7f7 | |
Davide Andreoli | 98b7b2408f | |
Davide Andreoli | ac7013064f | |
Davide Andreoli | f2f8906968 | |
Davide Andreoli | 032750af77 | |
Davide Andreoli | 16fa850f24 | |
Davide Andreoli | 0b03f8b2f3 | |
Davide Andreoli | 810623dbe4 | |
Davide Andreoli | 01220931fc | |
Davide Andreoli | 924f291660 | |
Davide Andreoli | 2e5e96a8dd | |
Davide Andreoli | ea4bc8790d | |
Davide Andreoli | 9e25d34920 | |
Davide Andreoli | 953f468229 | |
Davide Andreoli | f872e7b8c6 | |
Davide Andreoli | e0d892ecaa | |
Davide Andreoli | cb062511b2 | |
Davide Andreoli | fa5b944f31 | |
Davide Andreoli | 99c618fc2b | |
Davide Andreoli | 1a2b8e64f8 | |
Kai Huuhko | 6ad9bb3521 | |
Kai Huuhko | 0217da6c1f | |
Kai Huuhko | f7e96cf0af | |
Kai Huuhko | 58cfedf5af | |
Kai Huuhko | 818e7db2e6 | |
Kai Huuhko | 6fa2d3ff95 | |
Davide Andreoli | 212eca4321 | |
Davide Andreoli | cca359974a | |
Kai Huuhko | f652b6e18f | |
Kai Huuhko | fdab8ed5b6 | |
Kai Huuhko | b2af779d7d | |
Davide Andreoli | 4bd421562d | |
Davide Andreoli | d6fc38ea59 | |
Davide Andreoli | 380e7a58ff | |
Davide Andreoli | 939cd71702 | |
Kai Huuhko | 0ef56b3a58 | |
Kai Huuhko | c955d488f9 | |
Kai Huuhko | a575effa6b | |
Davide Andreoli | 3d31901da7 | |
Davide Andreoli | 79979d9d2d | |
Davide Andreoli | a8c1486aad | |
Kai Huuhko | 54adcd9970 | |
Kai Huuhko | 96ae57ed6a | |
Davide Andreoli | eaa09b6b16 | |
Davide Andreoli | 6ff9589e83 | |
Davide Andreoli | 222f32eaf2 | |
Davide Andreoli | 5258779d41 | |
Davide Andreoli | 5342d77d60 | |
Davide Andreoli | 7066070992 | |
Davide Andreoli | cfb967333d | |
Davide Andreoli | 78d90dd467 | |
Kai Huuhko | 30c2ce90c3 | |
Kai Huuhko | 55039295f2 | |
Kai Huuhko | ad2ead12f7 | |
Kai Huuhko | ecd93319ee | |
Davide Andreoli | 187ca5249b | |
Davide Andreoli | a1bef554e0 | |
Davide Andreoli | 23c6ffc8cf | |
Davide Andreoli | 71946bffb3 | |
Davide Andreoli | bc411cd774 | |
Kai Huuhko | aeeee73fda | |
Davide Andreoli | 9fb954433e | |
Davide Andreoli | 4e57019e1e | |
Davide Andreoli | f59e7c0c18 | |
Davide Andreoli | e47f403a0b | |
Davide Andreoli | 2f1aff95c5 | |
Davide Andreoli | 01d334b5f6 | |
Davide Andreoli | 105743d304 | |
Davide Andreoli | c11a7cf227 | |
Davide Andreoli | 99113cd990 | |
Davide Andreoli | 9381d46765 | |
Davide Andreoli | 83656bff33 | |
Davide Andreoli | 48eec126bb | |
Davide Andreoli | b37c970587 | |
Davide Andreoli | 5a3c19b521 | |
Davide Andreoli | 02f7eb07dd | |
Davide Andreoli | 4a0310140a | |
Davide Andreoli | d87b3bb9d0 | |
Davide Andreoli | a19f0ad434 | |
Davide Andreoli | 11d23a94f1 | |
Davide Andreoli | f287a1f98c | |
Davide Andreoli | ffb294b82f | |
Kai Huuhko | 78c9fe21af | |
Kai Huuhko | 13ea0cbe1d | |
Kai Huuhko | f86234dd25 | |
Davide Andreoli | fbabb111d8 | |
Davide Andreoli | 283efd1a28 | |
Davide Andreoli | 12217e9c2a | |
Kai Huuhko | bc8bac1f1a | |
Kai Huuhko | 0916eae9ff | |
Kai Huuhko | d6bad7a838 | |
Davide Andreoli | 2ebc0dcf74 | |
Davide Andreoli | e2edab7b1c | |
Davide Andreoli | 11c7d38a56 | |
Davide Andreoli | 9b5b526620 | |
Davide Andreoli | 8f23c26d89 | |
Davide Andreoli | 5680c76a49 | |
Davide Andreoli | 082456600a | |
Davide Andreoli | be3069b280 | |
Davide Andreoli | 36ca39e015 | |
Davide Andreoli | 243664d738 | |
Davide Andreoli | e0456df2a2 | |
Davide Andreoli | 51946aaf8b | |
Davide Andreoli | cadf409404 | |
Davide Andreoli | 7fd0f973ca | |
Davide Andreoli | c2c09d4dc9 | |
Davide Andreoli | bae6125061 | |
Bernhard M. Wiedemann | 5bbbed95c0 | |
Davide Andreoli | eca2dfaa0b | |
Davide Andreoli | aba5250634 | |
Kai Huuhko | 41c1779e81 | |
Kai Huuhko | 77d023dfe1 | |
Kai Huuhko | 05c19962dc | |
Davide Andreoli | fea03a787c | |
Davide Andreoli | b6f729dc3a | |
Davide Andreoli | 6668176720 | |
Kai Huuhko | 9a3d441f1c | |
Kai Huuhko | d5656fdd3d | |
Kai Huuhko | ba7bf818d8 | |
Kai Huuhko | 1189e17fe0 | |
Kai Huuhko | fc987411da | |
Kai Huuhko | 523fe8ad4d | |
Kai Huuhko | 3661a78c96 | |
Kai Huuhko | caef23bb34 | |
Kai Huuhko | 684ad779dc | |
Davide Andreoli | 625500bffc | |
Davide Andreoli | 0ecf04eba9 | |
Davide Andreoli | 11d3007f02 | |
Davide Andreoli | cab804e69b | |
Davide Andreoli | 190d0aa7b6 | |
Davide Andreoli | 24318c8d33 | |
Kai Huuhko | 6980ffb0e4 | |
Kai Huuhko | fa69908d71 | |
Davide Andreoli | 86aa8c5138 | |
Davide Andreoli | 9809eb2739 | |
Davide Andreoli | 4f8dfc195f | |
Davide Andreoli | 078d440e05 | |
Davide Andreoli | e087d0d918 | |
Davide Andreoli | 920a8891e6 | |
Davide Andreoli | f03f83fba9 | |
Davide Andreoli | 926c325de8 | |
Davide Andreoli | 005dd26f73 | |
Davide Andreoli | 90595ffdca | |
Davide Andreoli | fc68b43317 | |
Davide Andreoli | 458121f6be | |
Davide Andreoli | f3e6315413 | |
Davide Andreoli | 592467c7bd | |
Davide Andreoli | 1599140196 | |
Davide Andreoli | 0021e4a186 | |
Davide Andreoli | 17df9e69aa | |
Davide Andreoli | 93d2c01002 | |
Davide Andreoli | e963e6d061 | |
Davide Andreoli | 8af35d3f56 | |
Kai Huuhko | 8f2baa86b5 | |
Kai Huuhko | 6c16e2f746 | |
Kai Huuhko | 16f7cb1a24 | |
Davide Andreoli | 06cb7ad598 | |
Kai Huuhko | 75fa5ff256 | |
Kai Huuhko | 5d73c59088 | |
Kai Huuhko | 453c2a123c | |
Davide Andreoli | 8e7616c1b3 | |
Davide Andreoli | 76e94bcbf8 | |
Davide Andreoli | eaf3110089 | |
Davide Andreoli | f01ac0788e | |
Davide Andreoli | d4f355f584 | |
Davide Andreoli | 5594375fac | |
Davide Andreoli | aceff14567 | |
Davide Andreoli | 8ad08e8ef8 | |
Davide Andreoli | ed5f93850f | |
Davide Andreoli | 435e57ca44 | |
Davide Andreoli | fd0b963651 | |
Davide Andreoli | a7c8b2d40d | |
Davide Andreoli | b82ed6f029 | |
Davide Andreoli | df1719d4c9 | |
Davide Andreoli | 3c20338884 | |
Davide Andreoli | 95846a8eaa | |
Davide Andreoli | e9c55b7f5e | |
Davide Andreoli | 28812962d5 | |
Davide Andreoli | 191ce5c22c | |
Davide Andreoli | 40ac305d0d | |
Davide Andreoli | d0026d6103 | |
Davide Andreoli | 1dc4053ce5 | |
Davide Andreoli | 7f132af8d6 | |
Davide Andreoli | 870611de99 | |
Davide Andreoli | 0834e66762 | |
Davide Andreoli | 43591f8b8e | |
Davide Andreoli | 3de1d7be24 | |
Davide Andreoli | 634c56d14c | |
Davide Andreoli | f3b3858902 | |
Davide Andreoli | f3df1b4cc9 | |
Davide Andreoli | 7f5c30c7fd | |
Davide Andreoli | 281cb65c1a | |
Davide Andreoli | 130f1db451 | |
Davide Andreoli | 97dadf30da | |
Davide Andreoli | 5e138dcdf2 | |
Davide Andreoli | 4ad8fc60ae | |
Kai Huuhko | 37930f389d | |
Davide Andreoli | ac685358bd | |
Davide Andreoli | 92c05e801a | |
Kai Huuhko | 3dd36bd770 | |
Kai Huuhko | 9b234a4266 | |
Kai Huuhko | a1f36bb073 | |
Davide Andreoli | dba05cc1ba |
|
@ -28,4 +28,9 @@ pip-log.txt
|
|||
# Cython generated files
|
||||
efl/*/*.c
|
||||
efl/*/*.h
|
||||
!efl/dbus_mainloop/e_dbus.*
|
||||
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,
|
154
CODING
154
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
|
||||
=====
|
||||
|
@ -23,6 +48,46 @@ Style
|
|||
...also because I found it more readable and I like it more :P -davemds-
|
||||
|
||||
|
||||
Documentation cheatsheet
|
||||
========================
|
||||
|
||||
* Links:
|
||||
|
||||
:class:`List` (for classes)
|
||||
:func:`elm_list_go` (for functions)
|
||||
:attr:`homogeneous` (for properties)
|
||||
:ref:`Elm_List_Mode` (for enums)
|
||||
:data:`ELM_LIST_LIMIT` (for enum values)
|
||||
|
||||
:func:`efl.evas.Object.delete` (for items not in current scope)
|
||||
:func:`~efl.evas.Object.delete` (will show it short, just "delete")
|
||||
|
||||
* Formatting:
|
||||
|
||||
``ELM_LIST_SCROLL`` (for enum values, bools and None)
|
||||
|
||||
|
||||
* Versions:
|
||||
|
||||
.. versionadded:: 1.15
|
||||
|
||||
.. versionchanged:: 1.15
|
||||
Description of the change.
|
||||
|
||||
.. deprecated:: 1.15
|
||||
Use the blah, blah way instead.
|
||||
|
||||
* Notes:
|
||||
|
||||
.. seealso:: :py:attr:`mode`
|
||||
|
||||
.. note:: Some text to be noted, blah, blah, blah,
|
||||
some more information for this note, etc.
|
||||
|
||||
.. warning:: Same as note, but the box will be red
|
||||
some more information for this warning, etc.
|
||||
|
||||
|
||||
Design patterns
|
||||
===============
|
||||
|
||||
|
@ -58,61 +123,54 @@ Tips
|
|||
Release process instructions
|
||||
============================
|
||||
|
||||
* Announce at enlightenment-release@lists.sourceforge.net that you are planning
|
||||
for the release
|
||||
* Change versions in efl/__init__.py (ex: 1.9.0)
|
||||
* use "api_coverage.py --python elementary" to see the missing bindings
|
||||
|
||||
* Version:
|
||||
- change versions in efl/__init__.py (ex: 1.9.0)
|
||||
- update EFL_MIN_VER in setup.py (if needed)
|
||||
|
||||
* Update the ChangeLog 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 that tarballs are
|
||||
ready for testing
|
||||
- setup.py build_doc -b changes ...and manually merge from the html file
|
||||
|
||||
... wait 24 hours, fix any issues found. In the mean time you can prepare the
|
||||
release announcement for phame/ml.
|
||||
* Generate the source (tar) and binary (wheel) distributions:
|
||||
- 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
|
||||
* 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
|
||||
git branch python-efl-1.9 && git push origin python-efl-1.9
|
||||
* Publish the blog post on phame (Official Announcements)
|
||||
* Announce the release to release@lists.enlightenment.org
|
||||
(an alias for e-announce etc.)
|
||||
* Update download link on website (clone website/www.git, edit, commit, push)
|
||||
|
||||
* Announce the release to release@lists.enlightenment.org and
|
||||
enlightenment-release@lists.sourceforge.net
|
||||
|
||||
* Change versions again in efl/__init__.py (ex: 1.9.99)
|
||||
|
||||
more info at:
|
||||
phab.enlightenment.org/w/release_procedure/
|
||||
for more info:
|
||||
--------------
|
||||
* 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
|
||||
|
|
288
ChangeLog
288
ChangeLog
|
@ -1,16 +1,298 @@
|
|||
===================
|
||||
2015-08-03 v1.15.0
|
||||
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
|
||||
==================
|
||||
|
||||
Fixes:
|
||||
* Fixed compatibility with python 3.5 (utils.deprecated was broken)
|
||||
* Various ref leaks fixed in elementary
|
||||
* Multibuttonentry filter callback
|
||||
|
||||
Additions:
|
||||
* ecore_input Module
|
||||
* ecore_con Module
|
||||
* ecore_con.Url Class
|
||||
* ecore_con.Lookup Class
|
||||
* evas.Object.paragraph_direction
|
||||
* evas.EVAS_BIDI_DIRECTION_INHERIT
|
||||
* edje.Edje.color_class_clear
|
||||
* edje.Edje.size_class_del
|
||||
* edje.Edje.size_class_get
|
||||
* edje.Edje.size_class_set
|
||||
* edje.Edje.text_class_del
|
||||
* edje.size_class_del
|
||||
* edje.size_class_get
|
||||
* edje.size_class_list
|
||||
* edje.size_class_set
|
||||
* ethumb Module
|
||||
* ethumb.Ethumb Class
|
||||
* ethumb_client Module
|
||||
* ethumb_client.EthumbClient Class
|
||||
* elm.Combobox Class
|
||||
* elm.Configuration.context_menu_disabled
|
||||
* elm.Configuration.profile_derived_add
|
||||
* elm.Configuration.profile_derived_del
|
||||
* elm.Configuration.profile_exists
|
||||
* elm.Configuration.profile_list_full
|
||||
* elm.Configuration.profile_save
|
||||
* elm.Ctxpopup.callback_geometry_update_add
|
||||
* elm.ELM_GENGRID_ITEM_SCROLLTO_BOTTOM
|
||||
* elm.Gengrid.drag_item_container_add
|
||||
* elm.Gengrid.drag_item_container_del
|
||||
* elm.Gengrid.drop_item_container_add
|
||||
* elm.Gengrid.drop_item_container_del
|
||||
* elm.ELM_GENLIST_ITEM_SCROLLTO_BOTTTOM
|
||||
* elm.Genlist.callback_filter_done_add
|
||||
* elm.Genlist.drag_item_container_add
|
||||
* elm.Genlist.drag_item_container_del
|
||||
* elm.Genlist.drop_item_container_add
|
||||
* elm.Genlist.drop_item_container_del
|
||||
* elm.Genlist.filter
|
||||
* elm.MultiButtonEntry.filter_remove
|
||||
* elm.Notify.callback_dismissed_add
|
||||
* elm.Notify.dismiss
|
||||
* elm.Object.callback_moved_add
|
||||
* elm.Object.drag_action_set
|
||||
* elm.Object.drag_start
|
||||
* elm.Object.drop_target_add
|
||||
* elm.Object.drop_target_del
|
||||
* elm.Popup.callback_dismissed_add
|
||||
* elm.Popup.dismiss
|
||||
|
||||
|
||||
===================
|
||||
2015-11-14 v1.16.0
|
||||
===================
|
||||
|
||||
Additions:
|
||||
|
||||
* elm.Configuration.scroll_thumbscroll_smooth_amount
|
||||
* elm.Configuration.scroll_thumbscroll_smooth_start
|
||||
* elm.Configuration.scroll_thumbscroll_smooth_time_window
|
||||
* elm.Genlist.callback_changed_add
|
||||
* elm.GenlistItem.data is now also writable
|
||||
* elm.Object.focus_next_item_get
|
||||
* elm.Object.focus_next_item_set
|
||||
* elm.Object.focus_region_show_mode
|
||||
* elm.Object.tooltip_orient
|
||||
* elm.ObjectItem.focus_next_item_get
|
||||
* elm.ObjectItem.focus_next_item_set
|
||||
* elm.ObjectItem.focus_next_object_get
|
||||
* elm.ObjectItem.focus_next_object_set
|
||||
|
||||
|
||||
===================
|
||||
2015-08-05 v1.15.0
|
||||
===================
|
||||
|
||||
Fixes:
|
||||
|
||||
Improvements:
|
||||
* elm.Entry: Fixed name of the callback_rejected_del function
|
||||
* Fixed build on OSX
|
||||
* Fixed build when ecore-x is not available
|
||||
* Fixed module init from embedded interpreter
|
||||
|
||||
|
||||
Changes:
|
||||
|
||||
* Elm: Unify modules into a monolithic module
|
||||
|
||||
|
||||
Additions:
|
||||
|
||||
Deprecation:
|
||||
* elm.Configuration.transition_duration_factor
|
||||
* elm.Window.autohide
|
||||
* elm.ELM_POLICY_QUIT_LAST_WINDOW_HIDDEN
|
||||
* elm.Entry.callback_context_open_add/del
|
||||
* elm.ELM_FOCUS_MOVE_POLICY_KEY_ONLY
|
||||
* elm.Object.focus_move_policy
|
||||
* elm.Scrollable.wheel_disabled
|
||||
* evas.Textblock.obstacle_add
|
||||
* evas.Textblock.obstacle_del
|
||||
* evas.Textblock.obstacles_update
|
||||
* evas.EVAS_CALLBACK_CANVAS_VIEWPORT_RESIZE
|
||||
|
||||
|
||||
===================
|
||||
|
|
18
INSTALL
18
INSTALL
|
@ -3,22 +3,19 @@
|
|||
===============
|
||||
|
||||
* 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/)
|
||||
- Tested with Cython 0.21.2
|
||||
- Tested with Cython 0.29.16
|
||||
|
||||
* EFL core library
|
||||
- eo, evas, ecore, edje, emotion and elementary
|
||||
|
||||
* 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
|
||||
* EFL must be the same minor version of the bindings,
|
||||
es. python-efl 1.24 need efl 1.24
|
||||
|
||||
* To build the DOCS you will also need:
|
||||
- python-sphinx
|
||||
- [optional] graphviz
|
||||
|
||||
* At least 4GB of free RAM to build
|
||||
|
||||
|
||||
2. BUILDING PYTHON-EFL
|
||||
|
@ -29,6 +26,11 @@
|
|||
|
||||
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
|
||||
cython usage is disabled by default, while is enabled in development git
|
||||
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
|
||||
|
@ -29,6 +29,11 @@ install:
|
|||
$(PY) setup.py install
|
||||
|
||||
|
||||
.PHONY: uninstall
|
||||
uninstall:
|
||||
$(PY) setup.py uninstall
|
||||
|
||||
|
||||
.PHONY: doc
|
||||
doc:
|
||||
$(PY) setup.py build build_doc
|
||||
|
@ -44,12 +49,20 @@ clean:
|
|||
$(PY) setup.py clean --all
|
||||
|
||||
|
||||
.PHONY: maintaner-clean
|
||||
maintaner-clean:
|
||||
.PHONY: maintainer-clean
|
||||
maintainer-clean:
|
||||
$(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
|
||||
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.
|
45
TODO
45
TODO
|
@ -1,45 +0,0 @@
|
|||
|
||||
BUGS
|
||||
====
|
||||
* EdjeEdit: PartState API does not work
|
||||
* Elm.Map: overlays_show segfaults, scrollers in examples are jumpy
|
||||
* Elementary: when we use custom function callbacks we usually leak some
|
||||
reference around, some examples:
|
||||
- Fileselector.custom_filter_append()
|
||||
- Multibuttonentry.format_function_set()
|
||||
- Multibuttonentry.filter_append()
|
||||
- Multibuttonentry.filterprepend()
|
||||
|
||||
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
|
||||
* Evas: SmartObject needs testing
|
||||
* Improve ethumb
|
||||
* 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
|
||||
---
|
||||
* Drag-n-Drop
|
||||
* 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 ?
|
|
@ -24,6 +24,12 @@ c_exclude_list = [
|
|||
"elm_access", # Access disabled until 1.9
|
||||
"elm_config_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_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)
|
||||
|
||||
|
@ -163,7 +169,9 @@ def get_pyapis(pxd_path, header_name, prefix):
|
|||
|
||||
for path, dirs, files in os.walk(pxd_path):
|
||||
for f in files:
|
||||
if not f.endswith(".pxd"):
|
||||
# if not f.endswith(".pxd"):
|
||||
# continue
|
||||
if f.endswith(".pyc"):
|
||||
continue
|
||||
open_args = (os.path.join(path, f),)
|
||||
open_kwargs = dict(mode="r")
|
||||
|
|
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 -*-
|
||||
#
|
||||
# Python Bindings for EFL Elementary documentation build configuration file, created by
|
||||
# sphinx-quickstart on Thu Jun 28 09:21:25 2012.
|
||||
# Configuration file for the Sphinx documentation builder.
|
||||
#
|
||||
# This file is execfile()d with the current directory set to its containing dir.
|
||||
#
|
||||
# Note that not all possible configuration values are present in this
|
||||
# autogenerated file.
|
||||
#
|
||||
# All configuration values have a default; values that are commented out
|
||||
# serve to show the default.
|
||||
# This file only contains a selection of the most common options. For a full
|
||||
# list see the documentation:
|
||||
# https://www.sphinx-doc.org/en/master/usage/configuration.html
|
||||
|
||||
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,
|
||||
# add these directories to sys.path here. If the directory is relative to the
|
||||
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
||||
|
||||
d = "lib.%s-%s-%d.%d" % (
|
||||
platform.system().lower(),
|
||||
platform.machine(),
|
||||
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'))
|
||||
# add these directories to sys.path here.
|
||||
d = 'lib.%s-%s-%d.%d' % (
|
||||
platform.system().lower(),
|
||||
platform.machine(),
|
||||
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'))
|
||||
|
||||
# Delete any previously imported efl package
|
||||
if "efl" in sys.modules:
|
||||
del sys.modules["efl"]
|
||||
if 'efl' in sys.modules:
|
||||
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.
|
||||
needs_sphinx = '1.1'
|
||||
needs_sphinx = '3.1'
|
||||
|
||||
# Add any Sphinx extension module names here, as strings. They can be extensions
|
||||
# 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.
|
||||
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.
|
||||
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'
|
||||
# master_doc = 'index'
|
||||
|
||||
# List of patterns, relative to source directory, that match files and
|
||||
# directories to ignore when looking for source files.
|
||||
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_default_flags = [
|
||||
'members',
|
||||
'show-inheritance',
|
||||
# 'inherited-members',
|
||||
# 'undoc-members',
|
||||
]
|
||||
autoclass_content = "both"
|
||||
autodoc_docstring_signature = True
|
||||
# autodoc_member_order = "bysource"
|
||||
autodoc_default_options = {
|
||||
'members': True, # show methods for classes
|
||||
'show-inheritance': True, # show bases class
|
||||
'member-order': 'alphabetical', # bysource, alphabetical, groupwise
|
||||
'no-undoc-members': True, # dont show members without docstring
|
||||
'no-inherited-members': True, # dont show members from parent classes
|
||||
}
|
||||
# both the class’ and the __init__ method’s docstring are concatenated
|
||||
autoclass_content = 'both'
|
||||
|
||||
def setup(app):
|
||||
from sphinx.ext.autodoc import cut_lines
|
||||
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"""
|
||||
|
||||
if what not in ('function', 'method'):
|
||||
return
|
||||
return None
|
||||
|
||||
params = list()
|
||||
params = []
|
||||
for param in (p.strip() for p in signature[1:-1].split(',')):
|
||||
if param != 'self':
|
||||
params.append(param.rpartition(' ')[2])
|
||||
|
@ -163,28 +93,28 @@ def autodoc_process_signature(app, what, name, obj, options, signature, return_a
|
|||
# -- Inheritance Diagram ------------------------------------------------------
|
||||
|
||||
try:
|
||||
import gv
|
||||
import gv # pylint: disable=unused-import
|
||||
except ImportError:
|
||||
pass
|
||||
else:
|
||||
extensions.append('sphinx.ext.inheritance_diagram')
|
||||
# svg scale better (look at the full elm dia)
|
||||
# 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(
|
||||
bgcolor = 'gray25', #404040
|
||||
bgcolor = 'gray25', #404040
|
||||
)
|
||||
inheritance_node_attrs = dict(
|
||||
style = 'rounded', # or 'filled',
|
||||
# fillcolor = "gray20", # bg color (should be #CCCCCC)
|
||||
color = 'gray10', # border color (should be #202020)
|
||||
style = 'rounded', # or 'filled',
|
||||
# fillcolor = 'gray20', # bg color (should be #CCCCCC)
|
||||
color = 'gray10', # border color (should be #202020)
|
||||
fontcolor = 'white',
|
||||
font = 'sans',
|
||||
|
||||
)
|
||||
inheritance_edge_attrs = dict(
|
||||
color = 'dodgerblue3', # arrow color (should be #4399FF)
|
||||
dir = 'none', # arrow direction (back, forward, both or none)
|
||||
color = 'dodgerblue3', # arrow color (should be #4399FF)
|
||||
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
|
||||
# a list of builtin themes.
|
||||
#
|
||||
# html_theme = 'alabaster' # Default sphinx theme
|
||||
# html_theme = 'default' # Classic python style
|
||||
# html_theme = 'sphinxdoc' # Much modern sphinx style
|
||||
# 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
|
||||
# further. For a list of options available for each theme, see the
|
||||
|
@ -211,16 +142,16 @@ html_theme_path = ['themes']
|
|||
#html_title = None
|
||||
|
||||
# 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
|
||||
# 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
|
||||
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
|
||||
# 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,
|
||||
# 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.
|
||||
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.
|
||||
#html_sidebars = {}
|
||||
|
||||
|
@ -270,121 +197,3 @@ html_show_sourcelink = False
|
|||
|
||||
# Output file base name for HTML help builder.
|
||||
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
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
.. currentmodule:: efl.ecore_con
|
||||
|
||||
:class:`efl.ecore_con.Lookup` Class
|
||||
===================================
|
||||
|
||||
.. autoclass:: efl.ecore_con.Lookup
|
|
@ -0,0 +1,9 @@
|
|||
.. currentmodule:: efl.ecore_con
|
||||
|
||||
:class:`efl.ecore_con.Url` Class
|
||||
===================================
|
||||
|
||||
.. autoclass:: efl.ecore_con.Url
|
||||
.. autoclass:: efl.ecore_con.EventUrlComplete
|
||||
.. autoclass:: efl.ecore_con.EventUrlProgress
|
||||
.. autoclass:: efl.ecore_con.EventUrlData
|
|
@ -15,8 +15,8 @@ great responsiveness without the need for threads(or any other concurrency).
|
|||
Timers
|
||||
------
|
||||
|
||||
:py:class:`Timers<efl.ecore.Timer>` serve two main purposes: doing something at a specified time and
|
||||
repeatedly doing something with a set interval.
|
||||
:py:class:`Timers<efl.ecore.Timer>` serve two main purposes: doing something at
|
||||
a specified time and repeatedly doing something with a set interval.
|
||||
|
||||
|
||||
Animators
|
||||
|
@ -73,14 +73,6 @@ error. Any valid file descriptor can be used with this API, regardless of if
|
|||
was gotten with an OS specific API or from ecore.
|
||||
see :py:class:`FdHandler<efl.ecore.FdHandler>`
|
||||
|
||||
File download
|
||||
-------------
|
||||
|
||||
Ecore provide the :py:class:`FileDownload<efl.ecore.FileDownload>` class
|
||||
to perform asyncronous download of files from the net. Two callbacks are
|
||||
used to inform the user while progress occurs and when the download has
|
||||
finished.
|
||||
|
||||
|
||||
File monitor
|
||||
------------
|
||||
|
@ -91,6 +83,25 @@ Events will be generatd everytime a file or directory (that live in the
|
|||
give path) is created/deleted/modified.
|
||||
|
||||
|
||||
File download
|
||||
-------------
|
||||
|
||||
Ecore provide the :py:class:`FileDownload<efl.ecore.FileDownload>` class
|
||||
to perform asyncronous download of files from the net. Two callbacks are
|
||||
used to inform the user while progress occurs and when the download has
|
||||
finished.
|
||||
|
||||
|
||||
Ecore Con
|
||||
---------
|
||||
|
||||
The ecore_con module provide various utilities to perform different network
|
||||
related tasks. Everything provided in a fully async way. Most notable are the
|
||||
:class:`efl.ecore_con.Lookup` class to perform DNS requests, the
|
||||
:class:`efl.ecore_con.Url` class to perform HTTP requests and the
|
||||
:class:`efl.ecore_con.Server` class to implement your own server.
|
||||
|
||||
|
||||
|
||||
API Reference
|
||||
-------------
|
||||
|
@ -99,6 +110,8 @@ API Reference
|
|||
:titlesonly:
|
||||
|
||||
module-ecore
|
||||
module-ecore_input
|
||||
module-ecore_con
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
|
||||
.. automodule:: efl.ecore_con
|
||||
:exclude-members: Url, EventUrlComplete, EventUrlProgress, EventUrlData,
|
||||
Lookup, ConEventFilter
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
|
||||
.. automodule:: efl.ecore_input
|
||||
|
22
doc/efl.rst
22
doc/efl.rst
|
@ -6,10 +6,30 @@
|
|||
.. 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
|
||||
-------
|
||||
|
||||
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,
|
||||
f.e. *efl.eo*. There is a root logger called *efl* which also receives
|
||||
any messages coming from the underlying C libraries.
|
||||
|
|
|
@ -1,2 +1,85 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.actionslider
|
||||
Actionslider
|
||||
############
|
||||
|
||||
.. image:: /images/actionslider-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
An actionslider is a switcher for two or three labels with
|
||||
customizable magnet properties.
|
||||
|
||||
The user drags and releases the indicator, to choose a label.
|
||||
|
||||
Labels can occupy the following positions.
|
||||
|
||||
- Left
|
||||
- Right
|
||||
- Center
|
||||
|
||||
Positions can be enabled or disabled.
|
||||
|
||||
Magnets can be set on the above positions.
|
||||
|
||||
When the indicator is released, it will move to its nearest "enabled and
|
||||
magnetized" position.
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``selected`` - when user selects an enabled position (the label is
|
||||
passed as event info)".
|
||||
- ``pos_changed`` - when the indicator reaches any of the
|
||||
positions("left", "right" or "center").
|
||||
|
||||
|
||||
Layout text parts
|
||||
=================
|
||||
|
||||
- ``indicator`` - An indicator label of the actionslider
|
||||
- ``left`` - A left label of the actionslider
|
||||
- ``right`` - A right label of the actionslider
|
||||
- ``center`` - A center label of the actionslider
|
||||
|
||||
|
||||
Enumerations
|
||||
============
|
||||
|
||||
.. _Elm_Actionslider_Pos:
|
||||
|
||||
Actionslider positions
|
||||
----------------------
|
||||
|
||||
.. data:: ELM_ACTIONSLIDER_NONE
|
||||
|
||||
No position
|
||||
|
||||
.. data:: ELM_ACTIONSLIDER_LEFT
|
||||
|
||||
Left position
|
||||
|
||||
.. data:: ELM_ACTIONSLIDER_CENTER
|
||||
|
||||
Center position
|
||||
|
||||
.. data:: ELM_ACTIONSLIDER_RIGHT
|
||||
|
||||
Right position
|
||||
|
||||
.. data:: ELM_ACTIONSLIDER_ALL
|
||||
|
||||
All positions
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: Actionslider
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Actionslider
|
||||
|
|
|
@ -1,2 +1,58 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.background
|
||||
Background
|
||||
##########
|
||||
|
||||
.. image:: /images/background-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
The background widget is used for setting a solid color, image or Edje group
|
||||
as a background to a window (unless it has transparency enabled) or any
|
||||
container object.
|
||||
|
||||
It works just like an image, but has some properties useful to a
|
||||
background, like setting it to tiled, centered, scaled or stretched.
|
||||
|
||||
|
||||
Layout content parts
|
||||
====================
|
||||
|
||||
- ``overlay`` - overlay of the bg
|
||||
|
||||
|
||||
Enumerations
|
||||
============
|
||||
|
||||
.. _Elm_Bg_Option:
|
||||
|
||||
Background display modes
|
||||
------------------------
|
||||
|
||||
.. data:: ELM_BG_OPTION_CENTER
|
||||
|
||||
Center
|
||||
|
||||
.. data:: ELM_BG_OPTION_SCALE
|
||||
|
||||
Scale
|
||||
|
||||
.. data:: ELM_BG_OPTION_STRETCH
|
||||
|
||||
Stretch
|
||||
|
||||
.. data:: ELM_BG_OPTION_TILE
|
||||
|
||||
Tile
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: Background
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Background
|
||||
|
|
|
@ -1,2 +1,118 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.box
|
||||
Box
|
||||
###
|
||||
|
||||
.. image:: /images/box-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
A box arranges objects in a linear fashion, governed by a layout function
|
||||
that defines the details of this arrangement.
|
||||
|
||||
By default, the box will use an internal function to set the layout to
|
||||
a single row, either vertical or horizontal. This layout is affected
|
||||
by a number of parameters, such as the homogeneous flag set by
|
||||
:py:attr:`~Box.homogeneous`, the values given by :py:attr:`~Box.padding` and
|
||||
:py:attr:`~Box.align` and the hints set to each object in the box.
|
||||
|
||||
For this default layout, it's possible to change the orientation with
|
||||
:py:attr:`~Box.horizontal`. The box will start in the vertical orientation,
|
||||
placing its elements ordered from top to bottom. When horizontal is set,
|
||||
the order will go from left to right. If the box is set to be
|
||||
homogeneous, every object in it will be assigned the same space, that
|
||||
of the largest object. Padding can be used to set some spacing between
|
||||
the cell given to each object. The alignment of the box, set with
|
||||
:py:attr:`~Box.align`, determines how the bounding box of all the elements
|
||||
will be placed within the space given to the box widget itself.
|
||||
|
||||
The size hints of each object also affect how they are placed and sized
|
||||
within the box. :py:attr:`~efl.evas.Object.size_hint_min` will give the minimum
|
||||
size the object can have, and the box will use it as the basis for all
|
||||
latter calculations. Elementary widgets set their own minimum size as
|
||||
needed, so there's rarely any need to use it manually.
|
||||
|
||||
:py:attr:`~efl.evas.Object.size_hint_weight`, when not in homogeneous mode, is
|
||||
used to tell whether the object will be allocated the minimum size it
|
||||
needs or if the space given to it should be expanded. It's important
|
||||
to realize that expanding the size given to the object is not the same
|
||||
thing as resizing the object. It could very well end being a small
|
||||
widget floating in a much larger empty space. If not set, the weight
|
||||
for objects will normally be 0.0 for both axis, meaning the widget will
|
||||
not be expanded. To take as much space possible, set the weight to
|
||||
``EVAS_HINT_EXPAND`` (defined to 1.0) for the desired axis to expand.
|
||||
|
||||
Besides how much space each object is allocated, it's possible to control
|
||||
how the widget will be placed within that space using
|
||||
:py:attr:`~efl.evas.Object.size_hint_align`. By default, this value will be 0.5
|
||||
for both axis, meaning the object will be centered, but any value from
|
||||
0.0 (left or top, for the ``x`` and ``y`` axis, respectively) to 1.0
|
||||
(right or bottom) can be used. The special value *EVAS_HINT_FILL*, which
|
||||
is -1.0, means the object will be resized to fill the entire space it
|
||||
was allocated.
|
||||
|
||||
In addition, customized functions to define the layout can be set, which
|
||||
allow the application developer to organize the objects within the box
|
||||
in any number of ways.
|
||||
|
||||
The special :py:meth:`Box.layout_transition` function can be used
|
||||
to switch from one layout to another, animating the motion of the
|
||||
children of the box.
|
||||
|
||||
.. note:: Objects should not be added to box objects using _add() calls.
|
||||
|
||||
|
||||
Enumerations
|
||||
============
|
||||
|
||||
.. _Evas_Object_Box_Layout:
|
||||
|
||||
Box layout modes
|
||||
----------------
|
||||
|
||||
.. data:: ELM_BOX_LAYOUT_HORIZONTAL
|
||||
|
||||
Horizontal layout
|
||||
|
||||
.. data:: ELM_BOX_LAYOUT_VERTICAL
|
||||
|
||||
Vertical layout
|
||||
|
||||
.. data:: ELM_BOX_LAYOUT_HOMOGENEOUS_VERTICAL
|
||||
|
||||
Homogeneous vertical layout
|
||||
|
||||
.. data:: ELM_BOX_LAYOUT_HOMOGENEOUS_HORIZONTAL
|
||||
|
||||
Homogeneous horizontal layout
|
||||
|
||||
.. data:: ELM_BOX_LAYOUT_HOMOGENEOUS_MAX_SIZE_HORIZONTAL
|
||||
|
||||
Homogeneous layout, maximum size on the horizontal axis
|
||||
|
||||
.. data:: ELM_BOX_LAYOUT_HOMOGENEOUS_MAX_SIZE_VERTICAL
|
||||
|
||||
Homogeneous layout, maximum size on the horizontal axis
|
||||
|
||||
.. data:: ELM_BOX_LAYOUT_FLOW_HORIZONTAL
|
||||
|
||||
Horizontally flowing layout
|
||||
|
||||
.. data:: ELM_BOX_LAYOUT_FLOW_VERTICAL
|
||||
|
||||
Vertically flowing layout
|
||||
|
||||
.. data:: ELM_BOX_LAYOUT_STACK
|
||||
|
||||
Stacking layout
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: Box
|
||||
:parts: 2
|
||||
|
||||
.. autoclass:: Box
|
||||
|
|
|
@ -1,2 +1,86 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.bubble
|
||||
Bubble
|
||||
######
|
||||
|
||||
.. image:: /images/bubble-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
The Bubble is a widget to show text similar to how speech is
|
||||
represented in comics.
|
||||
|
||||
The bubble widget contains 5 important visual elements:
|
||||
|
||||
- The frame is a rectangle with rounded edjes and an "arrow".
|
||||
- The ``icon`` is an image to which the frame's arrow points to.
|
||||
- The ``label`` is a text which appears to the right of the icon if the
|
||||
corner is **top_left** or **bottom_left** and is right aligned to
|
||||
the frame otherwise.
|
||||
- The ``info`` is a text which appears to the right of the label. Info's
|
||||
font is of a lighter color than label.
|
||||
- The ``content`` is an evas object that is shown inside the frame.
|
||||
|
||||
The position of the arrow, icon, label and info depends on which corner is
|
||||
selected. The four available corners are:
|
||||
|
||||
- ``top_left`` - Default
|
||||
- ``top_right``
|
||||
- ``bottom_left``
|
||||
- ``bottom_right``
|
||||
|
||||
|
||||
Layout content parts
|
||||
====================
|
||||
|
||||
- ``default`` - A content of the bubble
|
||||
- ``icon`` - An icon of the bubble
|
||||
|
||||
|
||||
Layout text parts
|
||||
=================
|
||||
|
||||
- ``default`` - Label of the bubble
|
||||
- ``info`` - info of the bubble
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``clicked`` - This is called when a user has clicked the bubble.
|
||||
|
||||
|
||||
Enumerations
|
||||
============
|
||||
|
||||
.. _Elm_Bubble_Pos:
|
||||
|
||||
Bubble arrow positions
|
||||
----------------------
|
||||
|
||||
.. data:: ELM_BUBBLE_POS_TOP_LEFT
|
||||
|
||||
Top left position
|
||||
|
||||
.. data:: ELM_BUBBLE_POS_TOP_RIGHT
|
||||
|
||||
Top right position
|
||||
|
||||
.. data:: ELM_BUBBLE_POS_BOTTOM_LEFT
|
||||
|
||||
Bottom left position
|
||||
|
||||
.. data:: ELM_BUBBLE_POS_BOTTOM_RIGHT
|
||||
|
||||
Bottom right position
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: Bubble
|
||||
:parts: 2
|
||||
|
||||
.. autoclass:: Bubble
|
||||
|
|
|
@ -1,3 +1,63 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.button
|
||||
Button
|
||||
######
|
||||
|
||||
.. image:: /images/button-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
This is a push-button. Press it and run some function. It can contain
|
||||
a simple label and icon object and it also has an autorepeat feature.
|
||||
|
||||
|
||||
Available styles
|
||||
================
|
||||
|
||||
- ``default`` a normal button.
|
||||
- ``anchor`` Like default, but the button fades away when the mouse is not
|
||||
over it, leaving only the text or icon.
|
||||
- ``hoversel_vertical`` Internally used by
|
||||
:py:class:`~efl.elementary.hoversel.Hoversel` to give a continuous look
|
||||
across its options.
|
||||
- ``hoversel_vertical_entry`` Another internal for
|
||||
:py:class:`~efl.elementary.hoversel.Hoversel`.
|
||||
- ``naviframe`` Internally used by
|
||||
:py:class:`~efl.elementary.naviframe.Naviframe` for its back button.
|
||||
- ``colorselector`` Internally used by
|
||||
:py:class:`~efl.elementary.colorselector.Colorselector` for its left and
|
||||
right buttons.
|
||||
|
||||
|
||||
Layout content parts
|
||||
====================
|
||||
|
||||
- ``icon`` - An icon of the button
|
||||
|
||||
|
||||
Layout text parts
|
||||
=================
|
||||
|
||||
- ``default`` - Label of the button
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``clicked``: the user clicked the button (press/release).
|
||||
- ``repeated``: the user pressed the button without releasing it.
|
||||
- ``pressed``: button was pressed.
|
||||
- ``unpressed``: button was released after being pressed.
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: Button
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Button
|
||||
|
||||
|
|
|
@ -1,2 +1,169 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.calendar_elm
|
||||
Calendar
|
||||
########
|
||||
|
||||
.. image:: /images/calendar-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
This is a calendar widget.
|
||||
|
||||
It helps applications to flexibly display a calender with day of the week,
|
||||
date, year and month. Applications are able to set specific dates to be
|
||||
reported back, when selected, in the smart callbacks of the calendar widget.
|
||||
The API of this widget lets the applications perform other functions, like:
|
||||
|
||||
- placing marks on specific dates
|
||||
- setting the bounds for the calendar (minimum and maximum years)
|
||||
- setting the day names of the week (e.g. "Thu" or "Thursday")
|
||||
- setting the year and month format.
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``changed`` - emitted when the date in the calendar is changed.
|
||||
- ``display,changed`` - emitted when the current month displayed in the
|
||||
calendar is changed.
|
||||
|
||||
|
||||
Enumerations
|
||||
============
|
||||
|
||||
.. _Elm_Calendar_Mark_Repeat_Type:
|
||||
|
||||
Calendar mark repeat types
|
||||
--------------------------
|
||||
|
||||
.. data:: ELM_CALENDAR_UNIQUE
|
||||
|
||||
Default value.
|
||||
|
||||
Marks will be displayed only on event day.
|
||||
|
||||
.. data:: ELM_CALENDAR_DAILY
|
||||
|
||||
Marks will be displayed every day after event day (inclusive).
|
||||
|
||||
.. data:: ELM_CALENDAR_WEEKLY
|
||||
|
||||
Marks will be displayed every week after event day (inclusive) - i.e.
|
||||
each seven days.
|
||||
|
||||
.. data:: ELM_CALENDAR_MONTHLY
|
||||
|
||||
Marks will be displayed every month day that coincides to event day.
|
||||
|
||||
E.g.: if an event is set to 30th Jan, no marks will be displayed on Feb,
|
||||
but will be displayed on 30th Mar
|
||||
|
||||
.. data:: ELM_CALENDAR_ANNUALLY
|
||||
|
||||
Marks will be displayed every year that coincides to event day (and month).
|
||||
|
||||
E.g. an event added to 30th Jan 2012 will be repeated on 30th Jan 2013.
|
||||
|
||||
.. data:: ELM_CALENDAR_LAST_DAY_OF_MONTH
|
||||
|
||||
Marks will be displayed every last day of month after event day
|
||||
(inclusive).
|
||||
|
||||
.. data:: ELM_CALENDAR_REVERSE_DAILY
|
||||
|
||||
Marks will be displayed every day before event day.
|
||||
|
||||
.. versionadded:: 1.19
|
||||
|
||||
|
||||
.. _Elm_Calendar_Select_Mode:
|
||||
|
||||
Calendar selection modes
|
||||
------------------------
|
||||
|
||||
.. data:: ELM_CALENDAR_SELECT_MODE_DEFAULT
|
||||
|
||||
Default mode
|
||||
|
||||
.. data:: ELM_CALENDAR_SELECT_MODE_ALWAYS
|
||||
|
||||
Select always
|
||||
|
||||
.. data:: ELM_CALENDAR_SELECT_MODE_NONE
|
||||
|
||||
Don't select
|
||||
|
||||
.. data:: ELM_CALENDAR_SELECT_MODE_ONDEMAND
|
||||
|
||||
Select on demand
|
||||
|
||||
|
||||
.. _Elm_Calendar_Selectable:
|
||||
|
||||
Selectable
|
||||
----------
|
||||
|
||||
.. data:: ELM_CALENDAR_SELECTABLE_NONE
|
||||
|
||||
None selectable
|
||||
|
||||
.. data:: ELM_CALENDAR_SELECTABLE_YEAR
|
||||
|
||||
Year is selectable
|
||||
|
||||
.. data:: ELM_CALENDAR_SELECTABLE_MONTH
|
||||
|
||||
Month is selectable
|
||||
|
||||
.. data:: ELM_CALENDAR_SELECTABLE_DAY
|
||||
|
||||
Day is selectable
|
||||
|
||||
|
||||
.. _Elm_Calendar_Weekday:
|
||||
|
||||
Days
|
||||
----
|
||||
|
||||
.. data:: ELM_DAY_SUNDAY
|
||||
|
||||
Sunday
|
||||
|
||||
.. data:: ELM_DAY_MONDAY
|
||||
|
||||
Monday
|
||||
|
||||
.. data:: ELM_DAY_TUESDAY
|
||||
|
||||
Tuesday
|
||||
|
||||
.. data:: ELM_DAY_WEDNESDAY
|
||||
|
||||
Wednesday
|
||||
|
||||
.. data:: ELM_DAY_THURSDAY
|
||||
|
||||
Thursday
|
||||
|
||||
.. data:: ELM_DAY_FRIDAY
|
||||
|
||||
Friday
|
||||
|
||||
.. data:: ELM_DAY_SATURDAY
|
||||
|
||||
Saturday
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram::
|
||||
Calendar
|
||||
CalendarMark
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Calendar
|
||||
.. autoclass:: CalendarMark
|
||||
|
|
|
@ -1,2 +1,47 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.check
|
||||
Check
|
||||
#####
|
||||
|
||||
.. image:: /images/check-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
The check widget allows for toggling a value between true and false.
|
||||
|
||||
Check objects are a lot like radio objects in layout and functionality,
|
||||
except they do not work as a group, but independently, and only toggle
|
||||
the value of a boolean :py:attr:`~Check.state` between false and true.
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``changed`` - This is called whenever the user changes the state of
|
||||
the check objects.
|
||||
|
||||
|
||||
Layout content parts
|
||||
====================
|
||||
|
||||
- ``icon`` - An icon of the check
|
||||
|
||||
|
||||
Layout text parts
|
||||
=================
|
||||
|
||||
- ``default`` - A label of the check
|
||||
- ``on`` - On state label of the check
|
||||
- ``off`` - Off state label of the check
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: Check
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Check
|
||||
|
|
|
@ -1,2 +1,92 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.clock
|
||||
Clock
|
||||
#####
|
||||
|
||||
.. image:: /images/clock-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
This is a digital clock widget.
|
||||
|
||||
In its default theme, it has a vintage "flipping numbers clock" appearance,
|
||||
which will animate sheets of individual algarisms individually as time goes
|
||||
by.
|
||||
|
||||
A newly created clock will fetch system's time (already considering
|
||||
local time adjustments) to start with, and will tick accordingly. It may
|
||||
or may not show seconds.
|
||||
|
||||
Clocks have an **edition** mode. When in it, the sheets will display
|
||||
extra arrow indications on the top and bottom and the user may click on
|
||||
them to raise or lower the time values. After it's told to exit edition
|
||||
mode, it will keep ticking with that new time set (it keeps the
|
||||
difference from local time).
|
||||
|
||||
Also, when under edition mode, user clicks on the cited arrows which are
|
||||
**held** for some time will make the clock to flip the sheet, thus
|
||||
editing the time, continuously and automatically for the user. The
|
||||
interval between sheet flips will keep growing in time, so that it helps
|
||||
the user to reach a time which is distant from the one set.
|
||||
|
||||
The time display is, by default, in military mode (24h), but an am/pm
|
||||
indicator may be optionally shown, too, when it will switch to 12h.
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``changed`` - the clock's user changed the time
|
||||
|
||||
|
||||
Enumerations
|
||||
============
|
||||
|
||||
.. _Elm_Clock_Edit_Mode:
|
||||
|
||||
Clock edit modes
|
||||
----------------
|
||||
|
||||
.. data:: ELM_CLOCK_EDIT_DEFAULT
|
||||
|
||||
Default edit
|
||||
|
||||
.. data:: ELM_CLOCK_EDIT_HOUR_DECIMAL
|
||||
|
||||
Edit hours' decimal
|
||||
|
||||
.. data:: ELM_CLOCK_EDIT_HOUR_UNIT
|
||||
|
||||
Edit hours' unit
|
||||
|
||||
.. data:: ELM_CLOCK_EDIT_MIN_DECIMAL
|
||||
|
||||
Edit minutes' decimal
|
||||
|
||||
.. data:: ELM_CLOCK_EDIT_MIN_UNIT
|
||||
|
||||
Edit minutes' unit
|
||||
|
||||
.. data:: ELM_CLOCK_EDIT_SEC_DECIMAL
|
||||
|
||||
Edit seconds' decimal
|
||||
|
||||
.. data:: ELM_CLOCK_EDIT_SEC_UNIT
|
||||
|
||||
Edit seconds' unit
|
||||
|
||||
.. data:: ELM_CLOCK_EDIT_ALL
|
||||
|
||||
Edit all
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: Clock
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Clock
|
||||
|
|
|
@ -1,2 +1,64 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.colorselector
|
||||
Colorselector
|
||||
#############
|
||||
|
||||
.. image:: /images/colorselector-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
A Colorselector is a color selection widget.
|
||||
|
||||
It allows application to set a series of colors. It also allows to
|
||||
load/save colors from/to config with a unique identifier, by default,
|
||||
the colors are loaded/saved from/to config using "default" identifier.
|
||||
The colors can be picked by user from the color set by clicking on
|
||||
individual color item on the palette or by selecting it from selector.
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``"changed"`` - When the color value changes on selector
|
||||
- ``"color,item,selected"`` - When user clicks on color item.
|
||||
The event_info parameter of the callback will be the selected
|
||||
color item.
|
||||
- ``"color,item,longpressed"`` - When user long presses on color item.
|
||||
The event_info parameter of the callback will be the selected
|
||||
color item.
|
||||
|
||||
|
||||
Enumerations
|
||||
============
|
||||
|
||||
.. _Elm_Colorselector_Mode:
|
||||
|
||||
Colorselector modes
|
||||
-------------------
|
||||
|
||||
.. data:: ELM_COLORSELECTOR_PALETTE
|
||||
|
||||
Show palette
|
||||
|
||||
.. data:: ELM_COLORSELECTOR_COMPONENTS
|
||||
|
||||
Show components
|
||||
|
||||
.. data:: ELM_COLORSELECTOR_BOTH
|
||||
|
||||
Show palette and components
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram::
|
||||
Colorselector
|
||||
ColorselectorPaletteItem
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Colorselector
|
||||
.. autoclass:: ColorselectorPaletteItem
|
||||
|
|
|
@ -0,0 +1,54 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
Combobox
|
||||
########
|
||||
|
||||
.. warning::
|
||||
**THE COMBOBOX IS BROKEN AND DEPRECATED, DO NOT USE IN ANY CASE !!**
|
||||
|
||||
The behaviour and the API of the Combobox will change in future release.
|
||||
|
||||
If you are already using this we really encourage you to switch
|
||||
to other widgets.
|
||||
|
||||
We are really sorry about this breakage, but there is nothing we can do
|
||||
to avoid this :(
|
||||
|
||||
.. image:: /images/combobox-preview.png
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
This is a the classic combobox widget, it is the composition of a
|
||||
:class:`Button`, an :class:`Entry`, a :class:`Genlist` and an :class:`Hover`.
|
||||
Thus you can use all the functionality of the base classes on the
|
||||
:class:`Combobox` itself.
|
||||
|
||||
|
||||
Available styles
|
||||
================
|
||||
|
||||
- ``default`` a normal combobox.
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``dismissed``: The combobox hover has been dismissed.
|
||||
- ``expanded``: The combobox hover has been expanded.
|
||||
- ``clicked``: The combobox button has been clicked.
|
||||
- ``item,selected``: An item has been selected (highlighted).
|
||||
- ``item,pressed``: An item has been pressed (clicked).
|
||||
- ``filter,done``: Item filtering on genlist is completed.
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: Combobox
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: _Combobox
|
||||
.. autoclass:: Combobox
|
||||
|
|
@ -1,2 +1,162 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.configuration
|
||||
Configuration
|
||||
#############
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Elementary configuration is formed by a set options bounded to a
|
||||
given profile, like theme, "finger size", etc.
|
||||
|
||||
These are functions with which one synchronizes changes made to those
|
||||
values to the configuration storing files, de facto. You most probably
|
||||
don't want to use the functions in this group unless you're writing an
|
||||
elementary configuration manager.
|
||||
|
||||
Profiles
|
||||
========
|
||||
|
||||
Profiles are pre-set options that affect the whole look-and-feel of
|
||||
Elementary-based applications. There are, for example, profiles
|
||||
aimed at desktop computer applications and others aimed at mobile,
|
||||
touchscreen-based ones. You most probably don't want to use the
|
||||
functions in this group unless you're writing an elementary
|
||||
configuration manager.
|
||||
|
||||
Elementary Scrolling
|
||||
====================
|
||||
|
||||
These set how scrollable views in Elementary widgets should behave on
|
||||
user interaction.
|
||||
|
||||
Password show last
|
||||
==================
|
||||
|
||||
Show last feature of password mode enables user to view the last input
|
||||
entered for few seconds before masking it. These functions allow to set
|
||||
this feature in password mode of entry widget and also allow to
|
||||
manipulate the duration for which the input has to be visible.
|
||||
|
||||
Elementary Engine
|
||||
=================
|
||||
|
||||
These are functions setting and querying which rendering engine
|
||||
Elementary will use for drawing its windows' pixels.
|
||||
|
||||
The following are the available engines:
|
||||
|
||||
- "software_x11"
|
||||
- "fb"
|
||||
- "directfb"
|
||||
- "software_16_x11"
|
||||
- "software_8_x11"
|
||||
- "xrender_x11"
|
||||
- "opengl_x11"
|
||||
- "software_gdi"
|
||||
- "software_16_wince_gdi"
|
||||
- "sdl"
|
||||
- "software_16_sdl"
|
||||
- "opengl_sdl"
|
||||
- "buffer"
|
||||
- "ews"
|
||||
- "opengl_cocoa"
|
||||
- "psl1ght"
|
||||
|
||||
|
||||
ATSPI AT-SPI2 Accessibility
|
||||
===========================
|
||||
|
||||
Elementary widgets support Linux Accessibility standard. For more
|
||||
information please visit:
|
||||
http://www.linuxfoundation.org/collaborate/workgroups/accessibility/atk/at-spi/at-spi_on_d-bus
|
||||
|
||||
|
||||
Enumerations
|
||||
============
|
||||
|
||||
.. _Elm_Softcursor_Mode:
|
||||
|
||||
Elm_Softcursor_Mode
|
||||
-------------------
|
||||
|
||||
.. data:: ELM_SOFTCURSOR_MODE_AUTO
|
||||
|
||||
Auto-detect if a software cursor should be used (default)
|
||||
|
||||
.. data:: ELM_SOFTCURSOR_MODE_ON
|
||||
|
||||
Always use a softcursor
|
||||
|
||||
.. data:: ELM_SOFTCURSOR_MODE_OFF
|
||||
|
||||
Never use a softcursor
|
||||
|
||||
|
||||
.. _Elm_Slider_Indicator_Visible_Mode:
|
||||
|
||||
Elm_Slider_Indicator_Visible_Mode
|
||||
---------------------------------
|
||||
|
||||
.. data:: ELM_SLIDER_INDICATOR_VISIBLE_MODE_DEFAULT
|
||||
|
||||
show indicator on mouse down or change in slider value
|
||||
|
||||
.. data:: ELM_SLIDER_INDICATOR_VISIBLE_MODE_ALWAYS
|
||||
|
||||
Always show the indicator
|
||||
|
||||
.. data:: ELM_SLIDER_INDICATOR_VISIBLE_MODE_ON_FOCUS
|
||||
|
||||
Show the indicator on focus
|
||||
|
||||
.. data:: ELM_SLIDER_INDICATOR_VISIBLE_MODE_NONE
|
||||
|
||||
Never show the indicator
|
||||
|
||||
|
||||
.. _Edje_Channel:
|
||||
|
||||
Audio Channels
|
||||
--------------
|
||||
|
||||
.. data:: EDJE_CHANNEL_EFFECT
|
||||
|
||||
Standard audio effects
|
||||
|
||||
.. data:: EDJE_CHANNEL_BACKGROUND
|
||||
|
||||
Background audio sounds
|
||||
|
||||
.. data:: EDJE_CHANNEL_MUSIC
|
||||
|
||||
Music audio
|
||||
|
||||
.. data:: EDJE_CHANNEL_FOREGROUND
|
||||
|
||||
Foreground audio sounds
|
||||
|
||||
.. data:: EDJE_CHANNEL_INTERFACE
|
||||
|
||||
Sounds related to the interface
|
||||
|
||||
.. data:: EDJE_CHANNEL_INPUT
|
||||
|
||||
Sounds related to regular input
|
||||
|
||||
.. data:: EDJE_CHANNEL_ALERT
|
||||
|
||||
Sounds for major alerts
|
||||
|
||||
.. data:: EDJE_CHANNEL_ALL
|
||||
|
||||
All audio channels (convenience)
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: Configuration
|
||||
:parts: 2
|
||||
|
||||
.. autoclass:: Configuration
|
||||
|
|
|
@ -1,2 +1,43 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.conformant
|
||||
Conformant
|
||||
##########
|
||||
|
||||
.. image:: /images/conformant-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
The aim is to provide a widget that can be used in elementary apps to
|
||||
account for space taken up by the indicator, virtual keypad & softkey
|
||||
windows when running the illume2 module of E17.
|
||||
|
||||
So conformant content will be sized and positioned considering the
|
||||
space required for such stuff, and when they popup, as a keyboard
|
||||
shows when an entry is selected, conformant content won't change.
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``virtualkeypad,state,on``: if virtualkeypad state is switched to ``on``.
|
||||
- ``virtualkeypad,state,off``: if virtualkeypad state is switched to ``off``.
|
||||
- ``clipboard,state,on``: if clipboard state is switched to ``on``.
|
||||
- ``clipboard,state,off``: if clipboard state is switched to ``off``.
|
||||
|
||||
|
||||
Layout content parts
|
||||
====================
|
||||
|
||||
- ``default`` - A content of the conformant
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: Conformant
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Conformant
|
||||
|
|
|
@ -1,2 +1,84 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.ctxpopup
|
||||
Ctxpopup
|
||||
########
|
||||
|
||||
.. image:: /images/ctxpopup-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
A ctxpopup is a widget that, when shown, pops up a list of items. It
|
||||
automatically chooses an area inside its parent object's view to
|
||||
optimally fit into it. In the default theme, it will also point an arrow
|
||||
to it's top left position at the time one shows it. Ctxpopup items have
|
||||
a label and/or an icon. It is intended for a small number of items
|
||||
(hence the use of list, not genlist).
|
||||
|
||||
.. note::
|
||||
|
||||
Ctxpopup is a specialization of :py:class:`~efl.elementary.hover.Hover`.
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``dismissed`` - This is called when 1. the outside of ctxpopup was clicked
|
||||
or 2. its parent area is changed or 3. the language is changed and also when
|
||||
4. the parent object is resized due to the window rotation. Then ctxpopup is
|
||||
dismissed.
|
||||
|
||||
- ``geometry,update`` - The geometry has changed (since 1.17)
|
||||
|
||||
Layout content parts
|
||||
====================
|
||||
|
||||
- ``default`` - A content of the ctxpopup
|
||||
- ``icon`` - An icon in the title area
|
||||
|
||||
Layout text parts
|
||||
=================
|
||||
|
||||
- ``default`` - Title label in the title area
|
||||
|
||||
|
||||
Enumerations
|
||||
============
|
||||
|
||||
.. _Elm_Ctxpopup_Direction:
|
||||
|
||||
Ctxpopup arrow directions
|
||||
-------------------------
|
||||
|
||||
.. data:: ELM_CTXPOPUP_DIRECTION_DOWN
|
||||
|
||||
Arrow is pointing down
|
||||
|
||||
.. data:: ELM_CTXPOPUP_DIRECTION_RIGHT
|
||||
|
||||
Arrow is pointing right
|
||||
|
||||
.. data:: ELM_CTXPOPUP_DIRECTION_LEFT
|
||||
|
||||
Arrow is pointing left
|
||||
|
||||
.. data:: ELM_CTXPOPUP_DIRECTION_UP
|
||||
|
||||
Arrow is pointing up
|
||||
|
||||
.. data:: ELM_CTXPOPUP_DIRECTION_UNKNOWN
|
||||
|
||||
Arrow direction is unknown
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram::
|
||||
Ctxpopup
|
||||
CtxpopupItem
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Ctxpopup
|
||||
.. autoclass:: CtxpopupItem
|
||||
|
|
|
@ -1,2 +1,216 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.datetime_elm
|
||||
Datetime
|
||||
########
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
Datetime widget is used to display and input date & time values.
|
||||
|
||||
This widget displays date and time as per the **system's locale** settings
|
||||
(Date includes Day, Month & Year along with the defined separators and Time
|
||||
includes Hour, Minute & AM/PM fields). Separator for AM/PM field is ignored.
|
||||
|
||||
The corresponding Month, AM/PM strings are displayed according to the
|
||||
system’s language settings.
|
||||
|
||||
Datetime format is a combination of LIBC standard characters like "%%d %%b
|
||||
%%Y %%I : %%M %%p" which, as a whole represents both Date as well as Time
|
||||
format.
|
||||
|
||||
Elm_datetime supports only the following sub set of libc date format specifiers:
|
||||
|
||||
**%%Y** The year as a decimal number including the century (example: 2011).
|
||||
|
||||
**%%y** The year as a decimal number without a century (range 00 to 99)
|
||||
|
||||
**%%m** The month as a decimal number (range 01 to 12).
|
||||
|
||||
**%%b** The abbreviated month name according to the current locale.
|
||||
|
||||
**%%B** The full month name according to the current locale.
|
||||
|
||||
**%%h** The abbreviated month name according to the current locale(same as %%b).
|
||||
|
||||
**%%d** The day of the month as a decimal number (range 01 to 31).
|
||||
|
||||
**%%e** The day of the month as a decimal number (range 1 to 31). single
|
||||
digits are preceded by a blank.
|
||||
|
||||
**%%I** The hour as a decimal number using a 12-hour clock (range 01 to 12).
|
||||
|
||||
**%%H** The hour as a decimal number using a 24-hour clock (range 00 to 23).
|
||||
|
||||
**%%k** The hour (24-hour clock) as a decimal number (range 0 to 23). single
|
||||
digits are preceded by a blank.
|
||||
|
||||
**%%l** The hour (12-hour clock) as a decimal number (range 1 to 12); single
|
||||
digits are preceded by a blank.
|
||||
|
||||
**%%M** The minute as a decimal number (range 00 to 59).
|
||||
|
||||
**%%p** Either 'AM' or 'PM' according to the given time value, or the
|
||||
corresponding strings for the current locale. Noon is treated as 'PM'
|
||||
and midnight as 'AM'
|
||||
|
||||
**%%P** Like %p but in lower case: 'am' or 'pm' or a corresponding string for
|
||||
the current locale.
|
||||
|
||||
**%%c** The preferred date and time representation for the current locale.
|
||||
|
||||
**%%x** The preferred date representation for the current locale without the time.
|
||||
|
||||
**%%X** The preferred time representation for the current locale without the date.
|
||||
|
||||
**%%r** The complete calendar time using the AM/PM format of the current locale.
|
||||
|
||||
**%%R** The hour and minute in decimal numbers using the format %H:%M.
|
||||
|
||||
**%%T** The time of day in decimal numbers using the format %H:%M:%S.
|
||||
|
||||
**%%D** The date using the format %%m/%%d/%%y.
|
||||
|
||||
**%%F** The date using the format %%Y-%%m-%%d.
|
||||
|
||||
|
||||
(For more reference on the available **LIBC date format specifiers**,
|
||||
please visit the link:
|
||||
http://www.gnu.org/s/hello/manual/libc.html#Formatting-Calendar-Time )
|
||||
|
||||
Datetime widget can provide Unicode **separators** in between its fields
|
||||
except for AM/PM field. A separator can be any **Unicode character**
|
||||
other than the LIBC standard date format specifiers.
|
||||
|
||||
Example: In the format::
|
||||
|
||||
%%b %%d **,** %%y %%H **:** %%M
|
||||
|
||||
comma(,) is separator for date field %%d and colon(:) is separator for
|
||||
hour field %%H.
|
||||
|
||||
The default format is a predefined one, based on the system Locale.
|
||||
|
||||
Hour format 12hr(1-12) or 24hr(0-23) display can be selected by setting
|
||||
the corresponding user format.
|
||||
|
||||
Datetime supports six fields: Year, Month, Date, Hour, Minute, AM/PM.
|
||||
Depending on the Datetime module that is loaded, the user can see
|
||||
different UI to select the individual field values.
|
||||
|
||||
The individual fields of Datetime can be arranged in any order according
|
||||
to the format set by application.
|
||||
|
||||
There is a provision to set the visibility of a particular field as TRUE/
|
||||
FALSE so that **only time/ only date / only required fields** will be
|
||||
displayed.
|
||||
|
||||
Each field is having a default minimum and maximum values just like the
|
||||
daily calendar information. These min/max values can be modified as per
|
||||
the application usage.
|
||||
|
||||
User can enter the values only in between the range of maximum and
|
||||
minimum. Apart from these APIs, there is a provision to display only a
|
||||
limited set of values out of the possible values. APIs to select the
|
||||
individual field limits are intended for this purpose.
|
||||
|
||||
The whole widget is left aligned and its size grows horizontally
|
||||
depending on the current format and each field's visible/disabled state.
|
||||
|
||||
Datetime individual field selection is implemented in a modular style.
|
||||
Module can be implemented as a Ctxpopup based selection or an ISE based
|
||||
selection or even a spinner like selection etc.
|
||||
|
||||
Datetime Module design
|
||||
======================
|
||||
|
||||
The following functions are expected to be implemented in a Datetime module:
|
||||
|
||||
**Field creation**::
|
||||
|
||||
__________ __________
|
||||
| |----- obj_hook() ---------------------->>>| |
|
||||
| |<<<----------------returns Mod_data ------| |
|
||||
| Datetime |_______ | |
|
||||
| widget | |Assign module call backs | Module |
|
||||
| base |<<<____| | |
|
||||
| | | |
|
||||
| |----- field_create() ------------------>>>| |
|
||||
|__________|<<<----------------returns field_obj -----|__________|
|
||||
|
||||
**Field value setting**::
|
||||
|
||||
__________ __________
|
||||
| | | |
|
||||
| Datetime |<<<----------elm_datetime_value_set()---| |
|
||||
| widget | | Module |
|
||||
| base |----display_field_value()------------>>>| |
|
||||
|__________| |__________|
|
||||
|
||||
**del_hook**::
|
||||
|
||||
__________ __________
|
||||
| | | |
|
||||
| Datetime |----obj_unhook()-------------------->>>>| |
|
||||
| widget | | Module |
|
||||
| base | <<<-----frees mod_data---------| |
|
||||
|__________| |__________|
|
||||
|
||||
Any module can use the following shared functions that are implemented in
|
||||
elm_datetime.c:
|
||||
|
||||
**field_format_get()** - gives the field format.
|
||||
|
||||
**field_limit_get()** - gives the field minimum, maximum limits.
|
||||
|
||||
To enable a module, set the ELM_MODULES environment variable as shown:
|
||||
|
||||
**export ELM_MODULES="datetime_input_ctxpopup>datetime/api"**
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``changed`` - whenever Datetime field value is changed, this signal is sent.
|
||||
|
||||
|
||||
Enumerations
|
||||
============
|
||||
|
||||
.. _Elm_Datetime_Field_Type:
|
||||
|
||||
Datetime fields
|
||||
---------------
|
||||
|
||||
.. data:: ELM_DATETIME_YEAR
|
||||
|
||||
Year
|
||||
|
||||
.. data:: ELM_DATETIME_MONTH
|
||||
|
||||
Month
|
||||
|
||||
.. data:: ELM_DATETIME_DATE
|
||||
|
||||
Date
|
||||
|
||||
.. data:: ELM_DATETIME_HOUR
|
||||
|
||||
Hour
|
||||
|
||||
.. data:: ELM_DATETIME_MINUTE
|
||||
|
||||
Minute
|
||||
|
||||
.. data:: ELM_DATETIME_AMPM
|
||||
|
||||
Am/Pm
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: Datetime
|
||||
:parts: 2
|
||||
|
||||
.. autoclass:: Datetime
|
||||
|
|
|
@ -1,2 +1,98 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.dayselector
|
||||
Dayselector
|
||||
###########
|
||||
|
||||
.. image:: /images/dayselector-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
Dayselector displays all seven days of the week and allows the user to
|
||||
select multiple days.
|
||||
|
||||
The selection can be toggle by just clicking on the day.
|
||||
|
||||
Dayselector also provides the functionality to check whether a day is
|
||||
selected or not.
|
||||
|
||||
First day of the week is taken from config settings by default. It can be
|
||||
altered by using the API :py:attr:`~Dayselector.week_start` API.
|
||||
|
||||
APIs are provided for setting the duration of weekend
|
||||
:py:attr:`~Dayselector.weekend_start` and :py:attr:`~Dayselector.weekend_length`
|
||||
does this job.
|
||||
|
||||
Two styles of weekdays and weekends are supported in Dayselector.
|
||||
Application can emit signals on individual check objects for setting the
|
||||
weekday, weekend styles.
|
||||
|
||||
Once the weekend start day or weekend length changes, all the weekday &
|
||||
weekend styles will be reset to default style. It's the application's
|
||||
responsibility to set the styles again by sending corresponding signals.
|
||||
|
||||
"day0" indicates Sunday, "day1" indicates Monday etc. continues and so,
|
||||
"day6" indicates the Saturday part name.
|
||||
|
||||
Application can change individual day display string by using the API
|
||||
:py:meth:`~efl.elementary.object.Object.part_text_set`.
|
||||
|
||||
:py:meth:`~efl.elementary.object.Object.part_content_set` API sets the
|
||||
individual day object only if the passed one is a Check widget.
|
||||
|
||||
Check object representing a day can be set/get by the application by using
|
||||
the elm_object_part_content_set/get APIs thus providing a way to handle
|
||||
the different check styles for individual days.
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``dayselector,changed`` - when the user changes the state of a day.
|
||||
|
||||
|
||||
Enumerations
|
||||
============
|
||||
|
||||
.. _Elm_Dayselector_Day:
|
||||
|
||||
Dayselector days
|
||||
----------------
|
||||
|
||||
.. data:: ELM_DAYSELECTOR_SUN
|
||||
|
||||
Sunday
|
||||
|
||||
.. data:: ELM_DAYSELECTOR_MON
|
||||
|
||||
Monday
|
||||
|
||||
.. data:: ELM_DAYSELECTOR_TUE
|
||||
|
||||
Tuesday
|
||||
|
||||
.. data:: ELM_DAYSELECTOR_WED
|
||||
|
||||
Wednesday
|
||||
|
||||
.. data:: ELM_DAYSELECTOR_THU
|
||||
|
||||
Thursday
|
||||
|
||||
.. data:: ELM_DAYSELECTOR_FRI
|
||||
|
||||
Friday
|
||||
|
||||
.. data:: ELM_DAYSELECTOR_SAT
|
||||
|
||||
Saturday
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: Dayselector
|
||||
:parts: 2
|
||||
|
||||
.. autoclass:: Dayselector
|
||||
|
|
|
@ -1,2 +1,70 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.diskselector
|
||||
Diskselector
|
||||
############
|
||||
|
||||
.. image:: /images/diskselector-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
A diskselector is a kind of list widget. It scrolls horizontally,
|
||||
and can contain label and icon objects. Three items are displayed
|
||||
with the selected one in the middle.
|
||||
|
||||
It can act like a circular list with round mode and labels can be
|
||||
reduced for a defined length for side items.
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``selected`` - when item is selected, i.e. scroller stops.
|
||||
- ``clicked`` - This is called when a user clicks an item
|
||||
- ``scroll,anim,start`` - scrolling animation has started
|
||||
- ``scroll,anim,stop`` - scrolling animation has stopped
|
||||
- ``scroll,drag,start`` - dragging the diskselector has started
|
||||
- ``scroll,drag,stop`` - dragging the diskselector has stopped
|
||||
|
||||
.. note:: The ``scroll,anim,*`` and ``scroll,drag,*`` signals are only emitted
|
||||
by user intervention.
|
||||
|
||||
Layout content parts
|
||||
====================
|
||||
|
||||
- ``icon`` - An icon in the diskselector item
|
||||
|
||||
|
||||
Layout text parts
|
||||
=================
|
||||
|
||||
- ``default`` - Label of the diskselector item
|
||||
|
||||
|
||||
Scrollable Interface
|
||||
====================
|
||||
|
||||
This widget supports the scrollable interface.
|
||||
|
||||
If you wish to control the scrolling behaviour using these functions,
|
||||
inherit both the widget class and the
|
||||
:py:class:`~efl.elementary.scroller.Scrollable` class
|
||||
using multiple inheritance, for example::
|
||||
|
||||
class ScrollableGenlist(Genlist, Scrollable):
|
||||
def __init__(self, canvas, *args, **kwargs):
|
||||
Genlist.__init__(self, canvas)
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram::
|
||||
Diskselector
|
||||
DiskselectorItem
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Diskselector
|
||||
.. autoclass:: DiskselectorItem
|
||||
|
|
|
@ -1,10 +1,7 @@
|
|||
|
||||
Elementary
|
||||
##########
|
||||
|
||||
.. module:: efl.elementary
|
||||
|
||||
What is elementary?
|
||||
===================
|
||||
*******************
|
||||
|
||||
Elementary is a the high level toolkit based on the underlying efl
|
||||
technologies (:doc:`Evas </evas/evas>`, :doc:`Edje </edje/edje>`,
|
||||
|
@ -16,10 +13,10 @@ of flexibility.
|
|||
|
||||
|
||||
Callbacks
|
||||
=========
|
||||
*********
|
||||
|
||||
Widget callbacks
|
||||
----------------
|
||||
================
|
||||
|
||||
Widget callbacks are set with callback_*_add methods which take a callable,
|
||||
and optional args, kwargs as data.
|
||||
|
@ -34,7 +31,7 @@ or::
|
|||
|
||||
|
||||
Event callbacks
|
||||
---------------
|
||||
===============
|
||||
|
||||
Event callbacks have signature of::
|
||||
|
||||
|
@ -42,91 +39,442 @@ Event callbacks have signature of::
|
|||
|
||||
|
||||
A sample Python Elementary program
|
||||
==================================
|
||||
**********************************
|
||||
|
||||
.. literalinclude:: ../../examples/elementary/test_win_dialog.py
|
||||
:language: python
|
||||
|
||||
|
||||
API Reference
|
||||
=============
|
||||
*************
|
||||
|
||||
|
||||
Enumerations
|
||||
============
|
||||
|
||||
.. _Elm_Object_Layer:
|
||||
|
||||
Object layers
|
||||
-------------
|
||||
|
||||
.. versionadded:: 1.14
|
||||
|
||||
.. data:: ELM_OBJECT_LAYER_BACKGROUND
|
||||
|
||||
where to place backgrounds
|
||||
|
||||
.. data:: ELM_OBJECT_LAYER_DEFAULT
|
||||
|
||||
Evas_Object default layer (and thus for Elementary)
|
||||
|
||||
.. data:: ELM_OBJECT_LAYER_FOCUS
|
||||
|
||||
where focus object visualization is
|
||||
|
||||
.. data:: ELM_OBJECT_LAYER_TOOLTIP
|
||||
|
||||
where to show tooltips
|
||||
|
||||
.. data:: ELM_OBJECT_LAYER_CURSOR
|
||||
|
||||
where to show cursors
|
||||
|
||||
.. data:: ELM_OBJECT_LAYER_LAST
|
||||
|
||||
last layer known by Elementary
|
||||
|
||||
|
||||
.. _Elm_Policy:
|
||||
|
||||
Policy types
|
||||
------------
|
||||
|
||||
.. data:: ELM_POLICY_QUIT
|
||||
|
||||
Under which circumstances the application should quit automatically.
|
||||
|
||||
.. data:: ELM_POLICY_EXIT
|
||||
|
||||
Defines elm_exit() behaviour. (since 1.8)
|
||||
|
||||
.. data:: ELM_POLICY_THROTTLE
|
||||
|
||||
Defines how throttling should work (since 1.8)
|
||||
|
||||
|
||||
.. _Elm_Policy_Quit:
|
||||
|
||||
Quit policy types
|
||||
-----------------
|
||||
|
||||
.. data:: ELM_POLICY_QUIT_NONE
|
||||
|
||||
Never quit the application automatically
|
||||
|
||||
.. data:: ELM_POLICY_QUIT_LAST_WINDOW_CLOSED
|
||||
|
||||
Quit when the application's last window is closed
|
||||
|
||||
.. data:: ELM_POLICY_QUIT_LAST_WINDOW_HIDDEN
|
||||
|
||||
Quit when the application's last window is hidden
|
||||
|
||||
.. versionadded:: 1.15
|
||||
|
||||
|
||||
.. _Elm_Policy_Exit:
|
||||
|
||||
Exit policy types
|
||||
-----------------
|
||||
|
||||
Possible values for the ELM_POLICY_EXIT policy.
|
||||
|
||||
.. data:: ELM_POLICY_EXIT_NONE
|
||||
|
||||
Just quit the main loop on exit().
|
||||
|
||||
.. data:: ELM_POLICY_EXIT_WINDOWS_DEL
|
||||
|
||||
Delete all the windows after quitting the main loop.
|
||||
|
||||
|
||||
.. _Elm_Policy_Throttle:
|
||||
|
||||
Throttle policy types
|
||||
---------------------
|
||||
|
||||
Possible values for the #ELM_POLICY_THROTTLE policy.
|
||||
|
||||
.. data:: ELM_POLICY_THROTTLE_CONFIG
|
||||
|
||||
Do whatever elementary config is configured to do.
|
||||
|
||||
.. data:: ELM_POLICY_THROTTLE_HIDDEN_ALWAYS
|
||||
|
||||
Always throttle when all windows are no longer visible.
|
||||
|
||||
.. data:: ELM_POLICY_THROTTLE_NEVER
|
||||
|
||||
Never throttle when windows are all hidden, regardless of config settings.
|
||||
|
||||
|
||||
.. _Elm_Object_Multi_Select_Mode:
|
||||
|
||||
Object multi select policy values
|
||||
---------------------------------
|
||||
|
||||
Possible values for the #ELM_OBJECT_MULTI_SELECT_MODE policy.
|
||||
|
||||
.. versionadded:: 1.18
|
||||
|
||||
.. data:: ELM_OBJECT_MULTI_SELECT_MODE_DEFAULT
|
||||
|
||||
Default multiple select mode.
|
||||
|
||||
.. data:: ELM_OBJECT_MULTI_SELECT_MODE_WITH_CONTROL
|
||||
|
||||
Disallow mutiple selection when clicked without control key pressed.
|
||||
|
||||
|
||||
.. _Elm_Process_State:
|
||||
|
||||
Elm_Process_State
|
||||
-----------------
|
||||
|
||||
.. data:: ELM_PROCESS_STATE_FOREGROUND
|
||||
|
||||
The process is in a foreground/active/running state - work as normal.
|
||||
|
||||
.. versionadded:: 1.12
|
||||
|
||||
.. data:: ELM_PROCESS_STATE_BACKGROUND
|
||||
|
||||
The process is in the bacgkround, so you may want to stop animating,
|
||||
fetching data as often etc.
|
||||
|
||||
.. versionadded:: 1.12
|
||||
|
||||
|
||||
.. _Elm_Sys_Notify_Closed_Reason:
|
||||
|
||||
Notify close reasons
|
||||
--------------------
|
||||
|
||||
The reason the notification was closed
|
||||
|
||||
.. data:: ELM_SYS_NOTIFY_CLOSED_EXPIRED
|
||||
|
||||
The notification expired.
|
||||
|
||||
.. versionadded:: 1.10
|
||||
|
||||
.. data:: ELM_SYS_NOTIFY_CLOSED_DISMISSED
|
||||
|
||||
The notification was dismissed by the user.
|
||||
|
||||
.. versionadded:: 1.10
|
||||
|
||||
.. data:: ELM_SYS_NOTIFY_CLOSED_REQUESTED
|
||||
|
||||
The notification was closed by a call to CloseNotification method.
|
||||
|
||||
.. versionadded:: 1.10
|
||||
|
||||
.. data:: ELM_SYS_NOTIFY_CLOSED_UNDEFINED
|
||||
|
||||
Undefined/reserved reasons.
|
||||
|
||||
.. versionadded:: 1.10
|
||||
|
||||
|
||||
.. _Elm_Sys_Notify_Urgency:
|
||||
|
||||
Notify urgency levels
|
||||
---------------------
|
||||
|
||||
Urgency levels of a notification
|
||||
|
||||
:see: :py:func:`sys_notify_send`
|
||||
|
||||
.. data:: ELM_SYS_NOTIFY_URGENCY_LOW
|
||||
|
||||
Low
|
||||
|
||||
.. versionadded:: 1.10
|
||||
|
||||
.. data:: ELM_SYS_NOTIFY_URGENCY_NORMAL
|
||||
|
||||
Normal
|
||||
|
||||
.. versionadded:: 1.10
|
||||
|
||||
.. data:: ELM_SYS_NOTIFY_URGENCY_CRITICAL
|
||||
|
||||
Critical
|
||||
|
||||
.. versionadded:: 1.10
|
||||
|
||||
|
||||
.. _Elm_Glob_Match_Flags:
|
||||
|
||||
Glob matching
|
||||
-------------
|
||||
|
||||
Glob matching bitfiled flags
|
||||
|
||||
.. data:: ELM_GLOB_MATCH_NO_ESCAPE
|
||||
|
||||
Treat backslash as an ordinary character instead of escape.
|
||||
|
||||
.. versionadded:: 1.11
|
||||
|
||||
.. data:: ELM_GLOB_MATCH_PATH
|
||||
|
||||
Match a slash in string only with a slash in pattern and not by an
|
||||
asterisk (*) or a question mark (?) metacharacter, nor by a bracket
|
||||
expression ([]) containing a slash.
|
||||
|
||||
.. versionadded:: 1.11
|
||||
|
||||
.. data:: ELM_GLOB_MATCH_PERIOD
|
||||
|
||||
Leading period in string has to be matched exactly by a period in
|
||||
pattern. A period is considered to be leading if it is the first
|
||||
character in string, or if both ELM_GLOB_MATCH_PATH is set and the
|
||||
period immediately follows a slash.
|
||||
|
||||
.. versionadded:: 1.11
|
||||
|
||||
.. data:: ELM_GLOB_MATCH_NOCASE
|
||||
|
||||
The pattern is matched case-insensitively.
|
||||
|
||||
.. versionadded:: 1.11
|
||||
|
||||
|
||||
.. _General:
|
||||
|
||||
General
|
||||
=======
|
||||
|
||||
General Elementary API. Functions that don't relate to
|
||||
Elementary objects specifically.
|
||||
|
||||
Here are documented functions which init/shutdown the library,
|
||||
that apply to generic Elementary objects, that deal with
|
||||
configuration, et cetera.
|
||||
|
||||
.. autoclass:: EthumbConnect
|
||||
.. autoclass:: ConfigAllChanged
|
||||
.. autoclass:: PolicyChanged
|
||||
.. autoclass:: ProcessBackground
|
||||
.. autoclass:: ProcessForeground
|
||||
|
||||
.. autofunction:: on_ethumb_connect
|
||||
.. autofunction:: on_config_all_changed
|
||||
.. autofunction:: on_policy_changed
|
||||
.. autofunction:: on_process_background
|
||||
.. autofunction:: on_process_foreground
|
||||
|
||||
.. autofunction:: init
|
||||
.. autofunction:: shutdown
|
||||
.. autofunction:: run
|
||||
.. autofunction:: exit
|
||||
|
||||
.. autofunction:: policy_set
|
||||
.. autofunction:: policy_get
|
||||
.. autofunction:: language_set
|
||||
.. autofunction:: process_state_get
|
||||
|
||||
|
||||
.. _Fingers:
|
||||
|
||||
Fingers
|
||||
=======
|
||||
|
||||
Elementary is designed to be finger-friendly for touchscreens,
|
||||
and so in addition to scaling for display resolution, it can
|
||||
also scale based on finger "resolution" (or size). You can then
|
||||
customize the granularity of the areas meant to receive clicks
|
||||
on touchscreens.
|
||||
|
||||
Different profiles may have pre-set values for finger sizes.
|
||||
|
||||
.. autofunction:: coords_finger_size_adjust
|
||||
|
||||
|
||||
.. _Caches:
|
||||
|
||||
Caches
|
||||
======
|
||||
|
||||
These are functions which let one fine-tune some cache values for
|
||||
Elementary applications, thus allowing for performance adjustments.
|
||||
|
||||
.. autofunction:: cache_all_flush
|
||||
|
||||
|
||||
.. _Fonts:
|
||||
|
||||
Fonts
|
||||
=====
|
||||
|
||||
These are functions dealing with font rendering, selection and the
|
||||
like for Elementary applications. One might fetch which system
|
||||
fonts are there to use and set custom fonts for individual classes
|
||||
of UI items containing text (text classes).
|
||||
|
||||
.. autofunction:: font_properties_get
|
||||
.. autofunction:: font_properties_free
|
||||
|
||||
.. autofunction:: font_fontconfig_name_get
|
||||
|
||||
.. autoclass:: FontProperties
|
||||
|
||||
|
||||
.. _Debug:
|
||||
|
||||
Debug
|
||||
=====
|
||||
|
||||
Don't use them unless you are sure.
|
||||
|
||||
.. autofunction:: object_tree_dump
|
||||
.. autofunction:: object_tree_dot_dump
|
||||
|
||||
|
||||
.. _Sys_Notify:
|
||||
|
||||
Sys Notify
|
||||
==========
|
||||
|
||||
.. autofunction:: sys_notify_close
|
||||
.. autofunction:: sys_notify_send
|
||||
|
||||
.. autofunction:: on_sys_notify_notification_closed
|
||||
.. autofunction:: on_sys_notify_action_invoked
|
||||
|
||||
.. autoclass:: SysNotifyNotificationClosed
|
||||
.. autoclass:: SysNotifyActionInvoked
|
||||
|
||||
|
||||
Widgets
|
||||
=======
|
||||
|
||||
.. toctree:: *
|
||||
:glob:
|
||||
:maxdepth: 1
|
||||
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram::
|
||||
efl.elementary.actionslider
|
||||
efl.elementary.background
|
||||
efl.elementary.box
|
||||
efl.elementary.bubble
|
||||
efl.elementary.button
|
||||
efl.elementary.calendar_elm
|
||||
efl.elementary.check
|
||||
efl.elementary.clock
|
||||
efl.elementary.colorselector
|
||||
efl.elementary.configuration
|
||||
efl.elementary.conformant
|
||||
efl.elementary.ctxpopup
|
||||
efl.elementary.datetime_elm
|
||||
efl.elementary.dayselector
|
||||
efl.elementary.diskselector
|
||||
efl.elementary.entry
|
||||
efl.elementary.fileselector
|
||||
efl.elementary.fileselector_button
|
||||
efl.elementary.fileselector_entry
|
||||
efl.elementary.flip
|
||||
efl.elementary.flipselector
|
||||
efl.elementary.frame
|
||||
efl.elementary.general
|
||||
efl.elementary.gengrid
|
||||
efl.elementary.genlist
|
||||
efl.elementary.gesture_layer
|
||||
efl.elementary.grid
|
||||
efl.elementary.hover
|
||||
efl.elementary.hoversel
|
||||
efl.elementary.icon
|
||||
efl.elementary.image
|
||||
efl.elementary.index
|
||||
efl.elementary.innerwindow
|
||||
efl.elementary.label
|
||||
efl.elementary.layout
|
||||
efl.elementary.layout_class
|
||||
efl.elementary.list
|
||||
efl.elementary.map
|
||||
efl.elementary.mapbuf
|
||||
efl.elementary.menu
|
||||
efl.elementary.multibuttonentry
|
||||
efl.elementary.naviframe
|
||||
efl.elementary.need
|
||||
efl.elementary.notify
|
||||
efl.elementary.object
|
||||
efl.elementary.object_item
|
||||
efl.elementary.panel
|
||||
efl.elementary.panes
|
||||
efl.elementary.photo
|
||||
efl.elementary.photocam
|
||||
efl.elementary.plug
|
||||
efl.elementary.popup
|
||||
efl.elementary.progressbar
|
||||
efl.elementary.radio
|
||||
efl.elementary.scroller
|
||||
efl.elementary.segment_control
|
||||
efl.elementary.separator
|
||||
efl.elementary.slider
|
||||
efl.elementary.slideshow
|
||||
efl.elementary.spinner
|
||||
efl.elementary.systray
|
||||
efl.elementary.table
|
||||
efl.elementary.theme
|
||||
efl.elementary.thumb
|
||||
efl.elementary.toolbar
|
||||
efl.elementary.transit
|
||||
efl.elementary.video
|
||||
efl.elementary.web
|
||||
efl.elementary.window
|
||||
:parts: 2
|
||||
efl.elementary.Actionslider
|
||||
efl.elementary.Background
|
||||
efl.elementary.Box
|
||||
efl.elementary.Bubble
|
||||
efl.elementary.Button
|
||||
efl.elementary.Calendar
|
||||
efl.elementary.Check
|
||||
efl.elementary.Clock
|
||||
efl.elementary.Colorselector
|
||||
efl.elementary.Combobox
|
||||
efl.elementary.Configuration
|
||||
efl.elementary.Conformant
|
||||
efl.elementary.Ctxpopup
|
||||
efl.elementary.Datetime
|
||||
efl.elementary.Dayselector
|
||||
efl.elementary.Diskselector
|
||||
efl.elementary.Entry
|
||||
efl.elementary.Fileselector
|
||||
efl.elementary.FileselectorButton
|
||||
efl.elementary.FileselectorEntry
|
||||
efl.elementary.Flip
|
||||
efl.elementary.FlipSelector
|
||||
efl.elementary.Frame
|
||||
efl.elementary.Gengrid
|
||||
efl.elementary.Genlist
|
||||
efl.elementary.GestureLayer
|
||||
efl.elementary.Grid
|
||||
efl.elementary.Hover
|
||||
efl.elementary.Hoversel
|
||||
efl.elementary.Icon
|
||||
efl.elementary.Image
|
||||
efl.elementary.Index
|
||||
efl.elementary.InnerWindow
|
||||
efl.elementary.Label
|
||||
efl.elementary.Layout
|
||||
efl.elementary.List
|
||||
efl.elementary.Map
|
||||
efl.elementary.Mapbuf
|
||||
efl.elementary.Menu
|
||||
efl.elementary.MultiButtonEntry
|
||||
efl.elementary.Naviframe
|
||||
efl.elementary.Notify
|
||||
efl.elementary.Object
|
||||
efl.elementary.ObjectItem
|
||||
efl.elementary.Panel
|
||||
efl.elementary.Panes
|
||||
efl.elementary.Photo
|
||||
efl.elementary.Photocam
|
||||
efl.elementary.Plug
|
||||
efl.elementary.Popup
|
||||
efl.elementary.Progressbar
|
||||
efl.elementary.Radio
|
||||
efl.elementary.Scroller
|
||||
efl.elementary.SegmentControl
|
||||
efl.elementary.Separator
|
||||
efl.elementary.Slider
|
||||
efl.elementary.Slideshow
|
||||
efl.elementary.Spinner
|
||||
efl.elementary.Table
|
||||
efl.elementary.Theme
|
||||
efl.elementary.Thumb
|
||||
efl.elementary.Toolbar
|
||||
efl.elementary.Transit
|
||||
efl.elementary.Video
|
||||
efl.elementary.Web
|
||||
efl.elementary.Window
|
||||
:parts: 1
|
||||
|
|
|
@ -1,2 +1,584 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.entry
|
||||
Entry
|
||||
#####
|
||||
|
||||
.. image:: /images/entry-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
An entry is a convenience widget which shows a box that the user can
|
||||
enter text into.
|
||||
|
||||
Entries by default don't scroll, so they grow to accommodate the entire text,
|
||||
resizing the parent window as needed. This can be changed with the property
|
||||
:py:attr:`~efl.elementary.entry.Entry.scrollable`.
|
||||
|
||||
They can also be single line or multi line (the default) and when set
|
||||
to multi line mode they support text wrapping in any of the modes
|
||||
indicated by :ref:`Elm_Wrap_Type`.
|
||||
|
||||
Other features include password mode, filtering of inserted text with
|
||||
:py:meth:`~efl.elementary.entry.Entry.markup_filter_append` and related
|
||||
functions, inline "items" and formatted markup text.
|
||||
|
||||
|
||||
Scrollable Interface
|
||||
====================
|
||||
|
||||
This widget supports the scrollable interface.
|
||||
|
||||
If you wish to control the scolling behaviour using these functions,
|
||||
inherit both the widget class and the
|
||||
:py:class:`~efl.elementary.scroller.Scrollable` class
|
||||
using multiple inheritance, for example::
|
||||
|
||||
class ScrollableGenlist(Genlist, Scrollable):
|
||||
def __init__(self, canvas, *args, **kwargs):
|
||||
Genlist.__init__(self, canvas)
|
||||
|
||||
|
||||
Formatted text
|
||||
==============
|
||||
|
||||
The markup tags supported by the Entry are defined by the theme, but
|
||||
even when writing new themes or extensions it's a good idea to stick to
|
||||
a sane default, to maintain coherency and avoid application breakages.
|
||||
Currently defined by the default theme are the following tags:
|
||||
|
||||
``<br>``
|
||||
Inserts a line break.
|
||||
``<ps>``
|
||||
Inserts a paragraph separator. This is preferred over line
|
||||
breaks.
|
||||
``<tab>``
|
||||
Inserts a tab.
|
||||
``<em>...</em>``
|
||||
Emphasis. Sets the *oblique* style for the
|
||||
enclosed text.
|
||||
``<b>...</b>``
|
||||
Sets the **bold** style for the enclosed text.
|
||||
``<link>...</link>``
|
||||
Underlines the enclosed text.
|
||||
``<hilight>...</hilight>``
|
||||
Highlights the enclosed text.
|
||||
|
||||
|
||||
Special markups
|
||||
===============
|
||||
|
||||
Besides those used to format text, entries support two special markup
|
||||
tags used to insert click-able portions of text or items inlined within
|
||||
the text.
|
||||
|
||||
|
||||
Anchors
|
||||
-------
|
||||
|
||||
Anchors are similar to HTML anchors. Text can be surrounded by <a> and
|
||||
</a> tags and an event will be generated when this text is clicked,
|
||||
like this::
|
||||
|
||||
This text is outside <a href=anc-01>but this one is an anchor</a>
|
||||
|
||||
The ``href`` attribute in the opening tag gives the name that will be
|
||||
used to identify the anchor and it can be any valid utf8 string.
|
||||
|
||||
When an anchor is clicked, an ``"anchor,clicked"`` signal is emitted with
|
||||
an :py:class:`EntryAnchorInfo` in the ``event_info`` parameter for the
|
||||
callback function. The same applies for ``anchor,in`` (mouse in),
|
||||
``anchor,out`` (mouse out), ``anchor,down`` (mouse down), and ``anchor,up``
|
||||
(mouse up) events on an anchor.
|
||||
|
||||
|
||||
Items
|
||||
-----
|
||||
|
||||
Inlined in the text, any other :py:class:`~efl.elementary.object.Object` can
|
||||
be inserted by using ``<item>`` tags this way::
|
||||
|
||||
<item size=16x16 vsize=full href=emoticon/haha></item>
|
||||
|
||||
Just like with anchors, the ``href`` identifies each item, but these need,
|
||||
in addition, to indicate their size, which is done using any one of
|
||||
``size``, ``absize`` or ``relsize`` attributes. These attributes take their
|
||||
value in the WxH format, where W is the width and H the height of the
|
||||
item.
|
||||
|
||||
- absize: Absolute pixel size for the item. Whatever value is set will
|
||||
be the item's size regardless of any scale value the object may have
|
||||
been set to. The final line height will be adjusted to fit larger items.
|
||||
- size: Similar to *absize*, but it's adjusted to the scale value set
|
||||
for the object.
|
||||
- relsize: Size is adjusted for the item to fit within the current
|
||||
line height.
|
||||
|
||||
Besides their size, items are specified a ``vsize`` value that affects
|
||||
how their final size and position are calculated. The possible values
|
||||
are:
|
||||
|
||||
- ``ascent``: Item will be placed within the line's baseline and its
|
||||
ascent. That is, the height between the line where all characters are
|
||||
positioned and the highest point in the line. For ``size`` and
|
||||
``absize`` items, the descent value will be added to the total line
|
||||
height to make them fit. ``relsize`` items will be adjusted to fit
|
||||
within this space.
|
||||
- ``full``: Items will be placed between the descent and ascent, or the
|
||||
lowest point in the line and its highest.
|
||||
|
||||
After the size for an item is calculated, the entry will request an object to
|
||||
place in its space. For this, the functions set with
|
||||
:py:meth:`~efl.elementary.entry.Entry.item_provider_append` and related
|
||||
functions will be called in order until one of them returns a non-*None* value.
|
||||
If no providers are available, or all of them return *None*, then the entry
|
||||
falls back to one of the internal defaults, provided the name matches with one
|
||||
of them.
|
||||
|
||||
All of the following are currently supported:
|
||||
|
||||
- emoticon/angry
|
||||
- emoticon/angry-shout
|
||||
- emoticon/crazy-laugh
|
||||
- emoticon/evil-laugh
|
||||
- emoticon/evil
|
||||
- emoticon/goggle-smile
|
||||
- emoticon/grumpy
|
||||
- emoticon/grumpy-smile
|
||||
- emoticon/guilty
|
||||
- emoticon/guilty-smile
|
||||
- emoticon/haha
|
||||
- emoticon/half-smile
|
||||
- emoticon/happy-panting
|
||||
- emoticon/happy
|
||||
- emoticon/indifferent
|
||||
- emoticon/kiss
|
||||
- emoticon/knowing-grin
|
||||
- emoticon/laugh
|
||||
- emoticon/little-bit-sorry
|
||||
- emoticon/love-lots
|
||||
- emoticon/love
|
||||
- emoticon/minimal-smile
|
||||
- emoticon/not-happy
|
||||
- emoticon/not-impressed
|
||||
- emoticon/omg
|
||||
- emoticon/opensmile
|
||||
- emoticon/smile
|
||||
- emoticon/sorry
|
||||
- emoticon/squint-laugh
|
||||
- emoticon/surprised
|
||||
- emoticon/suspicious
|
||||
- emoticon/tongue-dangling
|
||||
- emoticon/tongue-poke
|
||||
- emoticon/uh
|
||||
- emoticon/unhappy
|
||||
- emoticon/very-sorry
|
||||
- emoticon/what
|
||||
- emoticon/wink
|
||||
- emoticon/worried
|
||||
- emoticon/wtf
|
||||
|
||||
Alternatively, an item may reference an image by its path, using
|
||||
the URI form ``file:///path/to/an/image.png`` and the entry will then
|
||||
use that image for the item.
|
||||
|
||||
|
||||
Setting entry's style
|
||||
=====================
|
||||
|
||||
There are 2 major ways to change the entry's style:
|
||||
|
||||
- Theme - set the "base" field to the desired style.
|
||||
- User style - Pushing overrides to the theme style to the textblock object
|
||||
by using :py:meth:`~efl.elementary.entry.Entry.text_style_user_push`.
|
||||
|
||||
You should modify the theme when you would like to change the style for
|
||||
aesthetic reasons. While the user style should be changed when you would
|
||||
like to change the style to something specific defined at run-time, e.g,
|
||||
setting font or font size in a text editor.
|
||||
|
||||
|
||||
Loading and saving files
|
||||
========================
|
||||
|
||||
Entries have convenience functions to load text from a file and save changes
|
||||
back to it after a short delay. The automatic saving is enabled by default, but
|
||||
can be disabled with :py:attr:`~efl.elementary.entry.Entry.autosave` and files
|
||||
can be loaded directly as plain text or have any markup in them recognized. See
|
||||
:py:attr:`~efl.elementary.entry.Entry.file` for more details.
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``changed``: The text within the entry was changed.
|
||||
- ``changed,user``: The text within the entry was changed because of user
|
||||
interaction.
|
||||
- ``activated``: The enter key was pressed on a single line entry.
|
||||
- ``aborted``: The escape key was pressed on a single line entry. (since 1.7)
|
||||
- ``press``: A mouse button has been pressed on the entry.
|
||||
- ``longpressed``: A mouse button has been pressed and held for a couple
|
||||
seconds.
|
||||
- ``clicked``: The entry has been clicked (mouse press and release).
|
||||
- ``clicked,double``: The entry has been double clicked.
|
||||
- ``clicked,triple``: The entry has been triple clicked.
|
||||
- ``selection,paste``: A paste of the clipboard contents was requested.
|
||||
- ``selection,copy``: A copy of the selected text into the clipboard was
|
||||
requested.
|
||||
- ``selection,cut``: A cut of the selected text into the clipboard was
|
||||
requested.
|
||||
- ``selection,start``: A selection has begun and no previous selection
|
||||
existed.
|
||||
- ``selection,changed``: The current selection has changed.
|
||||
- ``selection,cleared``: The current selection has been cleared.
|
||||
- ``cursor,changed``: The cursor has changed position.
|
||||
- ``anchor,clicked``: An anchor has been clicked. The event_info
|
||||
parameter for the callback will be an :py:class:`EntryAnchorInfo`.
|
||||
- ``anchor,in``: Mouse cursor has moved into an anchor. The event_info
|
||||
parameter for the callback will be an :py:class:`EntryAnchorInfo`.
|
||||
- ``anchor,out``: Mouse cursor has moved out of an anchor. The event_info
|
||||
parameter for the callback will be an :py:class:`EntryAnchorInfo`.
|
||||
- ``anchor,up``: Mouse button has been unpressed on an anchor. The event_info
|
||||
parameter for the callback will be an :py:class:`EntryAnchorInfo`.
|
||||
- ``anchor,down``: Mouse button has been pressed on an anchor. The event_info
|
||||
parameter for the callback will be an :py:class:`EntryAnchorInfo`.
|
||||
- ``preedit,changed``: The preedit string has changed.
|
||||
- ``text,set,done``: Whole text has been set to the entry.
|
||||
- ``rejected``: .Called when some of inputs are rejected by the filter. (since 1.9)
|
||||
|
||||
|
||||
Layout content parts
|
||||
====================
|
||||
|
||||
- ``icon`` - An icon in the entry
|
||||
- ``end`` - A content in the end of the entry
|
||||
|
||||
|
||||
Layout text parts
|
||||
=================
|
||||
|
||||
- ``default`` - text of the entry
|
||||
- ``guide`` - placeholder of the entry
|
||||
|
||||
|
||||
Enumerations
|
||||
============
|
||||
|
||||
.. _Elm_Entry_Autocapital_Type:
|
||||
|
||||
Autocapitalization types
|
||||
------------------------
|
||||
|
||||
.. data:: ELM_AUTOCAPITAL_TYPE_NONE
|
||||
|
||||
No auto-capitalization when typing
|
||||
|
||||
.. data:: ELM_AUTOCAPITAL_TYPE_WORD
|
||||
|
||||
Autocapitalize each word typed
|
||||
|
||||
.. data:: ELM_AUTOCAPITAL_TYPE_SENTENCE
|
||||
|
||||
Autocapitalize the start of each sentence
|
||||
|
||||
.. data:: ELM_AUTOCAPITAL_TYPE_ALLCHARACTER
|
||||
|
||||
Autocapitalize all letters
|
||||
|
||||
|
||||
.. _Elm_Entry_Cnp_Mode:
|
||||
|
||||
Copy & paste modes
|
||||
------------------
|
||||
|
||||
.. data:: ELM_CNP_MODE_MARKUP
|
||||
|
||||
Copy & paste text with markup tags
|
||||
|
||||
.. data:: ELM_CNP_MODE_NO_IMAGE
|
||||
|
||||
Copy & paste text without item (image) tags
|
||||
|
||||
.. data:: ELM_CNP_MODE_PLAINTEXT
|
||||
|
||||
Copy & paste text without markup tags
|
||||
|
||||
|
||||
.. _Elm_Input_Hints:
|
||||
|
||||
Input Hints
|
||||
-----------
|
||||
|
||||
.. data:: ELM_INPUT_HINT_NONE
|
||||
|
||||
No active hints
|
||||
|
||||
.. versionadded:: 1.12
|
||||
|
||||
.. data:: ELM_INPUT_HINT_AUTO_COMPLETE
|
||||
|
||||
Suggest word auto completion
|
||||
|
||||
.. versionadded:: 1.12
|
||||
|
||||
.. data:: ELM_INPUT_HINT_SENSITIVE_DATA
|
||||
|
||||
typed text should not be stored
|
||||
|
||||
.. versionadded:: 1.12
|
||||
|
||||
|
||||
.. _Elm_Entry_Input_Panel_Lang:
|
||||
|
||||
Input panel language sort order
|
||||
-------------------------------
|
||||
|
||||
.. data:: ELM_INPUT_PANEL_LANG_AUTOMATIC
|
||||
|
||||
Automatic
|
||||
|
||||
.. data:: ELM_INPUT_PANEL_LANG_ALPHABET
|
||||
|
||||
Alphabetic
|
||||
|
||||
|
||||
.. _Elm_Entry_Input_Panel_Layout:
|
||||
|
||||
Input panel layouts
|
||||
-------------------
|
||||
|
||||
.. data:: ELM_INPUT_PANEL_LAYOUT_NORMAL
|
||||
|
||||
Default layout
|
||||
|
||||
.. data:: ELM_INPUT_PANEL_LAYOUT_NUMBER
|
||||
|
||||
Number layout
|
||||
|
||||
.. data:: ELM_INPUT_PANEL_LAYOUT_EMAIL
|
||||
|
||||
Email layout
|
||||
|
||||
.. data:: ELM_INPUT_PANEL_LAYOUT_URL
|
||||
|
||||
URL layout
|
||||
|
||||
.. data:: ELM_INPUT_PANEL_LAYOUT_PHONENUMBER
|
||||
|
||||
Phone number layout
|
||||
|
||||
.. data:: ELM_INPUT_PANEL_LAYOUT_IP
|
||||
|
||||
IP layout
|
||||
|
||||
.. data:: ELM_INPUT_PANEL_LAYOUT_MONTH
|
||||
|
||||
Month layout
|
||||
|
||||
.. data:: ELM_INPUT_PANEL_LAYOUT_NUMBERONLY
|
||||
|
||||
Number only layout
|
||||
|
||||
.. data:: ELM_INPUT_PANEL_LAYOUT_INVALID
|
||||
|
||||
Never use this
|
||||
|
||||
.. data:: ELM_INPUT_PANEL_LAYOUT_HEX
|
||||
|
||||
Hexadecimal layout
|
||||
|
||||
.. data:: ELM_INPUT_PANEL_LAYOUT_TERMINAL
|
||||
|
||||
Command-line terminal layout
|
||||
|
||||
.. data:: ELM_INPUT_PANEL_LAYOUT_PASSWORD
|
||||
|
||||
Like normal, but no auto-correct, no auto-capitalization etc.
|
||||
|
||||
.. data:: ELM_INPUT_PANEL_LAYOUT_DATETIME
|
||||
|
||||
Date and time layout
|
||||
|
||||
.. versionadded:: 1.10
|
||||
|
||||
.. data:: ELM_INPUT_PANEL_LAYOUT_EMOTICON
|
||||
|
||||
Emoticon layout
|
||||
|
||||
.. 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:
|
||||
|
||||
Input panel normal layout variation
|
||||
-----------------------------------
|
||||
|
||||
.. data:: ELM_INPUT_PANEL_LAYOUT_NORMAL_VARIATION_NORMAL
|
||||
|
||||
The plain normal layout
|
||||
|
||||
.. versionadded:: 1.12
|
||||
|
||||
.. data:: ELM_INPUT_PANEL_LAYOUT_NORMAL_VARIATION_FILENAME
|
||||
|
||||
Filename layout. Symbols such as '/' should be disabled
|
||||
|
||||
.. versionadded:: 1.12
|
||||
|
||||
.. data:: ELM_INPUT_PANEL_LAYOUT_NORMAL_VARIATION_PERSON_NAME
|
||||
|
||||
The name of a person
|
||||
|
||||
.. versionadded:: 1.12
|
||||
|
||||
|
||||
.. _Elm_Input_Panel_Layout_Numberonly_Variation:
|
||||
|
||||
Input panel numberonly layout variation
|
||||
---------------------------------------
|
||||
|
||||
.. data:: ELM_INPUT_PANEL_LAYOUT_NUMBERONLY_VARIATION_NORMAL
|
||||
|
||||
The numberonly normal layout
|
||||
|
||||
.. versionadded:: 1.12
|
||||
|
||||
.. data:: ELM_INPUT_PANEL_LAYOUT_NUMBERONLY_VARIATION_SIGNED
|
||||
|
||||
The signed number layout
|
||||
|
||||
.. versionadded:: 1.12
|
||||
|
||||
.. data:: ELM_INPUT_PANEL_LAYOUT_NUMBERONLY_VARIATION_DECIMAL
|
||||
|
||||
The decimal number layout
|
||||
|
||||
.. versionadded:: 1.12
|
||||
|
||||
.. data:: ELM_INPUT_PANEL_LAYOUT_NUMBERONLY_VARIATION_SIGNED_AND_DECIMAL
|
||||
|
||||
The signed and decimal number layout
|
||||
|
||||
.. versionadded:: 1.12
|
||||
|
||||
|
||||
.. _Elm_Input_Panel_Layout_Password_Variation:
|
||||
|
||||
Input panel password layout variation
|
||||
-------------------------------------
|
||||
|
||||
.. data:: ELM_INPUT_PANEL_LAYOUT_PASSWORD_VARIATION_NORMAL
|
||||
|
||||
The normal password layout
|
||||
|
||||
.. versionadded:: 1.12
|
||||
|
||||
.. data:: ELM_INPUT_PANEL_LAYOUT_PASSWORD_VARIATION_NUMBERONLY
|
||||
|
||||
The password layout to allow only number
|
||||
|
||||
.. versionadded:: 1.12
|
||||
|
||||
|
||||
.. _Elm_Entry_Input_Panel_Return_Key_Type:
|
||||
|
||||
Input panel return key modes
|
||||
----------------------------
|
||||
|
||||
.. data:: ELM_INPUT_PANEL_RETURN_KEY_TYPE_DEFAULT
|
||||
|
||||
Default
|
||||
|
||||
.. data:: ELM_INPUT_PANEL_RETURN_KEY_TYPE_DONE
|
||||
|
||||
Done
|
||||
|
||||
.. data:: ELM_INPUT_PANEL_RETURN_KEY_TYPE_GO
|
||||
|
||||
Go
|
||||
|
||||
.. data:: ELM_INPUT_PANEL_RETURN_KEY_TYPE_JOIN
|
||||
|
||||
Join
|
||||
|
||||
.. data:: ELM_INPUT_PANEL_RETURN_KEY_TYPE_LOGIN
|
||||
|
||||
Login
|
||||
|
||||
.. data:: ELM_INPUT_PANEL_RETURN_KEY_TYPE_NEXT
|
||||
|
||||
Next
|
||||
|
||||
.. data:: ELM_INPUT_PANEL_RETURN_KEY_TYPE_SEARCH
|
||||
|
||||
Search
|
||||
|
||||
.. data:: ELM_INPUT_PANEL_RETURN_KEY_TYPE_SEND
|
||||
|
||||
Send
|
||||
|
||||
.. data:: ELM_INPUT_PANEL_RETURN_KEY_TYPE_SIGNIN
|
||||
|
||||
Sign-in
|
||||
|
||||
.. versionadded:: 1.10
|
||||
|
||||
|
||||
.. _Elm_Entry_Text_Format:
|
||||
|
||||
Text format
|
||||
-----------
|
||||
|
||||
.. data:: ELM_TEXT_FORMAT_PLAIN_UTF8
|
||||
|
||||
Plain UTF-8 type
|
||||
|
||||
.. data:: ELM_TEXT_FORMAT_MARKUP_UTF8
|
||||
|
||||
UTF-8 with markup
|
||||
|
||||
|
||||
.. _Elm_Wrap_Type:
|
||||
|
||||
Wrap mode
|
||||
---------
|
||||
|
||||
.. data:: ELM_WRAP_NONE
|
||||
|
||||
No wrap
|
||||
|
||||
.. data:: ELM_WRAP_CHAR
|
||||
|
||||
Wrap between characters
|
||||
|
||||
.. data:: ELM_WRAP_WORD
|
||||
|
||||
Wrap in allowed wrapping points (as defined in the unicode standard)
|
||||
|
||||
.. data:: ELM_WRAP_MIXED
|
||||
|
||||
Word wrap, and if that fails, char wrap
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: Entry
|
||||
:parts: 2
|
||||
|
||||
.. autofunction:: markup_to_utf8
|
||||
.. autofunction:: utf8_to_markup
|
||||
|
||||
.. autoclass:: Entry
|
||||
.. autoclass:: EntryContextMenuItem
|
||||
.. autoclass:: FilterLimitSize
|
||||
.. autoclass:: FilterAcceptSet
|
||||
.. autoclass:: EntryAnchorInfo
|
||||
.. autoclass:: EntryAnchorHoverInfo
|
||||
|
|
|
@ -1,2 +1,137 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.fileselector
|
||||
Fileselector
|
||||
############
|
||||
|
||||
.. image:: /images/fileselector-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
A file selector is a widget that allows a user to navigate through a
|
||||
file system, reporting file selections back via its API.
|
||||
|
||||
It contains shortcut buttons for home directory (*~*) and to jump one
|
||||
directory upwards (..), as well as cancel/ok buttons to confirm/cancel a
|
||||
given selection. After either one of those two former actions, the file
|
||||
selector will issue its ``"done"`` smart callback.
|
||||
|
||||
There's a text entry on it, too, showing the name of the current
|
||||
selection. There's the possibility of making it editable, so it is
|
||||
useful on file saving dialogs on applications, where one gives a file
|
||||
name to save contents to, in a given directory in the system. This
|
||||
custom file name will be reported on the ``"done"`` smart callback
|
||||
(explained in sequence).
|
||||
|
||||
Finally, it has a view to display file system items into in two possible
|
||||
forms:
|
||||
|
||||
- list
|
||||
- grid
|
||||
|
||||
If Elementary is built with support of the Ethumb thumbnailing library,
|
||||
the second form of view will display preview thumbnails of files which
|
||||
it supports.
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``activated`` - the user activated a file. This can happen by
|
||||
double-clicking or pressing Enter key. (**event_info** is a string with the
|
||||
activated file path)
|
||||
- ``selected`` - the user has clicked on a file (when not in folders-only
|
||||
mode) or directory (when in folders-only mode)
|
||||
- ``directory,open`` - the list has been populated with new content
|
||||
(*event_info* is the directory's path)
|
||||
- ``done`` - the user has clicked on the "ok" or "cancel"
|
||||
buttons (*event_info* is the selection's path)
|
||||
|
||||
|
||||
Layout text parts
|
||||
=================
|
||||
|
||||
- ``ok`` - OK button label if the ok button is set. (since 1.8)
|
||||
- ``cancel`` - Cancel button label if the cancel button is set. (since 1.8)
|
||||
|
||||
|
||||
Enumerations
|
||||
============
|
||||
|
||||
.. _Elm_Fileselector_Mode:
|
||||
|
||||
Fileselector modes
|
||||
------------------
|
||||
|
||||
.. data:: ELM_FILESELECTOR_LIST
|
||||
|
||||
Layout as a list
|
||||
|
||||
.. data:: ELM_FILESELECTOR_GRID
|
||||
|
||||
Layout as a grid
|
||||
|
||||
|
||||
.. _Elm_Fileselector_Sort:
|
||||
|
||||
Fileselector sort method
|
||||
------------------------
|
||||
|
||||
.. data:: ELM_FILESELECTOR_SORT_BY_FILENAME_ASC
|
||||
|
||||
Sort by filename in ascending order
|
||||
|
||||
.. versionadded:: 1.9
|
||||
|
||||
.. data:: ELM_FILESELECTOR_SORT_BY_FILENAME_DESC
|
||||
|
||||
Sort by filename in descending order
|
||||
|
||||
.. versionadded:: 1.9
|
||||
|
||||
.. data:: ELM_FILESELECTOR_SORT_BY_TYPE_ASC
|
||||
|
||||
Sort by file type in ascending order
|
||||
|
||||
.. versionadded:: 1.9
|
||||
|
||||
.. data:: ELM_FILESELECTOR_SORT_BY_TYPE_DESC
|
||||
|
||||
Sort by file type in descending order
|
||||
|
||||
.. versionadded:: 1.9
|
||||
|
||||
.. data:: ELM_FILESELECTOR_SORT_BY_SIZE_ASC
|
||||
|
||||
Sort by file size in ascending order
|
||||
|
||||
.. versionadded:: 1.9
|
||||
|
||||
.. data:: ELM_FILESELECTOR_SORT_BY_SIZE_DESC
|
||||
|
||||
Sort by file size in descending order
|
||||
|
||||
.. versionadded:: 1.9
|
||||
|
||||
.. data:: ELM_FILESELECTOR_SORT_BY_MODIFIED_ASC
|
||||
|
||||
Sort by file modification date in ascending order
|
||||
|
||||
.. versionadded:: 1.9
|
||||
|
||||
.. data:: ELM_FILESELECTOR_SORT_BY_MODIFIED_DESC
|
||||
|
||||
Sort by file modification date in descending order
|
||||
|
||||
.. versionadded:: 1.9
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: Fileselector
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Fileselector
|
||||
|
|
|
@ -1,2 +1,74 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.fileselector_button
|
||||
Fileselector Button
|
||||
###################
|
||||
|
||||
.. image:: /images/fileselector-button-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
This is a button that, when clicked, creates an Elementary window (or
|
||||
inner window) with a :py:class:`~efl.elementary.fileselector.Fileselector`
|
||||
within.
|
||||
|
||||
When a file is chosen, the (inner) window is closed and the button emits
|
||||
a signal having the selected file as it's ``event_info``.
|
||||
|
||||
This widget encapsulates operations on its internal file selector on its
|
||||
own API. There is less control over its file selector than that one
|
||||
would have instantiating one directly.
|
||||
|
||||
|
||||
Available styles
|
||||
================
|
||||
|
||||
- ``default``
|
||||
- ``anchor``
|
||||
- ``hoversel_vertical``
|
||||
- ``hoversel_vertical_entry``
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``file,chosen`` - the user has selected a path which comes as the
|
||||
``event_info`` data
|
||||
|
||||
|
||||
Layout text parts
|
||||
=================
|
||||
|
||||
- ``default`` - Label of the fileselector_button
|
||||
|
||||
|
||||
Layout content parts
|
||||
====================
|
||||
|
||||
- ``icon`` - Icon of the fileselector_button
|
||||
|
||||
|
||||
Fileselector Interface
|
||||
======================
|
||||
|
||||
This widget supports the fileselector interface.
|
||||
|
||||
If you wish to control the fileselector part using these functions,
|
||||
inherit both the widget class and the
|
||||
:py:class:`~efl.elementary.fileselector.Fileselector` class
|
||||
using multiple inheritance, for example::
|
||||
|
||||
class CustomFileselectorButton(Fileselector, FileselectorButton):
|
||||
def __init__(self, canvas, *args, **kwargs):
|
||||
FileselectorButton.__init__(self, canvas)
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: FileselectorButton
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: FileselectorButton
|
||||
|
|
|
@ -1,2 +1,87 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.fileselector_entry
|
||||
Fileselector Entry
|
||||
##################
|
||||
|
||||
.. image:: /images/fileselector-entry-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
This is an entry made to be filled with or display a file
|
||||
system path string.
|
||||
|
||||
Besides the entry itself, the widget has a
|
||||
:py:class:`~efl.elementary.fileselector_button.FileselectorButton` on its side,
|
||||
which will raise an internal
|
||||
:py:class:`~efl.elementary.fileselector.Fileselector`, when clicked, for path
|
||||
selection aided by file system navigation.
|
||||
|
||||
This file selector may appear in an Elementary window or in an
|
||||
inner window. When a file is chosen from it, the (inner) window
|
||||
is closed and the selected file's path string is exposed both as
|
||||
a smart event and as the new text on the entry.
|
||||
|
||||
This widget encapsulates operations on its internal file
|
||||
selector on its own API. There is less control over its file
|
||||
selector than that one would have instantiating one directly.
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``changed`` - The text within the entry was changed
|
||||
- ``activated`` - The entry has had editing finished and
|
||||
changes are to be "committed"
|
||||
- ``press`` - The entry has been clicked
|
||||
- ``longpressed`` - The entry has been clicked (and held) for a
|
||||
couple seconds
|
||||
- ``clicked`` - The entry has been clicked
|
||||
- ``clicked,double`` - The entry has been double clicked
|
||||
- ``selection,paste`` - A paste action has occurred on the
|
||||
entry
|
||||
- ``selection,copy`` - A copy action has occurred on the entry
|
||||
- ``selection,cut`` - A cut action has occurred on the entry
|
||||
- ``unpressed`` - The file selector entry's button was released
|
||||
after being pressed.
|
||||
- ``file,chosen`` - The user has selected a path via the file
|
||||
selector entry's internal file selector, whose string
|
||||
comes as the ``event_info`` data.
|
||||
|
||||
|
||||
Layout text parts
|
||||
=================
|
||||
|
||||
- ``default`` - Label of the fileselector_button
|
||||
|
||||
|
||||
Layout content parts
|
||||
====================
|
||||
|
||||
- ``button icon`` - Button icon of the fileselector_entry
|
||||
|
||||
|
||||
Fileselector Interface
|
||||
======================
|
||||
|
||||
This widget supports the fileselector interface.
|
||||
|
||||
If you wish to control the fileselector part using these functions,
|
||||
inherit both the widget class and the
|
||||
:py:class:`~efl.elementary.fileselector.Fileselector` class
|
||||
using multiple inheritance, for example::
|
||||
|
||||
class CustomFileselectorButton(Fileselector, FileselectorButton):
|
||||
def __init__(self, canvas, *args, **kwargs):
|
||||
FileselectorButton.__init__(self, canvas)
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: FileselectorEntry
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: FileselectorEntry
|
||||
|
|
|
@ -1,2 +1,164 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.flip
|
||||
Flip
|
||||
####
|
||||
|
||||
.. image:: /images/flip-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
This widget holds two content :py:class:`efl.evas.Object`: one on
|
||||
the front and one on the back. It allows you to flip from front to back
|
||||
and vice-versa using various animations.
|
||||
|
||||
If either the front or back contents are not set the flip will treat that
|
||||
as transparent. So if you were to set the front content but not the back,
|
||||
and then call :py:meth:`Flip.go` you would see whatever is below the flip.
|
||||
|
||||
For a list of supported animations see :py:meth:`Flip.go`.
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``animate,begin`` - when a flip animation was started
|
||||
- ``animate,done`` - when a flip animation is finished
|
||||
|
||||
|
||||
Layout content parts
|
||||
====================
|
||||
|
||||
- ``front`` - A front content of the flip
|
||||
- ``back`` - A back content of the flip
|
||||
|
||||
|
||||
Enumerations
|
||||
============
|
||||
|
||||
.. _Elm_Flip_Direction:
|
||||
|
||||
Flip directions
|
||||
---------------
|
||||
|
||||
.. data:: ELM_FLIP_DIRECTION_UP
|
||||
|
||||
Allows interaction with the top of the widget.
|
||||
|
||||
.. data:: ELM_FLIP_DIRECTION_DOWN
|
||||
|
||||
Allows interaction with the bottom of the widget.
|
||||
|
||||
.. data:: ELM_FLIP_DIRECTION_LEFT
|
||||
|
||||
Allows interaction with the left portion of
|
||||
|
||||
the widget.
|
||||
.. data:: ELM_FLIP_DIRECTION_RIGHT
|
||||
|
||||
Allows interaction with the right portion of
|
||||
|
||||
the widget.
|
||||
|
||||
|
||||
.. _Elm_Flip_Interaction:
|
||||
|
||||
Flip interaction modes
|
||||
----------------------
|
||||
|
||||
.. data:: ELM_FLIP_INTERACTION_NONE
|
||||
|
||||
No interaction is allowed
|
||||
|
||||
.. data:: ELM_FLIP_INTERACTION_ROTATE
|
||||
|
||||
Interaction will cause rotate animation
|
||||
|
||||
.. data:: ELM_FLIP_INTERACTION_CUBE
|
||||
|
||||
Interaction will cause cube animation
|
||||
|
||||
.. data:: ELM_FLIP_INTERACTION_PAGE
|
||||
|
||||
Interaction will cause page animation
|
||||
|
||||
|
||||
.. _Elm_Flip_Mode:
|
||||
|
||||
Flip types
|
||||
----------
|
||||
|
||||
.. data:: ELM_FLIP_ROTATE_Y_CENTER_AXIS
|
||||
|
||||
Rotate the currently visible content around a vertical axis in the
|
||||
middle of its width, the other content is shown as the other side of the
|
||||
flip.
|
||||
|
||||
.. data:: ELM_FLIP_ROTATE_X_CENTER_AXIS
|
||||
|
||||
Rotate the currently visible content around a horizontal axis in the
|
||||
middle of its height, the other content is shown as the other side of
|
||||
the flip.
|
||||
|
||||
.. data:: ELM_FLIP_ROTATE_XZ_CENTER_AXIS
|
||||
|
||||
Rotate the currently visible content around a diagonal axis in the
|
||||
middle of its width, the other content is shown as the other side of the
|
||||
flip.
|
||||
|
||||
.. data:: ELM_FLIP_ROTATE_YZ_CENTER_AXIS
|
||||
|
||||
Rotate the currently visible content around a diagonal axis in the
|
||||
middle of its height, the other content is shown as the other side of
|
||||
the flip.
|
||||
|
||||
.. data:: ELM_FLIP_CUBE_LEFT
|
||||
|
||||
Rotate the currently visible content to the left as if the flip was a
|
||||
cube, the other content is show as the right face of the cube.
|
||||
|
||||
.. data:: ELM_FLIP_CUBE_RIGHT
|
||||
|
||||
Rotate the currently visible content to the right as if the flip was a
|
||||
cube, the other content is show as the left face of the cube.
|
||||
|
||||
.. data:: ELM_FLIP_CUBE_UP
|
||||
|
||||
Rotate the currently visible content up as if the flip was a cube, the
|
||||
other content is show as the bottom face of the cube.
|
||||
|
||||
.. data:: ELM_FLIP_CUBE_DOWN
|
||||
|
||||
Rotate the currently visible content down as if the flip was a cube, the
|
||||
other content is show as the upper face of the cube.
|
||||
|
||||
.. data:: ELM_FLIP_PAGE_LEFT
|
||||
|
||||
Move the currently visible content to the left as if the flip was a
|
||||
book, the other content is shown as the page below that.
|
||||
|
||||
.. data:: ELM_FLIP_PAGE_RIGHT
|
||||
|
||||
Move the currently visible content to the right as if the flip was a
|
||||
book, the other content is shown as the page below that.
|
||||
|
||||
.. data:: ELM_FLIP_PAGE_UP
|
||||
|
||||
Move the currently visible content up as if the flip was a book, the
|
||||
other content is shown as the page below that.
|
||||
|
||||
.. data:: ELM_FLIP_PAGE_DOWN
|
||||
|
||||
Move the currently visible content down as if the flip was a book, the
|
||||
other content is shown as the page below that.
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: Flip
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Flip
|
||||
|
|
|
@ -1,2 +1,50 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.flipselector
|
||||
Flipselector
|
||||
############
|
||||
|
||||
.. image:: /images/flipselector-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
A flip selector is a widget to show a set of *text* items, one at a time, with
|
||||
the same sheet switching style as the :py:class:`~efl.elementary.clock.Clock`
|
||||
widget, when one changes the current displaying sheet (thus, the "flip" in the
|
||||
name).
|
||||
|
||||
User clicks to flip sheets which are *held* for some time will
|
||||
make the flip selector to flip continuously and automatically for
|
||||
the user. The interval between flips will keep growing in time,
|
||||
so that it helps the user to reach an item which is distant from
|
||||
the current selection.
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``selected`` - when the widget's selected text item is changed
|
||||
- ``overflowed`` - when the widget's current selection is changed
|
||||
from the first item in its list to the last
|
||||
- ``underflowed`` - when the widget's current selection is changed
|
||||
from the last item in its list to the first
|
||||
|
||||
|
||||
Layout text parts
|
||||
=================
|
||||
|
||||
- ``default`` - label of the flipselector item
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram::
|
||||
FlipSelector
|
||||
FlipSelectorItem
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: FlipSelector
|
||||
.. autoclass:: FlipSelectorItem
|
||||
|
|
|
@ -1,2 +1,54 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.frame
|
||||
Frame
|
||||
#####
|
||||
|
||||
.. image:: /images/frame-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
Frame is a widget that holds some content and has a title.
|
||||
|
||||
|
||||
Available styles
|
||||
================
|
||||
|
||||
- default
|
||||
- pad_small
|
||||
- pad_medium
|
||||
- pad_large
|
||||
- pad_huge
|
||||
- outdent_top
|
||||
- outdent_bottom
|
||||
|
||||
Out of all these styles only default shows the title.
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``clicked`` - The user has clicked the frame's label
|
||||
|
||||
|
||||
Layout content parts
|
||||
====================
|
||||
|
||||
- ``default`` - A content of the frame
|
||||
|
||||
|
||||
Layout text parts
|
||||
=================
|
||||
|
||||
- ``default`` - Label of the frame
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: Frame
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Frame
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
|
||||
.. automodule:: efl.elementary.general
|
|
@ -1,2 +1,330 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.gengrid
|
||||
Gengrid
|
||||
#######
|
||||
|
||||
.. image:: /images/gengrid-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
This widget aims to position objects in a grid layout while actually
|
||||
creating and rendering only the visible ones, using the same idea as the
|
||||
:py:class:`~efl.elementary.genlist.Genlist`: the user defines a **class** for
|
||||
each item, specifying functions that will be called at object creation,
|
||||
deletion, etc. When those items are selected by the user, a callback
|
||||
function is issued. Users may interact with a gengrid via the mouse (by
|
||||
clicking on items to select them and clicking on the grid's viewport and
|
||||
swiping to pan the whole view) or via the keyboard, navigating through
|
||||
item with the arrow keys.
|
||||
|
||||
|
||||
Scrollable Interface
|
||||
====================
|
||||
|
||||
This widget supports the scrollable interface.
|
||||
|
||||
If you wish to control the scolling behaviour using these functions,
|
||||
inherit both the widget class and the
|
||||
:py:class:`~efl.elementary.scroller.Scrollable` class
|
||||
using multiple inheritance, for example::
|
||||
|
||||
class ScrollableGenlist(Genlist, Scrollable):
|
||||
def __init__(self, canvas, *args, **kwargs):
|
||||
Genlist.__init__(self, canvas)
|
||||
|
||||
|
||||
Gengrid layouts
|
||||
===============
|
||||
|
||||
Gengrid may layout its items in one of two possible layouts:
|
||||
|
||||
- horizontal or
|
||||
- vertical.
|
||||
|
||||
When in "horizontal mode", items will be placed in **columns**, from top
|
||||
to bottom and, when the space for a column is filled, another one is
|
||||
started on the right, thus expanding the grid horizontally, making for
|
||||
horizontal scrolling. When in "vertical mode" , though, items will be
|
||||
placed in **rows**, from left to right and, when the space for a row is
|
||||
filled, another one is started below, thus expanding the grid vertically
|
||||
(and making for vertical scrolling).
|
||||
|
||||
|
||||
Gengrid items
|
||||
=============
|
||||
|
||||
An item in a gengrid can have 0 or more texts (they can be regular text
|
||||
or textblock Evas objects - that's up to the style to determine), 0 or
|
||||
more contents (which are simply objects swallowed into the gengrid
|
||||
item's theming Edje object) and 0 or more **boolean states**, which
|
||||
have the behavior left to the user to define. The Edje part names for
|
||||
each of these properties will be looked up, in the theme file for the
|
||||
gengrid, under the Edje (string) data items named ``"texts"``,
|
||||
``"contents"`` and ``"states"``, respectively. For each of those
|
||||
properties, if more than one part is provided, they must have names
|
||||
listed separated by spaces in the data fields. For the default gengrid
|
||||
item theme, we have **one** text part (``"elm.text"``), **two** content
|
||||
parts (``"elm.swalllow.icon"`` and ``"elm.swallow.end"``) and **no**
|
||||
state parts.
|
||||
|
||||
A gengrid item may be at one of several styles. Elementary provides one
|
||||
by default - "default", but this can be extended by system or
|
||||
application custom themes/overlays/extensions (see
|
||||
:py:class:`~efl.elementary.theme.Theme` for more details).
|
||||
|
||||
|
||||
Gengrid item classes
|
||||
====================
|
||||
|
||||
In order to have the ability to add and delete items on the fly, gengrid
|
||||
implements a class (callback) system where the application provides a
|
||||
structure with information about that type of item (gengrid may contain
|
||||
multiple different items with different classes, states and styles).
|
||||
Gengrid will call the functions in this struct (methods) when an item is
|
||||
"realized" (i.e., created dynamically, while the user is scrolling the
|
||||
grid). All objects will simply be deleted when no longer needed with
|
||||
:meth:`~efl.eo.Eo.delete`. The :class:`GengridItemClass` class contains the
|
||||
following attributes and methods:
|
||||
|
||||
- ``item_style`` - This is a constant string and simply defines the name
|
||||
of the item style. It **must** be specified and the default should be
|
||||
``default``.
|
||||
- ``func.text_get`` - This function is called when an item object is
|
||||
actually created. The ``data`` parameter will point to the same data
|
||||
passed to :meth:`~Gengrid.item_append` and related item creation
|
||||
functions. The ``obj`` parameter is the gengrid object itself, while
|
||||
the ``part`` one is the name string of one of the existing text parts
|
||||
in the Edje group implementing the item's theme.
|
||||
See :py:meth:`GengridItemClass.text_get`.
|
||||
- ``func.content_get`` - This function is called when an item object is
|
||||
actually created. The ``data`` parameter will point to the same data
|
||||
passed to :py:meth:`GengridItem.append_to` and related item creation
|
||||
functions. The ``obj`` parameter is the gengrid object itself, while
|
||||
the ``part`` one is the name string of one of the existing (content)
|
||||
swallow parts in the Edje group implementing the item's theme. It must
|
||||
return ``None,`` when no content is desired, or a valid object handle,
|
||||
otherwise. The object will be deleted by the gengrid on its deletion
|
||||
or when the item is "unrealized". See :py:meth:`GengridItemClass.content_get`.
|
||||
- ``func.state_get`` - This function is called when an item object is
|
||||
actually created. The ``data`` parameter will point to the same data
|
||||
passed to :py:meth:`GengridItem.append_to` and related item creation
|
||||
functions. The ``obj`` parameter is the gengrid object itself, while
|
||||
the ``part`` one is the name string of one of the state parts in the
|
||||
Edje group implementing the item's theme. Return ``False`` for
|
||||
false/off or ``True`` for true/on. Gengrids will emit a signal to
|
||||
its theming Edje object with ``"elm,state,xxx,active"`` and ``"elm"``
|
||||
as "emission" and "source" arguments, respectively, when the state is
|
||||
true (the default is false), where ``xxx`` is the name of the (state)
|
||||
part. See :py:meth:`GengridItemClass.state_get`.
|
||||
- ``func.del`` - This is called when
|
||||
:meth:`efl.elementary.object_item.ObjectItem.delete` is called on
|
||||
an item or :meth:`~Gengrid.clear` is called on the gengrid. This is
|
||||
intended for use when gengrid items are deleted, so any data attached
|
||||
to the item (e.g. its data parameter on creation) can be deleted. See
|
||||
:py:meth:`GengridItemClass.delete`.
|
||||
|
||||
|
||||
Usage hints
|
||||
===========
|
||||
|
||||
If the user wants to have multiple items selected at the same time,
|
||||
:attr:`~Gengrid.multi_select` will permit it. If the gengrid is
|
||||
single-selection only (the default), then :attr:`~Gengrid.selected_item`
|
||||
will return the selected item or ``None``, if none is selected. If the
|
||||
gengrid is under multi-selection, then :attr:`~Gengrid.selected_items`
|
||||
will return a list (that is only valid as long as no items are modified
|
||||
(added, deleted, selected or unselected) of child items on a gengrid.
|
||||
|
||||
If an item changes (internal (boolean) state, text or content changes),
|
||||
then use :meth:`~GengridItem.update` to have gengrid update the item with
|
||||
the new state. A gengrid will re-"realize" the item, thus calling the
|
||||
functions in the :class:`GengridItemClass` set for that item.
|
||||
|
||||
To programmatically (un)select an item or get the selected state, use
|
||||
:attr:`GengridItem.selected`. To make an item disabled (unable to be
|
||||
selected and appear differently) or get the disabled state
|
||||
use :attr:`GengridItem.disabled`.
|
||||
|
||||
Grid cells will only have their selection smart callbacks called when
|
||||
firstly getting selected. Any further clicks will do nothing, unless you
|
||||
enable the "always select mode", with :attr:`~Gengrid.select_mode` as
|
||||
:attr:`ELM_OBJECT_SELECT_MODE_ALWAYS`, thus making every click to issue
|
||||
selection callbacks. :attr:`~Gengrid.select_mode` as
|
||||
:attr:`ELM_OBJECT_SELECT_MODE_NONE` will turn off the ability to select items
|
||||
entirely in the widget and they will neither appear selected nor call
|
||||
the selection smart callbacks.
|
||||
|
||||
Remember that you can create new styles and add your own theme
|
||||
augmentation per application with
|
||||
:meth:`Theme.extension_add<efl.elementary.theme.Theme.extension_add>`. If you
|
||||
absolutely must have a specific style that overrides any theme the user
|
||||
or system sets up you can use
|
||||
:meth:`Theme.extension_add<efl.elementary.theme.Theme.overlay_add>` to add such
|
||||
a file.
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``activated`` - The user has double-clicked or pressed
|
||||
(enter|return|spacebar) on an item. The ``event_info`` parameter
|
||||
is the gengrid item that was activated.
|
||||
- ``clicked,double`` - The user has double-clicked an item.
|
||||
The ``event_info`` parameter is the gengrid item that was double-clicked.
|
||||
- ``clicked,right`` - The user has right-clicked an item. The
|
||||
``event_info`` parameter is the item that was right-clicked. (since: 1.13)
|
||||
- ``longpressed`` - This is called when the item is pressed for a certain
|
||||
amount of time. By default it's 1 second.
|
||||
- ``selected`` - The user has made an item selected. The
|
||||
``event_info`` parameter is the gengrid item that was selected.
|
||||
- ``unselected`` - The user has made an item unselected. The
|
||||
``event_info`` parameter is the gengrid item that was unselected.
|
||||
- ``realized`` - This is called when the item in the gengrid
|
||||
has its implementing Evas object instantiated, de facto.
|
||||
``event_info`` is the gengrid item that was created.
|
||||
- ``unrealized`` - This is called when the implementing Evas
|
||||
object for this item is deleted. ``event_info`` is the gengrid
|
||||
item that was deleted.
|
||||
- ``changed`` - Called when an item is added, removed, resized
|
||||
or moved and when the gengrid is resized or gets "horizontal"
|
||||
property changes.
|
||||
- ``scroll,anim,start`` - This is called when scrolling animation has
|
||||
started.
|
||||
- ``scroll,anim,stop`` - This is called when scrolling animation has
|
||||
stopped.
|
||||
- ``drag,start,up`` - Called when the item in the gengrid has
|
||||
been dragged (not scrolled) up.
|
||||
- ``drag,start,down`` - Called when the item in the gengrid has
|
||||
been dragged (not scrolled) down.
|
||||
- ``drag,start,left`` - Called when the item in the gengrid has
|
||||
been dragged (not scrolled) left.
|
||||
- ``drag,start,right`` - Called when the item in the gengrid has
|
||||
been dragged (not scrolled) right.
|
||||
- ``drag,stop`` - Called when the item in the gengrid has
|
||||
stopped being dragged.
|
||||
- ``drag`` - Called when the item in the gengrid is being
|
||||
dragged.
|
||||
- ``scroll`` - called when the content has been scrolled
|
||||
(moved).
|
||||
- ``scroll,drag,start`` - called when dragging the content has
|
||||
started.
|
||||
- ``scroll,drag,stop`` - called when dragging the content has
|
||||
stopped.
|
||||
- ``edge,top`` - This is called when the gengrid is scrolled until
|
||||
the top edge.
|
||||
- ``edge,bottom`` - This is called when the gengrid is scrolled
|
||||
until the bottom edge.
|
||||
- ``edge,left`` - This is called when the gengrid is scrolled
|
||||
until the left edge.
|
||||
- ``edge,right`` - This is called when the gengrid is scrolled
|
||||
until the right edge.
|
||||
- ``moved`` - This is called when a gengrid item is moved by a user
|
||||
interaction in a reorder mode. The ``event_info`` parameter is the item that
|
||||
was moved.
|
||||
- ``index,update`` - This is called when a gengrid item index is changed.
|
||||
Note that this callback is called while each item is being realized.
|
||||
- ``highlighted`` - an item in the list is highlighted. This is called when
|
||||
the user presses an item or keyboard selection is done so the item is
|
||||
physically highlighted. The ``event_info`` parameter is the item that was
|
||||
highlighted.
|
||||
- ``unhighlighted`` - an item in the list is unhighlighted. This is called
|
||||
when the user releases an item or keyboard selection is moved so the item
|
||||
is physically unhighlighted. The ``event_info`` parameter is the item that
|
||||
was unhighlighted.
|
||||
- ``item,focused`` - When the gengrid item has received focus. (since 1.10)
|
||||
- ``item,unfocused`` - When the gengrid item has lost focus. (since 1.10)
|
||||
- ``item,reorder,anim,start`` - This is called when a gengrid item movement
|
||||
has just started by keys in reorder mode. The parameter is the item that
|
||||
is going to move. (since 1.10)
|
||||
- ``item,reorder,anim,stop`` - This is called when a gengrid item movement just
|
||||
stopped in reorder mode. The parameter is the item that was moved. (since 1.10)
|
||||
|
||||
|
||||
Enumerations
|
||||
============
|
||||
|
||||
.. _Elm_Gengrid_Item_Scrollto_Type:
|
||||
|
||||
Items' scroll to types
|
||||
----------------------
|
||||
|
||||
.. data:: ELM_GENGRID_ITEM_SCROLLTO_NONE
|
||||
|
||||
No scroll to
|
||||
|
||||
.. data:: ELM_GENGRID_ITEM_SCROLLTO_IN
|
||||
|
||||
Scroll to the nearest viewport
|
||||
|
||||
.. data:: ELM_GENGRID_ITEM_SCROLLTO_TOP
|
||||
|
||||
Scroll to the top of viewport
|
||||
|
||||
.. data:: ELM_GENGRID_ITEM_SCROLLTO_MIDDLE
|
||||
|
||||
Scroll to the middle of viewport
|
||||
|
||||
.. data:: ELM_GENGRID_ITEM_SCROLLTO_BOTTOM
|
||||
|
||||
Scroll to the bottom of viewport
|
||||
|
||||
.. versionadded:: 1.17
|
||||
|
||||
|
||||
.. _Elm_Gengrid_Object_Multi_Select_Mode:
|
||||
|
||||
Multi-select mode
|
||||
-----------------
|
||||
|
||||
.. data:: ELM_OBJECT_MULTI_SELECT_MODE_DEFAULT
|
||||
|
||||
Default multiple select mode
|
||||
|
||||
.. versionadded:: 1.10
|
||||
|
||||
.. data:: ELM_OBJECT_MULTI_SELECT_MODE_WITH_CONTROL
|
||||
|
||||
Disallow mutiple selection when clicked without control key pressed
|
||||
|
||||
.. versionadded:: 1.10
|
||||
|
||||
.. data:: ELM_OBJECT_MULTI_SELECT_MODE_MAX
|
||||
|
||||
Value unknown
|
||||
|
||||
.. versionadded:: 1.10
|
||||
|
||||
|
||||
.. _Elm_Gengrid_Reorder_Type:
|
||||
|
||||
Reorder type
|
||||
------------
|
||||
|
||||
.. data:: ELM_GENGRID_REORDER_TYPE_NORMAL
|
||||
|
||||
Normal reorder mode
|
||||
|
||||
.. versionadded:: 1.11
|
||||
|
||||
.. data:: ELM_GENGRID_REORDER_TYPE_SWAP
|
||||
|
||||
Swap reorder mode
|
||||
|
||||
.. versionadded:: 1.11
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram::
|
||||
Gengrid
|
||||
GengridItem
|
||||
GengridItemClass
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Gengrid
|
||||
.. autoclass:: GengridItem
|
||||
.. autoclass:: GengridItemClass
|
||||
|
|
|
@ -1,2 +1,438 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.genlist
|
||||
Genlist
|
||||
#######
|
||||
|
||||
.. image:: /images/genlist-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
This widget aims to have more expansive list than the simple list in
|
||||
Elementary that could have more flexible items and allow many more
|
||||
entries while still being fast and low on memory usage. At the same time
|
||||
it was also made to be able to do tree structures. But the price to pay
|
||||
is more complexity when it comes to usage. If all you want is a simple
|
||||
list (not much items) with icons and a single text, use the normal
|
||||
:class:`List` object.
|
||||
|
||||
Genlist has a fairly large API, mostly because it's relatively complex,
|
||||
trying to be both expansive, powerful and efficient. First we will begin
|
||||
an overview on the theory behind genlist.
|
||||
|
||||
|
||||
Genlist item classes - creating items
|
||||
=====================================
|
||||
|
||||
In order to have the ability to add and delete items on the fly, genlist
|
||||
implements the item class (callback) system where the application provides a
|
||||
structure with information about that type of item (genlist may contain
|
||||
multiple different items with different classes, states and styles).
|
||||
Genlist will call the functions in this class (methods) when an item is
|
||||
"realized" (i.e., created dynamically, while the user is scrolling the
|
||||
grid). All objects will simply be deleted when no longer needed with
|
||||
:func:`efl.evas.Object.delete`. :class:`GenlistItemClass` contains the
|
||||
following members:
|
||||
|
||||
- ``item_style`` - This is a constant string and define the name of the default
|
||||
item style. It **must** be provided.
|
||||
- ``decorate_item_style`` - This is a constant string and define the name of
|
||||
the style to be used in the "decorate" mode.
|
||||
See :attr:`GenlistItem.decorate_mode`.
|
||||
- ``decorate_all_item_style`` - This is a constant string and
|
||||
define the name of the style to be used in the "decorate all" mode.
|
||||
See :attr:`Genlist.decorate_mode`.
|
||||
- ``text_get`` - This function will be called for every text part. Should
|
||||
return the text to display. See :func:`GenlistItemClass.text_get`.
|
||||
- ``content_get`` - This function will be called for every content part.
|
||||
Should return an object to display, the object will be deleted by the
|
||||
genlist on its deletion or when the item is "unrealized". See
|
||||
:func:`GenlistItemClass.content_get`.
|
||||
- ``state_get`` - This function will be called for every state part. Must
|
||||
return ``True`` for false/off or ``True`` for true/on. Genlists will
|
||||
emit a signal to its theming Edje object with ``"elm,state,xxx,active"``
|
||||
and ``"elm"`` as "emission" and "source" arguments, respectively, when
|
||||
the state is true (the default is false), where ``xxx`` is the name of
|
||||
the (state) part. See :func:`GenlistItemClass.state_get`.
|
||||
- ``func.del`` - This is intended for use when genlist items are deleted,
|
||||
so any data attached to the item (e.g. its data parameter on creation)
|
||||
can be deleted. See :func:`GenlistItemClass.delete`.
|
||||
|
||||
|
||||
Available item styles
|
||||
=====================
|
||||
|
||||
- ``default`` The default style: icon, text, end icon
|
||||
- ``default_style`` The text part is a textblock and can use markups
|
||||
- ``double_label`` Two different text parts
|
||||
- ``icon_top_text_bottom``
|
||||
- ``group_index``
|
||||
- ``one_icon`` Only 1 icon (left) (since: 1.1)
|
||||
- ``end_icon`` Only 1 icon (at end/right) (since: 1.1)
|
||||
- ``no_icon`` No icon (since: 1.1)
|
||||
- ``full`` Only one object, elm.swallow.content, which consumes whole area of
|
||||
the genlist item (since: 1.7)
|
||||
- ``indent`` Has indentation to match tree group items (since: 1.19)
|
||||
|
||||
|
||||
Structure of items
|
||||
==================
|
||||
|
||||
An item in a genlist can have 0 or more texts (they can be regular text
|
||||
or textblock Evas objects - that's up to the style to determine), 0 or
|
||||
more contents (which are simply objects swallowed into the genlist item's
|
||||
theming Edje object) and 0 or more **boolean states**, which have the
|
||||
behavior left to the user to define. The Edje part names for each of
|
||||
these properties will be looked up, in the theme file for the genlist,
|
||||
under the Edje (string) data items named ``labels``, ``contents``
|
||||
and ``states``, respectively. For each of those properties, if more
|
||||
than one part is provided, they must have names listed separated by
|
||||
spaces in the data fields. For the default genlist item theme, we have
|
||||
**one** text part (``elm.text``), **two** content parts
|
||||
(``elm.swallow.icon`` and ``elm.swallow.end``) and **no** state parts.
|
||||
|
||||
|
||||
Editing and Navigating
|
||||
======================
|
||||
|
||||
Items can be added by several calls. All of them return a
|
||||
:py:class:`GenlistItem` handle that is an internal member inside the genlist.
|
||||
They all take a data parameter that is meant to be used for a handle to the
|
||||
applications internal data (eg. the struct with the original item data). The
|
||||
parent parameter is the parent genlist item this belongs to if it is a tree or
|
||||
an indexed group, and None if there is no parent. The flags can be a bitmask of
|
||||
:attr:`ELM_GENLIST_ITEM_NONE`, :attr:`ELM_GENLIST_ITEM_TREE` and
|
||||
:attr:`ELM_GENLIST_ITEM_GROUP`. If :attr:`ELM_GENLIST_ITEM_TREE` is set then
|
||||
this item is displayed as an item that is able to expand and have child items.
|
||||
If :attr:`ELM_GENLIST_ITEM_GROUP` is set then this item is group index item
|
||||
that is displayed at the top until the next group comes. The func parameter is
|
||||
a convenience callback that is called when the item is selected and the data
|
||||
parameter will be the func_data parameter, ``obj`` be the genlist object and
|
||||
event_info will be the genlist item.
|
||||
|
||||
:py:meth:`GenlistItem.append_to` adds an item to the end of the list, or if
|
||||
there is a parent, to the end of all the child items of the parent.
|
||||
:py:meth:`GenlistItem.prepend_to` is the same but adds to the beginning of
|
||||
the list or children list. :py:meth:`GenlistItem.insert_before` inserts at
|
||||
item before another item and :py:meth:`GenlistItem.insert_after` inserts after
|
||||
the indicated item.
|
||||
|
||||
The application can clear the list with :py:meth:`Genlist.clear` which deletes
|
||||
all the items in the list and
|
||||
:py:meth:`~efl.elementary.object_item.ObjectItem.delete` will delete a specific
|
||||
item. :py:meth:`GenlistItem.subitems_clear` will clear all items that are
|
||||
children of the indicated parent item.
|
||||
|
||||
To help inspect list items you can jump to the item at the top of the list
|
||||
with :py:attr:`Genlist.first_item` which will return the first item, and
|
||||
similarly :py:attr:`Genlist.last_item` gets the item at the end of the list.
|
||||
:py:attr:`GenlistItem.next` and :py:attr:`GenlistItem.prev` get the next
|
||||
and previous items respectively relative to the indicated item. Using
|
||||
these calls you can walk the entire item list/tree. Note that as a tree
|
||||
the items are flattened in the list, so :py:attr:`GenlistItem.parent` will
|
||||
let you know which item is the parent (and thus know how to skip them if
|
||||
wanted).
|
||||
|
||||
|
||||
Multi-selection
|
||||
===============
|
||||
|
||||
If the application wants multiple items to be able to be selected,
|
||||
:py:attr:`Genlist.multi_select` can enable this. If the list is
|
||||
single-selection only (the default), then :py:attr:`Genlist.selected_item`
|
||||
will return the selected item, if any, or None if none is selected. If the
|
||||
list is multi-select then :py:attr:`Genlist.selected_items` will return a
|
||||
list (that is only valid as long as no items are modified (added, deleted,
|
||||
selected or unselected)).
|
||||
|
||||
|
||||
Usage hints
|
||||
===========
|
||||
|
||||
There are also convenience functions.
|
||||
:py:attr:`efl.elementary.object_item.ObjectItem.widget` will return the genlist
|
||||
object the item belongs to. :py:meth:`GenlistItem.show` will make the scroller
|
||||
scroll to show that specific item so its visible.
|
||||
:py:attr:`efl.elementary.object_item.ObjectItem.data` returns the data pointer
|
||||
set by the item creation functions.
|
||||
|
||||
If an item changes (state of boolean changes, text or contents change),
|
||||
then use :py:meth:`GenlistItem.update` to have genlist update the item with
|
||||
the new state. Genlist will re-realize the item and thus call the functions
|
||||
in the _Elm_Genlist_Item_Class for that item.
|
||||
|
||||
Use :py:attr:`GenlistItem.selected` to programmatically (un)select an item or
|
||||
get its selected state. Similarly to expand/contract an item and get its
|
||||
expanded state, use :py:attr:`GenlistItem.expanded`. And again to make an item
|
||||
disabled (unable to be selected and appear differently) use
|
||||
:py:attr:`GenlistItem.disabled` to set this and get the disabled state.
|
||||
|
||||
In general to indicate how the genlist should expand items horizontally to
|
||||
fill the list area, use :py:attr:`Genlist.mode`. Valid modes are
|
||||
ELM_LIST_LIMIT, ELM_LIST_COMPRESS and ELM_LIST_SCROLL. The default is
|
||||
ELM_LIST_SCROLL. This mode means that if items are too wide to fit, the
|
||||
scroller will scroll horizontally. Otherwise items are expanded to
|
||||
fill the width of the viewport of the scroller. If it is
|
||||
ELM_LIST_LIMIT, items will be expanded to the viewport width
|
||||
if larger than the item, but genlist widget with is
|
||||
limited to the largest item. D not use ELM_LIST_LIMIT mode with homogeneous
|
||||
mode turned on. ELM_LIST_COMPRESS can be combined with a different style
|
||||
that uses Edje's ellipsis feature (cutting text off like this: "tex...").
|
||||
|
||||
Items will only call their selection func and callback when first becoming
|
||||
selected. Any further clicks will do nothing, unless you enable always
|
||||
select with :py:attr:`Genlist.select_mode` as ELM_OBJECT_SELECT_MODE_ALWAYS.
|
||||
This means even if selected, every click will make the selected callbacks
|
||||
be called. :py:attr:`Genlist.select_mode` as ELM_OBJECT_SELECT_MODE_NONE will
|
||||
turn off the ability to select items entirely and they will neither
|
||||
appear selected nor call selected callback functions.
|
||||
|
||||
Remember that you can create new styles and add your own theme augmentation per
|
||||
application with :py:meth:`efl.elementary.theme.Theme.extension_add`. If you
|
||||
absolutely must have a specific style that overrides any theme the user or
|
||||
system sets up you can use :py:meth:`efl.elementary.theme.Theme.overlay_add` to
|
||||
add such a file.
|
||||
|
||||
|
||||
Scrollable Interface
|
||||
====================
|
||||
|
||||
This widget supports the scrollable interface.
|
||||
|
||||
If you wish to control the scrolling behaviour using these functions,
|
||||
inherit both the widget class and the
|
||||
:py:class:`~efl.elementary.scroller.Scrollable` class
|
||||
using multiple inheritance, for example::
|
||||
|
||||
class ScrollableGenlist(Genlist, Scrollable):
|
||||
def __init__(self, canvas, *args, **kwargs):
|
||||
Genlist.__init__(self, canvas)
|
||||
|
||||
|
||||
Implementation
|
||||
==============
|
||||
|
||||
Evas tracks every object you create. Every time it processes an event
|
||||
(mouse move, down, up etc.) it needs to walk through objects and find out
|
||||
what event that affects. Even worse every time it renders display updates,
|
||||
in order to just calculate what to re-draw, it needs to walk through many
|
||||
many many objects. Thus, the more objects you keep active, the more
|
||||
overhead Evas has in just doing its work. It is advisable to keep your
|
||||
active objects to the minimum working set you need. Also remember that
|
||||
object creation and deletion carries an overhead, so there is a
|
||||
middle-ground, which is not easily determined. But don't keep massive lists
|
||||
of objects you can't see or use. Genlist does this with list objects. It
|
||||
creates and destroys them dynamically as you scroll around. It groups them
|
||||
into blocks so it can determine the visibility etc. of a whole block at
|
||||
once as opposed to having to walk the whole list. This 2-level list allows
|
||||
for very large numbers of items to be in the list (tests have used up to
|
||||
2,000,000 items). Also genlist employs a queue for adding items. As items
|
||||
may be different sizes, every item added needs to be calculated as to its
|
||||
size and thus this presents a lot of overhead on populating the list, this
|
||||
genlist employs a queue. Any item added is queued and spooled off over
|
||||
time, actually appearing some time later, so if your list has many members
|
||||
you may find it takes a while for them to all appear, with your process
|
||||
consuming a lot of CPU while it is busy spooling.
|
||||
|
||||
Genlist also implements a tree structure, but it does so with callbacks to
|
||||
the application, with the application filling in tree structures when
|
||||
requested (allowing for efficient building of a very deep tree that could
|
||||
even be used for file-management). See the above smart signal callbacks for
|
||||
details.
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``activated`` - The user has double-clicked or pressed
|
||||
(enter|return|spacebar) on an item. The ``event_info`` parameter is the
|
||||
item that was activated.
|
||||
- ``clicked,double`` - The user has double-clicked an item. The
|
||||
``event_info`` parameter is the item that was double-clicked.
|
||||
- ``clicked,right`` - The user has right-clicked an item. The
|
||||
``event_info`` parameter is the item that was right-clicked. (since: 1.13)
|
||||
- ``selected`` - This is called when a user has made an item selected.
|
||||
The event_info parameter is the genlist item that was selected.
|
||||
- ``unselected`` - This is called when a user has made an item
|
||||
unselected. The event_info parameter is the genlist item that was
|
||||
unselected.
|
||||
- ``expanded`` - This is called when :py:attr:`GenlistItem.expanded` is
|
||||
called and the item is now meant to be expanded. The event_info
|
||||
parameter is the genlist item that was indicated to expand. It is the
|
||||
job of this callback to then fill in the child items.
|
||||
- ``contracted`` - This is called when :py:attr:`GenlistItem.expanded` is
|
||||
called and the item is now meant to be contracted. The event_info
|
||||
parameter is the genlist item that was indicated to contract. It is the
|
||||
job of this callback to then delete the child items.
|
||||
- ``expand,request`` - This is called when a user has indicated they want
|
||||
to expand a tree branch item. The callback should decide if the item can
|
||||
expand (has any children) and then call :py:attr:`GenlistItem.expanded`
|
||||
appropriately to set the state. The event_info parameter is the genlist
|
||||
item that was indicated to expand.
|
||||
- ``contract,request`` - This is called when a user has indicated they
|
||||
want to contract a tree branch item. The callback should decide if the
|
||||
item can contract (has any children) and then call
|
||||
:py:attr:`GenlistItem.expanded` appropriately to set the state. The
|
||||
event_info parameter is the genlist item that was indicated to contract.
|
||||
- ``realized`` - This is called when the item in the list is created as a
|
||||
real evas object. event_info parameter is the genlist item that was
|
||||
created.
|
||||
- ``unrealized`` - This is called just before an item is unrealized.
|
||||
After this call content objects provided will be deleted and the item
|
||||
object itself delete or be put into a floating cache.
|
||||
- ``drag,start,up`` - This is called when the item in the list has been
|
||||
dragged (not scrolled) up.
|
||||
- ``drag,start,down`` - This is called when the item in the list has been
|
||||
dragged (not scrolled) down.
|
||||
- ``drag,start,left`` - This is called when the item in the list has been
|
||||
dragged (not scrolled) left.
|
||||
- ``drag,start,right`` - This is called when the item in the list has
|
||||
been dragged (not scrolled) right.
|
||||
- ``drag,stop`` - This is called when the item in the list has stopped
|
||||
being dragged.
|
||||
- ``drag`` - This is called when the item in the list is being dragged.
|
||||
- ``longpressed`` - This is called when the item is pressed for a certain
|
||||
amount of time. By default it's 1 second. The event_info parameter is the
|
||||
longpressed genlist item.
|
||||
- ``scroll,anim,start`` - This is called when scrolling animation has
|
||||
started.
|
||||
- ``scroll,anim,stop`` - This is called when scrolling animation has
|
||||
stopped.
|
||||
- ``scroll,drag,start`` - This is called when dragging the content has
|
||||
started.
|
||||
- ``scroll,drag,stop`` - This is called when dragging the content has
|
||||
stopped.
|
||||
- ``edge,top`` - This is called when the genlist is scrolled until
|
||||
the top edge.
|
||||
- ``edge,bottom`` - This is called when the genlist is scrolled
|
||||
until the bottom edge.
|
||||
- ``edge,left`` - This is called when the genlist is scrolled
|
||||
until the left edge.
|
||||
- ``edge,right`` - This is called when the genlist is scrolled
|
||||
until the right edge.
|
||||
- ``multi,swipe,left`` - This is called when the genlist is multi-touch
|
||||
swiped left.
|
||||
- ``multi,swipe,right`` - This is called when the genlist is multi-touch
|
||||
swiped right.
|
||||
- ``multi,swipe,up`` - This is called when the genlist is multi-touch
|
||||
swiped up.
|
||||
- ``multi,swipe,down`` - This is called when the genlist is multi-touch
|
||||
swiped down.
|
||||
- ``multi,pinch,out`` - This is called when the genlist is multi-touch
|
||||
pinched out.
|
||||
- ``multi,pinch,in`` - This is called when the genlist is multi-touch
|
||||
pinched in.
|
||||
- ``swipe`` - This is called when the genlist is swiped.
|
||||
- ``moved`` - This is called when a genlist item is moved in reorder mode.
|
||||
- ``moved,after`` - This is called when a genlist item is moved after
|
||||
another item in reorder mode. The event_info parameter is the reordered
|
||||
item. To get the relative previous item, use :py:attr:`GenlistItem.prev`.
|
||||
This signal is called along with "moved" signal.
|
||||
- ``moved,before`` - This is called when a genlist item is moved before
|
||||
another item in reorder mode. The event_info parameter is the reordered
|
||||
item. To get the relative previous item, use :py:attr:`GenlistItem.next`.
|
||||
This signal is called along with "moved" signal.
|
||||
- ``language,changed`` - This is called when the program's language is
|
||||
changed.
|
||||
- ``tree,effect,finished`` - This is called when a genlist tree effect
|
||||
is finished.
|
||||
- ``highlighted`` - an item in the list is highlighted. This is called when
|
||||
the user presses an item or keyboard selection is done so the item is
|
||||
physically highlighted. The ``event_info`` parameter is the item that was
|
||||
highlighted.
|
||||
- ``unhighlighted`` - an item in the list is unhighlighted. This is called
|
||||
when the user releases an item or keyboard selection is moved so the item
|
||||
is physically unhighlighted. The ``event_info`` parameter is the item that
|
||||
was unhighlighted.
|
||||
- ``item,focused`` - When the genlist item has received focus. (since 1.10)
|
||||
- ``item,unfocused`` - When the genlist item has lost focus. (since 1.10)
|
||||
- ``changed`` - Genlist is now changed their items and properties and all
|
||||
calculation is finished. (since 1.16)
|
||||
- ``filter,done`` - Genlist filter operation is completed.. (since 1.17)
|
||||
|
||||
|
||||
Enumerations
|
||||
============
|
||||
|
||||
.. _Elm_Genlist_Item_Type:
|
||||
|
||||
Genlist item types
|
||||
------------------
|
||||
|
||||
.. data:: ELM_GENLIST_ITEM_NONE
|
||||
|
||||
Simple item
|
||||
|
||||
.. data:: ELM_GENLIST_ITEM_TREE
|
||||
|
||||
The item may be expanded and have child items
|
||||
|
||||
.. data:: ELM_GENLIST_ITEM_GROUP
|
||||
|
||||
An index item of a group of items
|
||||
|
||||
|
||||
.. _Elm_Genlist_Item_Field_Type:
|
||||
|
||||
Genlist items' field types
|
||||
--------------------------
|
||||
|
||||
.. data:: ELM_GENLIST_ITEM_FIELD_ALL
|
||||
|
||||
Match all fields
|
||||
|
||||
.. data:: ELM_GENLIST_ITEM_FIELD_TEXT
|
||||
|
||||
Match text fields
|
||||
|
||||
.. data:: ELM_GENLIST_ITEM_FIELD_CONTENT
|
||||
|
||||
Match content fields
|
||||
|
||||
.. data:: ELM_GENLIST_ITEM_FIELD_STATE
|
||||
|
||||
Match state fields
|
||||
|
||||
|
||||
.. _Elm_Genlist_Item_Scrollto_Type:
|
||||
|
||||
Genlist items' scroll-to types
|
||||
------------------------------
|
||||
|
||||
.. data:: ELM_GENLIST_ITEM_SCROLLTO_NONE
|
||||
|
||||
No scroll to
|
||||
|
||||
.. data:: ELM_GENLIST_ITEM_SCROLLTO_IN
|
||||
|
||||
Scroll to the nearest viewport
|
||||
|
||||
.. data:: ELM_GENLIST_ITEM_SCROLLTO_TOP
|
||||
|
||||
Scroll to the top of viewport
|
||||
|
||||
.. data:: ELM_GENLIST_ITEM_SCROLLTO_MIDDLE
|
||||
|
||||
Scroll to the middle of viewport
|
||||
|
||||
.. data:: ELM_GENLIST_ITEM_SCROLLTO_BOTTTOM
|
||||
|
||||
Scroll to the bottom of viewport
|
||||
|
||||
.. versionadded:: 1.17
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram::
|
||||
Genlist
|
||||
GenlistItem
|
||||
GenlistItemClass
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Genlist
|
||||
.. autoclass:: GenlistItem
|
||||
.. autoclass:: GenlistItemClass
|
||||
|
|
|
@ -1,2 +1,152 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.gesture_layer
|
||||
Gesture Layer
|
||||
#############
|
||||
|
||||
.. image:: /images/gesturelayer-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
Use the GestureLayer to detect gestures. The advantage is that you don't
|
||||
have to implement gesture detection, just set callbacks for gesture states.
|
||||
|
||||
In order to use Gesture Layer you start with instantiating this class
|
||||
with a parent object parameter. Next 'activate' gesture layer with a
|
||||
:py:meth:`~GestureLayer.attach` call. Usually with same object as target (2nd
|
||||
parameter).
|
||||
|
||||
Now you need to tell gesture layer what gestures you follow. This is done with
|
||||
:py:meth:`~GestureLayer.cb_set` call. By setting the callback you actually
|
||||
saying to gesture layer: I would like to know when the gesture
|
||||
:ref:`Elm_Gesture_Type` switches to state :ref:`Elm_Gesture_State`.
|
||||
|
||||
Next, you need to implement the actual action that follows the input in
|
||||
your callback.
|
||||
|
||||
Note that if you like to stop being reported about a gesture, just set
|
||||
all callbacks referring this gesture to None. (again with
|
||||
:py:meth:`~GestureLayer.cb_set`)
|
||||
|
||||
The information reported by gesture layer to your callback is depending
|
||||
on :ref:`Elm_Gesture_Type`:
|
||||
|
||||
- :class:`GestureTapsInfo` is the info reported for tap gestures:
|
||||
|
||||
- :attr:`ELM_GESTURE_N_TAPS`
|
||||
- :attr:`ELM_GESTURE_N_LONG_TAPS`
|
||||
- :attr:`ELM_GESTURE_N_DOUBLE_TAPS`
|
||||
- :attr:`ELM_GESTURE_N_TRIPLE_TAPS`
|
||||
|
||||
- :class:`GestureMomentumInfo` is info reported for momentum gestures:
|
||||
|
||||
- :attr:`ELM_GESTURE_MOMENTUM`
|
||||
|
||||
- :class:`GestureLineInfo` is the info reported for line gestures
|
||||
(this also contains :class:`GestureMomentumInfo` internal structure):
|
||||
|
||||
- :attr:`ELM_GESTURE_N_LINES`
|
||||
- :attr:`ELM_GESTURE_N_FLICKS`
|
||||
|
||||
Note that we consider a flick as a line-gesture that should be completed
|
||||
in flick-time-limit as defined in
|
||||
:py:class:`~efl.elementary.configuration.Configuration`.
|
||||
|
||||
:class:`GestureZoomInfo` is the info reported for :attr:`ELM_GESTURE_ZOOM`
|
||||
gesture.
|
||||
|
||||
:class:`GestureRotateInfo` is the info reported for
|
||||
:attr:`ELM_GESTURE_ROTATE` gesture.
|
||||
|
||||
Gesture Layer Tweaks:
|
||||
|
||||
Note that line, flick, gestures can start without the need to remove
|
||||
fingers from surface. When user fingers rests on same-spot gesture is
|
||||
ended and starts again when fingers moved.
|
||||
|
||||
Setting glayer_continues_enable to false in
|
||||
:py:class:`~efl.elementary.configuration.Configuration` will change this
|
||||
behavior so gesture starts when user touches (a *DOWN* event)
|
||||
touch-surface and ends when no fingers touches surface (a *UP* event).
|
||||
|
||||
|
||||
Enumerations
|
||||
============
|
||||
|
||||
.. _Elm_Gesture_State:
|
||||
|
||||
Gesture states
|
||||
--------------
|
||||
|
||||
.. data:: ELM_GESTURE_STATE_UNDEFINED
|
||||
|
||||
Gesture not started
|
||||
|
||||
.. data:: ELM_GESTURE_STATE_START
|
||||
|
||||
Gesture started
|
||||
|
||||
.. data:: ELM_GESTURE_STATE_MOVE
|
||||
|
||||
Gesture is ongoing
|
||||
|
||||
.. data:: ELM_GESTURE_STATE_END
|
||||
|
||||
Gesture completed
|
||||
|
||||
.. data:: ELM_GESTURE_STATE_ABORT
|
||||
|
||||
Ongoing gesture was aborted
|
||||
|
||||
|
||||
.. _Elm_Gesture_Type:
|
||||
|
||||
Gesture types
|
||||
-------------
|
||||
|
||||
.. data:: ELM_GESTURE_N_TAPS
|
||||
|
||||
N fingers single taps
|
||||
|
||||
.. data:: ELM_GESTURE_N_LONG_TAPS
|
||||
|
||||
N fingers single long-taps
|
||||
|
||||
.. data:: ELM_GESTURE_N_DOUBLE_TAPS
|
||||
|
||||
N fingers double-single taps
|
||||
|
||||
.. data:: ELM_GESTURE_N_TRIPLE_TAPS
|
||||
|
||||
N fingers triple-single taps
|
||||
|
||||
.. data:: ELM_GESTURE_MOMENTUM
|
||||
|
||||
Reports momentum in the direction of move
|
||||
|
||||
.. data:: ELM_GESTURE_N_LINES
|
||||
|
||||
N fingers line gesture
|
||||
|
||||
.. data:: ELM_GESTURE_N_FLICKS
|
||||
|
||||
N fingers flick gesture
|
||||
|
||||
.. data:: ELM_GESTURE_ZOOM
|
||||
|
||||
Zoom
|
||||
|
||||
.. data:: ELM_GESTURE_ROTATE
|
||||
|
||||
Rotate
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: GestureLayer
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: GestureLayer
|
||||
|
|
|
@ -1,2 +1,33 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.grid
|
||||
Grid
|
||||
####
|
||||
|
||||
.. image:: /images/grid-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
A grid layout widget.
|
||||
|
||||
The grid is a grid layout widget that lays out a series of children as a
|
||||
fixed "grid" of widgets using a given percentage of the grid width and
|
||||
height each using the child object.
|
||||
|
||||
The Grid uses a "Virtual resolution" that is stretched to fill the grid
|
||||
widgets size itself. The default is 100 x 100, so that means the
|
||||
position and sizes of children will effectively be percentages (0 to 100)
|
||||
of the width or height of the grid widget.
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: Grid
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Grid
|
||||
.. autofunction:: grid_pack_set
|
||||
.. autofunction:: grid_pack_get
|
||||
|
|
|
@ -1,2 +1,109 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.hover
|
||||
Hover
|
||||
#####
|
||||
|
||||
.. image:: /images/hover-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
A Hover object will hover over its ``parent`` object at the ``target``
|
||||
location.
|
||||
|
||||
Anything in the background will be given a darker coloring to indicate
|
||||
that the hover object is on top (at the default theme). When the hover
|
||||
is clicked it is dismissed(hidden), if the contents of the hover are
|
||||
clicked that **doesn't** cause the hover to be dismissed.
|
||||
|
||||
A Hover object has two parents. One parent that owns it during creation
|
||||
and the other parent being the one over which the hover object spans.
|
||||
|
||||
|
||||
Available styles
|
||||
================
|
||||
|
||||
- default
|
||||
- popout
|
||||
- menu
|
||||
- hoversel_vertical
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``clicked`` - the user clicked the empty space in the hover to
|
||||
dismiss.
|
||||
- ``dismissed`` - the user clicked the empty space in the hover to dismiss.
|
||||
(since 1.8)
|
||||
- ``smart,changed`` - a content object placed under the "smart"
|
||||
policy was replaced to a new slot direction.
|
||||
|
||||
|
||||
Layout content parts
|
||||
====================
|
||||
|
||||
- ``left``
|
||||
- ``top-left``
|
||||
- ``top``
|
||||
- ``top-right``
|
||||
- ``right``
|
||||
- ``bottom-right``
|
||||
- ``bottom``
|
||||
- ``bottom-left``
|
||||
- ``middle``
|
||||
- ``smart``
|
||||
|
||||
All directions may have contents at the same time, except for "smart".
|
||||
This is a special placement hint and its use case depends of the
|
||||
calculations coming from :py:meth:`~Hover.best_content_location_get`. Its use
|
||||
is for cases when one desires only one hover content, but with a dynamic
|
||||
special placement within the hover area. The content's geometry,
|
||||
whenever it changes, will be used to decide on a best location, not
|
||||
extrapolating the hover's parent object view to show it in (still being
|
||||
the hover's target determinant of its medium part -- move and resize it
|
||||
to simulate finger sizes, for example). If one of the directions other
|
||||
than "smart" are used, a previously content set using it will be
|
||||
deleted, and vice-versa.
|
||||
|
||||
.. note:: The hover object will take up the entire space of ``target``
|
||||
object.
|
||||
|
||||
.. note:: The content parts listed indicate the direction that the content
|
||||
will be displayed
|
||||
|
||||
|
||||
Enumerations
|
||||
============
|
||||
|
||||
.. _Elm_Hover_Axis:
|
||||
|
||||
Hover axis
|
||||
----------
|
||||
|
||||
.. data:: ELM_HOVER_AXIS_NONE
|
||||
|
||||
No preferred orientation
|
||||
|
||||
.. data:: ELM_HOVER_AXIS_HORIZONTAL
|
||||
|
||||
Horizontal orientation
|
||||
|
||||
.. data:: ELM_HOVER_AXIS_VERTICAL
|
||||
|
||||
Vertical orientation
|
||||
|
||||
.. data:: ELM_HOVER_AXIS_BOTH
|
||||
|
||||
Both
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: Hover
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Hover
|
||||
|
|
|
@ -1,2 +1,56 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.hoversel
|
||||
Hoversel
|
||||
########
|
||||
|
||||
.. image:: /images/hoversel-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
A hoversel is a button that pops up a list of items (automatically
|
||||
choosing the direction to display) that have a label and, optionally, an
|
||||
icon to select from.
|
||||
|
||||
It is a convenience widget to avoid the need to do all the piecing
|
||||
together yourself. It is intended for a small number of items in the
|
||||
hoversel menu (no more than 8), though is capable of many more.
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``clicked`` - the user clicked the hoversel button and popped up
|
||||
the sel
|
||||
- ``selected`` - an item in the hoversel list is selected. event_info
|
||||
is the item
|
||||
- ``dismissed`` - the hover is dismissed
|
||||
- ``expanded`` - the hover is expanded (since 1.9)
|
||||
- ``item,focused`` - the hoversel item has received focus. (since 1.10)
|
||||
- ``item,unfocused`` - the hoversel item has lost focus. (since 1.10)
|
||||
|
||||
|
||||
Layout content parts
|
||||
====================
|
||||
|
||||
- ``icon`` - An icon of the hoversel
|
||||
|
||||
|
||||
Layout text parts
|
||||
=================
|
||||
|
||||
- ``default`` - Label of the hoversel
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram::
|
||||
Hoversel
|
||||
HoverselItem
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Hoversel
|
||||
.. autoclass:: HoverselItem
|
||||
|
|
|
@ -1,2 +1,183 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.icon
|
||||
Icon
|
||||
####
|
||||
|
||||
.. image:: /images/icon-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
An icon object is used to display standard icon images ("delete",
|
||||
"edit", "arrows", etc.) or images coming from a custom file (PNG, JPG,
|
||||
EDJE, etc.), on icon contexts.
|
||||
|
||||
The icon image requested can be in the Elementary theme in use, or in
|
||||
the ``freedesktop.org`` theme paths. It's possible to set the order of
|
||||
preference from where an image will be fetched.
|
||||
|
||||
This widget inherits from the :py:class:`~efl.elementary.image.Image` one, so
|
||||
that all the functions acting on it also work for icon objects.
|
||||
|
||||
You should be using an icon, instead of an image, whenever one of the
|
||||
following apply:
|
||||
|
||||
- you need a **thumbnail** version of an original image
|
||||
- you need freedesktop.org provided icon images
|
||||
- you need theme provided icon images (Edje groups)
|
||||
|
||||
Default images provided by Elementary's default theme are described below.
|
||||
|
||||
These are names that follow (more or less) the **Freedesktop** icon naming
|
||||
specification. Use of these names are **preferred**, at least if you want to
|
||||
give your user the ability to use other themes. All these icons can be
|
||||
seen in the elementary_test application, the test is called "Icon Standard".
|
||||
|
||||
- ``folder`` (since 1.13)
|
||||
- ``user-home`` (since 1.13)
|
||||
- ``user-trash`` (since 1.13)
|
||||
|
||||
- ``view-close`` (since 1.13)
|
||||
- ``view-refresh`` (since 1.13)
|
||||
|
||||
- ``window-close`` 1.13)
|
||||
|
||||
- ``document-close`` (since 1.13)
|
||||
- ``document-edit`` (since 1.13)
|
||||
|
||||
- ``dialog-info`` (since 1.13)
|
||||
- ``dialog-close`` (since 1.13)
|
||||
|
||||
- ``arrow-up`` (since 1.13)
|
||||
- ``arrow-down`` (since 1.13)
|
||||
- ``arrow-left`` (since 1.13)
|
||||
- ``arrow-right`` (since 1.13)
|
||||
- ``arrow-up-left`` (since 1.13)
|
||||
- ``arrow-up-right`` (since 1.13)
|
||||
- ``arrow-down-left`` (since 1.13)
|
||||
- ``arrow-down-right`` (since 1.13)
|
||||
|
||||
- ``edit-delete`` (since 1.13)
|
||||
|
||||
- ``application-chat`` (since 1.13)
|
||||
- ``application-clock`` (since 1.13)
|
||||
|
||||
- ``media-seek-forward`` 1.13)
|
||||
- ``media-seek-backward`` (since 1.13)
|
||||
- ``media-skip-forward`` (since 1.13)
|
||||
- ``media-skip-backward`` (since 1.13)
|
||||
- ``media-playback-pause`` (since 1.13)
|
||||
- ``media-playback-start`` (since 1.13)
|
||||
- ``media-playback-stop`` (since 1.13)
|
||||
- ``media-eject`` (since 1.13)
|
||||
|
||||
- ``audio-volume`` (since 1.13)
|
||||
- ``audio-volume-muted`` (since 1.13)
|
||||
|
||||
These are names for icons that were first intended to be used in
|
||||
toolbars, but can be used in many other places too:
|
||||
|
||||
- ``home``
|
||||
- ``close``
|
||||
- ``apps``
|
||||
- ``arrow_up``
|
||||
- ``arrow_down``
|
||||
- ``arrow_left``
|
||||
- ``arrow_right``
|
||||
- ``chat``
|
||||
- ``clock``
|
||||
- ``delete``
|
||||
- ``edit``
|
||||
- ``refresh``
|
||||
- ``folder``
|
||||
- ``file``
|
||||
|
||||
These are names for icons that were designed to be used in menus
|
||||
(but again, you can use them anywhere else):
|
||||
|
||||
- ``menu/home``
|
||||
- ``menu/close``
|
||||
- ``menu/apps``
|
||||
- ``menu/arrow_up``
|
||||
- ``menu/arrow_down``
|
||||
- ``menu/arrow_left``
|
||||
- ``menu/arrow_right``
|
||||
- ``menu/chat``
|
||||
- ``menu/clock``
|
||||
- ``menu/delete``
|
||||
- ``menu/edit``
|
||||
- ``menu/refresh``
|
||||
- ``menu/folder``
|
||||
- ``menu/file``
|
||||
|
||||
And these are names for some media player specific icons:
|
||||
|
||||
- ``media_player/forward``
|
||||
- ``media_player/info``
|
||||
- ``media_player/next``
|
||||
- ``media_player/pause``
|
||||
- ``media_player/play``
|
||||
- ``media_player/prev``
|
||||
- ``media_player/rewind``
|
||||
- ``media_player/stop``
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``thumb,done`` - Setting :py:attr:`~Icon.thumb` has completed with success
|
||||
- ``thumb,error`` - Setting :py:attr:`~Icon.thumb` has failed
|
||||
|
||||
|
||||
Enumerations
|
||||
============
|
||||
|
||||
.. _Elm_Icon_Lookup_Order:
|
||||
|
||||
Icon lookup modes
|
||||
-----------------
|
||||
|
||||
.. data:: ELM_ICON_LOOKUP_FDO_THEME
|
||||
|
||||
freedesktop, theme
|
||||
|
||||
.. data:: ELM_ICON_LOOKUP_THEME_FDO
|
||||
|
||||
theme, freedesktop
|
||||
|
||||
.. data:: ELM_ICON_LOOKUP_FDO
|
||||
|
||||
freedesktop
|
||||
|
||||
.. data:: ELM_ICON_LOOKUP_THEME
|
||||
|
||||
theme
|
||||
|
||||
|
||||
.. _Elm_Icon_Type:
|
||||
|
||||
Icon type
|
||||
---------
|
||||
|
||||
.. data:: ELM_ICON_NONE
|
||||
|
||||
No icon
|
||||
|
||||
.. data:: ELM_ICON_FILE
|
||||
|
||||
Icon is a file
|
||||
|
||||
.. data:: ELM_ICON_STANDARD
|
||||
|
||||
Icon is set with standards name
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: Icon
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Icon
|
||||
|
|
|
@ -1,2 +1,102 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.image
|
||||
Image
|
||||
#####
|
||||
|
||||
.. image:: /images/image-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
An Elementary image object allows one to load and display an image
|
||||
file on it, be it from a disk file or from a memory region.
|
||||
|
||||
Exceptionally, one may also load an Edje group as the contents of the
|
||||
image. In this case, though, most of the functions of the image API will
|
||||
act as a no-op.
|
||||
|
||||
One can tune various properties of the image, like:
|
||||
|
||||
- pre-scaling,
|
||||
- smooth scaling,
|
||||
- orientation,
|
||||
- aspect ratio during resizes, etc.
|
||||
|
||||
An image object may also be made valid source and destination for drag
|
||||
and drop actions by setting :py:attr:`~Image.editable`.
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``drop`` - This is called when a user has dropped an image
|
||||
typed object onto the object in question -- the
|
||||
event info argument is the path to that image file
|
||||
- ``clicked`` - This is called when a user has clicked the image
|
||||
- ``download,start`` - remote url download has started
|
||||
- ``download,progress`` - url download in progress
|
||||
- ``download,end`` - remote url download has finished
|
||||
- ``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
|
||||
============
|
||||
|
||||
.. _Elm_Image_Orient:
|
||||
|
||||
Image manipulation types
|
||||
------------------------
|
||||
|
||||
.. data:: ELM_IMAGE_ORIENT_NONE
|
||||
|
||||
No orientation change
|
||||
|
||||
.. data:: ELM_IMAGE_ORIENT_0
|
||||
|
||||
No orientation change
|
||||
|
||||
.. data:: ELM_IMAGE_ROTATE_90
|
||||
|
||||
Rotate 90 degrees clockwise
|
||||
|
||||
.. data:: ELM_IMAGE_ROTATE_180
|
||||
|
||||
Rotate 180 degrees clockwise
|
||||
|
||||
.. data:: ELM_IMAGE_ROTATE_270
|
||||
|
||||
Rotate 270 degrees clockwise
|
||||
|
||||
.. data:: ELM_IMAGE_FLIP_HORIZONTAL
|
||||
|
||||
Flip the image horizontally
|
||||
|
||||
.. data:: ELM_IMAGE_FLIP_VERTICAL
|
||||
|
||||
Flip the image vertically
|
||||
|
||||
.. data:: ELM_IMAGE_FLIP_TRANSPOSE
|
||||
|
||||
Flip the image along the y = (width - x) line (bottom-left to top-right)
|
||||
|
||||
.. data:: ELM_IMAGE_FLIP_TRANSVERSE
|
||||
|
||||
Flip the image along the y = x line (top-left to bottom-right)
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: Image
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Image
|
||||
|
|
|
@ -1,2 +1,61 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.index
|
||||
Index
|
||||
#####
|
||||
|
||||
.. image:: /images/index-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
An index widget gives you an index for fast access to whichever
|
||||
group of other UI items one might have.
|
||||
|
||||
It's a list of text items (usually letters, for alphabetically ordered
|
||||
access).
|
||||
|
||||
Index widgets are by default hidden and just appear when the
|
||||
user clicks over it's reserved area in the canvas. In its
|
||||
default theme, it's an area one ``finger`` wide on
|
||||
the right side of the index widget's container.
|
||||
|
||||
When items on the index are selected, smart callbacks get called, so that its
|
||||
user can make other container objects to show a given area or child object
|
||||
depending on the index item selected. You'd probably be using an index together
|
||||
with :py:class:`~efl.elementary.list.List`,
|
||||
:py:class:`~efl.elementary.genlist.Genlist` or
|
||||
:py:class:`~efl.elementary.gengrid.Gengrid`.
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``changed`` - When the selected index item changes. ``event_info``
|
||||
is the selected item's data.
|
||||
- ``delay,changed`` - When the selected index item changes, but
|
||||
after a small idling period. ``event_info`` is the selected
|
||||
item's data.
|
||||
- ``selected`` - When the user releases a mouse button and
|
||||
selects an item. ``event_info`` is the selected item's data.
|
||||
- ``level,up`` - when the user moves a finger from the first
|
||||
level to the second level
|
||||
- ``level,down`` - when the user moves a finger from the second
|
||||
level to the first level
|
||||
|
||||
The ``delay,changed`` event has a delay on change before the event is actually
|
||||
reported and moreover just the last event happening on those time frames will
|
||||
actually be reported.
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram::
|
||||
Index
|
||||
IndexItem
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Index
|
||||
.. autoclass:: IndexItem
|
||||
|
|
|
@ -1,2 +1,42 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.innerwindow
|
||||
Innerwindow
|
||||
###########
|
||||
|
||||
.. image:: /images/innerwindow-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
An inwin is a window inside a window that is useful for a quick popup.
|
||||
It does not hover.
|
||||
|
||||
It works by creating an object that will occupy the entire window, so it must be
|
||||
created using an :py:class:`~efl.elementary.window.Window` as parent only. The
|
||||
inwin object can be hidden or restacked below every other object if it's needed
|
||||
to show what's behind it without destroying it. If this is done, the
|
||||
:py:meth:`~InnerWindow.activate` function can be used to bring it back to full
|
||||
visibility again.
|
||||
|
||||
|
||||
Available styles
|
||||
================
|
||||
|
||||
- ``default`` The inwin is sized to take over most of the window it's
|
||||
placed in.
|
||||
- ``minimal`` The size of the inwin will be the minimum necessary to show
|
||||
its contents.
|
||||
- ``minimal_vertical`` Horizontally, the inwin takes as much space as
|
||||
possible, but it's sized vertically the most it needs to fit its
|
||||
contents.
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: InnerWindow
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: InnerWindow
|
||||
|
|
|
@ -1,2 +1,85 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.label
|
||||
Label
|
||||
#####
|
||||
|
||||
.. image:: /images/label-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
Widget to display text, with simple html-like markup.
|
||||
|
||||
The Label widget **doesn't** allow text to overflow its boundaries, if the
|
||||
text doesn't fit the geometry of the label it will be ellipsized or be
|
||||
cut.
|
||||
|
||||
|
||||
Available styles
|
||||
================
|
||||
|
||||
``default``
|
||||
The default style
|
||||
``default/left``
|
||||
Left aligned label (since 1.18)
|
||||
``default/right``
|
||||
Right aligned label (since 1.18)
|
||||
``marker``
|
||||
Centers the text in the label and makes it bold by default
|
||||
``marker/left``
|
||||
Like marker but left aligned (since 1.18)
|
||||
``marker/right``
|
||||
Like marker but right aligned (since 1.18)
|
||||
``slide_long``
|
||||
The entire text appears from the right of the screen and
|
||||
slides until it disappears in the left of the screen(reappearing on
|
||||
the right again).
|
||||
``slide_short``
|
||||
The text appears in the left of the label and slides to
|
||||
the right to show the overflow. When all of the text has been shown
|
||||
the position is reset.
|
||||
``slide_bounce``
|
||||
The text appears in the left of the label and slides to
|
||||
the right to show the overflow. When all of the text has been shown
|
||||
the animation reverses, moving the text to the left.
|
||||
|
||||
Custom themes can of course invent new markup tags and style them any way
|
||||
they like.
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``slide,end`` - The slide is end.
|
||||
|
||||
|
||||
Enumerations
|
||||
============
|
||||
|
||||
.. _Elm_Label_Slide_Mode:
|
||||
|
||||
Slide modes
|
||||
-----------
|
||||
|
||||
.. data:: ELM_LABEL_SLIDE_MODE_NONE
|
||||
|
||||
The label will never slide.
|
||||
|
||||
.. data:: ELM_LABEL_SLIDE_MODE_AUTO
|
||||
|
||||
The label slide if the content is bigger than it's container.
|
||||
|
||||
.. data:: ELM_LABEL_SLIDE_MODE_ALWAYS
|
||||
|
||||
The label will always slide.
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: Label
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Label
|
||||
|
|
|
@ -1,2 +1,164 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.layout
|
||||
Layout
|
||||
######
|
||||
|
||||
.. image:: /images/layout-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
This is a container widget that takes a standard Edje design file and
|
||||
wraps it very thinly in a widget.
|
||||
|
||||
An Edje design (theme) file has a very wide range of possibilities to
|
||||
describe the behavior of elements added to the Layout. Check out the Edje
|
||||
documentation and the EDC reference to get more information about what can
|
||||
be done with Edje.
|
||||
|
||||
Just like :py:class:`~efl.elementary.list.List`,
|
||||
:py:class:`~efl.elementary.box.Box`, and other container
|
||||
widgets, any object added to the Layout will become its child, meaning
|
||||
that it will be deleted if the Layout is deleted, move if the Layout is
|
||||
moved, and so on.
|
||||
|
||||
The Layout widget can contain as many Contents, Boxes or Tables as
|
||||
described in its theme file. For instance, objects can be added to
|
||||
different Tables by specifying the respective Table part names. The same
|
||||
is valid for Content and Box.
|
||||
|
||||
The objects added as child of the Layout will behave as described in the
|
||||
part description where they were added. There are 3 possible types of
|
||||
parts where a child can be added:
|
||||
|
||||
Content (SWALLOW part)
|
||||
Only one object can be added to the ``SWALLOW`` part (but you still can
|
||||
have many ``SWALLOW`` parts and one object on each of them). Use the
|
||||
``Object.content_set/get/unset`` functions to set, retrieve and unset
|
||||
objects as content of the *SWALLOW*. After being set to this part,
|
||||
the object size, position, visibility, clipping and other description
|
||||
properties will be totally controlled by the description of the
|
||||
given part (inside the Edje theme file).
|
||||
|
||||
One can use ``size_hint_`` functions on the child to have some kind of
|
||||
control over its behavior, but the resulting behavior will still
|
||||
depend heavily on the ``SWALLOW`` part description.
|
||||
|
||||
The Edje theme also can change the part description, based on
|
||||
signals or scripts running inside the theme. This change can also be
|
||||
animated. All of this will affect the child object set as content
|
||||
accordingly. The object size will be changed if the part size is
|
||||
changed, it will animate move if the part is moving, and so on.
|
||||
|
||||
Box (BOX part)
|
||||
An Edje ``BOX`` part is very similar to the Elementary
|
||||
:py:class:`~efl.elementary.box.Box` widget. It allows one to add objects to
|
||||
the box and have them distributed along its area, accordingly to the
|
||||
specified ``layout`` property (now by ``layout`` we mean the chosen
|
||||
layouting design of the Box, not the Layout widget itself).
|
||||
|
||||
A similar effect for having a box with its position, size and other things
|
||||
controlled by the Layout theme would be to create an Elementary
|
||||
:py:class:`~efl.elementary.box.Box` widget and add it as a Content in the
|
||||
``SWALLOW`` part.
|
||||
|
||||
The main difference of using the Layout Box is that its behavior, the box
|
||||
properties like layouting format, padding, align, etc. will be all
|
||||
controlled by the theme. This means, for example, that a signal could be
|
||||
sent to the Layout theme (with
|
||||
:py:meth:`~efl.elementary.object.Object.signal_emit`) and the theme handled
|
||||
the signal by changing the box padding, or align, or both. Using the
|
||||
Elementary :py:class:`~efl.elementary.box.Box` widget is not necessarily
|
||||
harder or easier, it just depends on the circumstances and requirements.
|
||||
|
||||
The Layout Box can be used through the ``box_`` set of functions.
|
||||
|
||||
Table (TABLE part)
|
||||
Just like the *Box*, the Layout Table is very similar to the Elementary
|
||||
:py:class:`~efl.elementary.table.Table` widget. It allows one to add objects
|
||||
to the Table specifying the row and column where the object should be added,
|
||||
and any column or row span if necessary.
|
||||
|
||||
Again, we could have this design by adding a
|
||||
:py:class:`~efl.elementary.table.Table` widget to the ``SWALLOW`` part using
|
||||
:py:func:`~efl.elementary.object.Object.part_content_set`. The same
|
||||
difference happens here when choosing to use the Layout Table (a ``TABLE``
|
||||
part) instead of the :py:class:`~efl.elementary.table.Table` plus
|
||||
``SWALLOW`` part. It's just a matter of convenience.
|
||||
|
||||
The Layout Table can be used through the ``table_`` set of functions.
|
||||
|
||||
Another interesting thing about the Layout widget is that it offers some
|
||||
predefined themes that come with the default Elementary theme. These themes can
|
||||
be set by :py:attr:`~efl.elementary.layout_class.LayoutClass.theme`, and provide
|
||||
some basic functionality depending on the theme used.
|
||||
|
||||
Most of them already send some signals, some already provide a toolbar or
|
||||
back and next buttons.
|
||||
|
||||
|
||||
Layout Class
|
||||
============
|
||||
|
||||
Elementary, besides having the :py:class:`~efl.elementary.layout.Layout`
|
||||
widget, exposes its foundation -- the Elementary Layout Class -- in
|
||||
order to create other widgets which are, basically, a certain layout
|
||||
with some more logic on top.
|
||||
|
||||
The idea is to make the creation of that widgets as easy as possible,
|
||||
factorizing code on this common base. For example, a button is a layout
|
||||
(that looks like push button) that happens to react on clicks and keyboard
|
||||
events in a special manner, calling its user back on those events. That's no
|
||||
surprise, then, that the :py:class:`~efl.elementary.button.Button`
|
||||
implementation relies on LayoutClass, if you go to check it.
|
||||
|
||||
Container parts, here, map directly to Edje parts from the layout's Edje
|
||||
group. Besides that, there's a whole infrastructure around Edje files:
|
||||
|
||||
- interfacing by signals,
|
||||
- setting/retrieving text part values,
|
||||
- dealing with table and box parts directly,
|
||||
- etc.
|
||||
|
||||
Finally, layout objects will do **part aliasing** for you, if you set
|
||||
it up properly. For that, take a look at
|
||||
Elm_Layout_Part_Alias_Description, where it's explained in detail.
|
||||
|
||||
|
||||
Available styles
|
||||
================
|
||||
|
||||
These are available predefined theme layouts. All of them have class =
|
||||
*layout*, group = *application*, and style = one of the following options:
|
||||
|
||||
- ``toolbar-content`` - application with toolbar and main content area
|
||||
- ``toolbar-content-back`` - application with toolbar and main content
|
||||
area with a back button and title area
|
||||
- ``toolbar-content-back-next`` - application with toolbar and main
|
||||
content area with a back and next buttons and title area
|
||||
- ``content-back`` - application with a main content area with a back
|
||||
button and title area
|
||||
- ``content-back-next`` - application with a main content area with a
|
||||
back and next buttons and title area
|
||||
- ``toolbar-vbox`` - application with toolbar and main content area as a
|
||||
vertical box
|
||||
- ``toolbar-table`` - application with toolbar and main content area as a
|
||||
table
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``theme,changed`` - The theme was changed.
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: Layout
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Layout
|
||||
.. autoclass:: LayoutClass
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
|
||||
.. automodule:: efl.elementary.layout_class
|
|
@ -1,2 +1,134 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.list
|
||||
List
|
||||
####
|
||||
|
||||
.. image:: /images/list-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
A list widget is a container whose children are displayed vertically or
|
||||
horizontally, in order, and can be selected.
|
||||
The list can accept only one or multiple items selection. Also has many
|
||||
modes of items displaying.
|
||||
|
||||
A list is a very simple type of list widget. For more robust
|
||||
lists, :py:class:`~efl.elementary.genlist.Genlist` should probably be used.
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``activated`` - The user has double-clicked or pressed
|
||||
(enter|return|spacebar) on an item.
|
||||
- ``clicked,double`` - The user has double-clicked an item.
|
||||
- ``clicked,right`` - The user has right-clicked an item. (since: 1.13)
|
||||
- ``selected`` - when the user selected an item
|
||||
- ``unselected`` - when the user unselected an item
|
||||
- ``longpressed`` - an item in the list is long-pressed
|
||||
- ``edge,top`` - the list is scrolled until the top edge
|
||||
- ``edge,bottom`` - the list is scrolled until the bottom edge
|
||||
- ``edge,left`` - the list is scrolled until the left edge
|
||||
- ``edge,right`` - the list is scrolled until the right edge
|
||||
- ``highlighted`` - an item in the list is highlighted. This is called when
|
||||
the user presses an item or keyboard selection is done so the item is
|
||||
physically highlighted.
|
||||
- ``unhighlighted`` - an item in the list is unhighlighted. This is called
|
||||
when the user releases an item or keyboard selection is moved so the item
|
||||
is physically unhighlighted.
|
||||
- ``item,focused`` - When the list item has received focus. (since 1.10)
|
||||
- ``item,unfocused`` - When the list item has lost focus. (since 1.10)
|
||||
|
||||
|
||||
Available styles
|
||||
================
|
||||
|
||||
- ``default``
|
||||
|
||||
|
||||
Layout content parts
|
||||
====================
|
||||
|
||||
- ``start`` - A start position object in the list item
|
||||
- ``end`` - A end position object in the list item
|
||||
|
||||
|
||||
Layout text parts
|
||||
=================
|
||||
|
||||
- ``default`` - label in the list item
|
||||
|
||||
|
||||
Scrollable Interface
|
||||
====================
|
||||
|
||||
This widget supports the scrollable interface.
|
||||
|
||||
If you wish to control the scolling behaviour using these functions,
|
||||
inherit both the widget class and the
|
||||
:py:class:`~efl.elementary.scroller.Scrollable` class
|
||||
using multiple inheritance, for example::
|
||||
|
||||
class ScrollableGenlist(Genlist, Scrollable):
|
||||
def __init__(self, canvas, *args, **kwargs):
|
||||
Genlist.__init__(self, canvas)
|
||||
|
||||
|
||||
Enumerations
|
||||
============
|
||||
|
||||
.. _Elm_List_Mode:
|
||||
|
||||
List sizing modes
|
||||
-----------------
|
||||
|
||||
.. data:: ELM_LIST_COMPRESS
|
||||
|
||||
The list won't set any of its size hints to inform how a possible container
|
||||
should resize it.
|
||||
|
||||
Then, if it's not created as a "resize object", it might end with zeroed
|
||||
dimensions. The list will respect the container's geometry and, if any of
|
||||
its items won't fit into its transverse axis, one won't be able to scroll it
|
||||
in that direction.
|
||||
|
||||
.. data:: ELM_LIST_SCROLL
|
||||
|
||||
Default value.
|
||||
|
||||
This is the same as ELM_LIST_COMPRESS, with the exception that if any of
|
||||
its items won't fit into its transverse axis, one will be able to scroll
|
||||
it in that direction.
|
||||
|
||||
.. data:: ELM_LIST_LIMIT
|
||||
|
||||
Sets a minimum size hint on the list object, so that containers may
|
||||
respect it (and resize itself to fit the child properly).
|
||||
|
||||
More specifically, a minimum size hint will be set for its transverse
|
||||
axis, so that the largest item in that direction fits well. This is
|
||||
naturally bound by the list object's maximum size hints, set externally.
|
||||
|
||||
.. data:: ELM_LIST_EXPAND
|
||||
|
||||
Besides setting a minimum size on the transverse axis, just like on
|
||||
ELM_LIST_LIMIT, the list will set a minimum size on the longitudinal
|
||||
axis, trying to reserve space to all its children to be visible at a time.
|
||||
|
||||
This is naturally bound by the list object's maximum size hints, set
|
||||
externally.
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram::
|
||||
List
|
||||
ListItem
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: List
|
||||
.. autoclass:: ListItem
|
||||
|
|
|
@ -1,2 +1,209 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.map
|
||||
Map
|
||||
###
|
||||
|
||||
.. image:: /images/map-preview.png
|
||||
:width: 100%
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
The *Map* is a widget specifically for displaying a geographic map.
|
||||
It uses `OpenStreetMap <http://www.openstreetmap.org/>`_ as map tile provider,
|
||||
`YOURS <http://www.yournavigation.org/>`_ for routing calculation and
|
||||
`Nominatim <http://nominatim.openstreetmap.org/>`_ to convert geographic
|
||||
coordinates to/from address names. But custom providers can be added.
|
||||
|
||||
It supports some basic but yet nice features:
|
||||
|
||||
- zooming and scrolling
|
||||
- markers with content to be displayed when user clicks over them
|
||||
- automatic grouping of markers based on zoom level
|
||||
- routes calculation
|
||||
- names/coordinates conversion (and viceversa)
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``clicked`` - Called when a user has clicked the map without dragging around.
|
||||
- ``clicked,double`` - Called when a user has double-clicked the map.
|
||||
- ``press`` - This is called when a user has pressed down on the map.
|
||||
- ``longpressed`` - This is called when a user has pressed down on the map
|
||||
for a long time without dragging around.
|
||||
- ``scroll`` - the content has been scrolled (moved).
|
||||
- ``scroll,drag,start`` - dragging the contents around has started.
|
||||
- ``scroll,drag,stop`` - dragging the contents around has stopped.
|
||||
- ``scroll,anim,start`` - scrolling animation has started.
|
||||
- ``scroll,anim,stop`` - scrolling animation has stopped.
|
||||
- ``zoom,start`` - Zoom animation started.
|
||||
- ``zoom,stop`` - Zoom animation stopped.
|
||||
- ``zoom,change`` - Zoom changed when using an auto zoom mode.
|
||||
- ``tile,load`` - A map tile image load begins.
|
||||
- ``tile,loaded`` - A map tile image load ends.
|
||||
- ``tile,loaded,fail`` - A map tile image load fails.
|
||||
- ``route,load`` - Route request begins.
|
||||
- ``route,loaded`` - Route request ends.
|
||||
- ``route,loaded,fail`` - Route request fails.
|
||||
- ``name,load`` - Name request begins.
|
||||
- ``name,loaded`` - Name request ends.
|
||||
- ``name,loaded,fail`` - Name request fails.
|
||||
- ``overlay,clicked`` - A overlay is clicked.
|
||||
- ``loaded`` - when a map is finally loaded.
|
||||
|
||||
|
||||
Scrollable Interface
|
||||
====================
|
||||
|
||||
This widget supports the scrollable interface.
|
||||
|
||||
If you wish to control the scolling behaviour using these functions,
|
||||
inherit both the widget class and the
|
||||
:py:class:`Scrollable<efl.elementary.scroller.Scrollable>` class
|
||||
using multiple inheritance, for example::
|
||||
|
||||
class ScrollableGenlist(Genlist, Scrollable):
|
||||
def __init__(self, canvas, *args, **kwargs):
|
||||
Genlist.__init__(self, canvas)
|
||||
|
||||
|
||||
Enumerations
|
||||
============
|
||||
|
||||
.. _Elm_Map_Overlay_Type:
|
||||
|
||||
Map overlay types
|
||||
-----------------
|
||||
|
||||
.. data:: ELM_MAP_OVERLAY_TYPE_NONE
|
||||
|
||||
None
|
||||
|
||||
.. data:: ELM_MAP_OVERLAY_TYPE_DEFAULT
|
||||
|
||||
The default overlay type.
|
||||
|
||||
.. data:: ELM_MAP_OVERLAY_TYPE_CLASS
|
||||
|
||||
The Class overlay is used to group marker together.
|
||||
|
||||
.. data:: ELM_MAP_OVERLAY_TYPE_GROUP
|
||||
|
||||
A group of overlays.
|
||||
|
||||
.. data:: ELM_MAP_OVERLAY_TYPE_BUBBLE
|
||||
|
||||
This class can *follow* another overlay.
|
||||
|
||||
.. data:: ELM_MAP_OVERLAY_TYPE_ROUTE
|
||||
|
||||
This is used to draw a route result on the map.
|
||||
|
||||
.. data:: ELM_MAP_OVERLAY_TYPE_LINE
|
||||
|
||||
Simply draw a line on the map.
|
||||
|
||||
.. data:: ELM_MAP_OVERLAY_TYPE_POLYGON
|
||||
|
||||
Simply draw a polygon on the map.
|
||||
|
||||
.. data:: ELM_MAP_OVERLAY_TYPE_CIRCLE
|
||||
|
||||
Simply draw a circle on the map.
|
||||
|
||||
.. data:: ELM_MAP_OVERLAY_TYPE_SCALE
|
||||
|
||||
This will draw a dinamic scale on the map.
|
||||
|
||||
|
||||
.. _Elm_Map_Route_Method:
|
||||
|
||||
Map route methods
|
||||
-----------------
|
||||
|
||||
.. data:: ELM_MAP_ROUTE_METHOD_FASTEST
|
||||
|
||||
Route should prioritize time
|
||||
|
||||
.. data:: ELM_MAP_ROUTE_METHOD_SHORTEST
|
||||
|
||||
Route should prioritize distance
|
||||
|
||||
|
||||
.. _Elm_Map_Route_Type:
|
||||
|
||||
Map route types
|
||||
---------------
|
||||
|
||||
.. data:: ELM_MAP_ROUTE_TYPE_MOTOCAR
|
||||
|
||||
Route should consider an automobile will be used.
|
||||
|
||||
.. data:: ELM_MAP_ROUTE_TYPE_BICYCLE
|
||||
|
||||
Route should consider a bicycle will be used by the user.
|
||||
|
||||
.. data:: ELM_MAP_ROUTE_TYPE_FOOT
|
||||
|
||||
Route should consider user will be walking.
|
||||
|
||||
|
||||
.. _Elm_Map_Source_Type:
|
||||
|
||||
Map source types
|
||||
----------------
|
||||
|
||||
.. data:: ELM_MAP_SOURCE_TYPE_TILE
|
||||
|
||||
Map tile provider
|
||||
|
||||
.. data:: ELM_MAP_SOURCE_TYPE_ROUTE
|
||||
|
||||
Route service provider
|
||||
|
||||
.. data:: ELM_MAP_SOURCE_TYPE_NAME
|
||||
|
||||
Name service provider
|
||||
|
||||
|
||||
.. _Elm_Map_Zoom_Mode:
|
||||
|
||||
Map zoom modes
|
||||
--------------
|
||||
|
||||
.. data:: ELM_MAP_ZOOM_MODE_MANUAL
|
||||
|
||||
Zoom controlled manually by :py:attr:`~Map.zoom`
|
||||
|
||||
It's set by default.
|
||||
|
||||
.. data:: ELM_MAP_ZOOM_MODE_AUTO_FIT
|
||||
|
||||
Zoom until map fits inside the scroll frame with no pixels outside this
|
||||
area.
|
||||
|
||||
.. data:: ELM_MAP_ZOOM_MODE_AUTO_FILL
|
||||
|
||||
Zoom until map fills scroll, ensuring no pixels are left unfilled.
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: Map
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Map
|
||||
.. autoclass:: MapRoute
|
||||
.. autoclass:: MapName
|
||||
.. autoclass:: MapOverlay
|
||||
.. autoclass:: MapOverlayClass
|
||||
.. autoclass:: MapOverlayBubble
|
||||
.. autoclass:: MapOverlayLine
|
||||
.. autoclass:: MapOverlayPolygon
|
||||
.. autoclass:: MapOverlayCircle
|
||||
.. autoclass:: MapOverlayScale
|
||||
.. autoclass:: MapOverlayRoute
|
||||
|
|
|
@ -1,2 +1,33 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.mapbuf
|
||||
Mapbuf
|
||||
######
|
||||
|
||||
.. image:: /images/mapbuf-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
This holds one content object and uses an Evas Map of transformation
|
||||
points to be later used with this content. So the content will be
|
||||
moved, resized, etc as a single image. So it will improve performance
|
||||
when you have a complex interface, with a lot of elements, and will
|
||||
need to resize or move it frequently (the content object and its
|
||||
children).
|
||||
|
||||
|
||||
Layout content parts
|
||||
====================
|
||||
|
||||
- ``default`` - The main content of the mapbuf
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: Mapbuf
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Mapbuf
|
||||
|
|
|
@ -1,2 +1,48 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.menu
|
||||
Menu
|
||||
####
|
||||
|
||||
.. image:: /images/menu-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
A menu is a list of items displayed above its parent.
|
||||
|
||||
When the menu is showing its parent is darkened. Each item can have a
|
||||
sub-menu. The menu object can be used to display a menu on a right click
|
||||
event, in a toolbar, anywhere.
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``clicked`` - the user clicked the empty space in the menu to dismiss.
|
||||
- ``dismissed`` - the user clicked the empty space in the menu to dismiss (since 1.8)
|
||||
|
||||
|
||||
Layout content parts
|
||||
====================
|
||||
|
||||
- ``default`` - A main content of the menu item
|
||||
|
||||
|
||||
Layout text parts
|
||||
=================
|
||||
|
||||
- ``default`` - label in the menu item
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram::
|
||||
Menu
|
||||
MenuItem
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Menu
|
||||
.. autoclass:: MenuItem
|
||||
|
|
|
@ -1,2 +1,60 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.multibuttonentry
|
||||
MultiButtonEntry
|
||||
################
|
||||
|
||||
.. image:: /images/multibuttonentry-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
A Multibuttonentry is a widget to allow a user enter text and manage
|
||||
it as a number of buttons. Each text button is inserted by pressing the
|
||||
"return" key. If there is no space in the current row, a new button is
|
||||
added to the next row. When a text button is pressed, it will become
|
||||
focused. Backspace removes the focus. When the Multibuttonentry loses
|
||||
focus items longer than one line are shrunk to one line.
|
||||
|
||||
Typical use case of multibuttonentry is, composing emails/messages to a
|
||||
group of addresses, each of which is an item that can be clicked for
|
||||
further actions.
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``item,selected`` - this is called when an item is selected by
|
||||
api, user interaction, and etc. this is also called when a
|
||||
user press back space while cursor is on the first field of
|
||||
entry. event_info contains the item.
|
||||
- ``item,added`` - when a new multi-button entry item is added.
|
||||
event_info contains the item.
|
||||
- ``item,deleted`` - when a multi-button entry item is deleted.
|
||||
event_info contains the item.
|
||||
- ``item,clicked`` - this is called when an item is clicked by user
|
||||
interaction. Both "item,selected" and "item,clicked" are needed.
|
||||
event_info contains the item.
|
||||
- ``clicked`` - when multi-button entry is clicked.
|
||||
- ``expanded`` - when multi-button entry is expanded.
|
||||
- ``contracted`` - when multi-button entry is contracted.
|
||||
- ``expand,state,changed`` - when shrink mode state of
|
||||
multi-button entry is changed.
|
||||
|
||||
|
||||
Layout text parts
|
||||
=================
|
||||
|
||||
- ``default`` - A label of the multibuttonentry
|
||||
- ``default`` - A label of the multibuttonentry item
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: MultiButtonEntry
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: MultiButtonEntry
|
||||
.. autoclass:: MultiButtonEntryItem
|
||||
|
|
|
@ -1,2 +1,96 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.naviframe
|
||||
Naviframe
|
||||
#########
|
||||
|
||||
.. image:: /images/naviframe-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
Naviframe stands for navigation frame. It's a views manager
|
||||
for applications.
|
||||
|
||||
A naviframe holds views (or pages) as its items. Those items are
|
||||
organized in a stack, so that new items get pushed on top of the
|
||||
old, and only the topmost view is displayed at one time. The
|
||||
transition between views is animated, depending on the theme
|
||||
applied to the widget.
|
||||
|
||||
Naviframe views hold spaces to various elements, which are:
|
||||
|
||||
- back button, used to navigate to previous views,
|
||||
- next button, used to navigate to next views in the stack,
|
||||
- title label,
|
||||
- sub-title label,
|
||||
- title icon and
|
||||
- content area.
|
||||
|
||||
|
||||
Layout content parts
|
||||
====================
|
||||
|
||||
- ``default`` - The main content of the current page
|
||||
- ``icon`` - An icon in the title area of the current page
|
||||
- ``prev_btn`` - A button of the current page to go to the previous page
|
||||
- ``next_btn`` - A button of the current page to go to the next page
|
||||
|
||||
|
||||
Layout text parts
|
||||
=================
|
||||
|
||||
- ``default`` - Title label in the title area of the current page
|
||||
- ``subtitle`` - Sub-title label in the title area of the current page
|
||||
|
||||
Most of those content objects can be passed at the time of an item
|
||||
creation (see :py:meth:`~NaviframeItem.push_to`).
|
||||
|
||||
|
||||
Available styles
|
||||
================
|
||||
|
||||
Naviframe items can have different styles, which affect the
|
||||
transition between views, for example. On the default theme, two of
|
||||
them are supported:
|
||||
|
||||
- ``basic`` - views are switched sliding horizontally, one after the other
|
||||
- ``overlap`` - like the previous one, but the previous view stays at its place
|
||||
and is overlapped by the new
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``transition,finished`` - When the transition is finished in changing the item
|
||||
- ``title,transition,finished`` - When the title area's transition is finished
|
||||
- ``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
|
||||
reachable by naviframe **items** direct calls:
|
||||
|
||||
- :py:meth:`~efl.elementary.object_item.ObjectItem.delete`
|
||||
- :py:meth:`~efl.elementary.object_item.ObjectItem.part_text_set`
|
||||
- :py:meth:`~efl.elementary.object_item.ObjectItem.part_text_get`
|
||||
- :py:meth:`~efl.elementary.object_item.ObjectItem.part_content_set`
|
||||
- :py:meth:`~efl.elementary.object_item.ObjectItem.part_content_get`
|
||||
- :py:meth:`~efl.elementary.object_item.ObjectItem.part_content_unset`
|
||||
- :py:meth:`~efl.elementary.object_item.ObjectItem.signal_emit`
|
||||
|
||||
What happens is that the topmost item of a naviframe will be the
|
||||
widget's target layout, when accessed directly. Items lying below
|
||||
the top one can be interacted with this way.
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram::
|
||||
Naviframe
|
||||
NaviframeItem
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Naviframe
|
||||
.. autoclass:: NaviframeItem
|
||||
|
|
|
@ -1,2 +1,20 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.need
|
||||
Need
|
||||
####
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
These functions are used for requesting use of optional Elementary modules.
|
||||
Check their return value for whether the feature is actually supported.
|
||||
|
||||
|
||||
.. autofunction:: efl.elementary.need_efreet
|
||||
.. autofunction:: efl.elementary.need_systray
|
||||
.. autofunction:: efl.elementary.need_sys_notify
|
||||
.. autofunction:: efl.elementary.need_e_dbus
|
||||
.. autofunction:: efl.elementary.need_eldbus
|
||||
.. autofunction:: efl.elementary.need_elocation
|
||||
.. autofunction:: efl.elementary.need_ethumb
|
||||
.. autofunction:: efl.elementary.need_web
|
||||
|
|
|
@ -1,2 +1,55 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.notify
|
||||
Notify
|
||||
######
|
||||
|
||||
.. image:: /images/notify-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
Display a container in a particular region of the parent.
|
||||
|
||||
A timeout can be set to automatically hide the notify. This is so that, after
|
||||
an :py:meth:`~efl.evas.Object.show` on a notify object, if a timeout was set on
|
||||
it, it will **automatically** get hidden after that time.
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``timeout`` - when timeout happens on notify and it's hidden
|
||||
- ``block,clicked`` - when a click outside of the notify happens
|
||||
- ``dismissed`` - When notify is closed as a result of a dismiss (since 1.17)
|
||||
|
||||
|
||||
Layout content parts
|
||||
====================
|
||||
|
||||
- ``default`` - The main content of the notify
|
||||
|
||||
|
||||
Enumerations
|
||||
============
|
||||
|
||||
.. _ELM_NOTIFY_ALIGN_FILL:
|
||||
|
||||
ELM_NOTIFY_ALIGN_FILL
|
||||
---------------------
|
||||
|
||||
.. data:: ELM_NOTIFY_ALIGN_FILL
|
||||
|
||||
Use with :py:attr:`Notify.align`
|
||||
|
||||
.. versionadded:: 1.8
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: Notify
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Notify
|
||||
|
|
|
@ -1,2 +1,388 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.object
|
||||
Object
|
||||
######
|
||||
|
||||
Copy and Paste
|
||||
==============
|
||||
|
||||
Implements the following functionality
|
||||
|
||||
a. select, copy/cut and paste
|
||||
b. clipboard
|
||||
c. drag and drop
|
||||
|
||||
in order to share data across application windows.
|
||||
|
||||
Contains functions to select text or a portion of data,
|
||||
send it to a buffer, and paste the data into a target.
|
||||
|
||||
elm_cnp provides a generic copy and paste facility based on its windowing
|
||||
system.
|
||||
It is not necessary to know the details of each windowing system,
|
||||
but some terms and behavior are common.
|
||||
Currently the X11 window system is widely used, and only X11 functionality is
|
||||
implemented.
|
||||
|
||||
In X11R6 window system, CopyPaste works like a peer-to-peer communication.
|
||||
Copying is an operation on an object in an X server.
|
||||
X11 calls those objects 'selections' which have names.
|
||||
Generally, two selection types are needed for copy and paste:
|
||||
The Primary selection and the Clipboard selection.
|
||||
Primary selection is for selecting text (that means highlighted text).
|
||||
Clipboard selection is for explicit copying behavior
|
||||
(such as ctrl+c, or 'copy' in a menu).
|
||||
Thus, in applications most cases only use the clipboard selection.
|
||||
As stated before, taking ownership of a selection doesn't move any actual data.
|
||||
Copying and Pasting is described as follows:
|
||||
|
||||
1. Copy text in Program A : Program A takes ownership of the selection
|
||||
2. Paste text in Program B : Program B notes that Program A owns the selection
|
||||
3. Program B asks A for the text
|
||||
4. Program A responds and sends the text to program B
|
||||
5. Program B pastes the response
|
||||
|
||||
More information is on
|
||||
- http://www.jwz.org/doc/x-cut-and-paste.html
|
||||
- X11R6 Inter-Client Communication Conventions Manual, section 2
|
||||
|
||||
|
||||
Emitted smart events
|
||||
====================
|
||||
|
||||
- ``moved`` - When the object change position. (since 1.17)
|
||||
- ``focus`` - When the object has received focus. (since 1.8)
|
||||
- ``unfocus`` - When the object has lost focus. (since 1.8)
|
||||
- ``language,changed`` - Whenever system locale changes.
|
||||
|
||||
|
||||
Enumerations
|
||||
============
|
||||
|
||||
.. _Elm_Object_Focus_Direction:
|
||||
|
||||
Focus direction
|
||||
---------------
|
||||
|
||||
.. data:: ELM_FOCUS_PREVIOUS
|
||||
|
||||
Focus previous
|
||||
|
||||
.. data:: ELM_FOCUS_NEXT
|
||||
|
||||
Focus next
|
||||
|
||||
.. data:: ELM_FOCUS_UP
|
||||
|
||||
Focus up
|
||||
|
||||
.. versionadded:: 1.8.1
|
||||
|
||||
.. data:: ELM_FOCUS_DOWN
|
||||
|
||||
Focus down
|
||||
|
||||
.. versionadded:: 1.8.1
|
||||
|
||||
.. data:: ELM_FOCUS_RIGHT
|
||||
|
||||
Focus right
|
||||
|
||||
.. versionadded:: 1.8.1
|
||||
|
||||
.. data:: ELM_FOCUS_LEFT
|
||||
|
||||
Focus left
|
||||
|
||||
.. versionadded:: 1.8.1
|
||||
|
||||
|
||||
.. _Elm_Focus_Move_Policy:
|
||||
|
||||
Focus move policy
|
||||
-----------------
|
||||
|
||||
.. data:: ELM_FOCUS_MOVE_POLICY_CLICK
|
||||
|
||||
Give focus to object when they are clicked
|
||||
|
||||
.. versionadded:: 1.10
|
||||
|
||||
.. data:: ELM_FOCUS_MOVE_POLICY_IN
|
||||
|
||||
Give focus to object on mouse-in
|
||||
|
||||
.. versionadded:: 1.10
|
||||
|
||||
.. data:: ELM_FOCUS_MOVE_POLICY_KEY_ONLY
|
||||
|
||||
Focus is set on key input like Left, Right, Up, Down, Tab, or Shift+Tab
|
||||
|
||||
.. versionadded:: 1.15
|
||||
|
||||
|
||||
.. _Elm_Focus_Autoscroll_Mode:
|
||||
|
||||
Focus autoscroll mode
|
||||
---------------------
|
||||
|
||||
.. data:: ELM_FOCUS_AUTOSCROLL_MODE_SHOW
|
||||
|
||||
Directly show the focused region or item automatically.
|
||||
|
||||
.. versionadded:: 1.10
|
||||
|
||||
.. data:: ELM_FOCUS_AUTOSCROLL_MODE_NONE
|
||||
|
||||
Do not show the focused region or item automatically.
|
||||
|
||||
.. versionadded:: 1.10
|
||||
|
||||
.. data:: ELM_FOCUS_AUTOSCROLL_MODE_BRING_IN
|
||||
|
||||
Bring_in the focused region or item automatically which might
|
||||
invole the scrolling
|
||||
|
||||
.. versionadded:: 1.10
|
||||
|
||||
|
||||
.. _Elm_Focus_Region_Show_Mode:
|
||||
|
||||
Focus region show mode
|
||||
----------------------
|
||||
|
||||
.. data:: ELM_FOCUS_REGION_SHOW_WIDGET
|
||||
|
||||
as a widget
|
||||
|
||||
.. versionadded:: 1.16
|
||||
|
||||
.. data:: ELM_FOCUS_REGION_SHOW_ITEM
|
||||
|
||||
as an item
|
||||
|
||||
.. versionadded:: 1.16
|
||||
|
||||
|
||||
.. _Elm_Input_Event_Type:
|
||||
|
||||
Input event types
|
||||
-----------------
|
||||
|
||||
.. data:: EVAS_CALLBACK_KEY_DOWN
|
||||
.. data:: EVAS_CALLBACK_KEY_UP
|
||||
.. data:: EVAS_CALLBACK_MOUSE_WHEEL
|
||||
|
||||
|
||||
.. _Elm_Object_Sel_Type:
|
||||
|
||||
Selection type
|
||||
--------------
|
||||
|
||||
Defines the types of selection property names.
|
||||
|
||||
:see: http://www.x.org/docs/X11/xlib.pdf for more details.
|
||||
|
||||
.. data:: ELM_SEL_TYPE_PRIMARY
|
||||
|
||||
Primary text selection (highlighted or selected text)
|
||||
|
||||
.. data:: ELM_SEL_TYPE_SECONDARY
|
||||
|
||||
Used when primary selection is in use
|
||||
|
||||
.. data:: ELM_SEL_TYPE_XDND
|
||||
|
||||
Drag 'n' Drop
|
||||
|
||||
.. data:: ELM_SEL_TYPE_CLIPBOARD
|
||||
|
||||
Clipboard selection (ctrl+C)
|
||||
|
||||
|
||||
.. _Elm_Object_Sel_Format:
|
||||
|
||||
Selection format
|
||||
----------------
|
||||
|
||||
Defines the types of content.
|
||||
|
||||
.. data:: ELM_SEL_FORMAT_TARGETS
|
||||
|
||||
For matching every possible atom
|
||||
|
||||
.. data:: ELM_SEL_FORMAT_NONE
|
||||
|
||||
Content is from outside of Elementary
|
||||
|
||||
.. data:: ELM_SEL_FORMAT_TEXT
|
||||
|
||||
Plain unformatted text: Used for things that don't want rich markup
|
||||
|
||||
.. data:: ELM_SEL_FORMAT_MARKUP
|
||||
|
||||
Edje textblock markup, including inline images
|
||||
|
||||
.. data:: ELM_SEL_FORMAT_IMAGE
|
||||
|
||||
Images
|
||||
|
||||
.. data:: ELM_SEL_FORMAT_VCARD
|
||||
|
||||
Vcards
|
||||
|
||||
.. data:: ELM_SEL_FORMAT_HTML
|
||||
|
||||
Raw HTML-like data (eg. webkit)
|
||||
|
||||
|
||||
.. _Elm_Object_Xdnd_Action:
|
||||
|
||||
XDND action
|
||||
-----------
|
||||
|
||||
Defines the kind of action associated with the drop data if for XDND
|
||||
|
||||
.. versionadded:: 1.8
|
||||
|
||||
.. data:: ELM_XDND_ACTION_UNKNOWN
|
||||
|
||||
Action type is unknown
|
||||
|
||||
.. data:: ELM_XDND_ACTION_COPY
|
||||
|
||||
Copy the data
|
||||
|
||||
.. data:: ELM_XDND_ACTION_MOVE
|
||||
|
||||
Move the data
|
||||
|
||||
.. data:: ELM_XDND_ACTION_PRIVATE
|
||||
|
||||
Private action type
|
||||
|
||||
.. data:: ELM_XDND_ACTION_ASK
|
||||
|
||||
Ask the user what to do
|
||||
|
||||
.. data:: ELM_XDND_ACTION_LIST
|
||||
|
||||
List the data
|
||||
|
||||
.. data:: ELM_XDND_ACTION_LINK
|
||||
|
||||
Link the data
|
||||
|
||||
.. data:: ELM_XDND_ACTION_DESCRIPTION
|
||||
|
||||
Describe the data
|
||||
|
||||
|
||||
.. _Elm_Object_Select_Mode:
|
||||
|
||||
Selection modes
|
||||
---------------
|
||||
|
||||
.. data:: ELM_OBJECT_SELECT_MODE_DEFAULT
|
||||
|
||||
Items will only call their selection func and callback when
|
||||
first becoming selected. Any further clicks will do nothing,
|
||||
unless you set always select mode.
|
||||
|
||||
.. data:: ELM_OBJECT_SELECT_MODE_ALWAYS
|
||||
|
||||
This means that, even if selected, every click will make the
|
||||
selected callbacks be called.
|
||||
|
||||
.. data:: ELM_OBJECT_SELECT_MODE_NONE
|
||||
|
||||
This will turn off the ability to select items entirely and
|
||||
they will neither appear selected nor call selected callback
|
||||
functions.
|
||||
|
||||
.. data:: ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY
|
||||
|
||||
No select mode with no finger size rule
|
||||
|
||||
|
||||
.. _Elm_Tooltip_Orient:
|
||||
|
||||
Tooltip orientation
|
||||
-------------------
|
||||
|
||||
.. data:: ELM_TOOLTIP_ORIENT_NONE
|
||||
|
||||
Default value, Tooltip moves with mouse pointer
|
||||
|
||||
.. versionadded:: 1.16
|
||||
|
||||
.. data:: ELM_TOOLTIP_ORIENT_TOP_LEFT
|
||||
|
||||
Tooltip should appear at the top left of parent
|
||||
|
||||
.. versionadded:: 1.16
|
||||
|
||||
.. data:: ELM_TOOLTIP_ORIENT_TOP
|
||||
|
||||
Tooltip should appear at the top of parent
|
||||
|
||||
.. versionadded:: 1.16
|
||||
|
||||
.. data:: ELM_TOOLTIP_ORIENT_TOP_RIGHT
|
||||
|
||||
Tooltip should appear at the top right of parent
|
||||
|
||||
.. versionadded:: 1.16
|
||||
|
||||
.. data:: ELM_TOOLTIP_ORIENT_LEFT
|
||||
|
||||
Tooltip should appear at the left of parent
|
||||
|
||||
.. versionadded:: 1.16
|
||||
|
||||
.. data:: ELM_TOOLTIP_ORIENT_CENTER
|
||||
|
||||
Tooltip should appear at the center of parent
|
||||
|
||||
.. versionadded:: 1.16
|
||||
|
||||
.. data:: ELM_TOOLTIP_ORIENT_RIGHT
|
||||
|
||||
Tooltip should appear at the right of parent
|
||||
|
||||
.. versionadded:: 1.16
|
||||
|
||||
.. data:: ELM_TOOLTIP_ORIENT_BOTTOM_LEFT
|
||||
|
||||
Tooltip should appear at the bottom left of parent
|
||||
|
||||
.. versionadded:: 1.16
|
||||
|
||||
.. data:: ELM_TOOLTIP_ORIENT_BOTTOM
|
||||
|
||||
Tooltip should appear at the bottom of parent
|
||||
|
||||
.. versionadded:: 1.16
|
||||
|
||||
.. data:: ELM_TOOLTIP_ORIENT_BOTTOM_RIGHT
|
||||
|
||||
Tooltip should appear at the bottom right of parent
|
||||
|
||||
.. versionadded:: 1.16
|
||||
|
||||
.. data:: ELM_TOOLTIP_ORIENT_LAST
|
||||
|
||||
Sentinel value, don't use
|
||||
|
||||
.. versionadded:: 1.16
|
||||
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: Object
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Object
|
||||
|
|
|
@ -1,2 +1,13 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.object_item
|
||||
Object Item
|
||||
###########
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: ObjectItem
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: ObjectItem
|
||||
|
|
|
@ -1,2 +1,61 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.panel
|
||||
Panel
|
||||
#####
|
||||
|
||||
.. image:: /images/panel-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
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.
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``toggled`` - Emitted when the panel has been toggled. (since 1.19)
|
||||
|
||||
|
||||
Layout content parts
|
||||
====================
|
||||
|
||||
- ``default`` - A content of the panel
|
||||
|
||||
|
||||
Enumerations
|
||||
============
|
||||
|
||||
.. _Elm_Panel_Orient:
|
||||
|
||||
Panel orientation types
|
||||
-----------------------
|
||||
|
||||
.. data:: ELM_PANEL_ORIENT_TOP
|
||||
|
||||
Panel (dis)appears from the top
|
||||
|
||||
.. data:: ELM_PANEL_ORIENT_BOTTOM
|
||||
|
||||
Panel (dis)appears from the bottom
|
||||
|
||||
.. data:: ELM_PANEL_ORIENT_LEFT
|
||||
|
||||
Panel (dis)appears from the left
|
||||
|
||||
.. data:: ELM_PANEL_ORIENT_RIGHT
|
||||
|
||||
Panel (dis)appears from the right
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: Panel
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Panel
|
||||
|
|
|
@ -1,2 +1,46 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.panes
|
||||
Panes
|
||||
#####
|
||||
|
||||
.. image:: /images/panes-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
The panes widget adds a draggable bar between two contents. When
|
||||
dragged this bar will resize contents' size.
|
||||
|
||||
Panes can be displayed vertically or horizontally, and contents size
|
||||
proportion can be customized (homogeneous by default).
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``press`` - The panes has been pressed (button wasn't released yet).
|
||||
- ``unpressed`` - The panes was released after being pressed.
|
||||
- ``clicked`` - The panes has been clicked.
|
||||
- ``clicked,double`` - The panes has been double clicked.
|
||||
|
||||
|
||||
Layout content parts
|
||||
====================
|
||||
|
||||
- ``left`` - A leftside content of the panes
|
||||
- ``right`` - A rightside content of the panes
|
||||
- ``top`` - A top content of the vertical panes
|
||||
- ``bottom`` - A bottom content of the vertical panes
|
||||
|
||||
If panes are displayed vertically, left content will be displayed on top.
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: Panes
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Panes
|
||||
|
|
|
@ -1,2 +1,39 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.photo
|
||||
Photo
|
||||
#####
|
||||
|
||||
.. image:: /images/photo-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
An Elementary photo widget is intended for displaying a photo, for
|
||||
ex., a person's image (contact).
|
||||
|
||||
Simple, yet with a very specific purpose. It has a decorative frame
|
||||
around the inner image itself, on the default theme.
|
||||
|
||||
This widget relies on an internal :py:class:`~efl.elementary.icon.Icon`, so
|
||||
that the APIs of these two widgets are similar (drag and drop is also possible
|
||||
here, for example).
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``clicked`` - This is called when a user has clicked the photo
|
||||
- ``drag,start`` - One has started dragging the inner image out of the photo's
|
||||
frame
|
||||
- ``drag,end`` - One has dropped the dragged image somewhere
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: Photo
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Photo
|
||||
|
|
|
@ -1,2 +1,93 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.photocam
|
||||
Photocam
|
||||
########
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
This is a widget specifically for displaying high-resolution digital
|
||||
camera photos giving speedy feedback (fast load), low memory footprint
|
||||
and zooming and panning as well as fitting logic. It is entirely focused
|
||||
on jpeg images, and takes advantage of properties of the jpeg format (via
|
||||
evas loader features in the jpeg loader).
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``clicked`` - This is called when a user has clicked the photo without
|
||||
dragging around.
|
||||
- ``press`` - This is called when a user has pressed down on the photo.
|
||||
- ``longpressed`` - This is called when a user has pressed down on the
|
||||
photo for a long time without dragging around.
|
||||
- ``clicked,double`` - This is called when a user has double-clicked the
|
||||
photo.
|
||||
- ``load`` - Photo load begins.
|
||||
- ``loaded`` - This is called when the image file load is complete for
|
||||
the first view (low resolution blurry version).
|
||||
- ``load,detail`` - Photo detailed data load begins.
|
||||
- ``loaded,detail`` - This is called when the image file load is
|
||||
complete for the detailed image data (full resolution needed).
|
||||
- ``zoom,start`` - Zoom animation started.
|
||||
- ``zoom,stop`` - Zoom animation stopped.
|
||||
- ``zoom,change`` - Zoom changed when using an auto zoom mode.
|
||||
- ``scroll`` - the content has been scrolled (moved)
|
||||
- ``scroll,anim,start`` - scrolling animation has started
|
||||
- ``scroll,anim,stop`` - scrolling animation has stopped
|
||||
- ``scroll,drag,start`` - dragging the contents around has started
|
||||
- ``scroll,drag,stop`` - dragging the contents around has stopped
|
||||
- ``download,start`` - remote url download has started
|
||||
- ``download,progress`` - url download in progress
|
||||
- ``download,end`` - remote url download has finished
|
||||
- ``download,error`` - remote url download has finished with errors
|
||||
|
||||
|
||||
Scrollable Interface
|
||||
====================
|
||||
|
||||
This widget supports the scrollable interface.
|
||||
|
||||
If you wish to control the scrolling behaviour using these functions,
|
||||
inherit both the widget class and the
|
||||
:py:class:`~efl.elementary.scroller.Scrollable` class
|
||||
using multiple inheritance, for example::
|
||||
|
||||
class ScrollableGenlist(Genlist, Scrollable):
|
||||
def __init__(self, canvas, *args, **kwargs):
|
||||
Genlist.__init__(self, canvas)
|
||||
|
||||
|
||||
Enumerations
|
||||
============
|
||||
|
||||
.. _Elm_Photocam_Zoom_Mode:
|
||||
|
||||
Photocam zoom modes
|
||||
-------------------
|
||||
|
||||
.. data:: ELM_PHOTOCAM_ZOOM_MODE_MANUAL
|
||||
|
||||
Zoom controlled normally by :py:attr:`~Photocam.zoom`
|
||||
|
||||
.. data:: ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT
|
||||
|
||||
Zoom until photo fits in photocam
|
||||
|
||||
.. data:: ELM_PHOTOCAM_ZOOM_MODE_AUTO_FILL
|
||||
|
||||
Zoom until photo fills photocam
|
||||
|
||||
.. data:: ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT_IN
|
||||
|
||||
Zoom in until photo fits in photocam
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: Photocam
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Photocam
|
||||
|
|
|
@ -1,2 +1,38 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.plug
|
||||
Plug
|
||||
####
|
||||
|
||||
|
||||
Widget Description
|
||||
==================
|
||||
|
||||
An object that allows one to show an image which other process created.
|
||||
It can be used anywhere like any other elementary widget.
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``clicked`` - the user clicked the image (press/release).
|
||||
- ``image,deleted`` - the server side was deleted.
|
||||
- ``image,resized`` - the server side was resized. The ``event_info`` parameter
|
||||
of the callback will be ``Evas_Coord_Size`` (two integers).
|
||||
|
||||
.. note::
|
||||
the event "image,resized" will be sent whenever the server
|
||||
resized its image and this **always** happen on the first
|
||||
time. Then it can be used to track when the server-side image
|
||||
is fully known (client connected to server, retrieved its
|
||||
image buffer through shared memory and resized the evas
|
||||
object).
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: Plug
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Plug
|
||||
|
|
|
@ -1,2 +1,151 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.popup
|
||||
Popup
|
||||
#####
|
||||
|
||||
.. image:: /images/popup-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
This widget is an enhancement of :py:class:`~efl.elementary.notify.Notify`.
|
||||
In addition to Content area, there are two optional sections namely Title
|
||||
area and Action area.
|
||||
|
||||
Popup Widget displays its content with a particular orientation in the
|
||||
parent area. This orientation can be one among top, center, bottom,
|
||||
left, top-left, top-right, bottom-left and bottom-right. Content part of
|
||||
Popup can be an Evas Object set by application or it can be Text set by
|
||||
application or set of items containing an icon and/or text. The
|
||||
content/item-list can be removed using elm_object_content_set with second
|
||||
parameter passed as None.
|
||||
|
||||
Following figures shows the textual layouts of popup in which Title Area
|
||||
and Action area area are optional ones. Action area can have up to 3
|
||||
buttons handled using elm_object common APIs mentioned below. If user
|
||||
wants to have more than 3 buttons then these buttons can be put inside
|
||||
the items of a list as content. User needs to handle the clicked signal
|
||||
of these action buttons if required. No event is processed by the widget
|
||||
automatically when clicked on these action buttons.
|
||||
|
||||
Figure::
|
||||
|
||||
|---------------------| |---------------------| |---------------------|
|
||||
| Title Area | | Title Area | | Title Area |
|
||||
|Icon| Text | |Icon| Text | |Icon| Text |
|
||||
|---------------------| |---------------------| |---------------------|
|
||||
| Item 1 | | | | |
|
||||
|---------------------| | | | |
|
||||
| Item 2 | | | | Description |
|
||||
|---------------------| | Content | | |
|
||||
| Item 3 | | | | |
|
||||
|---------------------| | | | |
|
||||
| . | |---------------------| |---------------------|
|
||||
| . | | Action Area | | Action Area |
|
||||
| . | | Btn1 |Btn2|. |Btn3 | | Btn1 |Btn2| |Btn3 |
|
||||
|---------------------| |---------------------| |---------------------|
|
||||
| Item N | Content Based Layout Description based Layout
|
||||
|---------------------|
|
||||
| Action Area |
|
||||
| Btn1 |Btn2|. |Btn3 |
|
||||
|---------------------|
|
||||
Item Based Layout
|
||||
|
||||
Timeout can be set on expiry of which popup instance hides and sends a
|
||||
smart signal "timeout" to the user. The visible region of popup is
|
||||
surrounded by a translucent region called Blocked Event area. By
|
||||
clicking on Blocked Event area, the signal "block,clicked" is sent to
|
||||
the application. This block event area can be avoided by using API
|
||||
elm_popup_allow_events_set. When gets hidden, popup does not get
|
||||
destroyed automatically, application should destroy the popup instance
|
||||
after use. To control the maximum height of the internal scroller for
|
||||
item, we use the height of the action area which is passed by theme
|
||||
based on the number of buttons currently set to popup.
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``timeout`` - when ever popup is closed as a result of timeout.
|
||||
- ``block,clicked`` - when ever user taps on Blocked Event area.
|
||||
- ``item,focused`` - the popup item has received focus. (since 1.10)
|
||||
- ``item,unfocused`` - the popup item has lost focus. (since 1.10)
|
||||
- ``dismissed`` - the popup has been dismissed. (since 1.17)
|
||||
|
||||
|
||||
Layout content parts
|
||||
====================
|
||||
|
||||
- ``default`` - The content of the popup
|
||||
- ``title,icon`` - Title area's icon
|
||||
- ``button1`` - 1st button of the action area
|
||||
- ``button2`` - 2nd button of the action area
|
||||
- ``button3`` - 3rd button of the action area
|
||||
- ``default`` - Item's icon
|
||||
|
||||
|
||||
Layout text parts
|
||||
=================
|
||||
|
||||
- ``title,text`` - This operates on Title area's label
|
||||
- ``default`` - content-text set in the content area of the widget
|
||||
- ``default`` - Item's label
|
||||
|
||||
|
||||
Enumerations
|
||||
============
|
||||
|
||||
.. _Elm_Popup_Orient:
|
||||
|
||||
Popup orientation types
|
||||
-----------------------
|
||||
|
||||
.. data:: ELM_POPUP_ORIENT_TOP
|
||||
|
||||
Popup should appear in the top of parent, default
|
||||
|
||||
.. data:: ELM_POPUP_ORIENT_CENTER
|
||||
|
||||
Popup should appear in the center of parent
|
||||
|
||||
.. data:: ELM_POPUP_ORIENT_BOTTOM
|
||||
|
||||
Popup should appear in the bottom of parent
|
||||
|
||||
.. data:: ELM_POPUP_ORIENT_LEFT
|
||||
|
||||
Popup should appear in the left of parent
|
||||
|
||||
.. data:: ELM_POPUP_ORIENT_RIGHT
|
||||
|
||||
Popup should appear in the right of parent
|
||||
|
||||
.. data:: ELM_POPUP_ORIENT_TOP_LEFT
|
||||
|
||||
Popup should appear in the top left of parent
|
||||
|
||||
.. data:: ELM_POPUP_ORIENT_TOP_RIGHT
|
||||
|
||||
Popup should appear in the top right of parent
|
||||
|
||||
.. data:: ELM_POPUP_ORIENT_BOTTOM_LEFT
|
||||
|
||||
Popup should appear in the bottom left of parent
|
||||
|
||||
.. data:: ELM_POPUP_ORIENT_BOTTOM_RIGHT
|
||||
|
||||
Popup should appear in the bottom right of parent
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram::
|
||||
Popup
|
||||
PopupItem
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Popup
|
||||
.. autoclass:: PopupItem
|
||||
|
|
|
@ -1,2 +1,67 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.progressbar
|
||||
Progressbar
|
||||
###########
|
||||
|
||||
.. image:: /images/progressbar-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
The progress bar is a widget for visually representing the progress
|
||||
status of a given job/task.
|
||||
|
||||
A progress bar may be horizontal or vertical. It may display an icon
|
||||
besides it, as well as primary and **units** labels. The former is meant
|
||||
to label the widget as a whole, while the latter, which is formatted
|
||||
with floating point values (and thus accepts a ``printf``-style format
|
||||
string, like ``"%1.2f units"``), is meant to label the widget's **progress
|
||||
value**. Label, icon and unit strings/objects are **optional** for
|
||||
progress bars.
|
||||
|
||||
A progress bar may be **inverted**, in which case it gets its values
|
||||
inverted, i.e., high values being on the left or top and low values on
|
||||
the right or bottom, for horizontal and vertical modes respectively.
|
||||
|
||||
The **span** of the progress, as set by :py:attr:`~Progressbar.span_size`, is
|
||||
its length (horizontally or vertically), unless one puts size hints on the
|
||||
widget to expand on desired directions, by any container. That length will be
|
||||
scaled by the object or applications scaling factor. Applications can query the
|
||||
progress bar for its value with :py:attr:`~Progressbar.value`.
|
||||
|
||||
This widget emits the following signals, besides the ones sent from
|
||||
:py:class:`~efl.elementary.layout_class.LayoutClass`:
|
||||
|
||||
- ``changed`` - when the value is changed
|
||||
|
||||
|
||||
This widget has the following styles:
|
||||
|
||||
- ``default``
|
||||
- ``wheel`` (simple style, no text, no progression, only "pulse"
|
||||
effect is available)
|
||||
- ``double`` (style with two independent progress indicators)
|
||||
|
||||
Default text parts of the progressbar widget that you can use for are:
|
||||
|
||||
- ``default`` - Label of the progressbar
|
||||
|
||||
Default content parts of the progressbar widget that you can use for are:
|
||||
|
||||
- ``icon`` - An icon of the progressbar
|
||||
|
||||
Default part names for the "recording" style:
|
||||
|
||||
- ``elm.cur.progressbar`` - The "main" indicator bar
|
||||
- ``elm.cur.progressbar1`` - The "secondary" indicator bar
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: Progressbar
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Progressbar
|
||||
|
|
|
@ -1,2 +1,61 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.radio
|
||||
Radio
|
||||
#####
|
||||
|
||||
.. image:: /images/radio-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
Radio is a widget that allows for one or more options to be displayed
|
||||
and have the user choose only one of them.
|
||||
|
||||
A radio object contains an indicator, an optional Label and an optional
|
||||
icon object. While it's possible to have a group of only one radio they,
|
||||
are normally used in groups of two or more.
|
||||
|
||||
Radio objects are grouped in a slightly different, compared to other UI
|
||||
toolkits. There is no separate group name/id to remember or manage. The
|
||||
members represent the group, there are the group. To make a group, use
|
||||
:py:meth:`Radio.group_add` and pass existing radio object and the new radio
|
||||
object.
|
||||
|
||||
The radio object(s) will select from one of a set of integer values, so
|
||||
any value they are configuring needs to be mapped to a set of integers.
|
||||
To configure what value that radio object represents, use
|
||||
:py:attr:`~Radio.state_value` to set the integer it represents. The
|
||||
value of the whole group (which one is currently selected) is
|
||||
represented by the property :py:attr:`~Radio.value` on any group member. For
|
||||
convenience the radio objects are also able to directly set an
|
||||
integer(int) to the value that is selected.
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``changed`` - This is called whenever the user changes the state of one of
|
||||
the radio objects within the group of radio objects that work together.
|
||||
|
||||
|
||||
Layout text parts
|
||||
=================
|
||||
|
||||
- ``default`` - Label of the radio
|
||||
|
||||
|
||||
Layout content parts
|
||||
====================
|
||||
|
||||
- ``icon`` - An icon of the radio
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: Radio
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Radio
|
||||
|
|
|
@ -1,2 +1,135 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.scroller
|
||||
Scroller
|
||||
########
|
||||
|
||||
.. image:: /images/scroller-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
A scroller holds a single object and "scrolls it around".
|
||||
|
||||
This means that it allows the user to use a scrollbar (or a finger) to
|
||||
drag the viewable region around, allowing to move through a much larger
|
||||
object that is contained in the scroller. The scroller will always have
|
||||
a small minimum size by default as it won't be limited by the contents
|
||||
of the scroller.
|
||||
|
||||
This widget inherits from :py:class:`~efl.elementary.layout_class.LayoutClass`,
|
||||
so that all the functions acting on it also work for scroller objects.
|
||||
|
||||
.. note:: When Elementary is in embedded mode the scrollbars will not be
|
||||
draggable, they appear merely as indicators of how much has been
|
||||
scrolled.
|
||||
|
||||
.. note:: When Elementary is in desktop mode the thumbscroll(a.k.a.
|
||||
fingerscroll) won't work.
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``edge,left`` - the left edge of the content has been reached
|
||||
- ``edge,right`` - the right edge of the content has been reached
|
||||
- ``edge,top`` - the top edge of the content has been reached
|
||||
- ``edge,bottom`` - the bottom edge of the content has been reached
|
||||
- ``scroll`` - the content has been scrolled (moved)
|
||||
- ``scroll,left`` - the content has been scrolled (moved) leftwards
|
||||
- ``scroll,right`` - the content has been scrolled (moved) rightwards
|
||||
- ``scroll,up`` - the content has been scrolled (moved) upwards
|
||||
- ``scroll,down`` - the content has been scrolled (moved) downwards
|
||||
- ``scroll,anim,start`` - scrolling animation has started
|
||||
- ``scroll,anim,stop`` - scrolling animation has stopped
|
||||
- ``scroll,drag,start`` - dragging the contents around has started
|
||||
- ``scroll,drag,stop`` - dragging the contents around has stopped
|
||||
- ``vbar,drag`` - the vertical scroll bar has been dragged
|
||||
- ``vbar,press`` - the vertical scroll bar has been pressed
|
||||
- ``vbar,unpress`` - the vertical scroll bar has been unpressed
|
||||
- ``hbar,drag`` - the horizontal scroll bar has been dragged
|
||||
- ``hbar,press`` - the horizontal scroll bar has been pressed
|
||||
- ``hbar,unpress`` - the horizontal scroll bar has been unpressed
|
||||
- ``scroll,page,changed`` - the visible page has changed
|
||||
|
||||
.. note:: The "scroll,anim,*" and "scroll,drag,*" signals are only emitted by
|
||||
user intervention.
|
||||
|
||||
|
||||
Layout content parts
|
||||
====================
|
||||
|
||||
- ``default`` - A content of the scroller
|
||||
|
||||
|
||||
Enumerations
|
||||
============
|
||||
|
||||
.. _Elm_Scroller_Policy:
|
||||
|
||||
Scrollbar visibility
|
||||
--------------------
|
||||
|
||||
.. data:: ELM_SCROLLER_POLICY_AUTO
|
||||
|
||||
Show scrollbars as needed
|
||||
|
||||
.. data:: ELM_SCROLLER_POLICY_ON
|
||||
|
||||
Always show scrollbars
|
||||
|
||||
.. data:: ELM_SCROLLER_POLICY_OFF
|
||||
|
||||
Never show scrollbars
|
||||
|
||||
|
||||
.. _Elm_Scroller_Single_Direction:
|
||||
|
||||
Single direction
|
||||
----------------
|
||||
|
||||
Type that controls how the content is scrolled.
|
||||
|
||||
.. data:: ELM_SCROLLER_SINGLE_DIRECTION_NONE
|
||||
|
||||
Scroll every direction
|
||||
|
||||
.. data:: ELM_SCROLLER_SINGLE_DIRECTION_SOFT
|
||||
|
||||
Scroll single direction if the direction is certain
|
||||
|
||||
.. data:: ELM_SCROLLER_SINGLE_DIRECTION_HARD
|
||||
|
||||
Scroll only single direction
|
||||
|
||||
|
||||
.. _Elm_Scroller_Movement_Block:
|
||||
|
||||
Movement block
|
||||
--------------
|
||||
|
||||
Type that blocks the scroll movement in one or more direction.
|
||||
|
||||
:since: 1.8
|
||||
|
||||
.. data:: ELM_SCROLLER_MOVEMENT_NO_BLOCK
|
||||
|
||||
Do not block movements
|
||||
|
||||
.. data:: ELM_SCROLLER_MOVEMENT_BLOCK_VERTICAL
|
||||
|
||||
Block vertical movements
|
||||
|
||||
.. data:: ELM_SCROLLER_MOVEMENT_BLOCK_HORIZONTAL
|
||||
|
||||
Block horizontal movements
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: Scroller
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Scroller
|
||||
.. autoclass:: Scrollable
|
||||
|
|
|
@ -1,2 +1,51 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.segment_control
|
||||
Segment Control
|
||||
###############
|
||||
|
||||
.. image:: /images/segmentcontrol-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
Segment control widget is a horizontal control made of multiple
|
||||
segment items, each segment item functioning similar to discrete two
|
||||
state button. A segment control groups the items together and provides
|
||||
compact single button with multiple equal size segments.
|
||||
|
||||
Segment item size is determined by base widget size and the number of
|
||||
items added. Only one segment item can be at selected state. A segment
|
||||
item can display combination of Text and any Evas_Object like Images or
|
||||
other widget.
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``changed`` - When the user clicks on a segment item which is not
|
||||
previously selected and get selected. The event_info parameter is the
|
||||
segment item.
|
||||
|
||||
|
||||
Layout content parts
|
||||
====================
|
||||
|
||||
- ``icon`` - An icon in a segment control item
|
||||
|
||||
|
||||
Layout text parts
|
||||
=================
|
||||
|
||||
- ``default`` - Title label in a segment control item
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: SegmentControl
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: SegmentControl
|
||||
.. autoclass:: SegmentControlItem
|
||||
|
|
|
@ -1,2 +1,24 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.separator
|
||||
Separator
|
||||
#########
|
||||
|
||||
.. image:: /images/separator-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
Separator is a very thin object used to separate other objects.
|
||||
|
||||
A separator can be vertical or horizontal.
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: Separator
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Separator
|
||||
|
|
|
@ -1,2 +1,68 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.slider
|
||||
Slider
|
||||
######
|
||||
|
||||
.. image:: /images/slider-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
The slider adds a draggable "slider" widget for selecting the value of
|
||||
something within a range.
|
||||
|
||||
A slider can be horizontal or vertical. It can contain an Icon and has a
|
||||
primary label as well as a units label (that is formatted with floating
|
||||
point values and thus accepts a printf-style format string, like
|
||||
``"%1.2f units"``. There is also an indicator string that may be somewhere
|
||||
else (like on the slider itself) that also accepts a format string like
|
||||
units. Label, Icon Unit and Indicator strings/objects are optional.
|
||||
|
||||
A slider may be inverted which means values invert, with high vales being
|
||||
on the left or top and low values on the right or bottom (as opposed to
|
||||
normally being low on the left or top and high on the bottom and right).
|
||||
|
||||
The slider should have its minimum and maximum values set by the
|
||||
application with :py:attr:`Slider.min_max` and value should also be set by
|
||||
the application before use with :py:attr:`Slider.value`. The span of the
|
||||
slider is its length (horizontally or vertically). This will be scaled by
|
||||
the object or applications scaling factor. At any point code can query the
|
||||
slider for its value with :py:attr:`Slider.value`.
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``changed`` - Whenever the slider value is changed by the user.
|
||||
- ``slider,drag,start`` - dragging the slider indicator around has
|
||||
started.
|
||||
- ``slider,drag,stop`` - dragging the slider indicator around has
|
||||
stopped.
|
||||
- ``delay,changed`` - A short time after the value is changed by
|
||||
the user. This will be called only when the user stops dragging
|
||||
for a very short period or when they release their finger/mouse,
|
||||
so it avoids possibly expensive reactions to the value change.
|
||||
|
||||
|
||||
Layout content parts
|
||||
====================
|
||||
|
||||
- ``icon`` - An icon of the slider
|
||||
- ``end`` - A end part content of the slider
|
||||
|
||||
|
||||
Layout text parts
|
||||
=================
|
||||
|
||||
- ``default`` - Label of the slider
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: Slider
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Slider
|
||||
|
|
|
@ -1,2 +1,74 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.slideshow
|
||||
Slideshow
|
||||
#########
|
||||
|
||||
.. image:: /images/slideshow-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
This widget, as the name indicates, is a pre-made image
|
||||
slideshow panel, with API functions acting on (child) image
|
||||
items presentation. Between those actions, are:
|
||||
|
||||
- advance to next/previous image
|
||||
- select the style of image transition animation
|
||||
- set the exhibition time for each image
|
||||
- start/stop the slideshow
|
||||
|
||||
The transition animations are defined in the widget's theme,
|
||||
consequently new animations can be added without having to
|
||||
update the widget's code.
|
||||
|
||||
Slideshow items
|
||||
===============
|
||||
|
||||
For slideshow items, just like for :py:class:`~efl.elementary.genlist.Genlist`
|
||||
ones, the user defines a **classes**, specifying functions that will be called
|
||||
on the item's creation and deletion times.
|
||||
|
||||
The :py:class:`SlideshowItemClass` class contains the following
|
||||
members:
|
||||
|
||||
- ``get`` - When an item is displayed, this function is
|
||||
called, and it's where one should create the item object, de
|
||||
facto. For example, the object can be a pure Evas image object
|
||||
or a :py:class:`~efl.elementary.photocam.Photocam` widget.
|
||||
|
||||
- ``delete`` - When an item is no more displayed, this function
|
||||
is called, where the user must delete any data associated to
|
||||
the item.
|
||||
|
||||
Slideshow caching
|
||||
=================
|
||||
|
||||
The slideshow provides facilities to have items adjacent to the
|
||||
one being displayed **already "realized"** (i.e. loaded) for
|
||||
you, so that the system does not have to decode image data
|
||||
anymore at the time it has to actually switch images on its
|
||||
viewport. The user is able to set the numbers of items to be
|
||||
cached **before** and **after** the current item, in the widget's
|
||||
item list.
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``changed`` - when the slideshow switches its view to a new item.
|
||||
event_info parameter in callback contains the current visible item
|
||||
- ``transition,end`` - when a slide transition ends. event_info
|
||||
parameter in callback contains the current visible item
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: Slideshow
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Slideshow
|
||||
.. autoclass:: SlideshowItem
|
||||
.. autoclass:: SlideshowItemClass
|
||||
|
|
|
@ -1,2 +1,54 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.spinner
|
||||
Spinner
|
||||
#######
|
||||
|
||||
.. image:: /images/spinner-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
A spinner is a widget which allows the user to increase or decrease
|
||||
numeric values using arrow buttons, or edit values directly, clicking
|
||||
over it and typing the new value.
|
||||
|
||||
By default the spinner will not wrap and has a label
|
||||
of ``"%.0f"`` (just showing the integer value of the double).
|
||||
|
||||
A spinner has a label that is formatted with floating
|
||||
point values and thus accepts a printf-style format string, like
|
||||
``"%1.2f units"``.
|
||||
|
||||
It also allows specific values to be replaced by pre-defined labels.
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``changed`` - Whenever the spinner value is changed.
|
||||
- ``delay,changed`` - A short time after the value is changed by
|
||||
the user. This will be called only when the user stops dragging
|
||||
for a very short period or when they release their finger/mouse,
|
||||
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
|
||||
================
|
||||
|
||||
- ``default``: Default style
|
||||
- ``vertical``: up/down buttons at the right side and text left aligned.
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: Spinner
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Spinner
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
|
||||
.. automodule:: efl.elementary.systray
|
|
@ -1,2 +1,38 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.table
|
||||
Table
|
||||
#####
|
||||
|
||||
.. image:: /images/table-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
A container widget to arrange other widgets in a table where items can
|
||||
span multiple columns or rows - even overlap (and then be raised or
|
||||
lowered accordingly to adjust stacking if they do overlap).
|
||||
|
||||
The row and column count is not fixed. The table widget adjusts itself
|
||||
when subobjects are added to it dynamically.
|
||||
|
||||
The most common way to use a table is::
|
||||
|
||||
table = Table(win)
|
||||
table.show()
|
||||
table.padding = (space_between_columns, space_between_rows)
|
||||
table.pack(table_content_object, x_coord, y_coord, colspan, rowspan)
|
||||
table.pack(table_content_object, x_coord, y_coord, colspan, rowspan)
|
||||
table.pack(table_content_object, x_coord, y_coord, colspan, rowspan)
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: Table
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Table
|
||||
.. autofunction:: table_pack_set
|
||||
.. autofunction:: table_pack_get
|
||||
|
|
|
@ -1,2 +1,81 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.theme
|
||||
Theme
|
||||
#####
|
||||
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Elementary uses Edje to theme its widgets, naturally. But for the most
|
||||
part this is hidden behind a simpler interface that lets the user set
|
||||
extensions and choose the style of widgets in a much easier way.
|
||||
|
||||
Instead of thinking in terms of paths to Edje files and their groups
|
||||
each time you want to change the appearance of a widget, Elementary
|
||||
works so you can add any theme file with extensions or replace the
|
||||
main theme at one point in the application, and then just set the style
|
||||
of widgets with
|
||||
:py:attr:`Object.style<efl.elementary.object.Object.style>`
|
||||
and related functions. Elementary
|
||||
will then look in its list of themes for a matching group and apply it,
|
||||
and when the theme changes midway through the application, all widgets
|
||||
will be updated accordingly.
|
||||
|
||||
There are three concepts you need to know to understand how Elementary
|
||||
theming works: default theme, extensions and overlays.
|
||||
|
||||
Default theme, obviously enough, is the one that provides the default
|
||||
look of all widgets. End users can change the theme used by Elementary
|
||||
by setting the ``ELM_THEME`` environment variable before running an
|
||||
application, or globally for all programs using the ``elementary_config``
|
||||
utility. Applications can change the default theme using :py:attr:`Theme.order`,
|
||||
but this can go against the user wishes, so it's not an advised practice.
|
||||
|
||||
Ideally, applications should find everything they need in the already
|
||||
provided theme, but there may be occasions when that's not enough and
|
||||
custom styles are required to correctly express the idea. For this
|
||||
cases, Elementary has extensions.
|
||||
|
||||
Extensions allow the application developer to write styles of its own
|
||||
to apply to some widgets. This requires knowledge of how each widget
|
||||
is themed, as extensions will always replace the entire group used by
|
||||
the widget, so important signals and parts need to be there for the
|
||||
object to behave properly (see documentation of Edje for details).
|
||||
Once the theme for the extension is done, the application needs to add
|
||||
it to the list of themes Elementary will look into, using
|
||||
:py:func:`Theme.extension_add()`, and set the style of the desired widgets as
|
||||
he would normally with
|
||||
:py:attr:`Object.style<efl.elementary.object.Object.style>`.
|
||||
|
||||
Overlays, on the other hand, can replace the look of all widgets by
|
||||
overriding the default style. Like extensions, it's up to the application
|
||||
developer to write the theme for the widgets it wants, the difference
|
||||
being that when looking for the theme, Elementary will check first the
|
||||
list of overlays, then the set theme and lastly the list of extensions,
|
||||
so with overlays it's possible to replace the default view and every
|
||||
widget will be affected. This is very much alike to setting the whole
|
||||
theme for the application and will probably clash with the end user
|
||||
options, not to mention the risk of ending up with not matching styles
|
||||
across the program. Unless there's a very special reason to use them,
|
||||
overlays should be avoided for the reasons exposed before.
|
||||
|
||||
All these theme lists are handled by :py:class:`Theme` instances. Elementary
|
||||
keeps one default internally. It's possible to create a new instance of a
|
||||
:py:class:`Theme` to set other theme for a specific widget (and all of its
|
||||
children), but this is as discouraged, if not even more so, than using
|
||||
overlays. Don't use this unless you really know what you are doing.
|
||||
|
||||
.. note::
|
||||
|
||||
Remember to :py:func:`Theme.free` the instance when you're done with it!
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: Theme
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Theme
|
||||
|
|
|
@ -1,2 +1,172 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.thumb
|
||||
Thumb
|
||||
#####
|
||||
|
||||
.. image:: /images/thumb-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
A thumbnail object is used for displaying the thumbnail of an image
|
||||
or video. You must have compiled Elementary with ``Ethumb_Client``
|
||||
support. Also, Ethumb's DBus service must be present and
|
||||
auto-activated in order to have thumbnails generated. You must also
|
||||
have a **session** bus, not a **system** one.
|
||||
|
||||
Once the thumbnail object becomes visible, it will check if there
|
||||
is a previously generated thumbnail image for the file set on
|
||||
it. If not, it will start generating this thumbnail.
|
||||
|
||||
Different configuration settings will cause different thumbnails to
|
||||
be generated even on the same file.
|
||||
|
||||
Generated thumbnails are stored under ``$HOME/.thumbnails/``. Check
|
||||
Ethumb's documentation to change this path, and to see other
|
||||
configuration options.
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``clicked`` - This is called when a user has clicked the
|
||||
thumbnail object without dragging it around.
|
||||
- ``clicked,double`` - This is called when a user has double-clicked
|
||||
the thumbnail object.
|
||||
- ``press`` - This is called when a user has pressed down over the
|
||||
thumbnail object.
|
||||
- ``generate,start`` - The thumbnail generation has started.
|
||||
- ``generate,stop`` - The generation process has stopped.
|
||||
- ``generate,error`` - The thumbnail generation failed.
|
||||
- ``load,error`` - The thumbnail image loading failed.
|
||||
|
||||
|
||||
Available styles
|
||||
================
|
||||
|
||||
- ``default``
|
||||
- ``noframe``
|
||||
|
||||
|
||||
Enumerations
|
||||
============
|
||||
|
||||
.. _Elm_Thumb_Animation_Setting:
|
||||
|
||||
Thumb animation mode
|
||||
--------------------
|
||||
|
||||
.. data:: ELM_THUMB_ANIMATION_START
|
||||
|
||||
Play animation once
|
||||
|
||||
.. data:: ELM_THUMB_ANIMATION_LOOP
|
||||
|
||||
Keep playing animation until stop is requested
|
||||
|
||||
.. data:: ELM_THUMB_ANIMATION_STOP
|
||||
|
||||
Stop playing the animation
|
||||
|
||||
|
||||
.. _Ethumb_Thumb_FDO_Size:
|
||||
|
||||
Thumb FDO size
|
||||
--------------
|
||||
|
||||
.. data:: ETHUMB_THUMB_NORMAL
|
||||
|
||||
128x128 as defined by FreeDesktop.Org standard
|
||||
|
||||
.. data:: ETHUMB_THUMB_LARGE
|
||||
|
||||
256x256 as defined by FreeDesktop.Org standard
|
||||
|
||||
|
||||
.. _Ethumb_Thumb_Format:
|
||||
|
||||
Thumb format
|
||||
------------
|
||||
|
||||
.. data:: ETHUMB_THUMB_FDO
|
||||
|
||||
PNG as defined by FreeDesktop.Org standard
|
||||
|
||||
.. data:: ETHUMB_THUMB_JPEG
|
||||
|
||||
JPEGs are often smaller and faster to read/write
|
||||
|
||||
.. data:: ETHUMB_THUMB_EET
|
||||
|
||||
EFL's own storage system, supports key parameter
|
||||
|
||||
|
||||
.. _Ethumb_Thumb_Aspect:
|
||||
|
||||
Thumb aspect
|
||||
------------
|
||||
|
||||
.. data:: ETHUMB_THUMB_KEEP_ASPECT
|
||||
|
||||
keep original proportion between width and height
|
||||
|
||||
.. data:: ETHUMB_THUMB_IGNORE_ASPECT
|
||||
|
||||
ignore aspect and foce it to match thumbnail's width and height
|
||||
|
||||
.. data:: ETHUMB_THUMB_CROP
|
||||
|
||||
keep aspect but crop (cut) the largest dimension
|
||||
|
||||
|
||||
.. _Ethumb_Thumb_Orientation:
|
||||
|
||||
Thumb orientation
|
||||
-----------------
|
||||
|
||||
.. data:: ETHUMB_THUMB_ORIENT_NONE
|
||||
|
||||
keep orientation as pixel data is
|
||||
|
||||
.. data:: ETHUMB_THUMB_ROTATE_90_CW
|
||||
|
||||
rotate 90° clockwise
|
||||
|
||||
.. data:: ETHUMB_THUMB_ROTATE_180
|
||||
|
||||
rotate 180°
|
||||
|
||||
.. data:: ETHUMB_THUMB_ROTATE_90_CCW
|
||||
|
||||
rotate 90° counter-clockwise
|
||||
|
||||
.. data:: ETHUMB_THUMB_FLIP_HORIZONTAL
|
||||
|
||||
flip horizontally
|
||||
|
||||
.. data:: ETHUMB_THUMB_FLIP_VERTICAL
|
||||
|
||||
flip vertically
|
||||
|
||||
.. data:: ETHUMB_THUMB_FLIP_TRANSPOSE
|
||||
|
||||
transpose
|
||||
|
||||
.. data:: ETHUMB_THUMB_FLIP_TRANSVERSE
|
||||
|
||||
transverse
|
||||
|
||||
.. data:: ETHUMB_THUMB_ORIENT_ORIGINAL
|
||||
|
||||
use orientation from metadata (EXIF-only currently)
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: Thumb
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Thumb
|
||||
|
|
|
@ -1,2 +1,127 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.toolbar
|
||||
Toolbar
|
||||
#######
|
||||
|
||||
.. image:: /images/toolbar-preview.png
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
A toolbar is a widget that displays a list of items inside a box. It
|
||||
can be scrollable, show a menu with items that don't fit to toolbar size
|
||||
or even crop them.
|
||||
|
||||
Only one item can be selected at a time.
|
||||
|
||||
Items can have multiple states, or show menus when selected by the user.
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``clicked`` - when the user clicks on a toolbar item and becomes selected.
|
||||
- ``longpressed`` - when the toolbar is pressed for a certain amount of time.
|
||||
- ``item,focused`` - When the toolbar item has received focus. (since 1.10)
|
||||
- ``item,unfocused`` - When the toolbar item has lost focus. (since 1.10)
|
||||
|
||||
|
||||
Available styles
|
||||
================
|
||||
|
||||
- ``default``
|
||||
- ``transparent`` - no background or shadow, just show the content
|
||||
|
||||
|
||||
Layout text parts
|
||||
=================
|
||||
|
||||
- ``default`` - label of the toolbar item
|
||||
|
||||
|
||||
Scrollable Interface
|
||||
====================
|
||||
|
||||
This widget supports the scrollable interface.
|
||||
|
||||
If you wish to control the scrolling behaviour using these functions,
|
||||
inherit both the widget class and the
|
||||
:py:class:`~efl.elementary.scroller.Scrollable` class
|
||||
using multiple inheritance, for example::
|
||||
|
||||
class ScrollableGenlist(Genlist, Scrollable):
|
||||
def __init__(self, canvas, *args, **kwargs):
|
||||
Genlist.__init__(self, canvas)
|
||||
|
||||
|
||||
Enumerations
|
||||
============
|
||||
|
||||
.. _Elm_Toolbar_Shrink_Mode:
|
||||
|
||||
Toolbar shrink modes
|
||||
--------------------
|
||||
|
||||
.. data:: ELM_TOOLBAR_SHRINK_NONE
|
||||
|
||||
Set toolbar minimum size to fit all the items
|
||||
|
||||
.. data:: ELM_TOOLBAR_SHRINK_HIDE
|
||||
|
||||
Hide exceeding items
|
||||
|
||||
.. data:: ELM_TOOLBAR_SHRINK_SCROLL
|
||||
|
||||
Allow accessing exceeding items through a scroller
|
||||
|
||||
.. data:: ELM_TOOLBAR_SHRINK_MENU
|
||||
|
||||
Inserts a button to pop up a menu with exceeding items
|
||||
|
||||
.. data:: ELM_TOOLBAR_SHRINK_EXPAND
|
||||
|
||||
Expand all items according the size of the toolbar.
|
||||
|
||||
|
||||
.. _Elm_Toolbar_Item_Scrollto_Type:
|
||||
|
||||
Toolbar item scrollto types
|
||||
---------------------------
|
||||
|
||||
Where to position the item in the toolbar.
|
||||
|
||||
.. data:: ELM_TOOLBAR_ITEM_SCROLLTO_NONE
|
||||
|
||||
No scrollto
|
||||
|
||||
.. data:: ELM_TOOLBAR_ITEM_SCROLLTO_IN
|
||||
|
||||
To the nearest viewport
|
||||
|
||||
.. data:: ELM_TOOLBAR_ITEM_SCROLLTO_FIRST
|
||||
|
||||
To the first of viewport
|
||||
|
||||
.. data:: ELM_TOOLBAR_ITEM_SCROLLTO_MIDDLE
|
||||
|
||||
To the middle of viewport
|
||||
|
||||
.. data:: ELM_TOOLBAR_ITEM_SCROLLTO_LAST
|
||||
|
||||
To the last of viewport
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram::
|
||||
Toolbar
|
||||
ToolbarItem
|
||||
ToolbarItemState
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Toolbar
|
||||
.. autoclass:: ToolbarItem
|
||||
.. autoclass:: ToolbarItemState
|
||||
|
|
|
@ -1,2 +1,166 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.transit
|
||||
Transit
|
||||
#######
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
Transit is designed to apply various animated transition effects to
|
||||
``Evas_Object``, such like translation, rotation, etc. For using these
|
||||
effects, create a :py:class:`Transit` and add the desired transition effects.
|
||||
|
||||
Once the effects are added into transit, they will be automatically managed
|
||||
(their callback will be called for the set duration and they will be deleted
|
||||
upon completion).
|
||||
|
||||
Example::
|
||||
|
||||
from efl.elementary.transit import Transit, ELM_TRANSIT_TWEEN_MODE_DECELERATE
|
||||
|
||||
t = Transit()
|
||||
t.object_add(obj)
|
||||
t.effect_translation_add(0, 0, 280, 280)
|
||||
t.duration = 1
|
||||
t.auto_reverse = True
|
||||
t.tween_mode = ELM_TRANSIT_TWEEN_MODE_DECELERATE
|
||||
t.repeat_times = 3
|
||||
|
||||
Some transition effects are used to change the properties of objects. They
|
||||
are:
|
||||
|
||||
- :py:func:`~Transit.effect_translation_add`
|
||||
- :py:func:`~Transit.effect_color_add`
|
||||
- :py:func:`~Transit.effect_rotation_add`
|
||||
- :py:func:`~Transit.effect_wipe_add`
|
||||
- :py:func:`~Transit.effect_zoom_add`
|
||||
- :py:func:`~Transit.effect_resizing_add`
|
||||
|
||||
Other transition effects are used to make one object disappear and another
|
||||
object appear on its place. These effects are:
|
||||
|
||||
- :py:func:`~Transit.effect_flip_add`
|
||||
- :py:func:`~Transit.effect_resizable_flip_add`
|
||||
- :py:func:`~Transit.effect_fade_add`
|
||||
- :py:func:`~Transit.effect_blend_add`
|
||||
|
||||
It's also possible to make a transition chain with
|
||||
:py:func:`~Transit.chain_transit_add`.
|
||||
|
||||
.. warning:: We strongly recommend to use elm_transit just when edje can
|
||||
not do the trick. Edje is better at handling transitions than
|
||||
Elm_Transit. Edje has more flexibility and animations can be
|
||||
manipulated inside the theme.
|
||||
|
||||
|
||||
Enumerations
|
||||
============
|
||||
|
||||
.. _Elm_Transit_Effect_Flip_Axis:
|
||||
|
||||
Flip effects
|
||||
------------
|
||||
|
||||
.. data:: ELM_TRANSIT_EFFECT_FLIP_AXIS_X
|
||||
|
||||
Flip on X axis
|
||||
|
||||
.. data:: ELM_TRANSIT_EFFECT_FLIP_AXIS_Y
|
||||
|
||||
Flip on Y axis
|
||||
|
||||
|
||||
.. _Elm_Transit_Effect_Wipe_Dir:
|
||||
|
||||
Wipe effects
|
||||
------------
|
||||
|
||||
.. data:: ELM_TRANSIT_EFFECT_WIPE_DIR_LEFT
|
||||
|
||||
Wipe to the left
|
||||
|
||||
.. data:: ELM_TRANSIT_EFFECT_WIPE_DIR_RIGHT
|
||||
|
||||
Wipe to the right
|
||||
|
||||
.. data:: ELM_TRANSIT_EFFECT_WIPE_DIR_UP
|
||||
|
||||
Wipe up
|
||||
|
||||
.. data:: ELM_TRANSIT_EFFECT_WIPE_DIR_DOWN
|
||||
|
||||
Wipe down
|
||||
|
||||
|
||||
.. _Elm_Transit_Effect_Wipe_Type:
|
||||
|
||||
Wipe types
|
||||
----------
|
||||
|
||||
.. data:: ELM_TRANSIT_EFFECT_WIPE_TYPE_HIDE
|
||||
|
||||
Hide the object during the animation.
|
||||
|
||||
.. data:: ELM_TRANSIT_EFFECT_WIPE_TYPE_SHOW
|
||||
|
||||
Show the object during the animation.
|
||||
|
||||
|
||||
.. _Elm_Transit_Tween_Mode:
|
||||
|
||||
Tween modes
|
||||
-----------
|
||||
|
||||
.. data:: ELM_TRANSIT_TWEEN_MODE_LINEAR
|
||||
|
||||
Constant speed
|
||||
|
||||
.. data:: ELM_TRANSIT_TWEEN_MODE_SINUSOIDAL
|
||||
|
||||
Starts slow, increase speed over time, then decrease again and stop slowly
|
||||
|
||||
.. data:: ELM_TRANSIT_TWEEN_MODE_DECELERATE
|
||||
|
||||
Starts fast and decrease speed over time
|
||||
|
||||
.. data:: ELM_TRANSIT_TWEEN_MODE_ACCELERATE
|
||||
|
||||
Starts slow and increase speed over time
|
||||
|
||||
.. data:: ELM_TRANSIT_TWEEN_MODE_DIVISOR_INTERP
|
||||
|
||||
Start at gradient v1, interpolated via power of v2 curve
|
||||
|
||||
.. versionadded:: 1.13
|
||||
|
||||
.. data:: ELM_TRANSIT_TWEEN_MODE_BOUNCE
|
||||
|
||||
Start at 0.0 then "drop" like a ball bouncing to the ground at 1.0, and
|
||||
bounce v2 times, with decay factor of v1
|
||||
|
||||
.. versionadded:: 1.13
|
||||
|
||||
.. data:: ELM_TRANSIT_TWEEN_MODE_SPRING
|
||||
|
||||
Start at 0.0 then "wobble" like a spring rest position 1.0, and wobble
|
||||
v2 times, with decay factor of v1
|
||||
|
||||
.. versionadded:: 1.13
|
||||
|
||||
.. data:: ELM_TRANSIT_TWEEN_MODE_BEZIER_CURVE
|
||||
|
||||
Follow the cubic-bezier curve calculated with the control points (x1,
|
||||
y1), (x2, y2)
|
||||
|
||||
.. versionadded:: 1.13
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: Transit
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Transit
|
||||
|
|
|
@ -1,2 +1,27 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.video
|
||||
Video
|
||||
#####
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
Display a video by using Emotion.
|
||||
|
||||
It embeds the video inside an Edje object, so you can do some
|
||||
animation depending on the video state change. It also implements a
|
||||
resource management policy to remove this burden from the application.
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram::
|
||||
Video
|
||||
Player
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Video
|
||||
.. autoclass:: Player
|
||||
|
|
|
@ -1,2 +1,139 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.web
|
||||
Web
|
||||
###
|
||||
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
A web widget is used for displaying web pages (HTML/CSS/JS)
|
||||
using WebKit-EFL. You must have compiled Elementary with
|
||||
ewebkit support.
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``download,request``: A file download has been requested. Event info is
|
||||
a WebDownload instance
|
||||
- ``editorclient,contents,changed``: Editor client's contents changed
|
||||
- ``editorclient,selection,changed``: Editor client's selection changed
|
||||
- ``frame,created``: A new frame was created. Event info is an
|
||||
Evas_Object which can be handled with WebKit's ewk_frame API
|
||||
- ``icon,received``: An icon was received by the main frame
|
||||
- ``inputmethod,changed``: Input method changed. Event info is an
|
||||
Eina_Bool indicating whether it's enabled or not
|
||||
- ``js,windowobject,clear``: JS window object has been cleared
|
||||
- ``link,hover,in``: Mouse cursor is hovering over a link. Event info
|
||||
is a tuple, where the first string contains the URL the link
|
||||
points to, and the second one the title of the link
|
||||
- ``link,hover,out``: Mouse cursor left the link
|
||||
- ``load,document,finished``: Loading of a document finished. Event info
|
||||
is the frame that finished loading
|
||||
- ``load,error``: Load failed. Event info is a WebFrameLoadError instance
|
||||
- ``load,finished``: Load finished. Event info is None on success, on
|
||||
error it's a WebFrameLoadError instance
|
||||
- ``load,newwindow,show``: A new window was created and is ready to be
|
||||
shown
|
||||
- ``load,progress``: Overall load progress. Event info is
|
||||
a double containing a value between 0.0 and 1.0
|
||||
- ``load,provisional``: Started provisional load
|
||||
- ``load,started``: Loading of a document started
|
||||
- ``menubar,visible,get``: Queries if the menubar is visible. Event info
|
||||
is a bool where the callback should set True if
|
||||
the menubar is visible, or False in case it's not
|
||||
- ``menubar,visible,set``: Informs menubar visibility. Event info is
|
||||
a bool indicating the visibility
|
||||
- ``popup,created``: A dropdown widget was activated, requesting its
|
||||
popup menu to be created. Event info is a WebMenu instance
|
||||
- ``popup,willdelete``: The web object is ready to destroy the popup
|
||||
object created. Event info is a WebMenu instance
|
||||
- ``ready``: Page is fully loaded
|
||||
- ``scrollbars,visible,get``: Queries visibility of scrollbars. Event
|
||||
info is a bool where the visibility state should be set
|
||||
- ``scrollbars,visible,set``: Informs scrollbars visibility. Event info
|
||||
is an Eina_Bool with the visibility state set
|
||||
- ``statusbar,text,set``: Text of the statusbar changed. Event info is
|
||||
a string with the new text
|
||||
- ``statusbar,visible,get``: Queries visibility of the status bar.
|
||||
Event info is a bool where the visibility state should be
|
||||
set.
|
||||
- ``statusbar,visible,set``: Informs statusbar visibility. Event info is
|
||||
an Eina_Bool with the visibility value
|
||||
- ``title,changed``: Title of the main frame changed. Event info is a
|
||||
string with the new title
|
||||
- ``toolbars,visible,get``: Queries visibility of toolbars. Event info
|
||||
is a bool where the visibility state should be set
|
||||
- ``toolbars,visible,set``: Informs the visibility of toolbars. Event
|
||||
info is an Eina_Bool with the visibility state
|
||||
- ``tooltip,text,set``: Show and set text of a tooltip. Event info is
|
||||
a string with the text to show
|
||||
- ``uri,changed``: URI of the main frame changed. Event info is a string (deprecated. use ``url,changed`` instead)
|
||||
- ``url,changed``: URL of the main frame changed. Event info is a string
|
||||
with the new URI
|
||||
- ``view,resized``: The web object internal's view changed sized
|
||||
- ``windows,close,request``: A JavaScript request to close the current
|
||||
window was requested
|
||||
- ``zoom,animated,end``: Animated zoom finished
|
||||
|
||||
|
||||
Enumerations
|
||||
============
|
||||
|
||||
.. _Elm_Web_Window_Feature:
|
||||
|
||||
Web window features
|
||||
-------------------
|
||||
|
||||
.. data:: ELM_WEB_WINDOW_FEATURE_TOOLBAR
|
||||
|
||||
Toolbar
|
||||
|
||||
.. data:: ELM_WEB_WINDOW_FEATURE_STATUSBAR
|
||||
|
||||
Status bar
|
||||
|
||||
.. data:: ELM_WEB_WINDOW_FEATURE_SCROLLBARS
|
||||
|
||||
Scrollbars
|
||||
|
||||
.. data:: ELM_WEB_WINDOW_FEATURE_MENUBAR
|
||||
|
||||
Menu bar
|
||||
|
||||
.. data:: ELM_WEB_WINDOW_FEATURE_LOCATIONBAR
|
||||
|
||||
Location bar
|
||||
|
||||
.. data:: ELM_WEB_WINDOW_FEATURE_FULLSCREEN
|
||||
|
||||
Fullscreen
|
||||
|
||||
|
||||
.. _Elm_Web_Zoom_Mode:
|
||||
|
||||
Web zoom modes
|
||||
--------------
|
||||
|
||||
.. data:: ELM_WEB_ZOOM_MODE_MANUAL
|
||||
|
||||
Zoom controlled normally by :py:attr:`~Web.zoom`
|
||||
|
||||
.. data:: ELM_WEB_ZOOM_MODE_AUTO_FIT
|
||||
|
||||
Zoom until content fits in web object.
|
||||
|
||||
.. data:: ELM_WEB_ZOOM_MODE_AUTO_FILL
|
||||
|
||||
Zoom until content fills web object.
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram:: Web
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Web
|
||||
|
|
|
@ -1,2 +1,359 @@
|
|||
.. currentmodule:: efl.elementary
|
||||
|
||||
.. automodule:: efl.elementary.window
|
||||
Window
|
||||
######
|
||||
|
||||
Widget description
|
||||
==================
|
||||
|
||||
The window class of Elementary.
|
||||
|
||||
Contains functions to manipulate windows. The Evas engine used to render
|
||||
the window contents is specified in the system or user elementary config
|
||||
files (whichever is found last), and can be overridden with the
|
||||
ELM_ENGINE environment variable for testing. Engines that may be
|
||||
supported (depending on Evas and Ecore-Evas compilation setup and
|
||||
modules actually installed at runtime) are (listed in order of best
|
||||
supported and most likely to be complete and work to lowest quality).
|
||||
|
||||
Note that ELM_ENGINE is really only needed for special cases and debugging.
|
||||
you should normally use ELM_DISPLAY and ELM_ACCEL environment variables, or
|
||||
core elementary config. ELM_DISPLAY can be set to "x11" or "wl" to indicate
|
||||
the target display system (as on Linux systems you may have both display
|
||||
systems available, so this selects which to use). ELM_ACCEL may also be set
|
||||
to indicate if you want accelerations and which kind to use. see
|
||||
:py:attr:`~efl.elementary.configuration.Configuration.accel_preference` for
|
||||
details on this environment variable values.
|
||||
|
||||
``x11``, ``x``, ``software-x11``, ``software_x11``
|
||||
Software rendering in X11
|
||||
``gl``, ``opengl``, ``opengl-x11``, ``opengl_x11``
|
||||
OpenGL or OpenGL-ES2 rendering in X11
|
||||
``shot:...``
|
||||
Virtual screenshot renderer - renders to output file and exits
|
||||
``fb``, ``software-fb``, ``software_fb``
|
||||
Linux framebuffer direct software rendering
|
||||
``sdl``, ``software-sdl``, ``software_sdl``
|
||||
SDL software rendering to SDL buffer
|
||||
``gl-sdl``, ``gl_sdl``, ``opengl-sdl``, ``opengl_sdl``
|
||||
OpenGL or OpenGL-ES2 using SDL
|
||||
``gdi``, ``software-gdi``, ``software_gdi``
|
||||
Windows WIN32 rendering via GDI with software
|
||||
``ews``
|
||||
rendering to EWS (Ecore + Evas Single Process Windowing System)
|
||||
``gl-cocoa``, ``gl_cocoa``, ``opengl-cocoa``, ``opengl_cocoa``
|
||||
OpenGL rendering in Cocoa
|
||||
``wayland_shm``
|
||||
Wayland client SHM rendering
|
||||
``wayland_egl``
|
||||
Wayland client OpenGL/EGL rendering
|
||||
``drm``
|
||||
Linux drm/kms etc. direct display
|
||||
|
||||
All engines use a simple string to select the engine to render, EXCEPT
|
||||
the "shot" engine. This actually encodes the output of the virtual
|
||||
screenshot and how long to delay in the engine string. The engine string
|
||||
is encoded in the following way::
|
||||
|
||||
"shot:[delay=XX][:][repeat=DDD][:][file=XX]"
|
||||
|
||||
Where options are separated by a ``:`` char if more than one option is
|
||||
given, with delay, if provided being the first option and file the last
|
||||
(order is important). The delay specifies how long to wait after the
|
||||
window is shown before doing the virtual "in memory" rendering and then
|
||||
save the output to the file specified by the file option (and then exit).
|
||||
If no delay is given, the default is 0.5 seconds. If no file is given the
|
||||
default output file is "out.png". Repeat option is for continuous
|
||||
capturing screenshots. Repeat range is from 1 to 999 and filename is
|
||||
fixed to "out001.png" Some examples of using the shot engine::
|
||||
|
||||
ELM_ENGINE="shot:delay=1.0:repeat=5:file=elm_test.png" elementary_test
|
||||
ELM_ENGINE="shot:delay=1.0:file=elm_test.png" elementary_test
|
||||
ELM_ENGINE="shot:file=elm_test2.png" elementary_test
|
||||
ELM_ENGINE="shot:delay=2.0" elementary_test
|
||||
ELM_ENGINE="shot:" elementary_test
|
||||
|
||||
|
||||
Emitted signals
|
||||
===============
|
||||
|
||||
- ``delete,request``: the user requested to close the window. See
|
||||
:py:attr:`~Window.autodel`.
|
||||
- ``focus,in``: window got focus
|
||||
- ``focus,out``: window lost focus
|
||||
- ``moved``: window that holds the canvas was moved
|
||||
- ``withdrawn``: window is still managed normally but removed from view
|
||||
- ``iconified``: window is minimized (perhaps into an icon or taskbar)
|
||||
- ``normal``: window is in a normal state (not withdrawn or iconified)
|
||||
- ``stick``: window has become sticky (shows on all desktops)
|
||||
- ``unstick``: window has stopped being sticky
|
||||
- ``fullscreen``: window has become fullscreen
|
||||
- ``unfullscreen``: window has stopped being fullscreen
|
||||
- ``maximized``: window has been maximized
|
||||
- ``unmaximized``: window has stopped being maximized
|
||||
- ``ioerr``: there has been a low-level I/O error with the display system
|
||||
- ``indicator,prop,changed``: an indicator's property has been changed
|
||||
- ``rotation,changed``: window rotation has been changed
|
||||
- ``profile,changed``: profile of the window has been changed
|
||||
- ``theme,changed`` - The theme was changed. (since 1.13)
|
||||
|
||||
|
||||
Enumerations
|
||||
============
|
||||
|
||||
.. _Elm_Win_Type:
|
||||
|
||||
Window types
|
||||
------------
|
||||
|
||||
.. data:: ELM_WIN_UNKNOWN
|
||||
|
||||
Unknown window type (since 1.9)
|
||||
|
||||
.. data:: ELM_WIN_BASIC
|
||||
|
||||
A normal window.
|
||||
|
||||
Indicates a normal, top-level window. Almost every window will be
|
||||
created with this type.
|
||||
|
||||
.. data:: ELM_WIN_DIALOG_BASIC
|
||||
|
||||
Used for simple dialog windows
|
||||
|
||||
.. data:: ELM_WIN_DESKTOP
|
||||
|
||||
For special desktop windows, like a background window holding desktop icons.
|
||||
|
||||
.. data:: ELM_WIN_DOCK
|
||||
|
||||
The window is used as a dock or panel.
|
||||
|
||||
Usually would be kept on top of any other window by the Window Manager.
|
||||
|
||||
.. data:: ELM_WIN_TOOLBAR
|
||||
|
||||
The window is used to hold a floating toolbar, or similar.
|
||||
|
||||
.. data:: ELM_WIN_MENU
|
||||
|
||||
Similar to ELM_WIN_TOOLBAR.
|
||||
|
||||
.. data:: ELM_WIN_UTILITY
|
||||
|
||||
A persistent utility window, like a toolbox or palette.
|
||||
|
||||
.. data:: ELM_WIN_SPLASH
|
||||
|
||||
Splash window for a starting up application.
|
||||
|
||||
.. data:: ELM_WIN_DROPDOWN_MENU
|
||||
|
||||
The window is a dropdown menu, as when an entry in a menubar is clicked.
|
||||
|
||||
Typically used with :py:attr:`~Window.override`. This hint exists for
|
||||
completion only, as the EFL way of implementing a menu would not
|
||||
normally use a separate window for its contents.
|
||||
|
||||
.. data:: ELM_WIN_POPUP_MENU
|
||||
|
||||
Like ELM_WIN_DROPDOWN_MENU, but for the menu triggered by right-clicking
|
||||
an object.
|
||||
|
||||
.. data:: ELM_WIN_TOOLTIP
|
||||
|
||||
The window is a tooltip.
|
||||
|
||||
A short piece of explanatory text that typically appear after the mouse
|
||||
cursor hovers over an object for a while. Typically used with
|
||||
:py:attr:`~Window.override` and also not very commonly used in the EFL.
|
||||
|
||||
.. data:: ELM_WIN_NOTIFICATION
|
||||
|
||||
A notification window, like a warning about battery life or a new E-Mail
|
||||
received.
|
||||
|
||||
.. data:: ELM_WIN_COMBO
|
||||
|
||||
A window holding the contents of a combo box.
|
||||
|
||||
Not usually used in the EFL.
|
||||
|
||||
.. data:: ELM_WIN_DND
|
||||
|
||||
Used to indicate the window is a representation of an object being
|
||||
dragged across different windows, or even applications.
|
||||
|
||||
Typically used with :py:attr:`~Window.override`.
|
||||
|
||||
.. data:: ELM_WIN_INLINED_IMAGE
|
||||
|
||||
The window is rendered onto an image buffer.
|
||||
|
||||
No actual window is created for this type, instead the window and all of
|
||||
its contents will be rendered to an image buffer. This allows to have
|
||||
children window inside a parent one just like any other object would be,
|
||||
and do other things like applying Evas_Map effects to it. This is the
|
||||
only type of window that requires the ``parent`` parameter
|
||||
to be a valid :py:class:`efl.evas.Object`.
|
||||
|
||||
.. data:: ELM_WIN_SOCKET_IMAGE
|
||||
|
||||
The window is rendered onto an image buffer and can be shown other
|
||||
process's plug image object.
|
||||
|
||||
No actual window is created for this type, instead the window and all of
|
||||
its contents will be rendered to an image buffer and can be shown other
|
||||
process's plug image object
|
||||
|
||||
|
||||
.. _Elm_Win_Indicator_Mode:
|
||||
|
||||
Indicator states
|
||||
----------------
|
||||
|
||||
.. data:: ELM_WIN_INDICATOR_UNKNOWN
|
||||
|
||||
Unknown indicator state.
|
||||
|
||||
.. data:: ELM_WIN_INDICATOR_HIDE
|
||||
|
||||
Hides the indicator.
|
||||
|
||||
.. data:: ELM_WIN_INDICATOR_SHOW
|
||||
|
||||
Shows the indicator.
|
||||
|
||||
|
||||
.. _Elm_Win_Indicator_Opacity_Mode:
|
||||
|
||||
Indicator opacity
|
||||
-----------------
|
||||
|
||||
.. data:: ELM_WIN_INDICATOR_OPACITY_UNKNOWN
|
||||
|
||||
Unknown indicator opacity mode.
|
||||
|
||||
.. data:: ELM_WIN_INDICATOR_OPAQUE
|
||||
|
||||
Opacifies the indicator.
|
||||
|
||||
.. data:: ELM_WIN_INDICATOR_TRANSLUCENT
|
||||
|
||||
Be translucent the indicator.
|
||||
|
||||
.. data:: ELM_WIN_INDICATOR_TRANSPARENT
|
||||
|
||||
Transparentizes the indicator.
|
||||
|
||||
|
||||
.. _Elm_Win_Keyboard_Mode:
|
||||
|
||||
Keyboard virtual keyboard modes
|
||||
-------------------------------
|
||||
|
||||
.. data:: ELM_WIN_KEYBOARD_UNKNOWN
|
||||
|
||||
Unknown keyboard state.
|
||||
|
||||
.. data:: ELM_WIN_KEYBOARD_OFF
|
||||
|
||||
Request to deactivate the keyboard.
|
||||
|
||||
.. data:: ELM_WIN_KEYBOARD_ON
|
||||
|
||||
Enable keyboard with default layout.
|
||||
|
||||
.. data:: ELM_WIN_KEYBOARD_ALPHA
|
||||
|
||||
Alpha (a-z) keyboard layout.
|
||||
|
||||
.. data:: ELM_WIN_KEYBOARD_NUMERIC
|
||||
|
||||
Numeric keyboard layout.
|
||||
|
||||
.. data:: ELM_WIN_KEYBOARD_PIN
|
||||
|
||||
PIN keyboard layout.
|
||||
|
||||
.. data:: ELM_WIN_KEYBOARD_PHONE_NUMBER
|
||||
|
||||
Phone keyboard layout.
|
||||
|
||||
.. data:: ELM_WIN_KEYBOARD_HEX
|
||||
|
||||
Hexadecimal numeric keyboard layout.
|
||||
|
||||
.. data:: ELM_WIN_KEYBOARD_TERMINAL
|
||||
|
||||
Full (QWERTY) keyboard layout.
|
||||
|
||||
.. data:: ELM_WIN_KEYBOARD_PASSWORD
|
||||
|
||||
Password keyboard layout.
|
||||
|
||||
.. data:: ELM_WIN_KEYBOARD_IP
|
||||
|
||||
IP keyboard layout.
|
||||
|
||||
.. data:: ELM_WIN_KEYBOARD_HOST
|
||||
|
||||
Host keyboard layout.
|
||||
|
||||
.. data:: ELM_WIN_KEYBOARD_FILE
|
||||
|
||||
File keyboard layout.
|
||||
|
||||
.. data:: ELM_WIN_KEYBOARD_URL
|
||||
|
||||
URL keyboard layout.
|
||||
|
||||
.. data:: ELM_WIN_KEYBOARD_KEYPAD
|
||||
|
||||
Keypad layout.
|
||||
|
||||
.. data:: ELM_WIN_KEYBOARD_J2ME
|
||||
|
||||
J2ME keyboard layout.
|
||||
|
||||
|
||||
.. _Elm_Illume_Command:
|
||||
|
||||
Illume commands
|
||||
---------------
|
||||
|
||||
Available commands that can be sent to the Illume manager.
|
||||
|
||||
When running under an Illume session, a window may send commands to the
|
||||
Illume manager to perform different actions.
|
||||
|
||||
.. data:: ELM_ILLUME_COMMAND_FOCUS_BACK
|
||||
|
||||
Reverts focus to the previous window
|
||||
|
||||
.. data:: ELM_ILLUME_COMMAND_FOCUS_FORWARD
|
||||
|
||||
Sends focus to the next window in the list
|
||||
|
||||
.. data:: ELM_ILLUME_COMMAND_FOCUS_HOME
|
||||
|
||||
Hides all windows to show the Home screen
|
||||
|
||||
.. data:: ELM_ILLUME_COMMAND_CLOSE
|
||||
|
||||
Closes the currently active window
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
===================
|
||||
|
||||
.. inheritance-diagram::
|
||||
Window
|
||||
StandardWindow
|
||||
DialogWindow
|
||||
:parts: 2
|
||||
|
||||
|
||||
.. autoclass:: Window
|
||||
.. autoclass:: StandardWindow
|
||||
.. autoclass:: DialogWindow
|
||||
|
|
|
@ -47,9 +47,20 @@ loaded file.
|
|||
|
||||
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
|
||||
be sent to the decoding thread. For this reason, always call functions like
|
||||
emotion_object_size_get() or emotion_object_length_get() after some signal
|
||||
being sent, like "playback_started" or "open_done".
|
||||
be sent to the decoding thread. For this reason, never access properties or
|
||||
call methods before a start up signal being sent, such "playback_started" or
|
||||
"open_done".
|
||||
|
||||
|
||||
Supported module names
|
||||
======================
|
||||
|
||||
- **gstreamer1** (default)
|
||||
- **xine**
|
||||
- **libvlc**
|
||||
- generic modules (launched in a separate process)
|
||||
|
||||
- **vlc**
|
||||
|
||||
|
||||
Emitted signals
|
||||
|
@ -70,7 +81,7 @@ interesting signals:
|
|||
- ``length_change`` Emitted if the media change it's size
|
||||
- ``channels_change`` Emitted when the number of channels change
|
||||
- ``title_change`` Emitted when the title change (?)
|
||||
- ``progress_change``
|
||||
- ``progress_change``
|
||||
- ``ref_change``
|
||||
- ``button_num_change``
|
||||
- ``button_change``
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
.. currentmodule:: efl.ethumb
|
||||
|
||||
:class:`efl.ethumb.Ethumb` Class
|
||||
================================
|
||||
|
||||
.. autoclass:: efl.ethumb.Ethumb
|
|
@ -0,0 +1,6 @@
|
|||
.. currentmodule:: efl.ethumb_client
|
||||
|
||||
:class:`efl.ethumb_client.EthumbClient` Class
|
||||
=============================================
|
||||
|
||||
.. autoclass:: efl.ethumb_client.EthumbClient
|
|
@ -1,28 +1,55 @@
|
|||
|
||||
.. _ethumb_main_intro:
|
||||
|
||||
|
||||
What is Ethumb?
|
||||
----------------
|
||||
===============
|
||||
|
||||
Ethumb will use Evas to generate thumbnail images of given files. The API
|
||||
allows great customization of the generated files and also helps compling to
|
||||
FreeDesktop.Org Thumbnail Specification.
|
||||
|
||||
How to use the Ethumb object
|
||||
-----------------------------
|
||||
(http://specifications.freedesktop.org/thumbnail-spec/thumbnail-spec-latest.html)
|
||||
|
||||
However, thumbnailing can be an expensive process that will impact your
|
||||
application experience, blocking animations and user interaction during the
|
||||
generation. Another problem is that one should try to cache the thumbnails in
|
||||
a place that other applications can benefit from the file.
|
||||
|
||||
:class:`~efl.ethumb_client.EthumbClient` exists to solve this. It will
|
||||
communicate with a server using standard D-Bus protocol. The server will use
|
||||
:class:`~efl.ethumb.Ethumb` itself to generate the thumbnail images and cache
|
||||
them using FreeDesktop.Org standard. It is recommended that most applications
|
||||
use :class:`~efl.ethumb_client.EthumbClient` instead of
|
||||
:class:`~efl.ethumb.Ethumb` directly.
|
||||
|
||||
Another difference is that one :class:`~efl.ethumb.Ethumb` instance
|
||||
can only generate a single thumbnail at a given time, so you must implement
|
||||
some sort of queue mechanism if you need more than one. Instead
|
||||
:class:`~efl.ethumb_client.EthumbClient` is a able to receive more than one
|
||||
request at the same time.
|
||||
|
||||
Recommended reading:
|
||||
|
||||
:class:`~efl.ethumb.Ethumb` to generate thumbnails in the local process.
|
||||
|
||||
:class:`~efl.ethumb_client.EthumbClient` to generate thumbnails using a
|
||||
server (recommended).
|
||||
|
||||
|
||||
API Reference
|
||||
-------------
|
||||
=============
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 4
|
||||
:titlesonly:
|
||||
|
||||
ethumb_module
|
||||
pyethumb
|
||||
ethumb_client
|
||||
module-ethumb.rst
|
||||
module-ethumb_client.rst
|
||||
|
||||
|
||||
Inheritance diagram
|
||||
-------------------
|
||||
===================
|
||||
|
||||
.. inheritance-diagram::
|
||||
efl.ethumb
|
||||
efl.ethumb_client
|
||||
.. inheritance-diagram:: efl.ethumb
|
||||
:parts: 2
|
||||
|
||||
|
|
|
@ -1,7 +0,0 @@
|
|||
.. currentmodule:: efl.ethumb
|
||||
|
||||
|
||||
:class:`efl.ethumb_client.Client` Class
|
||||
========================================
|
||||
|
||||
.. autoclass:: efl.ethumb_client.Client
|
|
@ -1,5 +0,0 @@
|
|||
:mod:`efl.ethumb` Module
|
||||
========================
|
||||
|
||||
.. automodule:: efl.ethumb
|
||||
:exclude-members: PyEthumb
|
|
@ -0,0 +1,3 @@
|
|||
|
||||
.. automodule:: efl.ethumb
|
||||
:exclude-members: Ethumb
|
|
@ -0,0 +1,3 @@
|
|||
|
||||
.. automodule:: efl.ethumb_client
|
||||
:exclude-members: EthumbClient
|
|
@ -1,9 +0,0 @@
|
|||
.. currentmodule:: efl.ethumb
|
||||
|
||||
:class:`efl.ethumb.PyEthumb` Class
|
||||
==================================
|
||||
|
||||
.. autoclass:: efl.ethumb.PyEthumb
|
||||
|
||||
.. currentmodule:: efl.ethumb
|
||||
|
Binary file not shown.
After Width: | Height: | Size: 29 KiB |
|
@ -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
|
||||
===
|
||||
|
@ -62,6 +33,7 @@ Ethumb
|
|||
======
|
||||
|
||||
.. toctree:: ethumb/ethumb.rst
|
||||
:titlesonly:
|
||||
|
||||
|
||||
Edje
|
||||
|
@ -91,29 +63,25 @@ DBus integration
|
|||
.. toctree:: dbus/dbus
|
||||
|
||||
|
||||
Tutorials
|
||||
=========
|
||||
|
||||
.. toctree::
|
||||
tutorials/01-window.rst
|
||||
tutorials/02-sizehints.rst
|
||||
|
||||
|
||||
Acknowledgements
|
||||
================
|
||||
|
||||
:Copyright:
|
||||
Python Bindings for EFL are Copyright (C) 2008-2015 Simon Busch
|
||||
and various contributors (see AUTHORS).
|
||||
2008-2022 The Python-EFL community (see AUTHORS)
|
||||
|
||||
:License:
|
||||
Python Bindings for EFL are licensed LGPL-3 (see COPYING).
|
||||
Python Bindings for EFL are licensed LGPL-3 (see COPYING)
|
||||
|
||||
:Authors:
|
||||
- `Gustavo Sverzut Barbieri <mailto:barbieri@gmail.com>`_
|
||||
- `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>`_
|
||||
:Contact:
|
||||
`Enlightenment developer mailing list <mailto:enlightenment-devel@lists.sourceforge.net>`_
|
||||
|
||||
|
||||
Indices and tables
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue