Compare commits

..

94 Commits

Author SHA1 Message Date
Kai Huuhko 02fa82441f Eolian: Updates to follow changes in Eo 2015-03-27 05:00:08 +02:00
Kai Huuhko 8ba060b80f Eolian: Follow Eolian API changes 2015-03-27 05:00:08 +02:00
Kai Huuhko 0f905b18e9 Eolian: Update api_coverage script 2015-03-27 05:00:08 +02:00
Davide Andreoli ded193fb75 Fix eolian example to use efl2 package 2014-10-15 19:57:43 +02:00
Kai Huuhko ec4f6dd7ed Merge branch 'devs/kuuko/eolian' of ssh://git.enlightenment.org/bindings/python/python-efl into devs/kuuko/eolian 2014-10-14 23:22:41 +03:00
Kai Huuhko b4b2f904dd Eolian: Rename top level package efl to efl2 2014-10-14 23:18:29 +03:00
Tom Hacohen ae10c15fb8 fix parsing of eot files 2014-10-11 11:41:28 +01:00
Kai Huuhko 9f08f3beea Eolian: Enable more elm widgets 2014-10-11 07:25:22 +03:00
Kai Huuhko 336548178a Eolian: Handle param conversions in constructors 2014-10-11 07:24:54 +03:00
Kai Huuhko 46e5b7edd1 Eolian: More py3 compat 2014-10-11 07:23:49 +03:00
Kai Huuhko 8f33ffdc40 Eolian: Fix Cython detection in setup_eolian.py 2014-10-10 11:20:16 +03:00
Kai Huuhko 545e974bd4 Eolian: Make None (NULL) IN-parameter values to work again 2014-10-10 11:13:31 +03:00
Kai Huuhko 98a3a400de Eolian: Move eolian example to examples/ and update INSTALL 2014-10-10 09:54:07 +03:00
Kai Huuhko c18d8880a0 Eolian: WIP 2014-10-09 19:21:37 +03:00
Kai Huuhko 0c930094cb Eolian: WIP 2014-10-09 14:51:26 +03:00
Kai Huuhko 1a05ad0192 Eolian: Move eolian package outside the top efl package 2014-10-09 00:59:00 +03:00
Kai Huuhko 8ed37421c6 Eolian: WIP 2014-10-03 18:46:58 +03:00
Kai Huuhko f84fef0415 Eolian: WIP 2014-10-02 23:56:12 +03:00
Kai Huuhko 2ba244d263 Eolian: WIP 2014-10-01 19:13:52 +03:00
Kai Huuhko a795ec8c10 Eolian: WIP 2014-09-30 22:25:06 +03:00
Kai Huuhko 6b45d3429d Eolian: WIP 2014-09-29 17:37:15 +03:00
Kai Huuhko 8d116e2822 Eolian: WIP 2014-09-28 23:46:37 +03:00
Kai Huuhko 60ebcabd1e Eolian: WIP 2014-09-26 17:23:33 +03:00
Kai Huuhko 5fcb8fa569 Eolian: WIP 2014-09-25 18:31:27 +03:00
Kai Huuhko 0faee7c36e Eolian: WIP 2014-09-24 18:55:18 +03:00
Kai Huuhko 6de7432e28 Eolian: Update repr methods 2014-09-24 18:53:08 +03:00
Kai Huuhko 81d00a496a Eolian: WIP 2014-09-22 17:00:11 +03:00
Kai Huuhko 2543fa6a17 Eolian: Correct stringshare handling to match updated docs 2014-09-22 15:40:31 +03:00
Kai Huuhko fe16722cbe Eolian: Fix eolian_type_name_get stringshare handling 2014-09-22 15:21:04 +03:00
Kai Huuhko 9af2bbe472 Eolian: WIP 2014-09-22 12:09:49 +03:00
Kai Huuhko 99d5ccd87b Eolian: WIP 2014-09-19 18:49:05 +03:00
Kai Huuhko f2148fe743 Eolian: Remove conversion code which has to be rewritten 2014-09-18 17:47:32 +03:00
Kai Huuhko 60f0f6b814 Eolian: Updates for generator, types are still not done 2014-09-16 17:47:55 +03:00
Kai Huuhko abbf6eceaa Eolian: Free Type.name stringshare after use, fix some iterators 2014-09-16 17:46:53 +03:00
Kai Huuhko eba1a05bca Eolian: Fix Class.implements 2014-09-16 17:45:15 +03:00
Kai Huuhko 5e74c720a9 Eolian: Add nonzero function and remove useless warning from iterator 2014-09-16 17:44:03 +03:00
Kai Huuhko e46e109cab Eolian: Fix Constructor conversion 2014-09-16 14:38:49 +03:00
Kai Huuhko edc2be0113 Eolian: Formatting and repr function fixes 2014-09-16 13:56:47 +03:00
Kai Huuhko 3324f92276 Eolian: Fix Class's class methods 2014-09-16 13:55:45 +03:00
Kai Huuhko 9acfcf842e Eolian: Warn if iterator is NULL, set it to NULL after free 2014-09-16 13:53:54 +03:00
Kai Huuhko 4073498434 Eolian: Remove unnecessary error msg 2014-09-16 13:07:40 +03:00
Kai Huuhko 53a8742878 Merge branch 'master' into eolian 2014-09-15 15:27:55 +03:00
Kai Huuhko 6b6788c12c api_coverage.py: Add detection for changed func return value 2014-09-15 15:26:41 +03:00
Kai Huuhko 71371c00e0 Eolian: Update bindings 2014-09-15 15:25:55 +03:00
Kai Huuhko 9b70139a7f mailmap: add my work alias 2014-09-15 15:25:15 +03:00
Kai Huuhko c0f64781ed Merge branch 'master' into eolian 2014-09-15 09:47:41 +03:00
Kai Huuhko 00eaaead83 Eolian: Update TypeType enum 2014-07-25 23:19:04 +03:00
Kai Huuhko 7a3081d12d Eolian: Fix doc warnings 2014-07-25 18:22:56 +03:00
Kai Huuhko da444abce5 Updates to follow changes in eolian api
Probably leaks everywhere, needs to be checked later.
2014-07-25 18:14:19 +03:00
Kai Huuhko 39e7a7a2fd Eolian: Use all_eo_files_parse and add a command line arg for docs gen 2014-06-27 17:19:36 +03:00
Kai Huuhko 7810bcb216 Eolian: Small refactoring 2014-06-26 23:11:43 +03:00
Kai Huuhko 7222158dfd Eolian: cleanup 2014-06-26 21:17:32 +03:00
Kai Huuhko 7a0f756ba8 Eolian: Use the new contracted function name api in generator 2014-06-26 21:14:47 +03:00
Kai Huuhko 45e43df37c Eolian: Add new api from q66's efl branch 2014-06-26 13:57:43 +03:00
Kai Huuhko 1c6f42b395 Eolian: Add back directory_scan as it's apparently needed by parse 2014-06-23 20:40:10 +03:00
Kai Huuhko d4c47203e2 Eolian: Add dedicated function for removing type prefixes, handle short 2014-06-23 20:32:00 +03:00
Kai Huuhko 67d9128089 Eolian: Split eolian parsing and our pre-gen, improve output 2014-06-23 19:03:50 +03:00
Kai Huuhko 8bd6c3e778 Eolian: function name part deduplication 2014-06-23 18:25:04 +03:00
Kai Huuhko 8e9827e8f2 Eolian: log function gen exceptions with level DEBUG 2014-06-23 18:14:54 +03:00
Kai Huuhko c1be409a9c Eolian: If no eo prefix, fall back to legacy, or namespace + class name 2014-06-23 17:33:26 +03:00
Kai Huuhko 3a0ef786dc Eolian: statistics 2014-06-23 12:38:20 +03:00
Kai Huuhko e62205769f Eolian: Initial code for generating enums 2014-06-22 20:29:36 +03:00
Kai Huuhko 0fa41e652d Eolian: don't use the actual eolian obj when generating 2014-06-22 13:27:26 +03:00
Kai Huuhko 9687624f47 Eolian: Use string replace instead of regex if possible 2014-06-22 13:21:07 +03:00
Kai Huuhko 7ba7bef479 Eolian: Raise an exception if property return type is unknown 2014-06-20 12:03:43 +03:00
Kai Huuhko 0ee569672b Eolian: Raise an exception if param/return type is unknown 2014-06-19 18:53:16 +03:00
Kai Huuhko a9e0bb6f4d Eolian: Add command line argument for increasing verbosity 2014-06-19 18:51:14 +03:00
Kai Huuhko 5416e1dadc Eolian: Always return a Type iterator
When it's NULL the iterator object is still expected, no actual
iteration passes will be run.
2014-06-19 17:08:11 +03:00
Kai Huuhko 0a3671579a Eolian: Use original type in param replacement conversion 2014-06-19 13:00:00 +03:00
Kai Huuhko dfb0a7f078 Eolian: Skip function generating if there are errors in parsing 2014-06-19 12:36:14 +03:00
Kai Huuhko bb9a64aa71 Eolian: Assert number of property setter params > 0, skip class if error 2014-06-19 12:14:52 +03:00
Kai Huuhko 06088c23e0 Eolian: Handle property setter params 2014-06-19 12:12:08 +03:00
Kai Huuhko 5795f762dc Eolian: Add imports and __init__ method to generated py classes 2014-06-19 09:51:27 +03:00
Kai Huuhko 137e6b7e21 Eolian: Handle multiple inheritance, accept several paths as args
The generator now needs inherited classes for parsing, so in args give
eo for evas etc., or full efl for elm, and so on.
2014-06-18 10:11:10 +03:00
Kai Huuhko 8b59680eec Eolian: Handle None in strings 2014-06-18 10:10:09 +03:00
Kai Huuhko bcac382354 Eolian: Add docs for enum members as Cython can't produce them 2014-06-18 10:04:09 +03:00
Kai Huuhko 99f9220fea Eolian: Fix copy&paste error and lower log level of spammy func 2014-06-18 10:02:23 +03:00
Kai Huuhko 11bc1b64a5 Eolian: Have constructors use infra like current bindings 2014-06-17 14:56:53 +03:00
Kai Huuhko 9734b81fd1 Eolian: Add more param conversion 2014-06-17 13:52:05 +03:00
Kai Huuhko 5bd82c2883 Eolian: Add text replacements for docstrings 2014-06-17 12:49:30 +03:00
Kai Huuhko 7e4838fe5b Eolian: Add function comments to docstrings 2014-06-17 11:19:55 +03:00
Kai Huuhko 19ecd9af2e Eolian: Fix constructor generation 2014-06-17 10:41:53 +03:00
Kai Huuhko 3ef8626ba4 Eolian: Add first version of the generator script
Doesn't really produce anything working yet
2014-06-17 08:06:25 +03:00
Kai Huuhko abefe9eb89 Eolian: Fix/add more docs 2014-06-17 07:49:33 +03:00
Kai Huuhko e5c82e08d6 Eolian: Improve error handling, add logging 2014-06-17 07:49:33 +03:00
Kai Huuhko 3d196ef231 Eolian: Make Type its own iterator 2014-06-17 07:49:01 +03:00
Kai Huuhko 10c60e812b Eolian: Shorten enum members 2014-06-12 23:46:36 +03:00
Kai Huuhko 1ac4c41179 Eolian: Improve class repr methods 2014-06-11 15:50:15 +03:00
Kai Huuhko 0baba91e0a Eolian: Change documentation to reflect the change to enum types 2014-06-11 01:16:20 +03:00
Kai Huuhko a4fa686a27 Eolian: Use IntEnum for enumerations 2014-06-11 00:28:08 +03:00
Kai Huuhko db8f8ff2f6 Add utils.enum
This package contains a backported versions of the Python 3.4 standard
library enum types
2014-06-11 00:27:06 +03:00
Kai Huuhko cb7c2bf07b Eolian: Fix obj conversion
The generic converter was an idea which didn't work in practise.
2014-06-07 21:01:01 +03:00
Kai Huuhko 38a1d15016 Eolian: Documentation, fix show() 2014-06-07 18:17:40 +03:00
Kai Huuhko 4e700fe0d3 Initial python bindings for Eolian 2014-06-06 02:57:14 +03:00
721 changed files with 34162 additions and 38424 deletions

16
.gitignore vendored
View File

@ -1,6 +1,5 @@
*.py[co]
MANIFEST
installed_files-*.txt
# Packages
*.egg
@ -26,11 +25,12 @@ pip-log.txt
*.mo
# Cython generated files
efl/*/*.c
efl/*/*.h
!efl/dbus_mainloop/e_dbus.*
efl/*/*.html
efl2/*/*.c
efl2/*/*.h
efl2/*/*.html
eolian/*.c
eolian/*.h
eolian/*.html
# Various editors trash
.idea/
.vscode/
#Eolian generated files
generated_*.pxi

1
.mailmap Normal file
View File

@ -0,0 +1 @@
Kai Huuhko <kai.huuhko@gmail.com> Kai Huuhko <k.huuhko@partner.samsung.com>

View File

@ -1,10 +0,0 @@
[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,

174
CODING
View File

@ -1,28 +1,3 @@
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
=====
@ -33,60 +8,6 @@ Style
* When comparing C pointers with NULL, use == and != instead of the python
operator "is". This makes a visual distinction between python and C code.
* For long lines that do not fit in the 80 cols please use only the first
raccomandation from PEP-8 (Aligned with opening delimiter). Example:
Yes:
foo = long_function_name(var_one, var_two,
var_three, var_four)
No:
foo = long_function_name(
var_one, var_two,
var_three, var_four)
This to keep new code consistent with the rest of the bindings and to
try to match the style of the C efl code style as much as possible.
...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
===============
@ -123,54 +44,63 @@ Tips
Release process instructions
============================
* use "api_coverage.py --python elementary" to see the missing bindings
* Announce at enlightenment-release@lists.sourceforge.net that you are planning
for the release
* Change versions in the top part of setup.py (ex: 1.9 and 1.9.0)
* Raise efl/elm min requirements
* Update README.rst
* Update the changes.html file
setup.py build_doc -b changes ...and manually merge
* Git push and wait jenkins to generate the 2 tarballs
* Test the generated tarballs
* scp tarballs 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
* 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
* 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)
... wait 24 hours, fix any issues found. In the mean time you can prepare the
release announcement for phame/ml.
* ssh to dl.e.org and mv the tarballs to
/srv/web/download.enlightenment.org/rel/bindings/python
* 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)
* Change versions again in setup.py (ex: 1.10 and 1.9.99)
* Raise efl and elementary requirements in setup.py (to 1.9.99)
* 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)
for more info:
--------------
* packaging.python.org
* phab.enlightenment.org/w/release_procedure/
* phab.enlightenment.org/w/hosting/ssh/
more info at:
phab.enlightenment.org/w/release_procedure/
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

963
ChangeLog
View File

@ -1,963 +0,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:
* 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:
* 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
===================
2015-05-07 v1.14.0
===================
Fixes:
* Fixed evas.Textgrid to not leak on cellrow_set()
Improvements:
* Re-added evas.SmartObject (with incompatible API compared to the earlier
incarnation) and made elm.Object inherit from it.
* Better init/shutdown management in all modules, no more need to
manually call those functions (no harm in doing it though).
Changes:
* elm.List.callback_highlighted_add: Added item param to func
* elm.List.callback_unhighlighted_add: Added item param to func
* elm.Toolbar.callback_clicked_add: Added item param to func
* elm.Toolbar.callback_longpressed_add: Added item param to func
* elm.Slideshow: item_data are now a single value, instead of args/kargs,
like is implemented in Gengrid/Genlist
Additions:
* evas.Smart
* evas.Image.orient
* edje.Edje.text_class_get
* edje.text_class_get
* elm.systray
* elm.Configuration.window_auto_focus_animate
* elm.Configuration.window_auto_focus_enable
* elm.Image.memfile_set
* elm.MultiButtonEntry.callback_item_longpressed_add
* elm.MultiButtonEntry.callback_item_longpressed_del
* elm.NaviframeItem.pop_cb_set
* elm.Photocam.image_orient
* elm.Scrollable.loop
* elm.Slider.indicator_visible_mode
* elm.Transit.go_in
* elm.on_config_all_changed
* elm.on_ethumb_connect
* elm.on_policy_changed
* elm.on_process_background
* elm.LayoutClass.file is now also readable
* elm.Video.file is now also readable
Deprecation:
* evas.Rect.intercepts: Use intersects() instead
===================
2015-02-09 v1.13.0
===================
Improvements:
* better docs for everything
* some new elm examples/tests
* new efl.utils.setup helper module to simplify user setup.py
* new uninstall setup.py command
* fixed elm.Entry.cursor_content_get() to not crash when called
Changes:
* raised cython requirements to 0.21
* ecore.x module renamed to ecore_x
* removed evas.SmartObject class, it was broken
Additions:
* efl.utils.setup module
* elm.Configuration.slider_indicator_visible_mode
* elm.Gengrid.callback_clicked_right_add
* elm.Genlist.callback_clicked_right_add
* elm.List.callback_clicked_right_add
* elm.Scrollable.step_size
* elm.Table.align
* elm.Theme.group_base_list_get
* elm.Transit.tween_mode_factor_n
* elm.ELM_TRANSIT_TWEEN_MODE_DIVISOR_INTERP
* elm.ELM_TRANSIT_TWEEN_MODE_BOUNCE
* elm.ELM_TRANSIT_TWEEN_MODE_SPRING
* elm.ELM_TRANSIT_TWEEN_MODE_BEZIER_CURVE
* elm.DialogWindow
* elm.Window.callback_theme_changed_add
* evas.Map.util_object_move_sync
* evas.Object.size_hint_expand
* evas.Object.size_hint_fill
* evas.EXPAND_BOTH
* evas.EXPAND_HORIZ
* evas.EXPAND_VERT
* evas.FILL_BOTH
* evas.FILL_HORIZ
* evas.FILL_VERT
Deprecation:
* elm.Configuration.engine
* elm.Configuration.preferred_engine
===================
2014-11-23 v1.12.0
===================
Additions:
* Edje.base_scale
* Edje.part_text_input_hint_get
* Edje.part_text_input_hint_set
* elm.ELM_PROCESS_STATE_FOREGROUND
* elm.ELM_PROCESS_STATE_BACKGROUND
* elm.process_state_get
* elm.ELM_INPUT_HINT_NONE
* elm.ELM_INPUT_HINT_AUTO_COMPLETE
* elm.ELM_INPUT_HINT_SENSITIVE_DATA
* elm.ELM_INPUT_PANEL_LAYOUT_NORMAL_VARIATION_NORMAL
* elm.ELM_INPUT_PANEL_LAYOUT_NORMAL_VARIATION_FILENAME
* elm.ELM_INPUT_PANEL_LAYOUT_NORMAL_VARIATION_PERSON_NAME
* elm.ELM_INPUT_PANEL_LAYOUT_NUMBERONLY_VARIATION_NORMAL
* elm.ELM_INPUT_PANEL_LAYOUT_NUMBERONLY_VARIATION_SIGNED
* elm.ELM_INPUT_PANEL_LAYOUT_NUMBERONLY_VARIATION_DECIMAL
* elm.ELM_INPUT_PANEL_LAYOUT_NUMBERONLY_VARIATION_SIGNED_AND_DECIMAL
* elm.ELM_INPUT_PANEL_LAYOUT_PASSWORD_VARIATION_NORMAL
* elm.ELM_INPUT_PANEL_LAYOUT_PASSWORD_VARIATION_NUMBERONLY
* elm.Entry.input_hint
* elm.Fileselector.current_name
* elm.Panel.scrollable
* elm.Panel.scrollable_content_size
===================
2014-09-14 v1.11.0
===================
Additions:
* ecore.x.screensaver_blank_get
* ecore.x.screensaver_blank_set
* ecore.x.screensaver_custom_blanking_disable
* ecore.x.screensaver_custom_blanking_enable
* ecore.x.screensaver_event_available_get
* ecore.x.screensaver_event_listen_set
* ecore.x.screensaver_expose_get
* ecore.x.screensaver_expose_set
* ecore.x.screensaver_idle_time_get
* ecore.x.screensaver_interval_get
* ecore.x.screensaver_interval_set
* ecore.x.screensaver_resume
* ecore.x.screensaver_set
* ecore.x.screensaver_supend
* ecore.x.screensaver_timeout_get
* ecore.x.screensaver_timeout_set
* ELM_GLOB_MATCH_NO_ESCAPE
* ELM_GLOB_MATCH_PATH
* ELM_GLOB_MATCH_PERIOD
* ELM_GLOB_MATCH_NOCASE
* ELM_GENGRID_REORDER_TYPE_NORMAL
* ELM_GENGRID_REORDER_TYPE_SWAP
* elm.Gengrid.reorder_type
* elm.Gengrid.search_by_text_item_get
* elm.Genlist.search_by_text_item_get
* elm.Map.region_zoom_bring_in
* elm.Panes.content_left_min_relative_size
* elm.Panes.content_left_min_size
* elm.Panes.content_right_min_relative_size
* elm.Panes.content_right_min_size
* elm.Toolbar.callback_selected_add
* elm.Toolbar.callback_unselected_add
* Emotion.on_open_done_add
* Emotion.on_open_done_del
* Emotion.on_playback_started_add
* Emotion.on_playback_started_del
* Emotion.on_position_load_failed_add
* Emotion.on_position_load_failed_del
* Emotion.on_position_load_succeed_add
* Emotion.on_position_load_succeed_del
* Emotion.on_position_save_failed_add
* Emotion.on_position_save_failed_del
* Emotion.on_position_save_succeed_add
* Emotion.on_position_save_succeed_del
* Emotion.on_position_update_add
* Emotion.on_position_update_del
===================
2014-05-31 v1.10.0
===================
Additions:
* elm.Configuration.accel_preference
* elm.Configuration.atspi_mode
* elm.Configuration.audio_mute_get
* elm.Configuration.audio_mute_set
* elm.Configuration.color_classes_list
* elm.Configuration.color_overlay_apply
* elm.Configuration.color_overlay_list
* elm.Configuration.color_overlay_set
* elm.Configuration.color_overlay_unset
* elm.Configuration.focus_autoscroll_mode
* elm.Configuration.focus_highlight_clip_disabled
* elm.Configuration.focus_move_policy
* elm.Configuration.item_select_on_focus_disabled
* elm.Configuration.magnifier_enabled
* elm.Configuration.magnifier_scale
* elm.ELM_INPUT_PANEL_LAYOUT_DATETIME
* elm.ELM_INPUT_PANEL_LAYOUT_EMOTICON
* elm.ELM_INPUT_PANEL_RETURN_KEY_TYPE_SIGNIN
* elm.ELM_SYS_NOTIFY_CLOSED_EXPIRED
* elm.ELM_SYS_NOTIFY_CLOSED_DISMISSED
* elm.ELM_SYS_NOTIFY_CLOSED_REQUESTED
* elm.ELM_SYS_NOTIFY_CLOSED_UNDEFINED
* elm.ELM_SYS_NOTIFY_URGENCY_LOW
* elm.ELM_SYS_NOTIFY_URGENCY_NORMAL
* elm.ELM_SYS_NOTIFY_URGENCY_CRITICAL
* elm.sys_notify_close
* elm.sys_notify_send
* elm.ELM_OBJECT_MULTI_SELECT_MODE_DEFAULT
* elm.ELM_OBJECT_MULTI_SELECT_MODE_WITH_CONTROL
* elm.ELM_OBJECT_MULTI_SELECT_MODE_MAX
* elm.Gengrid.callback_item_focused_add
* elm.Gengrid.callback_item_reorder_anim_start_add
* elm.Gengrid.callback_item_reorder_anim_stop_add
* elm.Gengrid.callback_item_unfocused_add
* elm.Gengrid.multi_select_mode
* elm.Gengrid.page_relative
* elm.Gengrid.page_size
* elm.Gengrid.reorder_mode_start
* elm.Gengrid.reorder_mode_stop
* elm.Gengrid.wheel_disabled
* elm.Genlist.callback_item_focused_add
* elm.Genlist.callback_item_unfocused_add
* elm.Hoversel.callback_item_focused_add
* elm.Hoversel.callback_item_unfocused_add
* elm.List.callback_item_focused_add
* elm.List.callback_item_unfocused_add
* elm.ELM_FOCUS_MOVE_POLICY_CLICK
* elm.ELM_FOCUS_MOVE_POLICY_IN
* elm.ELM_FOCUS_AUTOSCROLL_MODE_SHOW
* elm.ELM_FOCUS_AUTOSCROLL_MODE_NONE
* elm.ELM_FOCUS_AUTOSCROLL_MODE_BRING_IN
* elm.Object.focused_item
* elm.Object.scroll_item_loop_enabled
* elm.ObjectItem.focus
* elm.ObjectItem.style
* elm.ObjectItem.track_count
* elm.ObjectItem.track_object
* elm.Popup.callback_item_focused_add
* elm.Popup.callback_item_unfocused_add
* elm.Toolbar.callback_item_focused_add
* elm.Toolbar.callback_item_unfocused_add
Deprecations:
* elm.Datetime.callback_languge_changed_add:
Use callback_language_changed_add instead.
==================
2014-03-05 v1.9.0
==================
Additions:
* elm.Clock.pause
* elm.Colorselector.palette_items_get
* elm.Colorselector.palette_selected_item_get
* elm.ColorselectorPaletteItem.selected
* elm.Ctxpopup.auto_hide_disabled
* elm.Entry.callback_rejected_add
* elm.Entry.input_panel_show_on_demand
* elm.ELM_FILESELECTOR_SORT_BY_FILENAME_ASC
* elm.ELM_FILESELECTOR_SORT_BY_FILENAME_DESC
* elm.ELM_FILESELECTOR_SORT_BY_TYPE_ASC
* elm.ELM_FILESELECTOR_SORT_BY_TYPE_DESC
* elm.ELM_FILESELECTOR_SORT_BY_SIZE_ASC
* elm.ELM_FILESELECTOR_SORT_BY_SIZE_DESC
* elm.ELM_FILESELECTOR_SORT_BY_MODIFIED_ASC
* elm.ELM_FILESELECTOR_SORT_BY_MODIFIED_DESC
* elm.Fileselector.custom_filter_append
* elm.Fileselector.sort_method
* elm.Fileselector.thumbnail_size
* elm.GenlistItem.subitems_count
* elm.GenlistItem.subitems_get
* elm.Hoversel.callback_expanded_add
* elm.Label.slide_speed
* elm.LayoutClass.content_swallow_list_get
* elm.Mapbuf.point_color_get
* elm.Mapbuf.point_color_set
* elm.MultiButtonEntry.format_function_set
* elm.NaviframeItem.title_enabled
* elm.NaviframeItem.title_enabled_get
* elm.NaviframeItem.title_enabled_set
* elm.Object.focus_highlight_style
* elm.Object.tooltip_move_freeze_get
* elm.Object.tooltip_move_freeze_pop
* elm.Object.tooltip_move_freeze_push
* elm.Window.wm_rotation_available_rotations
* elm.Window.wm_rotation_manual_done
* elm.Window.wm_rotation_manual_rotation_done
* elm.Window.wm_rotation_preferred_rotation
* elm.Window.wm_rotation_supported
Deprecations:
* elm.FileselectorButton.expandable: Combine with Fileselector class instead
* elm.FileselectorButton.folder_only: Combine with Fileselector class instead
* elm.FileselectorButton.is_save: Combine with Fileselector class instead
* elm.FileselectorButton.path: Combine with Fileselector class instead
* elm.FileselectorEntry.callback_activated_add: Combine with Fileselector class instead
* elm.FileselectorEntry.expandable: Combine with Fileselector class instead
* elm.FileselectorEntry.folder_only: Combine with Fileselector class instead
* elm.FileselectorEntry.is_save: Combine with Fileselector class instead
* elm.FileselectorEntry.path: Combine with Fileselector class instead
* elm.FileselectorEntry.selected: Combine with Fileselector class instead
* elm.NaviframeItem.title_visible: Use title_enabled instead.
==================
2014-12-08 v1.8.0
==================
Changes:
* ecore.file.Download => efl.ecore.FileDownload
* edje.edit.EdjeEdit => efl.edje_edit.EdjeEdit
* Emotion: Keyword argument module_filename was renamed to module_name
* elm.Calendar.selected_time: Returns None when the selected date cannot be fetched
* elm.Ctxpopup: Now inherits from LayoutClass
* elm.Datetime.value:
Returns None when the value cannot be fetched
raise RuntimeError when setting the value failed
* elm.Datetime.value_max:
Returns None when the max value cannot be fetched
raise RuntimeError when setting the max value failed
* elm.Datetime.value_min:
Returns None when the min value cannot be fetched
raise RuntimeError when setting the min value failed
* elm.Entry: Now inherits from LayoutClass
* elm.Entry.cursor_geometry_get: Returns None when the cursor geometry cannot be fetched.
* elm.Entry.file: Raise RuntimeError when setting the file fails, instead of returning a bool.
* elm.FileselectorEntry: Inherits from LayoutClass.
* elm.GestureLayer.attach: Raise RuntimeError on failure, instead of returning a bool
* elm.Icon.standard: Raises RuntimeWarning when setting the standard name fails, instead of returning a bool.
* elm.Image.file: Raises RuntimeError when setting the file fails, instead of returning a bool.
* elm.LayoutClass.box_append: Raises RuntimeError if adding the child fails
* elm.LayoutClass.box_insert_at: Raises RuntimeError if adding the child fails
* elm.LayoutClass.box_insert_before: Raises RuntimeError if adding the child fails
* elm.LayoutClass.box_prepend: Raises RuntimeError if adding the child fails
* elm.LayoutClass.box_remove_all: Raises RuntimeError if removing the children fails
* elm.LayoutClass.content_set: Raises RuntimeError if setting the content fails.
* elm.LayoutClass.file: Raises RuntimeError if setting the file fails
* elm.LayoutClass.part_cursor_engine_only_set: Raises RuntimeError if setting the value fails
* elm.LayoutClass.part_cursor_set: Raises RuntimeError if setting the cursor fails
* elm.LayoutClass.part_cursor_style_set: Raises RuntimeError if setting the cursor style fails
* elm.LayoutClass.part_cursor_unset: Raises RuntimeError if unsetting the cursor fails
* elm.LayoutClass.table_clear: Raises RuntimeError if clearing the table fails
* elm.LayoutClass.table_pack: Raises RuntimeError if adding the child fails
* elm.LayoutClass.text_set: Raises RuntimeError if setting the text fails
* elm.LayoutClass.theme: Raises RuntimeError if setting the theme fails
* elm.Panel: Inherits from LayoutClass.
* elm.Photo.file: Raises RuntimeError if setting the file fails
* elm.Plug.connect: Raises RuntimeError if adding the child fails
* elm.Popup: Inherits from LayoutClass.
* elm.Thumb.editable: Raises RuntimeError if cannot be set as editable
* elm.Toolbar: Inherits from LayoutClass.
* elm.Video.file: Raises RuntimeError if setting the file/uri fails
* elm.Window.socket_listen: Raises RuntimeError if creating a socket fails
* elm.MenuItem.subitems: Calling del on this property clears the subitems
Deprecations:
* elm.Diskselector.bounce: You should combine with Scrollable class instead
* elm.Diskselector.scroller_policy: You should combine with Scrollable class instead
* elm.Entry.bounce: You should combine with Scrollable class instead
* elm.Entry.markup_to_utf8: Use the module level markup_to_utf8() method instead
* elm.Entry.scrollbar_policy: You should combine with Scrollable class instead
* elm.Entry.utf8_to_markup: Use the module level utf8_to_markup() method instead
* elm.Entry_markup_to_utf8: Use markup_to_utf8() instead
* elm.Entry_utf8_to_markup: Use utf8_to_markup() instead
* elm.Gengrid.bounce: You should combine with Scrollable class instead
* elm.Gengrid.scroller_policy: You should combine with Scrollable class instead
* elm.GengridItem.item_tooltip_unset: Use tooltip_unset() instea
* elm.Genlist.bounce: You should combine with Scrollable class instead
* elm.Genlist.scroller_policy: You should combine with Scrollable class instead
* elm.Index.item_find: Broken, don't use
* elm.Label.slide: Use slide_mode instead
* elm.Label.slide_get: Use slide_mode instead
* elm.Label.slide_set: Use slide_mode instead
* elm.List.bounce: You should combine with Scrollable class instead
* elm.List.scroller_policy: You should combine with Scrollable class instead
* elm.Map.bounce: You should combine with Scrollable class instead
* elm.Map.scroller_policy: You should combine with Scrollable class instead
* elm.NaviframeItem.item_pop_to: Use pop_to() instead
* elm.NaviframeItem.item_promote: Use promote() instead
* elm.need_e_dbus: Use need_eldbus() for eldbus (v2) support. Old API is deprecated
* elm.Notify.orient_get: Use align instead
* elm.Notify.orient_set: Use align instead
* elm.Object.domain_translatable_text_part_set: Use domain_translatable_part_text_set() instead
* elm.Object.translatable_text_part_get: Use translatable_part_text_get() instead
* elm.Object.widget_check: Use type(obj) instead
* elm.ObjectItem.data_get: Use the data attribute (dict) instead
* elm.ObjectItem.data_set: Use the data attribute (dict) instead
* elm.Photocam.bounce: You should combine with Scrollable class instead
* elm.Photocam.scroller_policy: You should combine with Scrollable class instead
* elm.Radio.value_pointer_set: Don't use this, only works in C
* elm.Scrollable.custom_widget_base_theme_set: Use theme instead
* elm.Toolbar.bounce: You should combine with Scrollable class instead
* elm.Toolbar.scroller_policy: You should combine with Scrollable class instead
* elm.Web.uri: Use property "url" instead
Additions:
* efl container package
* Loggers
* Using keyword arguments to set properties
* ecore.FileDownload
* ecore.FileMonitor
* ecore.Poller
* ecore.Timer.delay
* ecore.Timer.pending
* ecore.Timer.reset
* Edje.mirrored
* Edje.preload
* Edje.scale
* Edje.size_min_restricted_calc
* Edje.update_hints
* evas.Image.source_events
* evas.Image.source_visible
* evas.Textgrid
* evas.TextgridCell
* Emotion.bg_color
* Emotion.border
* Emotion.image_get
* Emotion.keep_aspect
* Emotion.last_position_load
* Emotion.last_position_save
* Emotion.play_speed
* Emotion.priority
* Emotion.suspend
* Emotion.video_subtitle_file
* elm.Popup.callback_language_changed_add
* elm.Bubble.callback_focused_add
* elm.Bubble.callback_unfocused_add
* elm.Button.callback_focused_add
* elm.Button.callback_unfocused_add
* elm.Calendar.callback_focused_add
* elm.Calendar.callback_unfocused_add
* elm.Calendar.displayed_time
* elm.Calendar.selectable
* elm.Check.callback_focused_add
* elm.Check.callback_unfocused_add
* elm.Clock.callback_focused_add
* elm.Clock.callback_unfocused_add
* elm.Colorselector.callback_focused_add
* elm.Colorselector.callback_unfocused_add
* elm.Configuration.clouseau_enabled
* elm.Configuration.glayer_double_tap_timeout
* elm.Configuration.glayer_long_tap_start_timeout
* elm.Configuration.indicator_service_get
* elm.Configuration.scroll_thumbscroll_acceleration_threshold
* elm.Configuration.scroll_thumbscroll_acceleration_time_limit
* elm.Configuration.scroll_thumbscroll_acceleration_weight
* elm.Configuration.scroll_thumbscroll_border_friction
* elm.Configuration.scroll_thumbscroll_flick_distance_tolerance
* elm.Configuration.scroll_thumbscroll_hold_threshold
* elm.Configuration.scroll_thumbscroll_min_friction
* elm.Configuration.selection_unfocused_clear
* elm.Configuration.softcursor_mode
* elm.Conformant.callback_clipboard_state_off_add
* elm.Conformant.callback_clipboard_state_on_add
* elm.Conformant.callback_virtualkeypad_state_off_add
* elm.Conformant.callback_virtualkeypad_state_on_add
* elm.Ctxpopup.callback_focused_add
* elm.Ctxpopup.callback_unfocused_add
* elm.Datetime.callback_focused_add
* elm.Datetime.callback_unfocused_add
* elm.Dayselector.weekdays_names
* elm.Diskselector.callback_focused_add
* elm.Diskselector.callback_unfocused_add
* elm.Entry.autocapital_type
* elm.Entry.context_menu_item_add
* elm.Entry.end_visible
* elm.Entry.input_panel_layout_variation
* elm.Entry.markup_filter_append
* elm.Entry.markup_filter_prepend
* elm.Entry.markup_filter_remove
* elm.Entry.text_style_user_peek
* elm.Entry.text_style_user_pop
* elm.Entry.text_style_user_push
* elm.EntryContextMenuItem
* elm.EntryContextMenuItem.icon
* elm.EntryContextMenuItem.label
* elm.Fileselector.filters_clear
* elm.Fileselector.hidden_visible
* elm.Fileselector.mime_types_filter_append
* elm.Fileselector.multi_select
* elm.Fileselector.selected_paths
* elm.Flip.flip_go_to
* elm.FlipSelector.callback_focused_add
* elm.FlipSelector.callback_unfocused_add
* elm.cache_all_flush
* elm.font_fontconfig_name_get
* elm.font_properties_free
* elm.font_properties_get
* elm.object_tree_dot_dump
* elm.object_tree_dump
* elm.Gengrid.at_xy_item_get
* elm.Gengrid.callback_focused_add
* elm.Gengrid.callback_unfocused_add
* elm.Gengrid.nth_item_get
* elm.GengridItem.append_to
* elm.GengridItem.insert_after
* elm.GengridItem.insert_before
* elm.GengridItem.prepend_to
* elm.GengridItem.sorted_insert
* elm.GengridItemClass.free
* elm.GengridItemClass.ref
* elm.GengridItemClass.unref
* elm.Genlist.callback_focused_add
* elm.Genlist.callback_unfocused_add
* elm.Genlist.focus_on_selection
* elm.Genlist.nth_item_get
* elm.GenlistItemClass.free
* elm.GenlistItemClass.ref
* elm.GenlistItemClass.unref
* elm.GestureLayer.continues_enable
* elm.GestureLayer.double_tap_timeout
* elm.GestureLayer.flick_time_limit_ms
* elm.GestureLayer.line_angular_tolerance
* elm.GestureLayer.line_distance_tolerance
* elm.GestureLayer.line_min_length
* elm.GestureLayer.long_tap_start_timeout
* elm.GestureLayer.rotate_angular_tolerance
* elm.GestureLayer.tap_finger_size
* elm.GestureLayer.zoom_distance_tolerance
* elm.GestureLayer.zoom_finger_factor
* elm.GestureLayer.zoom_wheel_factor
* elm.Hover.callback_focused_add
* elm.Hover.callback_unfocused_add
* elm.ImageErrorInfo
* elm.ImageProgressInfo
* elm.Index.callback_focused_add
* elm.Index.callback_unfocused_add
* elm.Index.delay_change_time
* elm.Index.omit_enabled
* elm.Label.slide_go
* elm.Label.slide_mode
* elm.LayoutClass.edje_object_can_access
* elm.LayoutClass.freeze
* elm.LayoutClass.thaw
* elm.List.at_xy_item_get
* elm.List.callback_focused_add
* elm.List.callback_unfocused_add
* elm.List.focus_on_selection
* elm.Map.callback_focused_add
* elm.Map.callback_unfocused_add
* elm.Mapbuf.auto
* elm.Menu.callback_dismissed_add
* elm.MultiButtonEntry.editable
* elm.Naviframe.callback_focused_add
* elm.Naviframe.callback_unfocused_add
* elm.need_eldbus
* elm.need_elocation
* elm.need_sys_notify
* elm.need_systray
* elm.ELM_NOTIFY_ALIGN_FILL
* elm.Notify.align
* elm.Object.domain_part_text_translatable_set
* elm.Object.domain_translatable_part_text_set
* elm.Object.focus_next_object_get
* elm.Object.focus_next_object_set
* elm.Object.focused_object
* elm.Object.orientation_mode_disabled
* elm.Object.scroll_freeze
* elm.Object.scroll_hold
* elm.Object.translatable_part_text_get
* elm.SelectionData.action
* elm.ObjectItem.domain_part_text_translatable_set
* elm.ObjectItem.domain_translatable_part_text_set
* elm.ObjectItem.translatable_part_text_get
* elm.Panel.callback_focused_add
* elm.Panel.callback_unfocused_add
* elm.Photocam.callback_focused_add
* elm.Photocam.callback_unfocused_add
* elm.PhotocamErrorInfo
* elm.PhotocamProgressInfo
* elm.Popup.callback_focused_add
* elm.Popup.callback_unfocused_add
* elm.Progressbar.callback_focused_add
* elm.Progressbar.callback_unfocused_add
* elm.Progressbar.part_value_get
* elm.Progressbar.part_value_set
* elm.Radio.callback_focused_add
* elm.Radio.callback_unfocused_add
* elm.Scrollable.callback_focused_add
* elm.Scrollable.callback_unfocused_add
* elm.Scrollable.movement_block
* elm.Scrollable.page_scroll_limit
* elm.Scrollable.page_size Getter for this property
* elm.Scrollable.page_snap
* elm.Scrollable.single_direction
* elm.Slider.callback_focused_add
* elm.Slider.callback_unfocused_add
* elm.Slider.step
* elm.Slideshow.callback_focused_add
* elm.Slideshow.callback_unfocused_add
* elm.Spinner.callback_focused_add
* elm.Spinner.callback_unfocused_add
* elm.Spinner.special_value_del
* elm.Spinner.special_value_get
* elm.Table.child_get
* elm.Thumb.aspect
* elm.Thumb.compress
* elm.Thumb.crop_align
* elm.Thumb.fdo_size
* elm.Thumb.format
* elm.Thumb.orientation
* elm.Thumb.quality
* elm.Thumb.size
* elm.Toolbar.callback_focused_add
* elm.Toolbar.callback_unfocused_add
* elm.Toolbar.reorder_mode
* elm.Toolbar.transverse_expanded
* elm.ToolbarItem.bring_in
* elm.ToolbarItem.show
* elm.Transit.smooth
* elm.Transit.tween_mode_factor
* elm.Player.callback_focused_add
* elm.Player.callback_unfocused_add
* elm.Video.callback_focused_add
* elm.Video.callback_unfocused_add
* elm.Web.callback_focused_add
* elm.Web.callback_unfocused_add
* elm.Web.url
* elm.Window.available_profiles
* elm.Window.callback_focused_add
* elm.Window.callback_unfocused_add
* elm.Window.floating_mode
* elm.Window.focus_highlight_animate
* elm.Window.main_menu
* elm.Window.norender
* elm.Window.norender_pop
* elm.Window.norender_push
* elm.Window.profile
* elm.Window.render
* elm.Window.screen_dpi

109
INSTALL
View File

@ -1,75 +1,71 @@
1. REQUIREMENTS
===============
1. REQUIREMENTS:
----------------
* Python 2.6 or higher, 3.2 or higher (http://www.python.org/)
- Tested with Python 3.8
* Python 2.6 or higher (http://www.python.org/)
- Tested with Python 2.6 / 2.7 / 3.2 / 3.3
* Cython 0.21 or higher (http://cython.org/)
- Tested with Cython 0.29.16
* Cython 0.19 or higher (http://cython.org/)
- Tested with Cython 0.19.1
* EFL must be the same minor version of the bindings,
es. python-efl 1.24 need efl 1.24
* 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
* To build the DOCS you will also need:
- python-sphinx
- [optional] graphviz
* At least 4GB of free RAM to build
- [optional] youtube module from the sphinx contrib repository.
2. BUILDING PYTHON-EFL
======================
2. BUILDING PYTHON-EFL:
-----------------------
Once EFL is built and installed in your desired destination, proceed with
building the wrapper using:
building the wrapper. The setup script can be forced to use purely C
sources by setting the environment variable DISABLE_CYTHON to 1.
* BUILDING THE EOLIAN BINDINGS (system installation not required)
python setup_eolian.py build
* BUILDING WITH GCC/G++ (Linux, OS X, etc.)
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.
* BUILDING WITH Visual Studio (Windows)
python setup.py build
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
variables: DISABLE_CYTHON or ENABLE_CYTHON
* BUILDING WITH MINGW (Windows)
python setup.py build -c mingw32
* FORCE C SOURCES FOR BUILD
* FORCING C SOURCES FOR BUILD
env DISABLE_CYTHON=1 python setup.py build
* FORCE THE USAGE OF CYTHON
env ENABLE_CYTHON=1 python setup.py build
3. CLEANUP
==========
* For cleaning up:
python setup.py clean --all
* To also remove all the C/HTML files generated by Cython:
3. CLEANUP:
-----------
* For cleaning up
python setup.py clean_generated_files
WARNING: you will need cython to regenerate the C files, do not use this
in distribution tarballs, unless you know what are you doing.
4. INSTALLATION
===============
4. INSTALLATION:
----------------
* For system-wide installation (needs administrator privileges):
(sudo) python setup.py install
python setup.py install
* For user installation:
@ -77,19 +73,16 @@
* To install for python3:
(sudo) python3 setup.py install (also cython need to be installed with py3)
python3 setup.py install (also cython need to be installed with py3)
* Install with a custom prefix:
(sudo) python setup.py install --prefix=/MY_PREFIX
* You can also uninstall using:
(sudo) python setup.py uninstall
python setup.py install --prefix=/MY_PREFIX
5. DOCUMENTATION
================
5. DOCUMENTATION:
-----------------
To build the docs for the bindings you need to have Sphinx installed, for
(optional) graphs you need Graphviz, for (optional) Youtube demonstration
@ -97,8 +90,7 @@
packages: python-sphinx, graphviz, python-pygraphviz, libgv-python
To build the docs just run:
python setup.py build_doc
python setup.py build_doc
You will find the generated html docs under the folder:
build/sphinx/html
@ -107,15 +99,26 @@
up with empty documentation.
6. TESTS and EXAMPLES
=====================
6. TESTS and EXAMPLES:
----------------------
The tests/ folder contains all the unit tests available, you can run individual
tests or use the 00_run_all_tests.py in each folder or even in the tests/ base
dir to run all the tests at once.
Python 2.7 / 3.2 or greater is required for running the tests.
Python 2.7 is required for running the tests.
The scripts in examples/ folder must be run by the user as they require
user interaction.
7. UNINSTALL:
-------------
Unfortunately setup.py does not provide a way to remove the installed packages,
To completely remove the installed stuff just remove the 'efl' folder in
your python installation, usually /usr/(local/)lib/pythonX.X/dist-packages/efl

View File

@ -1,4 +1,4 @@
include README INSTALL COPYING COPYING.LESSER AUTHORS ChangeLog
include README.rst INSTALL COPYING COPYING.LESSER AUTHORS changes.html
recursive-include efl *.c *.h *.pyx *.pxi *.pxd
graft include
graft tests

View File

@ -5,10 +5,6 @@
# want to type less or do not want to learn the python
# setup syntax.
#
# NOTE: This file is also used to discriminate when we are building from
# stable tarballs (in this case we disable cython by default) or from git
# sources as the Makefile is not distributed.
#
# Usage:
#
# make <cmd> to build using the default python interpreter
@ -16,7 +12,7 @@
#
PY = python3
PY = python
.PHONY: build
@ -29,19 +25,14 @@ install:
$(PY) setup.py install
.PHONY: uninstall
uninstall:
$(PY) setup.py uninstall
.PHONY: doc
doc:
$(PY) setup.py build build_doc
.PHONY: test
test:
$(PY) setup.py test
.PHONY: tests
tests:
$(PY) tests/00_run_all_tests.py
.PHONY: clean
@ -49,20 +40,12 @@ clean:
$(PY) setup.py clean --all
.PHONY: maintainer-clean
maintainer-clean:
.PHONY: maintaner-clean
maintaner-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,xztar
$(PY) setup.py bdist_wheel
@cd dist/; for f in `ls *.tar.*` ; do \
echo Generating sha256 for: $$f ; \
sha256sum $$f > $$f.sha256; \
done
$(PY) setup.py sdist --formats=gztar,bztar

View File

@ -1,92 +0,0 @@
# 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.

79
README.rst Normal file
View File

@ -0,0 +1,79 @@
#################
PYTHON-EFL 1.11.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 EFL and Elementary.
*******
INSTALL
*******
For installation instruction see the INSTALL file.
*******
CHANGES
*******
VERSIONS AFTER 1.8
==================
See changes.html
FROM 1.7 to 1.8
===============
* added efl container package
* ecore.file.Download => efl.ecore.FileDownload
* edje.edit.EdjeEdit => efl.edje_edit.EdjeEdit
* Emotion(module_filename="xxx") => Emotion(module_name="xxx")
* elm.ObjectItem.data changed to a dict (previously held args & kwargs)
* Many _set functions that would previously return status now instead raise
an exception when the underlying C function returns failure:
- efl.elementary.entry.Entry.file_set
- efl.elementary.fileselector.Fileselector.selected_set
- efl.elementary.genlist.GenlistItem.tooltip_window_mode_set
- efl.elementary.image.Image.file_set
- efl.elementary.layout_class.LayoutClass.file_set
- efl.elementary.layout_class.LayoutClass.theme_set
- efl.elementary.layout_class.LayoutClass.box_append
- efl.elementary.layout_class.LayoutClass.box_prepend
- efl.elementary.layout_class.LayoutClass.box_insert_before
- efl.elementary.layout_class.LayoutClass.box_insert_at
- efl.elementary.layout_class.LayoutClass.box_remove_all
- efl.elementary.layout_class.LayoutClass.table_pack
- efl.elementary.layout_class.LayoutClass.table_clear
- efl.elementary.layout_class.LayoutClass.part_cursor_set
- efl.elementary.layout_class.LayoutClass.part_cursor_unset
- efl.elementary.layout_class.LayoutClass.part_cursor_style_set
- efl.elementary.layout_class.LayoutClass.part_cursor_engine_only_set
- efl.elementary.photo.Photo.file_set
- efl.elementary.photocam.Photocam.file_set
- efl.elementary.video.Video.file_set
This also applies when assigning the relevant properties.
* This list of stuff will not be ported to the 1.8 tree. Because they are old,
not portable, or just because no one used and seem not usefull:
- EcoreEvas
- EcoreImf
- EcoreX
- EcoreWin32
- python-evas/evas/utils.py
- python-evas/evas/decorators.py
- python-evas/evas/debug.py
- python-evas old hack to rotate objects
Deprecated in 1.8
-----------------
* elm.Scroller.custom_widget_base_theme_set => elm.Layout.theme_set
* elm.notify.orient_set/get/prop removed => align
* elementary.need_e_dbus => elementary.need_edbus
* elm.domain_translatable_text_part_set => elm.domain_translatable_part_text_set

46
TODO Normal file
View File

@ -0,0 +1,46 @@
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()
* Evas: SmartObject callbacks broken when object is deleted
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, work. Make it inheritable by extension
classes?
* 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
* GLView
* Unit tests
* Images missing in the documentation:
- datetime
- video
- web
- window ?

View File

@ -24,12 +24,6 @@ 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)
@ -53,14 +47,17 @@ py_excludes = "|".join(py_exclude_list)
params = {
"eo": ("include", "Eo", "eo"),
"evas": ("include", "Evas", "evas"),
"ecore": ("efl/ecore", "Ecore", "ecore"),
"ecore-file": ("efl/ecore", "Ecore_File", "ecore_file"),
"ecore-x": ("efl/ecore", "Ecore_X", "ecore_x"),
"ecore": ("efl2/ecore", "Ecore", "ecore"),
"ecore-file": ("efl2/ecore", "Ecore_File", "ecore_file"),
"ecore-x": ("efl2/ecore", "Ecore_X", "ecore_x"),
"edje": ("include", "Edje", "edje"),
"emotion": ("include", "Emotion", "emotion"),
"elementary": ("efl/elementary", "Elementary", "elm"),
"elementary": ("efl2/elementary", "Elementary", "elm"),
"eolian": ("eolian", "Eolian", "eolian")
}
EFL_MIN_VERSION = "1.9.99"
parser = argparse.ArgumentParser(
description="Reports EFL vs. Python-EFL API functions coverage"
)
@ -117,12 +114,14 @@ def pkg_config(require, min_vers=None):
def get_capis(inc_path, prefix):
capirets = []
capis = []
capilns = []
capi_pattern = re.compile(
"^ *EAPI [A-Za-z_ *\n]+ *\**\n?(?!" +
c_excludes + ")(" + prefix +
"_\w+) *\(",
"^ *EAPI " +
"([A-Za-z_ *\n]+)[ *]*\n?" +
"(?!" + c_excludes + ")" +
"(" + prefix + "_\w+)" + " *\(",
flags=re.S | re.M
)
@ -146,32 +145,35 @@ def get_capis(inc_path, prefix):
i += len(line)
matches = re.finditer(capi_pattern, capi)
for match in matches:
func = match.group(1)
funcret = match.group(1).replace("\n", "")
funcname = match.group(2)
start = match.start()
line_n = line_starts.index(start) + 1
capilns.append((f, line_n))
capis.append(func)
capirets.append(funcret)
capis.append(funcname)
return capilns, capis
return capilns, capirets, capis
def get_pyapis(pxd_path, header_name, prefix):
pyapilns = []
pyapirets = []
pyapis = []
pyapi_pattern1 = re.compile(
'cdef extern from "' + header_name + '\.h":\n(.+)',
flags=re.S
)
pyapi_pattern2 = re.compile(
"^ +[a-zA-Z _*]+?(?!" + py_excludes + ")(" + prefix + "_\w+)\(",
"^ +([a-zA-Z _*]+?)" +
"(?!" + py_excludes + ")" +
"(" + prefix + "_\w+)" + "\(",
flags=re.M
)
for path, dirs, files in os.walk(pxd_path):
for f in files:
# if not f.endswith(".pxd"):
# continue
if f.endswith(".pyc"):
if not f.endswith(".pxd"):
continue
open_args = (os.path.join(path, f),)
open_kwargs = dict(mode="r")
@ -191,13 +193,15 @@ def get_pyapis(pxd_path, header_name, prefix):
i += len(line)
matches = re.finditer(pyapi_pattern2, cdef.group(1))
for match in matches:
func = match.group(1)
funcret = match.group(1)
func = match.group(2)
start = match.start() + offset
line_n = line_starts.index(start) + 1
pyapilns.append((f, line_n))
pyapirets.append(funcret)
pyapis.append(func)
return pyapilns, pyapis
return pyapilns, pyapirets, pyapis
rows, columns = os.popen('stty size', 'r').read().split()
@ -211,7 +215,7 @@ print("")
for lib in args.libs:
inc_paths = pkg_config(lib)
inc_paths = pkg_config(lib, EFL_MIN_VERSION)
inc_path = None
for p in inc_paths:
if lib in p:
@ -223,8 +227,13 @@ for lib in args.libs:
pxd_path, header_name, prefix = params[lib]
c_api_line_ns, c_apis = get_capis(inc_path, prefix)
py_api_line_ns, py_apis = get_pyapis(pxd_path, header_name, prefix)
c_api_line_ns, c_api_rets, c_apis = get_capis(inc_path, prefix)
py_api_line_ns, py_api_rets, py_apis = get_pyapis(pxd_path, header_name, prefix)
rets = zip(c_api_line_ns, c_api_rets, py_api_line_ns, py_api_rets)
for cln, cret, pyln, pyret in rets:
if cret != pyret:
print("SIGNATURE DIFFERS BETWEEN %s: %s AND %s: %s !!!" % (cln, cret, pyln, pyret))
capis = set(c_apis)
pyapis = set(py_apis)

1510
changes.html Normal file

File diff suppressed because it is too large Load Diff

153
doc/Makefile Normal file
View File

@ -0,0 +1,153 @@
# 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."

View File

@ -1,47 +1,40 @@
# -*- coding: utf-8 -*-
#
# Configuration file for the Sphinx documentation builder.
# Python Bindings for EFL Elementary documentation build configuration file, created by
# sphinx-quickstart on Thu Jun 28 09:21:25 2012.
#
# 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
# 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.
# pylint: disable=invalid-name
import os
import sys
import platform
# -- Path setup --------------------------------------------------------------
import sys, os, platform
# If extensions (or modules to document with autodoc) are in another directory,
# 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'))
# 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'))
# Delete any previously imported efl package
if 'efl' in sys.modules:
del sys.modules['efl']
if "efl" in sys.modules:
del sys.modules["efl"]
# -- Project information -----------------------------------------------------
project = 'Python EFL'
author = 'The Python-EFL community (see AUTHORS)'
copyright = '2008-2022, ' + author # pylint: disable=redefined-builtin
# -- General configuration ----------------------------------------------------
# -- General configuration -----------------------------------------------------
# If your documentation needs a minimal Sphinx version, state it here.
needs_sphinx = '3.1'
needs_sphinx = '1.1'
# Add any Sphinx extension module names here, as strings. They can be extensions
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
@ -50,39 +43,134 @@ extensions = [
'sphinx.ext.coverage',
]
try:
import gv
except ImportError:
pass
else:
extensions.append('sphinx.ext.inheritance_diagram')
graphviz_output_format = "svg" # png (default) or svg
graphviz_dot_args = ["-Gbgcolor=transparent", "-Ncolor=#4399FF",
"-Nfontcolor=white", "-Ecolor=blue"]
try:
import sphinxcontrib.youtube
except ImportError:
pass
else:
extensions.append('sphinxcontrib.youtube')
# 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'
master_doc = 'index'
# General information about the project.
project = u'Python EFL'
copyright = u'2008-2014, Simon Busch, Gustavo Sverzut Barbieri, Ulisses Furquim, ProFUSION embedded systems, Boris Faure, Fabiano Fidencio, Davide Andreoli, Kai Huuhko'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
#
# The short X.Y version.
# version = 'X.Y'
# The full version, including alpha/beta/rc tags.
# release = 'X.Y.Z'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
#language = None
# There are two options for replacing |today|: either, you set today to some
# non-false value, then it is used:
#today = ''
# Else, today_fmt is used as the format for a strftime call.
#today_fmt = '%B %d, %Y'
# List of patterns, relative to source directory, that match files and
# 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 = 'sphinx'
# 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_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__ methods docstring are concatenated
autoclass_content = 'both'
autodoc_default_flags = [
'members',
'show-inheritance',
# 'inherited-members',
# 'undoc-members',
]
autoclass_content = "both"
autodoc_docstring_signature = True
# autodoc_member_order = "bysource"
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(2, 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 None
return
params = []
params = list()
for param in (p.strip() for p in signature[1:-1].split(',')):
if param != 'self':
params.append(param.rpartition(' ')[2])
@ -90,44 +178,15 @@ def autodoc_process_signature(_app, what, _name, _obj, _options, signature, retu
return ('(%s)' % ', '.join(params), return_annotation)
# -- Inheritance Diagram ------------------------------------------------------
try:
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 = 'png' # png (default) or svg
inheritance_graph_attrs = dict(
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)
fontcolor = 'white',
font = 'sans',
)
inheritance_edge_attrs = dict(
color = 'dodgerblue3', # arrow color (should be #4399FF)
dir = 'none', # arrow direction (back, forward, both or none)
)
# -- Options for HTML output ---------------------------------------------------
# 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' # Our custom EFL dark style
html_theme = 'efldoc' # 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
@ -142,16 +201,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,
@ -162,6 +221,10 @@ 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 = {}
@ -197,3 +260,121 @@ 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-2014, 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

View File

@ -1,6 +0,0 @@
.. currentmodule:: efl.ecore
:class:`efl.ecore.AnimatorTimeline` Class
=========================================
.. autoclass:: efl.ecore.AnimatorTimeline

View File

@ -1,6 +0,0 @@
.. currentmodule:: efl.ecore_con
:class:`efl.ecore_con.Lookup` Class
===================================
.. autoclass:: efl.ecore_con.Lookup

View File

@ -1,9 +0,0 @@
.. 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

View File

@ -1,6 +1,4 @@
.. _ecore_main_intro:
What is Ecore?
--------------
@ -15,8 +13,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
@ -56,14 +54,6 @@ anything your program should do just before processing events (also timers,
pollers, file descriptor handlers and animators)
Process Execution
-----------------
The :py:class:`~efl.ecore.Exe` class is used to spawn child processes in a
full async fashion. Standard in/out/error of the child are available for
communication using callbacks.
File descriptor handlers
------------------------
@ -73,6 +63,14 @@ 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
------------
@ -83,40 +81,23 @@ 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
-------------
.. toctree::
:titlesonly:
:maxdepth: 4
module-ecore
module-ecore_input
module-ecore_con
ecore_module
x
timer
animator
poller
idler
idleenterer
idleexiter
exe
fdhandler
filedownload
filemonitor
Inheritance diagram
-------------------
.. inheritance-diagram::
efl.ecore
:parts: 2

View File

@ -1,3 +1,5 @@
:mod:`efl.ecore` Module
=======================
.. automodule:: efl.ecore
:exclude-members: Animator, AnimatorTimeline, Exe, FdHandler, FileDownload,

View File

@ -1,5 +0,0 @@
.. automodule:: efl.ecore_con
:exclude-members: Url, EventUrlComplete, EventUrlProgress, EventUrlData,
Lookup, ConEventFilter

View File

@ -1,3 +0,0 @@
.. automodule:: efl.ecore_input

8
doc/ecore/x.rst Normal file
View File

@ -0,0 +1,8 @@
:mod:`efl.ecore.x` Module
--------------------------
.. automodule:: efl.ecore.x
.. inheritance-diagram::
efl.ecore.x
:parts: 2

View File

@ -1,6 +1,7 @@
.. currentmodule:: efl.edje
:class:`efl.edje.Edje` Class
============================
==============================
.. autoclass:: efl.edje.Edje

View File

@ -0,0 +1,7 @@
.. currentmodule:: efl.edje_edit
:class:`efl.edje_edit.EdjeEdit` Class
=======================================
.. autoclass:: efl.edje_edit.EdjeEdit
:undoc-members:

View File

@ -1,8 +1,10 @@
:mod:`efl.edje` Module
=======================
.. _edje_main_intro:
.. module:: efl.edje
What is Edje?
=============
--------------
Edje is a complex graphical design & layout library.
@ -40,7 +42,7 @@ use Edje as a convenient way of being able to configure parts of the display.
So how does this all work?
==========================
--------------------------
Edje internally holds a geometry state machine and state graph of what is
visible, not, where, at what size, with what colors etc. This is described
@ -55,44 +57,28 @@ use. Edje will load such information and create all the required
children objects with the specified properties as defined in each
**part** of the given **group**.
Edje is an important EFL component because it makes easy to split logic and
UI, usually used as theme engine but can be much more powerful than just
changing some random images or text fonts.
Although simple, this example illustrates that animations and state
changes can be done from the Edje file itself without any requirement
in the Python application.
Edje also provides scripting through Embryo and communication can be
done using messages and signals.
.. seealso::
Before digging into changing or creating your own Edje source (edc)
files, read the `Edje Data Collection reference
<https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessful
Buil d/artifact/doc/html/edcref.html>`_ .
Before digging into changing or creating your own Edje source (edc)
files, read the @ref edcref.
Signals from the edje object
============================
You can debug signals and messagges by capturing all of them, example::
def sig_dbg(obj, emission, source):
print(obj, emission, source)
def msg_dbg(obj, msg):
print(obj, msg)
my_edje.signal_callback_add("*", "*", sig_dbg)
my_edje.message_handler_set(msg_dbg)
API Reference
=============
Reference
---------
.. toctree::
:titlesonly:
:maxdepth: 4
class-edje
class-edje_edit
module-edje.rst
Inheritance diagram
===================
-------------------
.. inheritance-diagram:: efl.edje
.. inheritance-diagram::
efl.edje
:parts: 2

View File

@ -1,3 +0,0 @@
.. automodule:: efl.edje
:exclude-members: Edje

View File

@ -5,31 +5,10 @@
.. 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 <https://docs.python.org/library/logging.html>`_
PyEFL provides `logging <http://docs.python.org/2/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.
@ -57,7 +36,6 @@ And you may control the child loggers individually::
.. versionadded:: 1.8
Loggers
Class properties
----------------
@ -73,59 +51,3 @@ are not already used by the constructor, for example like this::
.. versionadded:: 1.8
Using keyword arguments to set properties
Distutils helpers for your setup.py
-----------------------------------
.. versionadded:: 1.13
For your convenience **python-efl** provide some usefull `distutils
<https://docs.python.org/2/distutils/>`_ Commands to be used in your
**setup.py** script.
Provided commands are:
* ``build_edc`` To build (using edje_cc) and install your application themes.
* ``build_i18n`` To integrate the gettext framework.
* ``build_fdo`` To install .desktop and icons as per FreeDesktop specifications.
* ``uninstall`` To uninstall your app.
* ``build_extra`` Adds the provided commands to the build target.
The usage is quite simple, just import and add them in your setup() cmdclass.
.. code-block:: python
from distutils.core import setup
from efl.utils.setup import build_edc, build_i18n, build_fdo
from efl.utils.setup import build_extra, uninstall
setup(
...
cmdclass = {
'build': build_extra,
'build_edc': build_edc,
'build_i18n': build_i18n,
'build_fdo': build_fdo,
'uninstall': uninstall,
},
command_options={
'install': {'record': ('setup.py', 'installed_files.txt')}
},
)
The **install** option is required if you want to use the **uninstall** command.
The **build_extra** command is only used to automatically add all the other
commands to the default build command, you probably always want it, unless
you are providing your own yet.
Once you have added a command you can look at the help for more informations,
for example::
python setup.py build_i18n --help
or more in general::
python setup.py --help-commands

View File

@ -1,85 +0,0 @@
.. currentmodule:: efl.elementary
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

View File

@ -1,58 +0,0 @@
.. currentmodule:: efl.elementary
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

View File

@ -1,118 +0,0 @@
.. currentmodule:: efl.elementary
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

View File

@ -1,86 +0,0 @@
.. currentmodule:: efl.elementary
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

View File

@ -1,63 +0,0 @@
.. currentmodule:: efl.elementary
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

View File

@ -1,169 +0,0 @@
.. currentmodule:: efl.elementary
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

View File

@ -1,47 +0,0 @@
.. currentmodule:: efl.elementary
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

View File

@ -1,92 +0,0 @@
.. currentmodule:: efl.elementary
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

View File

@ -1,64 +0,0 @@
.. currentmodule:: efl.elementary
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

View File

@ -1,54 +0,0 @@
.. 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

View File

@ -1,162 +0,0 @@
.. currentmodule:: efl.elementary
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

View File

@ -1,43 +0,0 @@
.. currentmodule:: efl.elementary
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

View File

@ -1,84 +0,0 @@
.. currentmodule:: efl.elementary
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

View File

@ -1,216 +0,0 @@
.. currentmodule:: efl.elementary
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
systems 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

View File

@ -1,98 +0,0 @@
.. currentmodule:: efl.elementary
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

View File

@ -1,70 +0,0 @@
.. currentmodule:: efl.elementary
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

View File

@ -1,22 +1,15 @@
.. module:: efl.elementary
.. py: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>`,
:doc:`Ecore </ecore/ecore>`, etc...). It provide all the
widget you need to build a full application.
It is meant to make the programmers work almost brainless but give them lots
of flexibility.
:mod:`efl.elementary` Package
=============================
Features
--------
Callbacks
*********
^^^^^^^^^
Widget callbacks
================
.. rubric:: Widget callbacks
Widget callbacks are set with callback_*_add methods which take a callable,
and optional args, kwargs as data.
@ -29,452 +22,182 @@ or::
obj, event_info, *args, **kwargs
Event callbacks
===============
.. rubric:: Event callbacks
Event callbacks have signature of::
object, source_object, event_type, event_info, *args, **kwargs
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
----------------------------------
.. literalinclude:: ../../examples/elementary/test_panel.py
:lines: 4-50
What is Elementary?
-------------------
Elementary is a VERY SIMPLE toolkit. It is not meant for writing extensive desktop
applications (yet). Small simple ones with simple needs.
It is meant to make the programmers work almost brainless but give them lots
of flexibility.
Reference
---------
Package
^^^^^^^
Everything in the modules :py:mod:`~efl.elementary.general` and
:py:mod:`~efl.elementary.need` is also available at package level.
Modules
^^^^^^^
.. toctree::
:maxdepth: 4
module-actionslider
module-background
module-box
module-bubble
module-button
module-calendar
module-check
module-clock
module-colorselector
module-configuration
module-conformant
module-ctxpopup
module-datetime
module-dayselector
module-diskselector
module-entry
module-fileselector
module-fileselector_button
module-fileselector_entry
module-flip
module-flipselector
module-frame
module-general
module-gengrid
module-genlist
module-gesture_layer
module-grid
module-hover
module-hoversel
module-icon
module-image
module-index
module-innerwindow
module-label
module-layout
module-layout_class
module-list
module-map
module-mapbuf
module-menu
module-multibuttonentry
module-naviframe
module-need
module-notify
module-object
module-object_item
module-panel
module-panes
module-photo
module-photocam
module-plug
module-popup
module-progressbar
module-radio
module-scroller
module-segment_control
module-separator
module-slider
module-slideshow
module-spinner
module-table
module-theme
module-thumb
module-toolbar
module-transit
module-video
module-web
module-window
Inheritance diagram
===================
-------------------
.. inheritance-diagram::
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
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.table
efl.elementary.theme
efl.elementary.thumb
efl.elementary.toolbar
efl.elementary.transit
efl.elementary.video
efl.elementary.web
efl.elementary.window
:parts: 2

View File

@ -1,584 +0,0 @@
.. currentmodule:: efl.elementary
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

View File

@ -1,137 +0,0 @@
.. currentmodule:: efl.elementary
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

View File

@ -1,74 +0,0 @@
.. currentmodule:: efl.elementary
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

View File

@ -1,87 +0,0 @@
.. currentmodule:: efl.elementary
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

View File

@ -1,164 +0,0 @@
.. currentmodule:: efl.elementary
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

View File

@ -1,50 +0,0 @@
.. currentmodule:: efl.elementary
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

View File

@ -1,54 +0,0 @@
.. currentmodule:: efl.elementary
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

View File

@ -1,152 +0,0 @@
.. currentmodule:: efl.elementary
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

View File

@ -1,33 +0,0 @@
.. currentmodule:: efl.elementary
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

View File

@ -1,109 +0,0 @@
.. currentmodule:: efl.elementary
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

View File

@ -1,56 +0,0 @@
.. currentmodule:: efl.elementary
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

View File

@ -1,183 +0,0 @@
.. currentmodule:: efl.elementary
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

View File

@ -1,102 +0,0 @@
.. currentmodule:: efl.elementary
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

View File

@ -1,61 +0,0 @@
.. currentmodule:: efl.elementary
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

View File

@ -1,42 +0,0 @@
.. currentmodule:: efl.elementary
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

View File

@ -1,85 +0,0 @@
.. currentmodule:: efl.elementary
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

View File

@ -1,134 +0,0 @@
.. currentmodule:: efl.elementary
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

View File

@ -1,209 +0,0 @@
.. currentmodule:: efl.elementary
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

View File

@ -1,33 +0,0 @@
.. currentmodule:: efl.elementary
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

View File

@ -1,48 +0,0 @@
.. currentmodule:: efl.elementary
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

View File

@ -0,0 +1,8 @@
:mod:`actionslider` Module
--------------------------
.. automodule:: efl.elementary.actionslider
.. inheritance-diagram::
efl.elementary.actionslider
:parts: 2

View File

@ -0,0 +1,8 @@
:mod:`background` Module
------------------------
.. automodule:: efl.elementary.background
.. inheritance-diagram::
efl.elementary.background
:parts: 2

View File

@ -0,0 +1,8 @@
:mod:`box` Module
-----------------
.. automodule:: efl.elementary.box
.. inheritance-diagram::
efl.elementary.box
:parts: 2

View File

@ -0,0 +1,8 @@
:mod:`bubble` Module
------------------------
.. automodule:: efl.elementary.bubble
.. inheritance-diagram::
efl.elementary.bubble
:parts: 2

View File

@ -0,0 +1,8 @@
:mod:`button` Module
--------------------
.. automodule:: efl.elementary.button
.. inheritance-diagram::
efl.elementary.button
:parts: 2

View File

@ -0,0 +1,8 @@
:mod:`calendar_elm` Module
--------------------------
.. automodule:: efl.elementary.calendar_elm
.. inheritance-diagram::
efl.elementary.calendar_elm
:parts: 2

View File

@ -0,0 +1,8 @@
:mod:`check` Module
-------------------
.. automodule:: efl.elementary.check
.. inheritance-diagram::
efl.elementary.check
:parts: 2

View File

@ -0,0 +1,8 @@
:mod:`clock` Module
------------------------
.. automodule:: efl.elementary.clock
.. inheritance-diagram::
efl.elementary.clock
:parts: 2

View File

@ -0,0 +1,8 @@
:mod:`colorselector` Module
---------------------------
.. automodule:: efl.elementary.colorselector
.. inheritance-diagram::
efl.elementary.colorselector
:parts: 2

View File

@ -0,0 +1,4 @@
:mod:`configuration` Module
---------------------------
.. automodule:: efl.elementary.configuration

View File

@ -0,0 +1,8 @@
:mod:`conformant` Module
------------------------
.. automodule:: efl.elementary.conformant
.. inheritance-diagram::
efl.elementary.conformant
:parts: 2

View File

@ -0,0 +1,8 @@
:mod:`ctxpopup` Module
------------------------
.. automodule:: efl.elementary.ctxpopup
.. inheritance-diagram::
efl.elementary.ctxpopup
:parts: 2

View File

@ -0,0 +1,8 @@
:mod:`datetime_elm` Module
--------------------------
.. automodule:: efl.elementary.datetime_elm
.. inheritance-diagram::
efl.elementary.datetime_elm
:parts: 2

View File

@ -0,0 +1,8 @@
:mod:`dayselector` Module
-------------------------
.. automodule:: efl.elementary.dayselector
.. inheritance-diagram::
efl.elementary.dayselector
:parts: 2

View File

@ -0,0 +1,8 @@
:mod:`diskselector` Module
--------------------------
.. automodule:: efl.elementary.diskselector
.. inheritance-diagram::
efl.elementary.diskselector
:parts: 2

View File

@ -0,0 +1,8 @@
:mod:`entry` Module
-------------------
.. automodule:: efl.elementary.entry
.. inheritance-diagram::
efl.elementary.entry
:parts: 2

View File

@ -0,0 +1,8 @@
:mod:`fileselector` Module
--------------------------
.. automodule:: efl.elementary.fileselector
.. inheritance-diagram::
efl.elementary.fileselector
:parts: 2

View File

@ -0,0 +1,8 @@
:mod:`fileselector_button` Module
---------------------------------
.. automodule:: efl.elementary.fileselector_button
.. inheritance-diagram::
efl.elementary.fileselector_button
:parts: 2

View File

@ -0,0 +1,8 @@
:mod:`fileselector_entry` Module
--------------------------------
.. automodule:: efl.elementary.fileselector_entry
.. inheritance-diagram::
efl.elementary.fileselector_entry
:parts: 2

View File

@ -0,0 +1,8 @@
:mod:`flip` Module
------------------------
.. automodule:: efl.elementary.flip
.. inheritance-diagram::
efl.elementary.flip
:parts: 2

View File

@ -0,0 +1,8 @@
:mod:`flipselector` Module
--------------------------
.. automodule:: efl.elementary.flipselector
.. inheritance-diagram::
efl.elementary.flipselector
:parts: 2

View File

@ -0,0 +1,8 @@
:mod:`frame` Module
------------------------
.. automodule:: efl.elementary.frame
.. inheritance-diagram::
efl.elementary.frame
:parts: 2

View File

@ -0,0 +1,4 @@
:mod:`general` Module
---------------------
.. automodule:: efl.elementary.general

View File

@ -0,0 +1,8 @@
:mod:`gengrid` Module
------------------------
.. automodule:: efl.elementary.gengrid
.. inheritance-diagram::
efl.elementary.gengrid
:parts: 2

View File

@ -0,0 +1,11 @@
:mod:`genlist` Module
---------------------
.. automodule:: efl.elementary.genlist
Reference
---------
.. inheritance-diagram::
efl.elementary.genlist
:parts: 2

Some files were not shown because too many files have changed in this diff Show More