Compare commits

...

9 Commits

Author SHA1 Message Date
Kai Huuhko 74031458df Merge branch 'master' into elmfusion
Conflicts:
	efl/evas/efl.evas_object_textgrid.pxi
2015-05-07 14:24:00 +03:00
Kai Huuhko d87ce26545 Examples: Add systray test/example to the main menu 2015-04-28 03:12:16 +03:00
Kai Huuhko fa3733b57f Emotion: Fix documentation paragraph title 2015-04-28 02:30:58 +03:00
Kai Huuhko 178be163fc Evas: Fix documentation 2015-04-24 22:24:28 +03:00
Kai Huuhko bd88b8845e Merge branch 'master' into elmfusion
Conflicts:
	efl/elementary/__init__.pyx
	efl/elementary/colorselector.pxi
	efl/elementary/multibuttonentry.pxi
	efl/elementary/need.pxi
2015-04-24 15:59:11 +03:00
Kai Huuhko 380d998cd2 Documentation: Fix remaining issues from Elm merge 2015-04-19 22:35:44 +03:00
Kai Huuhko e4d3924317 Elm: Fix docs and compat, add test that imports all modules 2015-04-19 17:29:12 +03:00
Kai Huuhko d3569bf1f1 Elm: Unify modules into a monolithic module 2015-04-18 04:45:11 +03:00
Kai Huuhko d9fa1e89e2 Elm.Systray: Fix compile warning 2015-04-17 20:29:35 +03:00
288 changed files with 9294 additions and 9587 deletions

View File

@ -1,2 +1,85 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.actionslider
Actionslider
############
.. image:: /images/actionslider-preview.png
Widget description
==================
An actionslider is a switcher for two or three labels with
customizable magnet properties.
The user drags and releases the indicator, to choose a label.
Labels can occupy the following positions.
- Left
- Right
- Center
Positions can be enabled or disabled.
Magnets can be set on the above positions.
When the indicator is released, it will move to its nearest "enabled and
magnetized" position.
Emitted signals
===============
- ``selected`` - when user selects an enabled position (the label is
passed as event info)".
- ``pos_changed`` - when the indicator reaches any of the
positions("left", "right" or "center").
Layout text parts
=================
- ``indicator`` - An indicator label of the actionslider
- ``left`` - A left label of the actionslider
- ``right`` - A right label of the actionslider
- ``center`` - A center label of the actionslider
Enumerations
============
.. _Elm_Actionslider_Pos:
Actionslider positions
----------------------
.. data:: ELM_ACTIONSLIDER_NONE
No position
.. data:: ELM_ACTIONSLIDER_LEFT
Left position
.. data:: ELM_ACTIONSLIDER_CENTER
Center position
.. data:: ELM_ACTIONSLIDER_RIGHT
Right position
.. data:: ELM_ACTIONSLIDER_ALL
All positions
Inheritance diagram
===================
.. inheritance-diagram:: Actionslider
:parts: 2
.. autoclass:: Actionslider

View File

@ -1,2 +1,58 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.background
Background
##########
.. image:: /images/background-preview.png
Widget description
==================
The background widget is used for setting a solid color, image or Edje group
as a background to a window (unless it has transparency enabled) or any
container object.
It works just like an image, but has some properties useful to a
background, like setting it to tiled, centered, scaled or stretched.
Layout content parts
====================
- ``overlay`` - overlay of the bg
Enumerations
============
.. _Elm_Bg_Option:
Background display modes
------------------------
.. data:: ELM_BG_OPTION_CENTER
Center
.. data:: ELM_BG_OPTION_SCALE
Scale
.. data:: ELM_BG_OPTION_STRETCH
Stretch
.. data:: ELM_BG_OPTION_TILE
Tile
Inheritance diagram
===================
.. inheritance-diagram:: Background
:parts: 2
.. autoclass:: Background

View File

@ -1,2 +1,118 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.box
Box
###
.. image:: /images/box-preview.png
Widget description
==================
A box arranges objects in a linear fashion, governed by a layout function
that defines the details of this arrangement.
By default, the box will use an internal function to set the layout to
a single row, either vertical or horizontal. This layout is affected
by a number of parameters, such as the homogeneous flag set by
:py:attr:`~Box.homogeneous`, the values given by :py:attr:`~Box.padding` and
:py:attr:`~Box.align` and the hints set to each object in the box.
For this default layout, it's possible to change the orientation with
:py:attr:`~Box.horizontal`. The box will start in the vertical orientation,
placing its elements ordered from top to bottom. When horizontal is set,
the order will go from left to right. If the box is set to be
homogeneous, every object in it will be assigned the same space, that
of the largest object. Padding can be used to set some spacing between
the cell given to each object. The alignment of the box, set with
:py:attr:`~Box.align`, determines how the bounding box of all the elements
will be placed within the space given to the box widget itself.
The size hints of each object also affect how they are placed and sized
within the box. :py:attr:`~efl.evas.Object.size_hint_min` will give the minimum
size the object can have, and the box will use it as the basis for all
latter calculations. Elementary widgets set their own minimum size as
needed, so there's rarely any need to use it manually.
:py:attr:`~efl.evas.Object.size_hint_weight`, when not in homogeneous mode, is
used to tell whether the object will be allocated the minimum size it
needs or if the space given to it should be expanded. It's important
to realize that expanding the size given to the object is not the same
thing as resizing the object. It could very well end being a small
widget floating in a much larger empty space. If not set, the weight
for objects will normally be 0.0 for both axis, meaning the widget will
not be expanded. To take as much space possible, set the weight to
``EVAS_HINT_EXPAND`` (defined to 1.0) for the desired axis to expand.
Besides how much space each object is allocated, it's possible to control
how the widget will be placed within that space using
:py:attr:`~efl.evas.Object.size_hint_align`. By default, this value will be 0.5
for both axis, meaning the object will be centered, but any value from
0.0 (left or top, for the ``x`` and ``y`` axis, respectively) to 1.0
(right or bottom) can be used. The special value *EVAS_HINT_FILL*, which
is -1.0, means the object will be resized to fill the entire space it
was allocated.
In addition, customized functions to define the layout can be set, which
allow the application developer to organize the objects within the box
in any number of ways.
The special :py:meth:`Box.layout_transition` function can be used
to switch from one layout to another, animating the motion of the
children of the box.
.. note:: Objects should not be added to box objects using _add() calls.
Enumerations
============
.. _Evas_Object_Box_Layout:
Box layout modes
----------------
.. data:: ELM_BOX_LAYOUT_HORIZONTAL
Horizontal layout
.. data:: ELM_BOX_LAYOUT_VERTICAL
Vertical layout
.. data:: ELM_BOX_LAYOUT_HOMOGENEOUS_VERTICAL
Homogeneous vertical layout
.. data:: ELM_BOX_LAYOUT_HOMOGENEOUS_HORIZONTAL
Homogeneous horizontal layout
.. data:: ELM_BOX_LAYOUT_HOMOGENEOUS_MAX_SIZE_HORIZONTAL
Homogeneous layout, maximum size on the horizontal axis
.. data:: ELM_BOX_LAYOUT_HOMOGENEOUS_MAX_SIZE_VERTICAL
Homogeneous layout, maximum size on the horizontal axis
.. data:: ELM_BOX_LAYOUT_FLOW_HORIZONTAL
Horizontally flowing layout
.. data:: ELM_BOX_LAYOUT_FLOW_VERTICAL
Vertically flowing layout
.. data:: ELM_BOX_LAYOUT_STACK
Stacking layout
Inheritance diagram
===================
.. inheritance-diagram:: Box
:parts: 2
.. autoclass:: Box

View File

@ -1,2 +1,88 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.bubble
Bubble
######
.. image:: /images/bubble-preview.png
Widget description
==================
The Bubble is a widget to show text similar to how speech is
represented in comics.
The bubble widget contains 5 important visual elements:
- The frame is a rectangle with rounded edjes and an "arrow".
- The ``icon`` is an image to which the frame's arrow points to.
- The ``label`` is a text which appears to the right of the icon if the
corner is **top_left** or **bottom_left** and is right aligned to
the frame otherwise.
- The ``info`` is a text which appears to the right of the label. Info's
font is of a lighter color than label.
- The ``content`` is an evas object that is shown inside the frame.
The position of the arrow, icon, label and info depends on which corner is
selected. The four available corners are:
- ``top_left`` - Default
- ``top_right``
- ``bottom_left``
- ``bottom_right``
Layout content parts
====================
- ``default`` - A content of the bubble
- ``icon`` - An icon of the bubble
Layout text parts
=================
- ``default`` - Label of the bubble
- ``info`` - info of the bubble
Emitted signals
===============
- ``clicked`` - This is called when a user has clicked the bubble.
- ``focused`` - When the bubble has received focus. (since 1.8)
- ``unfocused`` - When the bubble has lost focus. (since 1.8)
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,3 +1,65 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.button
Button
######
.. image:: /images/button-preview.png
Widget description
==================
This is a push-button. Press it and run some function. It can contain
a simple label and icon object and it also has an autorepeat feature.
Available styles
================
- ``default`` a normal button.
- ``anchor`` Like default, but the button fades away when the mouse is not
over it, leaving only the text or icon.
- ``hoversel_vertical`` Internally used by
:py:class:`~efl.elementary.hoversel.Hoversel` to give a continuous look
across its options.
- ``hoversel_vertical_entry`` Another internal for
:py:class:`~efl.elementary.hoversel.Hoversel`.
- ``naviframe`` Internally used by
:py:class:`~efl.elementary.naviframe.Naviframe` for its back button.
- ``colorselector`` Internally used by
:py:class:`~efl.elementary.colorselector.Colorselector` for its left and
right buttons.
Layout content parts
====================
- ``icon`` - An icon of the button
Layout text parts
=================
- ``default`` - Label of the button
Emitted signals
===============
- ``clicked``: the user clicked the button (press/release).
- ``repeated``: the user pressed the button without releasing it.
- ``pressed``: button was pressed.
- ``unpressed``: button was released after being pressed.
- ``focused`` : When the button has received focus. (since 1.8)
- ``unfocused`` : When the button has lost focus. (since 1.8)
Inheritance diagram
===================
.. inheritance-diagram:: Button
:parts: 2
.. autoclass:: Button

View File

@ -1,2 +1,165 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.calendar_elm
Calendar
########
.. image:: /images/calendar-preview.png
Widget description
==================
This is a calendar widget.
It helps applications to flexibly display a calender with day of the week,
date, year and month. Applications are able to set specific dates to be
reported back, when selected, in the smart callbacks of the calendar widget.
The API of this widget lets the applications perform other functions, like:
- placing marks on specific dates
- setting the bounds for the calendar (minimum and maximum years)
- setting the day names of the week (e.g. "Thu" or "Thursday")
- setting the year and month format.
Emitted signals
===============
- ``changed`` - emitted when the date in the calendar is changed.
- ``display,changed`` - emitted when the current month displayed in the
calendar is changed.
- ``focused`` - When the calendar has received focus. (since 1.8)
- ``unfocused`` - When the calendar has lost focus. (since 1.8)
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).
.. _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,2 +1,49 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.check
Check
#####
.. image:: /images/check-preview.png
Widget description
==================
The check widget allows for toggling a value between true and false.
Check objects are a lot like radio objects in layout and functionality,
except they do not work as a group, but independently, and only toggle
the value of a boolean :py:attr:`~Check.state` between false and true.
Emitted signals
===============
- ``changed`` - This is called whenever the user changes the state of
the check objects.
- ``focused`` - When the check has received focus. (since 1.8)
- ``unfocused`` - When the check has lost focus. (since 1.8)
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,2 +1,94 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.clock
Clock
#####
.. image:: /images/clock-preview.png
Widget description
==================
This is a digital clock widget.
In its default theme, it has a vintage "flipping numbers clock" appearance,
which will animate sheets of individual algarisms individually as time goes
by.
A newly created clock will fetch system's time (already considering
local time adjustments) to start with, and will tick accordingly. It may
or may not show seconds.
Clocks have an **edition** mode. When in it, the sheets will display
extra arrow indications on the top and bottom and the user may click on
them to raise or lower the time values. After it's told to exit edition
mode, it will keep ticking with that new time set (it keeps the
difference from local time).
Also, when under edition mode, user clicks on the cited arrows which are
**held** for some time will make the clock to flip the sheet, thus
editing the time, continuously and automatically for the user. The
interval between sheet flips will keep growing in time, so that it helps
the user to reach a time which is distant from the one set.
The time display is, by default, in military mode (24h), but an am/pm
indicator may be optionally shown, too, when it will switch to 12h.
Emitted signals
===============
- ``changed`` - the clock's user changed the time
- ``focused`` - When the clock has received focus. (since 1.8)
- ``unfocused`` - When the clock has lost focus. (since 1.8)
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,2 +1,66 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.colorselector
Colorselector
#############
.. image:: /images/colorselector-preview.png
Widget description
==================
A Colorselector is a color selection widget.
It allows application to set a series of colors. It also allows to
load/save colors from/to config with a unique identifier, by default,
the colors are loaded/saved from/to config using "default" identifier.
The colors can be picked by user from the color set by clicking on
individual color item on the palette or by selecting it from selector.
Emitted signals
===============
- ``"changed"`` - When the color value changes on selector
- ``"color,item,selected"`` - When user clicks on color item.
The event_info parameter of the callback will be the selected
color item.
- ``"color,item,longpressed"`` - When user long presses on color item.
The event_info parameter of the callback will be the selected
color item.
- ``focused`` - When the colorselector has received focus. (since 1.8)
- ``unfocused`` - When the colorselector has lost focus. (since 1.8)
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,2 +1,162 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.configuration
Configuration
#############
Description
===========
Elementary configuration is formed by a set options bounded to a
given profile, like theme, "finger size", etc.
These are functions with which one synchronizes changes made to those
values to the configuration storing files, de facto. You most probably
don't want to use the functions in this group unless you're writing an
elementary configuration manager.
Profiles
========
Profiles are pre-set options that affect the whole look-and-feel of
Elementary-based applications. There are, for example, profiles
aimed at desktop computer applications and others aimed at mobile,
touchscreen-based ones. You most probably don't want to use the
functions in this group unless you're writing an elementary
configuration manager.
Elementary Scrolling
====================
These set how scrollable views in Elementary widgets should behave on
user interaction.
Password show last
==================
Show last feature of password mode enables user to view the last input
entered for few seconds before masking it. These functions allow to set
this feature in password mode of entry widget and also allow to
manipulate the duration for which the input has to be visible.
Elementary Engine
=================
These are functions setting and querying which rendering engine
Elementary will use for drawing its windows' pixels.
The following are the available engines:
- "software_x11"
- "fb"
- "directfb"
- "software_16_x11"
- "software_8_x11"
- "xrender_x11"
- "opengl_x11"
- "software_gdi"
- "software_16_wince_gdi"
- "sdl"
- "software_16_sdl"
- "opengl_sdl"
- "buffer"
- "ews"
- "opengl_cocoa"
- "psl1ght"
ATSPI AT-SPI2 Accessibility
===========================
Elementary widgets support Linux Accessibility standard. For more
information please visit:
http://www.linuxfoundation.org/collaborate/workgroups/accessibility/atk/at-spi/at-spi_on_d-bus
Enumerations
============
.. _Elm_Softcursor_Mode:
Elm_Softcursor_Mode
-------------------
.. data:: ELM_SOFTCURSOR_MODE_AUTO
Auto-detect if a software cursor should be used (default)
.. data:: ELM_SOFTCURSOR_MODE_ON
Always use a softcursor
.. data:: ELM_SOFTCURSOR_MODE_OFF
Never use a softcursor
.. _Elm_Slider_Indicator_Visible_Mode:
Elm_Slider_Indicator_Visible_Mode
---------------------------------
.. data:: ELM_SLIDER_INDICATOR_VISIBLE_MODE_DEFAULT
show indicator on mouse down or change in slider value
.. data:: ELM_SLIDER_INDICATOR_VISIBLE_MODE_ALWAYS
Always show the indicator
.. data:: ELM_SLIDER_INDICATOR_VISIBLE_MODE_ON_FOCUS
Show the indicator on focus
.. data:: ELM_SLIDER_INDICATOR_VISIBLE_MODE_NONE
Never show the indicator
.. _Edje_Channel:
Audio Channels
--------------
.. data:: EDJE_CHANNEL_EFFECT
Standard audio effects
.. data:: EDJE_CHANNEL_BACKGROUND
Background audio sounds
.. data:: EDJE_CHANNEL_MUSIC
Music audio
.. data:: EDJE_CHANNEL_FOREGROUND
Foreground audio sounds
.. data:: EDJE_CHANNEL_INTERFACE
Sounds related to the interface
.. data:: EDJE_CHANNEL_INPUT
Sounds related to regular input
.. data:: EDJE_CHANNEL_ALERT
Sounds for major alerts
.. data:: EDJE_CHANNEL_ALL
All audio channels (convenience)
Inheritance diagram
===================
.. inheritance-diagram:: Configuration
:parts: 2
.. autoclass:: Configuration

View File

@ -1,2 +1,43 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.conformant
Conformant
##########
.. image:: /images/conformant-preview.png
Widget description
==================
The aim is to provide a widget that can be used in elementary apps to
account for space taken up by the indicator, virtual keypad & softkey
windows when running the illume2 module of E17.
So conformant content will be sized and positioned considering the
space required for such stuff, and when they popup, as a keyboard
shows when an entry is selected, conformant content won't change.
Emitted signals
===============
- ``virtualkeypad,state,on``: if virtualkeypad state is switched to ``on``.
- ``virtualkeypad,state,off``: if virtualkeypad state is switched to ``off``.
- ``clipboard,state,on``: if clipboard state is switched to ``on``.
- ``clipboard,state,off``: if clipboard state is switched to ``off``.
Layout content parts
====================
- ``default`` - A content of the conformant
Inheritance diagram
===================
.. inheritance-diagram:: Conformant
:parts: 2
.. autoclass:: Conformant

View File

@ -1,2 +1,86 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.ctxpopup
Ctxpopup
########
.. image:: /images/ctxpopup-preview.png
Widget description
==================
A ctxpopup is a widget that, when shown, pops up a list of items. It
automatically chooses an area inside its parent object's view to
optimally fit into it. In the default theme, it will also point an arrow
to it's top left position at the time one shows it. Ctxpopup items have
a label and/or an icon. It is intended for a small number of items
(hence the use of list, not genlist).
.. note::
Ctxpopup is a specialization of :py:class:`~efl.elementary.hover.Hover`.
Emitted signals
===============
- ``dismissed`` - This is called when 1. the outside of ctxpopup was clicked
or 2. its parent area is changed or 3. the language is changed and also when
4. the parent object is resized due to the window rotation. Then ctxpopup is
dismissed.
- ``language,changed`` - This is called when the program's language is
changed.
- ``focused`` - When the ctxpopup has received focus. (since 1.8)
- ``unfocused`` - When the ctxpopup has lost focus. (since 1.8)
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,2 +1,219 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.datetime_elm
Datetime
########
Widget description
==================
Datetime widget is used to display and input date & time values.
This widget displays date and time as per the **system's locale** settings
(Date includes Day, Month & Year along with the defined separators and Time
includes Hour, Minute & AM/PM fields). Separator for AM/PM field is ignored.
The corresponding Month, AM/PM strings are displayed according to the
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.
- ``language,changed`` - whenever system locale changes, this signal is sent.
- ``focused`` - When the datetime has received focus. (since 1.8)
- ``unfocused`` - When the datetime has lost focus. (since 1.8)
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,2 +1,99 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.dayselector
Dayselector
###########
.. image:: /images/dayselector-preview.png
Widget description
==================
Dayselector displays all seven days of the week and allows the user to
select multiple days.
The selection can be toggle by just clicking on the day.
Dayselector also provides the functionality to check whether a day is
selected or not.
First day of the week is taken from config settings by default. It can be
altered by using the API :py:attr:`~Dayselector.week_start` API.
APIs are provided for setting the duration of weekend
:py:attr:`~Dayselector.weekend_start` and :py:attr:`~Dayselector.weekend_length`
does this job.
Two styles of weekdays and weekends are supported in Dayselector.
Application can emit signals on individual check objects for setting the
weekday, weekend styles.
Once the weekend start day or weekend length changes, all the weekday &
weekend styles will be reset to default style. It's the application's
responsibility to set the styles again by sending corresponding signals.
"day0" indicates Sunday, "day1" indicates Monday etc. continues and so,
"day6" indicates the Saturday part name.
Application can change individual day display string by using the API
:py:meth:`~efl.elementary.object.Object.part_text_set`.
:py:meth:`~efl.elementary.object.Object.part_content_set` API sets the
individual day object only if the passed one is a Check widget.
Check object representing a day can be set/get by the application by using
the elm_object_part_content_set/get APIs thus providing a way to handle
the different check styles for individual days.
Emitted signals
===============
- ``dayselector,changed`` - when the user changes the state of a day.
- ``language,changed`` - the program's language changed
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,2 +1,72 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.diskselector
Diskselector
############
.. image:: /images/diskselector-preview.png
Widget description
==================
A diskselector is a kind of list widget. It scrolls horizontally,
and can contain label and icon objects. Three items are displayed
with the selected one in the middle.
It can act like a circular list with round mode and labels can be
reduced for a defined length for side items.
Emitted signals
===============
- ``selected`` - when item is selected, i.e. scroller stops.
- ``clicked`` - This is called when a user clicks an item
- ``scroll,anim,start`` - scrolling animation has started
- ``scroll,anim,stop`` - scrolling animation has stopped
- ``scroll,drag,start`` - dragging the diskselector has started
- ``scroll,drag,stop`` - dragging the diskselector has stopped
- ``focused`` - When the diskselector has received focus. (since 1.8)
- ``unfocused`` - When the diskselector has lost focus. (since 1.8)
.. 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,10 +1,7 @@
Elementary
##########
.. module:: efl.elementary
What is elementary?
===================
*******************
Elementary is a the high level toolkit based on the underlying efl
technologies (:doc:`Evas </evas/evas>`, :doc:`Edje </edje/edje>`,
@ -16,10 +13,10 @@ of flexibility.
Callbacks
=========
*********
Widget callbacks
----------------
================
Widget callbacks are set with callback_*_add methods which take a callable,
and optional args, kwargs as data.
@ -34,7 +31,7 @@ or::
Event callbacks
---------------
===============
Event callbacks have signature of::
@ -42,91 +39,418 @@ Event callbacks have signature of::
A sample Python Elementary program
==================================
**********************************
.. literalinclude:: ../../examples/elementary/test_win_dialog.py
:language: python
API Reference
=============
*************
Enumerations
============
.. _Elm_Object_Layer:
Object layers
-------------
.. versionadded:: 1.14
.. data:: ELM_OBJECT_LAYER_BACKGROUND
where to place backgrounds
.. data:: ELM_OBJECT_LAYER_DEFAULT
Evas_Object default layer (and thus for Elementary)
.. data:: ELM_OBJECT_LAYER_FOCUS
where focus object visualization is
.. data:: ELM_OBJECT_LAYER_TOOLTIP
where to show tooltips
.. data:: ELM_OBJECT_LAYER_CURSOR
where to show cursors
.. data:: ELM_OBJECT_LAYER_LAST
last layer known by Elementary
.. _Elm_Policy:
Policy types
------------
.. data:: ELM_POLICY_QUIT
Under which circumstances the application should quit automatically.
.. data:: ELM_POLICY_EXIT
Defines elm_exit() behaviour. (since 1.8)
.. data:: ELM_POLICY_THROTTLE
Defines how throttling should work (since 1.8)
.. _Elm_Policy_Quit:
Quit policy types
-----------------
.. data:: ELM_POLICY_QUIT_NONE
Never quit the application automatically
.. data:: ELM_POLICY_QUIT_LAST_WINDOW_CLOSED
Quit when the application's last window is closed
.. _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_Process_State:
Elm_Process_State
-----------------
.. data:: ELM_PROCESS_STATE_FOREGROUND
The process is in a foreground/active/running state - work as normal.
.. versionadded:: 1.12
.. data:: ELM_PROCESS_STATE_BACKGROUND
The process is in the bacgkround, so you may want to stop animating,
fetching data as often etc.
.. versionadded:: 1.12
.. _Elm_Sys_Notify_Closed_Reason:
Notify close reasons
--------------------
The reason the notification was closed
.. data:: ELM_SYS_NOTIFY_CLOSED_EXPIRED
The notification expired.
.. versionadded:: 1.10
.. data:: ELM_SYS_NOTIFY_CLOSED_DISMISSED
The notification was dismissed by the user.
.. versionadded:: 1.10
.. data:: ELM_SYS_NOTIFY_CLOSED_REQUESTED
The notification was closed by a call to CloseNotification method.
.. versionadded:: 1.10
.. data:: ELM_SYS_NOTIFY_CLOSED_UNDEFINED
Undefined/reserved reasons.
.. versionadded:: 1.10
.. _Elm_Sys_Notify_Urgency:
Notify urgency levels
---------------------
Urgency levels of a notification
:see: :py:func:`sys_notify_send`
.. data:: ELM_SYS_NOTIFY_URGENCY_LOW
Low
.. versionadded:: 1.10
.. data:: ELM_SYS_NOTIFY_URGENCY_NORMAL
Normal
.. versionadded:: 1.10
.. data:: ELM_SYS_NOTIFY_URGENCY_CRITICAL
Critical
.. versionadded:: 1.10
.. _Elm_Glob_Match_Flags:
Glob matching
-------------
Glob matching bitfiled flags
.. data:: ELM_GLOB_MATCH_NO_ESCAPE
Treat backslash as an ordinary character instead of escape.
.. versionadded:: 1.11
.. data:: ELM_GLOB_MATCH_PATH
Match a slash in string only with a slash in pattern and not by an
asterisk (*) or a question mark (?) metacharacter, nor by a bracket
expression ([]) containing a slash.
.. versionadded:: 1.11
.. data:: ELM_GLOB_MATCH_PERIOD
Leading period in string has to be matched exactly by a period in
pattern. A period is considered to be leading if it is the first
character in string, or if both ELM_GLOB_MATCH_PATH is set and the
period immediately follows a slash.
.. versionadded:: 1.11
.. data:: ELM_GLOB_MATCH_NOCASE
The pattern is matched case-insensitively.
.. versionadded:: 1.11
.. _General:
General
=======
General Elementary API. Functions that don't relate to
Elementary objects specifically.
Here are documented functions which init/shutdown the library,
that apply to generic Elementary objects, that deal with
configuration, et cetera.
.. autoclass:: EthumbConnect
.. autoclass:: ConfigAllChanged
.. autoclass:: PolicyChanged
.. autoclass:: ProcessBackground
.. autoclass:: ProcessForeground
.. autofunction:: on_ethumb_connect
.. autofunction:: on_config_all_changed
.. autofunction:: on_policy_changed
.. autofunction:: on_process_background
.. autofunction:: on_process_foreground
.. autofunction:: init
.. autofunction:: shutdown
.. autofunction:: run
.. autofunction:: exit
.. autofunction:: policy_set
.. autofunction:: policy_get
.. autofunction:: language_set
.. autofunction:: process_state_get
.. _Fingers:
Fingers
=======
Elementary is designed to be finger-friendly for touchscreens,
and so in addition to scaling for display resolution, it can
also scale based on finger "resolution" (or size). You can then
customize the granularity of the areas meant to receive clicks
on touchscreens.
Different profiles may have pre-set values for finger sizes.
.. autofunction:: coords_finger_size_adjust
.. _Caches:
Caches
======
These are functions which let one fine-tune some cache values for
Elementary applications, thus allowing for performance adjustments.
.. autofunction:: cache_all_flush
.. _Fonts:
Fonts
=====
These are functions dealing with font rendering, selection and the
like for Elementary applications. One might fetch which system
fonts are there to use and set custom fonts for individual classes
of UI items containing text (text classes).
.. autofunction:: font_properties_get
.. autofunction:: font_properties_free
.. autofunction:: font_fontconfig_name_get
.. autoclass:: FontProperties
.. _Debug:
Debug
=====
Don't use them unless you are sure.
.. autofunction:: object_tree_dump
.. autofunction:: object_tree_dot_dump
.. _Sys_Notify:
Sys Notify
==========
.. autofunction:: sys_notify_close
.. autofunction:: sys_notify_send
.. autofunction:: on_sys_notify_notification_closed
.. autofunction:: on_sys_notify_action_invoked
.. autoclass:: SysNotifyNotificationClosed
.. autoclass:: SysNotifyActionInvoked
Widgets
=======
.. toctree:: *
:glob:
:maxdepth: 1
Inheritance diagram
===================
.. inheritance-diagram::
efl.elementary.actionslider
efl.elementary.background
efl.elementary.box
efl.elementary.bubble
efl.elementary.button
efl.elementary.calendar_elm
efl.elementary.check
efl.elementary.clock
efl.elementary.colorselector
efl.elementary.configuration
efl.elementary.conformant
efl.elementary.ctxpopup
efl.elementary.datetime_elm
efl.elementary.dayselector
efl.elementary.diskselector
efl.elementary.entry
efl.elementary.fileselector
efl.elementary.fileselector_button
efl.elementary.fileselector_entry
efl.elementary.flip
efl.elementary.flipselector
efl.elementary.frame
efl.elementary.general
efl.elementary.gengrid
efl.elementary.genlist
efl.elementary.gesture_layer
efl.elementary.grid
efl.elementary.hover
efl.elementary.hoversel
efl.elementary.icon
efl.elementary.image
efl.elementary.index
efl.elementary.innerwindow
efl.elementary.label
efl.elementary.layout
efl.elementary.layout_class
efl.elementary.list
efl.elementary.map
efl.elementary.mapbuf
efl.elementary.menu
efl.elementary.multibuttonentry
efl.elementary.naviframe
efl.elementary.need
efl.elementary.notify
efl.elementary.object
efl.elementary.object_item
efl.elementary.panel
efl.elementary.panes
efl.elementary.photo
efl.elementary.photocam
efl.elementary.plug
efl.elementary.popup
efl.elementary.progressbar
efl.elementary.radio
efl.elementary.scroller
efl.elementary.segment_control
efl.elementary.separator
efl.elementary.slider
efl.elementary.slideshow
efl.elementary.spinner
efl.elementary.systray
efl.elementary.table
efl.elementary.theme
efl.elementary.thumb
efl.elementary.toolbar
efl.elementary.transit
efl.elementary.video
efl.elementary.web
efl.elementary.window
:parts: 2
efl.elementary.Actionslider
efl.elementary.Background
efl.elementary.Box
efl.elementary.Bubble
efl.elementary.Button
efl.elementary.Calendar
efl.elementary.Check
efl.elementary.Clock
efl.elementary.Colorselector
efl.elementary.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.Systray
efl.elementary.Table
efl.elementary.Theme
efl.elementary.Thumb
efl.elementary.Toolbar
efl.elementary.Transit
efl.elementary.Video
efl.elementary.Web
efl.elementary.Window
:parts: 1

View File

@ -1,2 +1,581 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.entry
Entry
#####
.. image:: /images/entry-preview.png
Widget description
==================
An entry is a convenience widget which shows a box that the user can
enter text into.
Entries by default don't scroll, so they grow to accommodate the entire text,
resizing the parent window as needed. This can be changed with the property
:py:attr:`~efl.elementary.entry.Entry.scrollable`.
They can also be single line or multi line (the default) and when set
to multi line mode they support text wrapping in any of the modes
indicated by :ref:`Elm_Wrap_Type`.
Other features include password mode, filtering of inserted text with
:py:meth:`~efl.elementary.entry.Entry.markup_filter_append` and related
functions, inline "items" and formatted markup text.
Scrollable Interface
====================
This widget supports the scrollable interface.
If you wish to control the scolling behaviour using these functions,
inherit both the widget class and the
:py:class:`~efl.elementary.scroller.Scrollable` class
using multiple inheritance, for example::
class ScrollableGenlist(Genlist, Scrollable):
def __init__(self, canvas, *args, **kwargs):
Genlist.__init__(self, canvas)
Formatted text
==============
The markup tags supported by the Entry are defined by the theme, but
even when writing new themes or extensions it's a good idea to stick to
a sane default, to maintain coherency and avoid application breakages.
Currently defined by the default theme are the following tags:
``<br>``
Inserts a line break.
``<ps>``
Inserts a paragraph separator. This is preferred over line
breaks.
``<tab>``
Inserts a tab.
``<em>...</em>``
Emphasis. Sets the *oblique* style for the
enclosed text.
``<b>...</b>``
Sets the **bold** style for the enclosed text.
``<link>...</link>``
Underlines the enclosed text.
``<hilight>...</hilight>``
Highlights the enclosed text.
Special markups
===============
Besides those used to format text, entries support two special markup
tags used to insert click-able portions of text or items inlined within
the text.
Anchors
-------
Anchors are similar to HTML anchors. Text can be surrounded by <a> and
</a> tags and an event will be generated when this text is clicked,
like this::
This text is outside <a href=anc-01>but this one is an anchor</a>
The ``href`` attribute in the opening tag gives the name that will be
used to identify the anchor and it can be any valid utf8 string.
When an anchor is clicked, an ``"anchor,clicked"`` signal is emitted with
an :py:class:`EntryAnchorInfo` in the ``event_info`` parameter for the
callback function. The same applies for ``anchor,in`` (mouse in),
``anchor,out`` (mouse out), ``anchor,down`` (mouse down), and ``anchor,up``
(mouse up) events on an anchor.
Items
-----
Inlined in the text, any other :py:class:`~efl.elementary.object.Object` can
be inserted by using ``<item>`` tags this way::
<item size=16x16 vsize=full href=emoticon/haha></item>
Just like with anchors, the ``href`` identifies each item, but these need,
in addition, to indicate their size, which is done using any one of
``size``, ``absize`` or ``relsize`` attributes. These attributes take their
value in the WxH format, where W is the width and H the height of the
item.
- absize: Absolute pixel size for the item. Whatever value is set will
be the item's size regardless of any scale value the object may have
been set to. The final line height will be adjusted to fit larger items.
- size: Similar to *absize*, but it's adjusted to the scale value set
for the object.
- relsize: Size is adjusted for the item to fit within the current
line height.
Besides their size, items are specified a ``vsize`` value that affects
how their final size and position are calculated. The possible values
are:
- ``ascent``: Item will be placed within the line's baseline and its
ascent. That is, the height between the line where all characters are
positioned and the highest point in the line. For ``size`` and
``absize`` items, the descent value will be added to the total line
height to make them fit. ``relsize`` items will be adjusted to fit
within this space.
- ``full``: Items will be placed between the descent and ascent, or the
lowest point in the line and its highest.
After the size for an item is calculated, the entry will request an object to
place in its space. For this, the functions set with
:py:meth:`~efl.elementary.entry.Entry.item_provider_append` and related
functions will be called in order until one of them returns a non-*None* value.
If no providers are available, or all of them return *None*, then the entry
falls back to one of the internal defaults, provided the name matches with one
of them.
All of the following are currently supported:
- emoticon/angry
- emoticon/angry-shout
- emoticon/crazy-laugh
- emoticon/evil-laugh
- emoticon/evil
- emoticon/goggle-smile
- emoticon/grumpy
- emoticon/grumpy-smile
- emoticon/guilty
- emoticon/guilty-smile
- emoticon/haha
- emoticon/half-smile
- emoticon/happy-panting
- emoticon/happy
- emoticon/indifferent
- emoticon/kiss
- emoticon/knowing-grin
- emoticon/laugh
- emoticon/little-bit-sorry
- emoticon/love-lots
- emoticon/love
- emoticon/minimal-smile
- emoticon/not-happy
- emoticon/not-impressed
- emoticon/omg
- emoticon/opensmile
- emoticon/smile
- emoticon/sorry
- emoticon/squint-laugh
- emoticon/surprised
- emoticon/suspicious
- emoticon/tongue-dangling
- emoticon/tongue-poke
- emoticon/uh
- emoticon/unhappy
- emoticon/very-sorry
- emoticon/what
- emoticon/wink
- emoticon/worried
- emoticon/wtf
Alternatively, an item may reference an image by its path, using
the URI form ``file:///path/to/an/image.png`` and the entry will then
use that image for the item.
Setting entry's style
=====================
There are 2 major ways to change the entry's style:
- Theme - set the "base" field to the desired style.
- User style - Pushing overrides to the theme style to the textblock object
by using :py:meth:`~efl.elementary.entry.Entry.text_style_user_push`.
You should modify the theme when you would like to change the style for
aesthetic reasons. While the user style should be changed when you would
like to change the style to something specific defined at run-time, e.g,
setting font or font size in a text editor.
Loading and saving files
========================
Entries have convenience functions to load text from a file and save changes
back to it after a short delay. The automatic saving is enabled by default, but
can be disabled with :py:attr:`~efl.elementary.entry.Entry.autosave` and files
can be loaded directly as plain text or have any markup in them recognized. See
:py:attr:`~efl.elementary.entry.Entry.file` for more details.
Emitted signals
===============
- ``changed``: The text within the entry was changed.
- ``changed,user``: The text within the entry was changed because of user
interaction.
- ``activated``: The enter key was pressed on a single line entry.
- ``aborted``: The escape key was pressed on a single line entry. (since 1.7)
- ``press``: A mouse button has been pressed on the entry.
- ``longpressed``: A mouse button has been pressed and held for a couple
seconds.
- ``clicked``: The entry has been clicked (mouse press and release).
- ``clicked,double``: The entry has been double clicked.
- ``clicked,triple``: The entry has been triple clicked.
- ``focused``: The entry has received focus.
- ``unfocused``: The entry has lost focus.
- ``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.
- ``language,changed``: Program language 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
.. _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,2 +1,137 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.fileselector
Fileselector
############
.. image:: /images/fileselector-preview.png
Widget description
==================
A file selector is a widget that allows a user to navigate through a
file system, reporting file selections back via its API.
It contains shortcut buttons for home directory (*~*) and to jump one
directory upwards (..), as well as cancel/ok buttons to confirm/cancel a
given selection. After either one of those two former actions, the file
selector will issue its ``"done"`` smart callback.
There's a text entry on it, too, showing the name of the current
selection. There's the possibility of making it editable, so it is
useful on file saving dialogs on applications, where one gives a file
name to save contents to, in a given directory in the system. This
custom file name will be reported on the ``"done"`` smart callback
(explained in sequence).
Finally, it has a view to display file system items into in two possible
forms:
- list
- grid
If Elementary is built with support of the Ethumb thumbnailing library,
the second form of view will display preview thumbnails of files which
it supports.
Emitted signals
===============
- ``activated`` - the user activated a file. This can happen by
double-clicking or pressing Enter key. (**event_info** is a string with the
activated file path)
- ``selected`` - the user has clicked on a file (when not in folders-only
mode) or directory (when in folders-only mode)
- ``directory,open`` - the list has been populated with new content
(*event_info* is the directory's path)
- ``done`` - the user has clicked on the "ok" or "cancel"
buttons (*event_info* is the selection's path)
Layout text parts
=================
- ``ok`` - OK button label if the ok button is set. (since 1.8)
- ``cancel`` - Cancel button label if the cancel button is set. (since 1.8)
Enumerations
============
.. _Elm_Fileselector_Mode:
Fileselector modes
------------------
.. data:: ELM_FILESELECTOR_LIST
Layout as a list
.. data:: ELM_FILESELECTOR_GRID
Layout as a grid
.. _Elm_Fileselector_Sort:
Fileselector sort method
------------------------
.. data:: ELM_FILESELECTOR_SORT_BY_FILENAME_ASC
Sort by filename in ascending order
.. versionadded:: 1.9
.. data:: ELM_FILESELECTOR_SORT_BY_FILENAME_DESC
Sort by filename in descending order
.. versionadded:: 1.9
.. data:: ELM_FILESELECTOR_SORT_BY_TYPE_ASC
Sort by file type in ascending order
.. versionadded:: 1.9
.. data:: ELM_FILESELECTOR_SORT_BY_TYPE_DESC
Sort by file type in descending order
.. versionadded:: 1.9
.. data:: ELM_FILESELECTOR_SORT_BY_SIZE_ASC
Sort by file size in ascending order
.. versionadded:: 1.9
.. data:: ELM_FILESELECTOR_SORT_BY_SIZE_DESC
Sort by file size in descending order
.. versionadded:: 1.9
.. data:: ELM_FILESELECTOR_SORT_BY_MODIFIED_ASC
Sort by file modification date in ascending order
.. versionadded:: 1.9
.. data:: ELM_FILESELECTOR_SORT_BY_MODIFIED_DESC
Sort by file modification date in descending order
.. versionadded:: 1.9
Inheritance diagram
===================
.. inheritance-diagram:: Fileselector
:parts: 2
.. autoclass:: Fileselector

View File

@ -1,2 +1,75 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.fileselector_button
Fileselector Button
###################
.. image:: /images/fileselector-button-preview.png
Widget description
==================
This is a button that, when clicked, creates an Elementary window (or
inner window) with a :py:class:`~efl.elementary.fileselector.Fileselector`
within.
When a file is chosen, the (inner) window is closed and the button emits
a signal having the selected file as it's ``event_info``.
This widget encapsulates operations on its internal file selector on its
own API. There is less control over its file selector than that one
would have instantiating one directly.
Available styles
================
- ``default``
- ``anchor``
- ``hoversel_vertical``
- ``hoversel_vertical_entry``
Emitted signals
===============
- ``file,chosen`` - the user has selected a path which comes as the
``event_info`` data
- ``language,changed`` - the program's language changed
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,2 +1,90 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.fileselector_entry
Fileselector Entry
##################
.. image:: /images/fileselector-entry-preview.png
Widget description
==================
This is an entry made to be filled with or display a file
system path string.
Besides the entry itself, the widget has a
:py:class:`~efl.elementary.fileselector_button.FileselectorButton` on its side,
which will raise an internal
:py:class:`~efl.elementary.fileselector.Fileselector`, when clicked, for path
selection aided by file system navigation.
This file selector may appear in an Elementary window or in an
inner window. When a file is chosen from it, the (inner) window
is closed and the selected file's path string is exposed both as
a smart event and as the new text on the entry.
This widget encapsulates operations on its internal file
selector on its own API. There is less control over its file
selector than that one would have instantiating one directly.
Emitted signals
===============
- ``changed`` - The text within the entry was changed
- ``activated`` - The entry has had editing finished and
changes are to be "committed"
- ``press`` - The entry has been clicked
- ``longpressed`` - The entry has been clicked (and held) for a
couple seconds
- ``clicked`` - The entry has been clicked
- ``clicked,double`` - The entry has been double clicked
- ``focused`` - The entry has received focus
- ``unfocused`` - The entry has lost focus
- ``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.
- ``language,changed`` - the program's language changed
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,2 +1,164 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.flip
Flip
####
.. image:: /images/flip-preview.png
Widget description
==================
This widget holds two content :py:class:`efl.evas.Object`: one on
the front and one on the back. It allows you to flip from front to back
and vice-versa using various animations.
If either the front or back contents are not set the flip will treat that
as transparent. So if you were to set the front content but not the back,
and then call :py:meth:`Flip.go` you would see whatever is below the flip.
For a list of supported animations see :py:meth:`Flip.go`.
Emitted signals
===============
- ``animate,begin`` - when a flip animation was started
- ``animate,done`` - when a flip animation is finished
Layout content parts
====================
- ``front`` - A front content of the flip
- ``back`` - A back content of the flip
Enumerations
============
.. _Elm_Flip_Direction:
Flip directions
---------------
.. data:: ELM_FLIP_DIRECTION_UP
Allows interaction with the top of the widget.
.. data:: ELM_FLIP_DIRECTION_DOWN
Allows interaction with the bottom of the widget.
.. data:: ELM_FLIP_DIRECTION_LEFT
Allows interaction with the left portion of
the widget.
.. data:: ELM_FLIP_DIRECTION_RIGHT
Allows interaction with the right portion of
the widget.
.. _Elm_Flip_Interaction:
Flip interaction modes
----------------------
.. data:: ELM_FLIP_INTERACTION_NONE
No interaction is allowed
.. data:: ELM_FLIP_INTERACTION_ROTATE
Interaction will cause rotate animation
.. data:: ELM_FLIP_INTERACTION_CUBE
Interaction will cause cube animation
.. data:: ELM_FLIP_INTERACTION_PAGE
Interaction will cause page animation
.. _Elm_Flip_Mode:
Flip types
----------
.. data:: ELM_FLIP_ROTATE_Y_CENTER_AXIS
Rotate the currently visible content around a vertical axis in the
middle of its width, the other content is shown as the other side of the
flip.
.. data:: ELM_FLIP_ROTATE_X_CENTER_AXIS
Rotate the currently visible content around a horizontal axis in the
middle of its height, the other content is shown as the other side of
the flip.
.. data:: ELM_FLIP_ROTATE_XZ_CENTER_AXIS
Rotate the currently visible content around a diagonal axis in the
middle of its width, the other content is shown as the other side of the
flip.
.. data:: ELM_FLIP_ROTATE_YZ_CENTER_AXIS
Rotate the currently visible content around a diagonal axis in the
middle of its height, the other content is shown as the other side of
the flip.
.. data:: ELM_FLIP_CUBE_LEFT
Rotate the currently visible content to the left as if the flip was a
cube, the other content is show as the right face of the cube.
.. data:: ELM_FLIP_CUBE_RIGHT
Rotate the currently visible content to the right as if the flip was a
cube, the other content is show as the left face of the cube.
.. data:: ELM_FLIP_CUBE_UP
Rotate the currently visible content up as if the flip was a cube, the
other content is show as the bottom face of the cube.
.. data:: ELM_FLIP_CUBE_DOWN
Rotate the currently visible content down as if the flip was a cube, the
other content is show as the upper face of the cube.
.. data:: ELM_FLIP_PAGE_LEFT
Move the currently visible content to the left as if the flip was a
book, the other content is shown as the page below that.
.. data:: ELM_FLIP_PAGE_RIGHT
Move the currently visible content to the right as if the flip was a
book, the other content is shown as the page below that.
.. data:: ELM_FLIP_PAGE_UP
Move the currently visible content up as if the flip was a book, the
other content is shown as the page below that.
.. data:: ELM_FLIP_PAGE_DOWN
Move the currently visible content down as if the flip was a book, the
other content is shown as the page below that.
Inheritance diagram
===================
.. inheritance-diagram:: Flip
:parts: 2
.. autoclass:: Flip

View File

@ -1,2 +1,52 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.flipselector
Flipselector
############
.. image:: /images/flipselector-preview.png
Widget description
==================
A flip selector is a widget to show a set of *text* items, one at a time, with
the same sheet switching style as the :py:class:`~efl.elementary.clock.Clock`
widget, when one changes the current displaying sheet (thus, the "flip" in the
name).
User clicks to flip sheets which are *held* for some time will
make the flip selector to flip continuously and automatically for
the user. The interval between flips will keep growing in time,
so that it helps the user to reach an item which is distant from
the current selection.
Emitted signals
===============
- ``selected`` - when the widget's selected text item is changed
- ``overflowed`` - when the widget's current selection is changed
from the first item in its list to the last
- ``underflowed`` - when the widget's current selection is changed
from the last item in its list to the first
- ``focused`` - When the flipselector has received focus. (since 1.8)
- ``unfocused`` - When the flipselector has lost focus. (since 1.8)
Layout text parts
=================
- ``default`` - label of the flipselector item
Inheritance diagram
===================
.. inheritance-diagram::
FlipSelector
FlipSelectorItem
:parts: 2
.. autoclass:: FlipSelector
.. autoclass:: FlipSelectorItem

View File

@ -1,2 +1,54 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.frame
Frame
#####
.. image:: /images/frame-preview.png
Widget description
==================
Frame is a widget that holds some content and has a title.
Available styles
================
- default
- pad_small
- pad_medium
- pad_large
- pad_huge
- outdent_top
- outdent_bottom
Out of all these styles only default shows the title.
Emitted signals
===============
- ``clicked`` - The user has clicked the frame's label
Layout content parts
====================
- ``default`` - A content of the frame
Layout text parts
=================
- ``default`` - Label of the frame
Inheritance diagram
===================
.. inheritance-diagram:: Frame
:parts: 2
.. autoclass:: Frame

View File

@ -1,2 +0,0 @@
.. automodule:: efl.elementary.general

View File

@ -1,2 +1,329 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.gengrid
Gengrid
#######
.. image:: /images/gengrid-preview.png
Widget description
==================
This widget aims to position objects in a grid layout while actually
creating and rendering only the visible ones, using the same idea as the
:py:class:`~efl.elementary.genlist.Genlist`: the user defines a **class** for
each item, specifying functions that will be called at object creation,
deletion, etc. When those items are selected by the user, a callback
function is issued. Users may interact with a gengrid via the mouse (by
clicking on items to select them and clicking on the grid's viewport and
swiping to pan the whole view) or via the keyboard, navigating through
item with the arrow keys.
Scrollable Interface
====================
This widget supports the scrollable interface.
If you wish to control the scolling behaviour using these functions,
inherit both the widget class and the
:py:class:`~efl.elementary.scroller.Scrollable` class
using multiple inheritance, for example::
class ScrollableGenlist(Genlist, Scrollable):
def __init__(self, canvas, *args, **kwargs):
Genlist.__init__(self, canvas)
Gengrid layouts
===============
Gengrid may layout its items in one of two possible layouts:
- horizontal or
- vertical.
When in "horizontal mode", items will be placed in **columns**, from top
to bottom and, when the space for a column is filled, another one is
started on the right, thus expanding the grid horizontally, making for
horizontal scrolling. When in "vertical mode" , though, items will be
placed in **rows**, from left to right and, when the space for a row is
filled, another one is started below, thus expanding the grid vertically
(and making for vertical scrolling).
Gengrid items
=============
An item in a gengrid can have 0 or more texts (they can be regular text
or textblock Evas objects - that's up to the style to determine), 0 or
more contents (which are simply objects swallowed into the gengrid
item's theming Edje object) and 0 or more **boolean states**, which
have the behavior left to the user to define. The Edje part names for
each of these properties will be looked up, in the theme file for the
gengrid, under the Edje (string) data items named ``"texts"``,
``"contents"`` and ``"states"``, respectively. For each of those
properties, if more than one part is provided, they must have names
listed separated by spaces in the data fields. For the default gengrid
item theme, we have **one** text part (``"elm.text"``), **two** content
parts (``"elm.swalllow.icon"`` and ``"elm.swallow.end"``) and **no**
state parts.
A gengrid item may be at one of several styles. Elementary provides one
by default - "default", but this can be extended by system or
application custom themes/overlays/extensions (see
:py:class:`~efl.elementary.theme.Theme` for more details).
Gengrid item classes
====================
In order to have the ability to add and delete items on the fly, gengrid
implements a class (callback) system where the application provides a
structure with information about that type of item (gengrid may contain
multiple different items with different classes, states and styles).
Gengrid will call the functions in this struct (methods) when an item is
"realized" (i.e., created dynamically, while the user is scrolling the
grid). All objects will simply be deleted when no longer needed with
:meth:`~efl.eo.Eo.delete`. The :class:`GengridItemClass` class contains the
following attributes and methods:
- ``item_style`` - This is a constant string and simply defines the name
of the item style. It **must** be specified and the default should be
``default``.
- ``func.text_get`` - This function is called when an item object is
actually created. The ``data`` parameter will point to the same data
passed to :meth:`~Gengrid.item_append` and related item creation
functions. The ``obj`` parameter is the gengrid object itself, while
the ``part`` one is the name string of one of the existing text parts
in the Edje group implementing the item's theme.
See :py:meth:`GengridItemClass.text_get`.
- ``func.content_get`` - This function is called when an item object is
actually created. The ``data`` parameter will point to the same data
passed to :py:meth:`GengridItem.append_to` and related item creation
functions. The ``obj`` parameter is the gengrid object itself, while
the ``part`` one is the name string of one of the existing (content)
swallow parts in the Edje group implementing the item's theme. It must
return ``None,`` when no content is desired, or a valid object handle,
otherwise. The object will be deleted by the gengrid on its deletion
or when the item is "unrealized". See :py:meth:`GengridItemClass.content_get`.
- ``func.state_get`` - This function is called when an item object is
actually created. The ``data`` parameter will point to the same data
passed to :py:meth:`GengridItem.append_to` and related item creation
functions. The ``obj`` parameter is the gengrid object itself, while
the ``part`` one is the name string of one of the state parts in the
Edje group implementing the item's theme. Return ``False`` for
false/off or ``True`` for true/on. Gengrids will emit a signal to
its theming Edje object with ``"elm,state,xxx,active"`` and ``"elm"``
as "emission" and "source" arguments, respectively, when the state is
true (the default is false), where ``xxx`` is the name of the (state)
part. See :py:meth:`GengridItemClass.state_get`.
- ``func.del`` - This is called when
:meth:`efl.elementary.object_item.ObjectItem.delete` is called on
an item or :meth:`~Gengrid.clear` is called on the gengrid. This is
intended for use when gengrid items are deleted, so any data attached
to the item (e.g. its data parameter on creation) can be deleted. See
:py:meth:`GengridItemClass.delete`.
Usage hints
===========
If the user wants to have multiple items selected at the same time,
:attr:`~Gengrid.multi_select` will permit it. If the gengrid is
single-selection only (the default), then :attr:`~Gengrid.selected_item`
will return the selected item or ``None``, if none is selected. If the
gengrid is under multi-selection, then :attr:`~Gengrid.selected_items`
will return a list (that is only valid as long as no items are modified
(added, deleted, selected or unselected) of child items on a gengrid.
If an item changes (internal (boolean) state, text or content changes),
then use :meth:`~GengridItem.update` to have gengrid update the item with
the new state. A gengrid will re-"realize" the item, thus calling the
functions in the :class:`GengridItemClass` set for that item.
To programmatically (un)select an item or get the selected state, use
:attr:`GengridItem.selected`. To make an item disabled (unable to be
selected and appear differently) or get the disabled state
use :attr:`GengridItem.disabled`.
Grid cells will only have their selection smart callbacks called when
firstly getting selected. Any further clicks will do nothing, unless you
enable the "always select mode", with :attr:`~Gengrid.select_mode` as
:attr:`ELM_OBJECT_SELECT_MODE_ALWAYS`, thus making every click to issue
selection callbacks. :attr:`~Gengrid.select_mode` as
:attr:`ELM_OBJECT_SELECT_MODE_NONE` will turn off the ability to select items
entirely in the widget and they will neither appear selected nor call
the selection smart callbacks.
Remember that you can create new styles and add your own theme
augmentation per application with
:meth:`Theme.extension_add<efl.elementary.theme.Theme.extension_add>`. If you
absolutely must have a specific style that overrides any theme the user
or system sets up you can use
:meth:`Theme.extension_add<efl.elementary.theme.Theme.overlay_add>` to add such
a file.
Emitted signals
===============
- ``activated`` - The user has double-clicked or pressed
(enter|return|spacebar) on an item. The ``event_info`` parameter
is the gengrid item that was activated.
- ``clicked,double`` - The user has double-clicked an item.
The ``event_info`` parameter is the gengrid item that was double-clicked.
- ``clicked,right`` - The user has right-clicked an item. The
``event_info`` parameter is the item that was right-clicked. (since: 1.13)
- ``longpressed`` - This is called when the item is pressed for a certain
amount of time. By default it's 1 second.
- ``selected`` - The user has made an item selected. The
``event_info`` parameter is the gengrid item that was selected.
- ``unselected`` - The user has made an item unselected. The
``event_info`` parameter is the gengrid item that was unselected.
- ``realized`` - This is called when the item in the gengrid
has its implementing Evas object instantiated, de facto.
``event_info`` is the gengrid item that was created.
- ``unrealized`` - This is called when the implementing Evas
object for this item is deleted. ``event_info`` is the gengrid
item that was deleted.
- ``changed`` - Called when an item is added, removed, resized
or moved and when the gengrid is resized or gets "horizontal"
property changes.
- ``scroll,anim,start`` - This is called when scrolling animation has
started.
- ``scroll,anim,stop`` - This is called when scrolling animation has
stopped.
- ``drag,start,up`` - Called when the item in the gengrid has
been dragged (not scrolled) up.
- ``drag,start,down`` - Called when the item in the gengrid has
been dragged (not scrolled) down.
- ``drag,start,left`` - Called when the item in the gengrid has
been dragged (not scrolled) left.
- ``drag,start,right`` - Called when the item in the gengrid has
been dragged (not scrolled) right.
- ``drag,stop`` - Called when the item in the gengrid has
stopped being dragged.
- ``drag`` - Called when the item in the gengrid is being
dragged.
- ``scroll`` - called when the content has been scrolled
(moved).
- ``scroll,drag,start`` - called when dragging the content has
started.
- ``scroll,drag,stop`` - called when dragging the content has
stopped.
- ``edge,top`` - This is called when the gengrid is scrolled until
the top edge.
- ``edge,bottom`` - This is called when the gengrid is scrolled
until the bottom edge.
- ``edge,left`` - This is called when the gengrid is scrolled
until the left edge.
- ``edge,right`` - This is called when the gengrid is scrolled
until the right edge.
- ``moved`` - This is called when a gengrid item is moved by a user
interaction in a reorder mode. The ``event_info`` parameter is the item that
was moved.
- ``index,update`` - This is called when a gengrid item index is changed.
Note that this callback is called while each item is being realized.
- ``highlighted`` - an item in the list is highlighted. This is called when
the user presses an item or keyboard selection is done so the item is
physically highlighted. The ``event_info`` parameter is the item that was
highlighted.
- ``unhighlighted`` - an item in the list is unhighlighted. This is called
when the user releases an item or keyboard selection is moved so the item
is physically unhighlighted. The ``event_info`` parameter is the item that
was unhighlighted.
- ``language,changed`` - This is called when the program's language is
changed. Call :meth:`~Gengrid.realized_items_update` if items text should
be translated.
- ``focused`` - When the gengrid has received focus. (since 1.8)
- ``unfocused`` - When the gengrid has lost focus. (since 1.8)
- ``item,focused`` - When the gengrid item has received focus. (since 1.10)
- ``item,unfocused`` - When the gengrid item has lost focus. (since 1.10)
- ``item,reorder,anim,start`` - This is called when a gengrid item movement
has just started by keys in reorder mode. The parameter is the item that
is going to move. (since 1.10)
- ``item,reorder,anim,stop`` - This is called when a gengrid item movement just
stopped in reorder mode. The parameter is the item that was moved. (since 1.10)
Enumerations
============
.. _Elm_Gengrid_Item_Scrollto_Type:
Items' scroll to types
----------------------
.. data:: ELM_GENGRID_ITEM_SCROLLTO_NONE
No scroll to
.. data:: ELM_GENGRID_ITEM_SCROLLTO_IN
Scroll to the nearest viewport
.. data:: ELM_GENGRID_ITEM_SCROLLTO_TOP
Scroll to the top of viewport
.. data:: ELM_GENGRID_ITEM_SCROLLTO_MIDDLE
Scroll to the middle of viewport
.. _Elm_Gengrid_Object_Multi_Select_Mode:
Multi-select mode
-----------------
.. data:: ELM_OBJECT_MULTI_SELECT_MODE_DEFAULT
Default multiple select mode
.. versionadded:: 1.10
.. data:: ELM_OBJECT_MULTI_SELECT_MODE_WITH_CONTROL
Disallow mutiple selection when clicked without control key pressed
.. versionadded:: 1.10
.. data:: ELM_OBJECT_MULTI_SELECT_MODE_MAX
Value unknown
.. versionadded:: 1.10
.. _Elm_Gengrid_Reorder_Type:
Reorder type
------------
.. data:: ELM_GENGRID_REORDER_TYPE_NORMAL
Normal reorder mode
.. versionadded:: 1.11
.. data:: ELM_GENGRID_REORDER_TYPE_SWAP
Swap reorder mode
.. versionadded:: 1.11
Inheritance diagram
===================
.. inheritance-diagram::
Gengrid
GengridItem
GengridItemClass
:parts: 2
.. autoclass:: Gengrid
.. autoclass:: GengridItem
.. autoclass:: GengridItemClass

View File

@ -1,2 +1,453 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.genlist
Genlist
#######
.. image:: /images/genlist-preview.png
Widget description
==================
This widget aims to have more expansive list than the simple list in
Elementary that could have more flexible items and allow many more
entries while still being fast and low on memory usage. At the same time
it was also made to be able to do tree structures. But the price to pay
is more complexity when it comes to usage. If all you want is a simple
list with icons and a single text, use the normal
:py:class:`~efl.elementary.list.List` object.
Genlist has a fairly large API, mostly because it's relatively complex,
trying to be both expansive, powerful and efficient. First we will begin
an overview on the theory behind genlist.
Genlist item classes - creating items
=====================================
In order to have the ability to add and delete items on the fly, genlist
implements a class (callback) system where the application provides a
structure with information about that type of item (genlist may contain
multiple different items with different classes, states and styles).
Genlist will call the functions in this struct (methods) when an item is
"realized" (i.e., created dynamically, while the user is scrolling the
grid). All objects will simply be deleted when no longer needed with
:py:meth:`~efl.evas.Object.delete`. :py:class:`GenlistItemClass` contains the
following members:
- ``item_style`` - This is a constant string and simply defines the name
of the item style. It **must** be specified and the default should be
``"default".``
- ``decorate_item_style`` - This is a constant string and simply defines
the name of the decorate mode item style. It is used to specify
decorate mode item style. It can be used when you call
:py:attr:`GenlistItem.decorate_mode`.
- ``decorate_all_item_style`` - This is a constant string and simply
defines the name of the decorate all item style. It is used to specify
decorate all item style. It can be used to set selection, checking and
deletion mode. This is used when you call
:py:attr:`Genlist.decorate_mode`.
- ``func`` - A struct with pointers to functions that will be called when
an item is going to be actually created. All of them receive a ``data``
parameter that will point to the same data passed to
:py:meth:`GenlistItem.append_to` and related item creation functions, and an
``obj`` parameter that points to the genlist object itself.
The function pointers inside ``func`` are ``text_get``, ``content_get``,
``state_get`` and ``del``. The 3 first functions also receive a ``part``
parameter described below. A brief description of these functions follows:
- ``text_get`` - The ``part`` parameter is the name string of one of the
existing text parts in the Edje group implementing the item's theme.
See :py:meth:`GenlistItemClass.text_get`.
- ``content_get`` - The ``part`` parameter is the name string of one of the
existing (content) swallow parts in the Edje group implementing the
item's theme. It must return ``None``, when no content is desired, or
a valid object handle, otherwise. The object will be deleted by the
genlist on its deletion or when the item is "unrealized". See
:py:meth:`GenlistItemClass.content_get`.
- ``func.state_get`` - The ``part`` parameter is the name string of one of
the state parts in the Edje group implementing the item's theme. Return
``False`` for false/off or ``True`` for true/on. Genlists will
emit a signal to its theming Edje object with ``"elm,state,xxx,active"``
and ``"elm"`` as "emission" and "source" arguments, respectively, when
the state is true (the default is false), where ``xxx`` is the name of
the (state) part. See :py:meth:`GenlistItemClass.state_get`.
- ``func.del`` - This is intended for use when genlist items are deleted,
so any data attached to the item (e.g. its data parameter on creation)
can be deleted. See :py:meth:`GenlistItemClass.delete`.
Available item styles
=====================
- ``default``
- ``default_style`` The text part is a textblock
- ``double_label`` Two different text parts
- ``icon_top_text_bottom``
- ``group_index``
- ``one_icon`` Only 1 icon (left) (since: 1.1)
- ``end_icon`` Only 1 icon (at end/right) (since: 1.1)
- ``no_icon`` No icon (since: 1.1)
- ``full`` Only one object, elm.swallow.content, which consumes whole area of
the genlist item (since: 1.7)
Structure of items
==================
An item in a genlist can have 0 or more texts (they can be regular text
or textblock Evas objects - that's up to the style to determine), 0 or
more contents (which are simply objects swallowed into the genlist item's
theming Edje object) and 0 or more **boolean states**, which have the
behavior left to the user to define. The Edje part names for each of
these properties will be looked up, in the theme file for the genlist,
under the Edje (string) data items named ``labels``, ``contents``
and ``states``, respectively. For each of those properties, if more
than one part is provided, they must have names listed separated by
spaces in the data fields. For the default genlist item theme, we have
**one** text part (``elm.text``), **two** content parts
(``elm.swallow.icon`` and ``elm.swallow.end``) and **no** state parts.
A genlist item may be at one of several styles. Elementary provides one
by default - "default", but this can be extended by system or application
custom themes/overlays/extensions (see :py:mod:`themes<efl.elementary.theme>`)
for more details).
Editing and Navigating
======================
Items can be added by several calls. All of them return a
:py:class:`GenlistItem` handle that is an internal member inside the genlist.
They all take a data parameter that is meant to be used for a handle to the
applications internal data (eg. the struct with the original item data). The
parent parameter is the parent genlist item this belongs to if it is a tree or
an indexed group, and None if there is no parent. The flags can be a bitmask of
:attr:`ELM_GENLIST_ITEM_NONE`, :attr:`ELM_GENLIST_ITEM_TREE` and
:attr:`ELM_GENLIST_ITEM_GROUP`. If :attr:`ELM_GENLIST_ITEM_TREE` is set then
this item is displayed as an item that is able to expand and have child items.
If :attr:`ELM_GENLIST_ITEM_GROUP` is set then this item is group index item
that is displayed at the top until the next group comes. The func parameter is
a convenience callback that is called when the item is selected and the data
parameter will be the func_data parameter, ``obj`` be the genlist object and
event_info will be the genlist item.
:py:meth:`GenlistItem.append_to` adds an item to the end of the list, or if
there is a parent, to the end of all the child items of the parent.
:py:meth:`GenlistItem.prepend_to` is the same but adds to the beginning of
the list or children list. :py:meth:`GenlistItem.insert_before` inserts at
item before another item and :py:meth:`GenlistItem.insert_after` inserts after
the indicated item.
The application can clear the list with :py:meth:`Genlist.clear` which deletes
all the items in the list and
:py:meth:`~efl.elementary.object_item.ObjectItem.delete` will delete a specific
item. :py:meth:`GenlistItem.subitems_clear` will clear all items that are
children of the indicated parent item.
To help inspect list items you can jump to the item at the top of the list
with :py:attr:`Genlist.first_item` which will return the item pointer, and
similarly :py:attr:`Genlist.last_item` gets the item at the end of the list.
:py:attr:`GenlistItem.next` and :py:attr:`GenlistItem.prev` get the next
and previous items respectively relative to the indicated item. Using
these calls you can walk the entire item list/tree. Note that as a tree
the items are flattened in the list, so :py:attr:`GenlistItem.parent` will
let you know which item is the parent (and thus know how to skip them if
wanted).
Multi-selection
===============
If the application wants multiple items to be able to be selected,
:py:attr:`Genlist.multi_select` can enable this. If the list is
single-selection only (the default), then :py:attr:`Genlist.selected_item`
will return the selected item, if any, or None if none is selected. If the
list is multi-select then :py:attr:`Genlist.selected_items` will return a
list (that is only valid as long as no items are modified (added, deleted,
selected or unselected)).
Usage hints
===========
There are also convenience functions.
:py:attr:`efl.elementary.object_item.ObjectItem.widget` will return the genlist
object the item belongs to. :py:meth:`GenlistItem.show` will make the scroller
scroll to show that specific item so its visible.
:py:attr:`efl.elementary.object_item.ObjectItem.data` returns the data pointer
set by the item creation functions.
If an item changes (state of boolean changes, text or contents change),
then use :py:meth:`GenlistItem.update` to have genlist update the item with
the new state. Genlist will re-realize the item and thus call the functions
in the _Elm_Genlist_Item_Class for that item.
Use :py:attr:`GenlistItem.selected` to programmatically (un)select an item or
get its selected state. Similarly to expand/contract an item and get its
expanded state, use :py:attr:`GenlistItem.expanded`. And again to make an item
disabled (unable to be selected and appear differently) use
:py:attr:`GenlistItem.disabled` to set this and get the disabled state.
In general to indicate how the genlist should expand items horizontally to
fill the list area, use :py:attr:`Genlist.mode`. Valid modes are
ELM_LIST_LIMIT, ELM_LIST_COMPRESS and ELM_LIST_SCROLL. The default is
ELM_LIST_SCROLL. This mode means that if items are too wide to fit, the
scroller will scroll horizontally. Otherwise items are expanded to
fill the width of the viewport of the scroller. If it is
ELM_LIST_LIMIT, items will be expanded to the viewport width
if larger than the item, but genlist widget with is
limited to the largest item. D not use ELM_LIST_LIMIT mode with homogeneous
mode turned on. ELM_LIST_COMPRESS can be combined with a different style
that uses Edje's ellipsis feature (cutting text off like this: "tex...").
Items will only call their selection func and callback when first becoming
selected. Any further clicks will do nothing, unless you enable always
select with :py:attr:`Genlist.select_mode` as ELM_OBJECT_SELECT_MODE_ALWAYS.
This means even if selected, every click will make the selected callbacks
be called. :py:attr:`Genlist.select_mode` as ELM_OBJECT_SELECT_MODE_NONE will
turn off the ability to select items entirely and they will neither
appear selected nor call selected callback functions.
Remember that you can create new styles and add your own theme augmentation per
application with :py:meth:`efl.elementary.theme.Theme.extension_add`. If you
absolutely must have a specific style that overrides any theme the user or
system sets up you can use :py:meth:`efl.elementary.theme.Theme.overlay_add` to
add such a file.
Scrollable Interface
====================
This widget supports the scrollable interface.
If you wish to control the scrolling behaviour using these functions,
inherit both the widget class and the
:py:class:`~efl.elementary.scroller.Scrollable` class
using multiple inheritance, for example::
class ScrollableGenlist(Genlist, Scrollable):
def __init__(self, canvas, *args, **kwargs):
Genlist.__init__(self, canvas)
Implementation
==============
Evas tracks every object you create. Every time it processes an event
(mouse move, down, up etc.) it needs to walk through objects and find out
what event that affects. Even worse every time it renders display updates,
in order to just calculate what to re-draw, it needs to walk through many
many many objects. Thus, the more objects you keep active, the more
overhead Evas has in just doing its work. It is advisable to keep your
active objects to the minimum working set you need. Also remember that
object creation and deletion carries an overhead, so there is a
middle-ground, which is not easily determined. But don't keep massive lists
of objects you can't see or use. Genlist does this with list objects. It
creates and destroys them dynamically as you scroll around. It groups them
into blocks so it can determine the visibility etc. of a whole block at
once as opposed to having to walk the whole list. This 2-level list allows
for very large numbers of items to be in the list (tests have used up to
2,000,000 items). Also genlist employs a queue for adding items. As items
may be different sizes, every item added needs to be calculated as to its
size and thus this presents a lot of overhead on populating the list, this
genlist employs a queue. Any item added is queued and spooled off over
time, actually appearing some time later, so if your list has many members
you may find it takes a while for them to all appear, with your process
consuming a lot of CPU while it is busy spooling.
Genlist also implements a tree structure, but it does so with callbacks to
the application, with the application filling in tree structures when
requested (allowing for efficient building of a very deep tree that could
even be used for file-management). See the above smart signal callbacks for
details.
Emitted signals
===============
- ``activated`` - The user has double-clicked or pressed
(enter|return|spacebar) on an item. The ``event_info`` parameter is the
item that was activated.
- ``clicked,double`` - The user has double-clicked an item. The
``event_info`` parameter is the item that was double-clicked.
- ``clicked,right`` - The user has right-clicked an item. The
``event_info`` parameter is the item that was right-clicked. (since: 1.13)
- ``selected`` - This is called when a user has made an item selected.
The event_info parameter is the genlist item that was selected.
- ``unselected`` - This is called when a user has made an item
unselected. The event_info parameter is the genlist item that was
unselected.
- ``expanded`` - This is called when :py:attr:`GenlistItem.expanded` is
called and the item is now meant to be expanded. The event_info
parameter is the genlist item that was indicated to expand. It is the
job of this callback to then fill in the child items.
- ``contracted`` - This is called when :py:attr:`GenlistItem.expanded` is
called and the item is now meant to be contracted. The event_info
parameter is the genlist item that was indicated to contract. It is the
job of this callback to then delete the child items.
- ``expand,request`` - This is called when a user has indicated they want
to expand a tree branch item. The callback should decide if the item can
expand (has any children) and then call :py:attr:`GenlistItem.expanded`
appropriately to set the state. The event_info parameter is the genlist
item that was indicated to expand.
- ``contract,request`` - This is called when a user has indicated they
want to contract a tree branch item. The callback should decide if the
item can contract (has any children) and then call
:py:attr:`GenlistItem.expanded` appropriately to set the state. The
event_info parameter is the genlist item that was indicated to contract.
- ``realized`` - This is called when the item in the list is created as a
real evas object. event_info parameter is the genlist item that was
created.
- ``unrealized`` - This is called just before an item is unrealized.
After this call content objects provided will be deleted and the item
object itself delete or be put into a floating cache.
- ``drag,start,up`` - This is called when the item in the list has been
dragged (not scrolled) up.
- ``drag,start,down`` - This is called when the item in the list has been
dragged (not scrolled) down.
- ``drag,start,left`` - This is called when the item in the list has been
dragged (not scrolled) left.
- ``drag,start,right`` - This is called when the item in the list has
been dragged (not scrolled) right.
- ``drag,stop`` - This is called when the item in the list has stopped
being dragged.
- ``drag`` - This is called when the item in the list is being dragged.
- ``longpressed`` - This is called when the item is pressed for a certain
amount of time. By default it's 1 second. The event_info parameter is the
longpressed genlist item.
- ``scroll,anim,start`` - This is called when scrolling animation has
started.
- ``scroll,anim,stop`` - This is called when scrolling animation has
stopped.
- ``scroll,drag,start`` - This is called when dragging the content has
started.
- ``scroll,drag,stop`` - This is called when dragging the content has
stopped.
- ``edge,top`` - This is called when the genlist is scrolled until
the top edge.
- ``edge,bottom`` - This is called when the genlist is scrolled
until the bottom edge.
- ``edge,left`` - This is called when the genlist is scrolled
until the left edge.
- ``edge,right`` - This is called when the genlist is scrolled
until the right edge.
- ``multi,swipe,left`` - This is called when the genlist is multi-touch
swiped left.
- ``multi,swipe,right`` - This is called when the genlist is multi-touch
swiped right.
- ``multi,swipe,up`` - This is called when the genlist is multi-touch
swiped up.
- ``multi,swipe,down`` - This is called when the genlist is multi-touch
swiped down.
- ``multi,pinch,out`` - This is called when the genlist is multi-touch
pinched out.
- ``multi,pinch,in`` - This is called when the genlist is multi-touch
pinched in.
- ``swipe`` - This is called when the genlist is swiped.
- ``moved`` - This is called when a genlist item is moved in reorder mode.
- ``moved,after`` - This is called when a genlist item is moved after
another item in reorder mode. The event_info parameter is the reordered
item. To get the relative previous item, use :py:attr:`GenlistItem.prev`.
This signal is called along with "moved" signal.
- ``moved,before`` - This is called when a genlist item is moved before
another item in reorder mode. The event_info parameter is the reordered
item. To get the relative previous item, use :py:attr:`GenlistItem.next`.
This signal is called along with "moved" signal.
- ``language,changed`` - This is called when the program's language is
changed.
- ``tree,effect,finished`` - This is called when a genlist tree effect
is finished.
- ``highlighted`` - an item in the list is highlighted. This is called when
the user presses an item or keyboard selection is done so the item is
physically highlighted. The ``event_info`` parameter is the item that was
highlighted.
- ``unhighlighted`` - an item in the list is unhighlighted. This is called
when the user releases an item or keyboard selection is moved so the item
is physically unhighlighted. The ``event_info`` parameter is the item that
was unhighlighted.
- ``focused`` - When the genlist has received focus. (since 1.8)
- ``unfocused`` - When the genlist has lost focus. (since 1.8)
- ``item,focused`` - When the genlist item has received focus. (since 1.10)
- ``item,unfocused`` - When the genlist item has lost focus. (since 1.10)
Enumerations
============
.. _Elm_Genlist_Item_Type:
Genlist item types
------------------
.. data:: ELM_GENLIST_ITEM_NONE
Simple item
.. data:: ELM_GENLIST_ITEM_TREE
The item may be expanded and have child items
.. data:: ELM_GENLIST_ITEM_GROUP
An index item of a group of items
.. _Elm_Genlist_Item_Field_Type:
Genlist items' field types
--------------------------
.. data:: ELM_GENLIST_ITEM_FIELD_ALL
Match all fields
.. data:: ELM_GENLIST_ITEM_FIELD_TEXT
Match text fields
.. data:: ELM_GENLIST_ITEM_FIELD_CONTENT
Match content fields
.. data:: ELM_GENLIST_ITEM_FIELD_STATE
Match state fields
.. _Elm_Genlist_Item_Scrollto_Type:
Genlist items' scroll-to types
------------------------------
.. data:: ELM_GENLIST_ITEM_SCROLLTO_NONE
No scroll to
.. data:: ELM_GENLIST_ITEM_SCROLLTO_IN
Scroll to the nearest viewport
.. data:: ELM_GENLIST_ITEM_SCROLLTO_TOP
Scroll to the top of viewport
.. data:: ELM_GENLIST_ITEM_SCROLLTO_MIDDLE
Scroll to the middle of viewport
Inheritance diagram
===================
.. inheritance-diagram::
Genlist
GenlistItem
GenlistItemClass
:parts: 2
.. autoclass:: Genlist
.. autoclass:: GenlistItem
.. autoclass:: GenlistItemClass

View File

@ -1,2 +1,152 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.gesture_layer
Gesture Layer
#############
.. image:: /images/gesturelayer-preview.png
Widget description
==================
Use the GestureLayer to detect gestures. The advantage is that you don't
have to implement gesture detection, just set callbacks for gesture states.
In order to use Gesture Layer you start with instantiating this class
with a parent object parameter. Next 'activate' gesture layer with a
:py:meth:`~GestureLayer.attach` call. Usually with same object as target (2nd
parameter).
Now you need to tell gesture layer what gestures you follow. This is done with
:py:meth:`~GestureLayer.cb_set` call. By setting the callback you actually
saying to gesture layer: I would like to know when the gesture
:ref:`Elm_Gesture_Type` switches to state :ref:`Elm_Gesture_State`.
Next, you need to implement the actual action that follows the input in
your callback.
Note that if you like to stop being reported about a gesture, just set
all callbacks referring this gesture to None. (again with
:py:meth:`~GestureLayer.cb_set`)
The information reported by gesture layer to your callback is depending
on :ref:`Elm_Gesture_Type`:
- :class:`GestureTapsInfo` is the info reported for tap gestures:
- :attr:`ELM_GESTURE_N_TAPS`
- :attr:`ELM_GESTURE_N_LONG_TAPS`
- :attr:`ELM_GESTURE_N_DOUBLE_TAPS`
- :attr:`ELM_GESTURE_N_TRIPLE_TAPS`
- :class:`GestureMomentumInfo` is info reported for momentum gestures:
- :attr:`ELM_GESTURE_MOMENTUM`
- :class:`GestureLineInfo` is the info reported for line gestures
(this also contains :class:`GestureMomentumInfo` internal structure):
- :attr:`ELM_GESTURE_N_LINES`
- :attr:`ELM_GESTURE_N_FLICKS`
Note that we consider a flick as a line-gesture that should be completed
in flick-time-limit as defined in
:py:class:`~efl.elementary.configuration.Configuration`.
:class:`GestureZoomInfo` is the info reported for :attr:`ELM_GESTURE_ZOOM`
gesture.
:class:`GestureRotateInfo` is the info reported for
:attr:`ELM_GESTURE_ROTATE` gesture.
Gesture Layer Tweaks:
Note that line, flick, gestures can start without the need to remove
fingers from surface. When user fingers rests on same-spot gesture is
ended and starts again when fingers moved.
Setting glayer_continues_enable to false in
:py:class:`~efl.elementary.configuration.Configuration` will change this
behavior so gesture starts when user touches (a *DOWN* event)
touch-surface and ends when no fingers touches surface (a *UP* event).
Enumerations
============
.. _Elm_Gesture_State:
Gesture states
--------------
.. data:: ELM_GESTURE_STATE_UNDEFINED
Gesture not started
.. data:: ELM_GESTURE_STATE_START
Gesture started
.. data:: ELM_GESTURE_STATE_MOVE
Gesture is ongoing
.. data:: ELM_GESTURE_STATE_END
Gesture completed
.. data:: ELM_GESTURE_STATE_ABORT
Ongoing gesture was aborted
.. _Elm_Gesture_Type:
Gesture types
-------------
.. data:: ELM_GESTURE_N_TAPS
N fingers single taps
.. data:: ELM_GESTURE_N_LONG_TAPS
N fingers single long-taps
.. data:: ELM_GESTURE_N_DOUBLE_TAPS
N fingers double-single taps
.. data:: ELM_GESTURE_N_TRIPLE_TAPS
N fingers triple-single taps
.. data:: ELM_GESTURE_MOMENTUM
Reports momentum in the direction of move
.. data:: ELM_GESTURE_N_LINES
N fingers line gesture
.. data:: ELM_GESTURE_N_FLICKS
N fingers flick gesture
.. data:: ELM_GESTURE_ZOOM
Zoom
.. data:: ELM_GESTURE_ROTATE
Rotate
Inheritance diagram
===================
.. inheritance-diagram:: GestureLayer
:parts: 2
.. autoclass:: GestureLayer

View File

@ -1,2 +1,33 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.grid
Grid
####
.. image:: /images/grid-preview.png
Widget description
==================
A grid layout widget.
The grid is a grid layout widget that lays out a series of children as a
fixed "grid" of widgets using a given percentage of the grid width and
height each using the child object.
The Grid uses a "Virtual resolution" that is stretched to fill the grid
widgets size itself. The default is 100 x 100, so that means the
position and sizes of children will effectively be percentages (0 to 100)
of the width or height of the grid widget.
Inheritance diagram
===================
.. inheritance-diagram:: Grid
:parts: 2
.. autoclass:: Grid
.. autofunction:: grid_pack_set
.. autofunction:: grid_pack_get

View File

@ -1,2 +1,111 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.hover
Hover
#####
.. image:: /images/hover-preview.png
Widget description
==================
A Hover object will hover over its ``parent`` object at the ``target``
location.
Anything in the background will be given a darker coloring to indicate
that the hover object is on top (at the default theme). When the hover
is clicked it is dismissed(hidden), if the contents of the hover are
clicked that **doesn't** cause the hover to be dismissed.
A Hover object has two parents. One parent that owns it during creation
and the other parent being the one over which the hover object spans.
Available styles
================
- default
- popout
- menu
- hoversel_vertical
Emitted signals
===============
- ``clicked`` - the user clicked the empty space in the hover to
dismiss.
- ``dismissed`` - the user clicked the empty space in the hover to dismiss.
(since 1.8)
- ``smart,changed`` - a content object placed under the "smart"
policy was replaced to a new slot direction.
- ``focused`` - When the hover has received focus. (since 1.8)
- ``unfocused`` - When the hover has lost focus. (since 1.8)
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,2 +1,56 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.hoversel
Hoversel
########
.. image:: /images/hoversel-preview.png
Widget description
==================
A hoversel is a button that pops up a list of items (automatically
choosing the direction to display) that have a label and, optionally, an
icon to select from.
It is a convenience widget to avoid the need to do all the piecing
together yourself. It is intended for a small number of items in the
hoversel menu (no more than 8), though is capable of many more.
Emitted signals
===============
- ``clicked`` - the user clicked the hoversel button and popped up
the sel
- ``selected`` - an item in the hoversel list is selected. event_info
is the item
- ``dismissed`` - the hover is dismissed
- ``expanded`` - the hover is expanded (since 1.9)
- ``item,focused`` - the hoversel item has received focus. (since 1.10)
- ``item,unfocused`` - the hoversel item has lost focus. (since 1.10)
Layout content parts
====================
- ``icon`` - An icon of the hoversel
Layout text parts
=================
- ``default`` - Label of the hoversel
Inheritance diagram
===================
.. inheritance-diagram::
Hoversel
HoverselItem
:parts: 2
.. autoclass:: Hoversel
.. autoclass:: HoverselItem

View File

@ -1,2 +1,183 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.icon
Icon
####
.. image:: /images/icon-preview.png
Widget description
==================
An icon object is used to display standard icon images ("delete",
"edit", "arrows", etc.) or images coming from a custom file (PNG, JPG,
EDJE, etc.), on icon contexts.
The icon image requested can be in the Elementary theme in use, or in
the ``freedesktop.org`` theme paths. It's possible to set the order of
preference from where an image will be fetched.
This widget inherits from the :py:class:`~efl.elementary.image.Image` one, so
that all the functions acting on it also work for icon objects.
You should be using an icon, instead of an image, whenever one of the
following apply:
- you need a **thumbnail** version of an original image
- you need freedesktop.org provided icon images
- you need theme provided icon images (Edje groups)
Default images provided by Elementary's default theme are described below.
These are names that follow (more or less) the **Freedesktop** icon naming
specification. Use of these names are **preferred**, at least if you want to
give your user the ability to use other themes. All these icons can be
seen in the elementary_test application, the test is called "Icon Standard".
- ``folder`` (since 1.13)
- ``user-home`` (since 1.13)
- ``user-trash`` (since 1.13)
- ``view-close`` (since 1.13)
- ``view-refresh`` (since 1.13)
- ``window-close`` 1.13)
- ``document-close`` (since 1.13)
- ``document-edit`` (since 1.13)
- ``dialog-info`` (since 1.13)
- ``dialog-close`` (since 1.13)
- ``arrow-up`` (since 1.13)
- ``arrow-down`` (since 1.13)
- ``arrow-left`` (since 1.13)
- ``arrow-right`` (since 1.13)
- ``arrow-up-left`` (since 1.13)
- ``arrow-up-right`` (since 1.13)
- ``arrow-down-left`` (since 1.13)
- ``arrow-down-right`` (since 1.13)
- ``edit-delete`` (since 1.13)
- ``application-chat`` (since 1.13)
- ``application-clock`` (since 1.13)
- ``media-seek-forward`` 1.13)
- ``media-seek-backward`` (since 1.13)
- ``media-skip-forward`` (since 1.13)
- ``media-skip-backward`` (since 1.13)
- ``media-playback-pause`` (since 1.13)
- ``media-playback-start`` (since 1.13)
- ``media-playback-stop`` (since 1.13)
- ``media-eject`` (since 1.13)
- ``audio-volume`` (since 1.13)
- ``audio-volume-muted`` (since 1.13)
These are names for icons that were first intended to be used in
toolbars, but can be used in many other places too:
- ``home``
- ``close``
- ``apps``
- ``arrow_up``
- ``arrow_down``
- ``arrow_left``
- ``arrow_right``
- ``chat``
- ``clock``
- ``delete``
- ``edit``
- ``refresh``
- ``folder``
- ``file``
These are names for icons that were designed to be used in menus
(but again, you can use them anywhere else):
- ``menu/home``
- ``menu/close``
- ``menu/apps``
- ``menu/arrow_up``
- ``menu/arrow_down``
- ``menu/arrow_left``
- ``menu/arrow_right``
- ``menu/chat``
- ``menu/clock``
- ``menu/delete``
- ``menu/edit``
- ``menu/refresh``
- ``menu/folder``
- ``menu/file``
And these are names for some media player specific icons:
- ``media_player/forward``
- ``media_player/info``
- ``media_player/next``
- ``media_player/pause``
- ``media_player/play``
- ``media_player/prev``
- ``media_player/rewind``
- ``media_player/stop``
Emitted signals
===============
- ``thumb,done`` - Setting :py:attr:`~Icon.thumb` has completed with success
- ``thumb,error`` - Setting :py:attr:`~Icon.thumb` has failed
Enumerations
============
.. _Elm_Icon_Lookup_Order:
Icon lookup modes
-----------------
.. data:: ELM_ICON_LOOKUP_FDO_THEME
freedesktop, theme
.. data:: ELM_ICON_LOOKUP_THEME_FDO
theme, freedesktop
.. data:: ELM_ICON_LOOKUP_FDO
freedesktop
.. data:: ELM_ICON_LOOKUP_THEME
theme
.. _Elm_Icon_Type:
Icon type
---------
.. data:: ELM_ICON_NONE
No icon
.. data:: ELM_ICON_FILE
Icon is a file
.. data:: ELM_ICON_STANDARD
Icon is set with standards name
Inheritance diagram
===================
.. inheritance-diagram:: Icon
:parts: 2
.. autoclass:: Icon

View File

@ -1,2 +1,95 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.image
Image
#####
.. image:: /images/image-preview.png
Widget description
==================
An Elementary image object allows one to load and display an image
file on it, be it from a disk file or from a memory region.
Exceptionally, one may also load an Edje group as the contents of the
image. In this case, though, most of the functions of the image API will
act as a no-op.
One can tune various properties of the image, like:
- pre-scaling,
- smooth scaling,
- orientation,
- aspect ratio during resizes, etc.
An image object may also be made valid source and destination for drag
and drop actions by setting :py:attr:`~Image.editable`.
Emitted signals
===============
- ``drop`` - This is called when a user has dropped an image
typed object onto the object in question -- the
event info argument is the path to that image file
- ``clicked`` - This is called when a user has clicked the image
- ``download,start`` - remote url download has started
- ``download,progress`` - url download in progress
- ``download,end`` - remote url download has finished
- ``download,error`` - remote url download has finished with errors
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,2 +1,64 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.index
Index
#####
.. image:: /images/index-preview.png
Widget description
==================
An index widget gives you an index for fast access to whichever
group of other UI items one might have.
It's a list of text items (usually letters, for alphabetically ordered
access).
Index widgets are by default hidden and just appear when the
user clicks over it's reserved area in the canvas. In its
default theme, it's an area one ``finger`` wide on
the right side of the index widget's container.
When items on the index are selected, smart callbacks get called, so that its
user can make other container objects to show a given area or child object
depending on the index item selected. You'd probably be using an index together
with :py:class:`~efl.elementary.list.List`,
:py:class:`~efl.elementary.genlist.Genlist` or
:py:class:`~efl.elementary.gengrid.Gengrid`.
Emitted signals
===============
- ``changed`` - When the selected index item changes. ``event_info``
is the selected item's data.
- ``delay,changed`` - When the selected index item changes, but
after a small idling period. ``event_info`` is the selected
item's data.
- ``selected`` - When the user releases a mouse button and
selects an item. ``event_info`` is the selected item's data.
- ``level,up`` - when the user moves a finger from the first
level to the second level
- ``level,down`` - when the user moves a finger from the second
level to the first level
- ``language,changed`` - the program's language changed
- ``focused`` - When the index has received focus. (since 1.8)
- ``unfocused`` - When the index has lost focus. (since 1.8)
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,2 +1,42 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.innerwindow
Innerwindow
###########
.. image:: /images/innerwindow-preview.png
Widget description
==================
An inwin is a window inside a window that is useful for a quick popup.
It does not hover.
It works by creating an object that will occupy the entire window, so it must be
created using an :py:class:`~efl.elementary.window.Window` as parent only. The
inwin object can be hidden or restacked below every other object if it's needed
to show what's behind it without destroying it. If this is done, the
:py:meth:`~InnerWindow.activate` function can be used to bring it back to full
visibility again.
Available styles
================
- ``default`` The inwin is sized to take over most of the window it's
placed in.
- ``minimal`` The size of the inwin will be the minimum necessary to show
its contents.
- ``minimal_vertical`` Horizontally, the inwin takes as much space as
possible, but it's sized vertically the most it needs to fit its
contents.
Inheritance diagram
===================
.. inheritance-diagram:: InnerWindow
:parts: 2
.. autoclass:: InnerWindow

View File

@ -1,2 +1,78 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.label
Label
#####
.. image:: /images/label-preview.png
Widget description
==================
Widget to display text, with simple html-like markup.
The Label widget **doesn't** allow text to overflow its boundaries, if the
text doesn't fit the geometry of the label it will be ellipsized or be
cut.
Available styles
================
``default``
No animation
``marker``
Centers the text in the label and makes it bold by default
``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
===============
- ``language,changed`` - The program's language changed.
- ``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,2 +1,165 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.layout
Layout
######
.. image:: /images/layout-preview.png
Widget description
==================
This is a container widget that takes a standard Edje design file and
wraps it very thinly in a widget.
An Edje design (theme) file has a very wide range of possibilities to
describe the behavior of elements added to the Layout. Check out the Edje
documentation and the EDC reference to get more information about what can
be done with Edje.
Just like :py:class:`~efl.elementary.list.List`,
:py:class:`~efl.elementary.box.Box`, and other container
widgets, any object added to the Layout will become its child, meaning
that it will be deleted if the Layout is deleted, move if the Layout is
moved, and so on.
The Layout widget can contain as many Contents, Boxes or Tables as
described in its theme file. For instance, objects can be added to
different Tables by specifying the respective Table part names. The same
is valid for Content and Box.
The objects added as child of the Layout will behave as described in the
part description where they were added. There are 3 possible types of
parts where a child can be added:
Content (SWALLOW part)
Only one object can be added to the ``SWALLOW`` part (but you still can
have many ``SWALLOW`` parts and one object on each of them). Use the
``Object.content_set/get/unset`` functions to set, retrieve and unset
objects as content of the *SWALLOW*. After being set to this part,
the object size, position, visibility, clipping and other description
properties will be totally controlled by the description of the
given part (inside the Edje theme file).
One can use ``size_hint_`` functions on the child to have some kind of
control over its behavior, but the resulting behavior will still
depend heavily on the ``SWALLOW`` part description.
The Edje theme also can change the part description, based on
signals or scripts running inside the theme. This change can also be
animated. All of this will affect the child object set as content
accordingly. The object size will be changed if the part size is
changed, it will animate move if the part is moving, and so on.
Box (BOX part)
An Edje ``BOX`` part is very similar to the Elementary
:py:class:`~efl.elementary.box.Box` widget. It allows one to add objects to
the box and have them distributed along its area, accordingly to the
specified ``layout`` property (now by ``layout`` we mean the chosen
layouting design of the Box, not the Layout widget itself).
A similar effect for having a box with its position, size and other things
controlled by the Layout theme would be to create an Elementary
:py:class:`~efl.elementary.box.Box` widget and add it as a Content in the
``SWALLOW`` part.
The main difference of using the Layout Box is that its behavior, the box
properties like layouting format, padding, align, etc. will be all
controlled by the theme. This means, for example, that a signal could be
sent to the Layout theme (with
:py:meth:`~efl.elementary.object.Object.signal_emit`) and the theme handled
the signal by changing the box padding, or align, or both. Using the
Elementary :py:class:`~efl.elementary.box.Box` widget is not necessarily
harder or easier, it just depends on the circumstances and requirements.
The Layout Box can be used through the ``box_`` set of functions.
Table (TABLE part)
Just like the *Box*, the Layout Table is very similar to the Elementary
:py:class:`~efl.elementary.table.Table` widget. It allows one to add objects
to the Table specifying the row and column where the object should be added,
and any column or row span if necessary.
Again, we could have this design by adding a
:py:class:`~efl.elementary.table.Table` widget to the ``SWALLOW`` part using
:py:func:`~efl.elementary.object.Object.part_content_set`. The same
difference happens here when choosing to use the Layout Table (a ``TABLE``
part) instead of the :py:class:`~efl.elementary.table.Table` plus
``SWALLOW`` part. It's just a matter of convenience.
The Layout Table can be used through the ``table_`` set of functions.
Another interesting thing about the Layout widget is that it offers some
predefined themes that come with the default Elementary theme. These themes can
be set by :py:attr:`~efl.elementary.layout_class.LayoutClass.theme`, and provide
some basic functionality depending on the theme used.
Most of them already send some signals, some already provide a toolbar or
back and next buttons.
Layout Class
============
Elementary, besides having the :py:class:`~efl.elementary.layout.Layout`
widget, exposes its foundation -- the Elementary Layout Class -- in
order to create other widgets which are, basically, a certain layout
with some more logic on top.
The idea is to make the creation of that widgets as easy as possible,
factorizing code on this common base. For example, a button is a layout
(that looks like push button) that happens to react on clicks and keyboard
events in a special manner, calling its user back on those events. That's no
surprise, then, that the :py:class:`~efl.elementary.button.Button`
implementation relies on LayoutClass, if you go to check it.
Container parts, here, map directly to Edje parts from the layout's Edje
group. Besides that, there's a whole infrastructure around Edje files:
- interfacing by signals,
- setting/retrieving text part values,
- dealing with table and box parts directly,
- etc.
Finally, layout objects will do **part aliasing** for you, if you set
it up properly. For that, take a look at
Elm_Layout_Part_Alias_Description, where it's explained in detail.
Available styles
================
These are available predefined theme layouts. All of them have class =
*layout*, group = *application*, and style = one of the following options:
- ``toolbar-content`` - application with toolbar and main content area
- ``toolbar-content-back`` - application with toolbar and main content
area with a back button and title area
- ``toolbar-content-back-next`` - application with toolbar and main
content area with a back and next buttons and title area
- ``content-back`` - application with a main content area with a back
button and title area
- ``content-back-next`` - application with a main content area with a
back and next buttons and title area
- ``toolbar-vbox`` - application with toolbar and main content area as a
vertical box
- ``toolbar-table`` - application with toolbar and main content area as a
table
Emitted signals
===============
- ``theme,changed`` - The theme was changed.
- ``language,changed`` - the program's language changed
Inheritance diagram
===================
.. inheritance-diagram:: Layout
:parts: 2
.. autoclass:: Layout
.. autoclass:: LayoutClass

View File

@ -1,2 +0,0 @@
.. automodule:: efl.elementary.layout_class

View File

@ -1,2 +1,137 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.list
List
####
.. image:: /images/list-preview.png
Widget description
==================
A list widget is a container whose children are displayed vertically or
horizontally, in order, and can be selected.
The list can accept only one or multiple items selection. Also has many
modes of items displaying.
A list is a very simple type of list widget. For more robust
lists, :py:class:`~efl.elementary.genlist.Genlist` should probably be used.
Emitted signals
===============
- ``activated`` - The user has double-clicked or pressed
(enter|return|spacebar) on an item.
- ``clicked,double`` - The user has double-clicked an item.
- ``clicked,right`` - The user has right-clicked an item. (since: 1.13)
- ``selected`` - when the user selected an item
- ``unselected`` - when the user unselected an item
- ``longpressed`` - an item in the list is long-pressed
- ``edge,top`` - the list is scrolled until the top edge
- ``edge,bottom`` - the list is scrolled until the bottom edge
- ``edge,left`` - the list is scrolled until the left edge
- ``edge,right`` - the list is scrolled until the right edge
- ``highlighted`` - an item in the list is highlighted. This is called when
the user presses an item or keyboard selection is done so the item is
physically highlighted.
- ``unhighlighted`` - an item in the list is unhighlighted. This is called
when the user releases an item or keyboard selection is moved so the item
is physically unhighlighted.
- ``language,changed`` - the program's language changed
- ``focused`` - When the list has received focus. (since 1.8)
- ``unfocused`` - When the list has lost focus. (since 1.8)
- ``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,2 +1,202 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.map
Map
###
.. image:: /images/map-preview.png
:width: 100%
Widget description
==================
The *Map* is a widget specifically for displaying a geographic map.
It uses `OpenStreetMap <http://www.openstreetmap.org/>`_ as map tile provider,
`YOURS <http://www.yournavigation.org/>`_ for routing calculation and
`Nominatim <http://nominatim.openstreetmap.org/>`_ to convert geographic
coordinates to/from address names. But custom providers can be added.
It supports some basic but yet nice features:
- zooming and scrolling
- markers with content to be displayed when user clicks over them
- automatic grouping of markers based on zoom level
- routes calculation
- names/coordinates conversion (and viceversa)
Emitted signals
===============
- ``clicked`` - Called when a user has clicked the map without dragging around.
- ``clicked,double`` - Called when a user has double-clicked the map.
- ``press`` - This is called when a user has pressed down on the map.
- ``longpressed`` - This is called when a user has pressed down on the map
for a long time without dragging around.
- ``scroll`` - the content has been scrolled (moved).
- ``scroll,drag,start`` - dragging the contents around has started.
- ``scroll,drag,stop`` - dragging the contents around has stopped.
- ``scroll,anim,start`` - scrolling animation has started.
- ``scroll,anim,stop`` - scrolling animation has stopped.
- ``zoom,start`` - Zoom animation started.
- ``zoom,stop`` - Zoom animation stopped.
- ``zoom,change`` - Zoom changed when using an auto zoom mode.
- ``tile,load`` - A map tile image load begins.
- ``tile,loaded`` - A map tile image load ends.
- ``tile,loaded,fail`` - A map tile image load fails.
- ``route,load`` - Route request begins.
- ``route,loaded`` - Route request ends.
- ``route,loaded,fail`` - Route request fails.
- ``name,load`` - Name request begins.
- ``name,loaded`` - Name request ends.
- ``name,loaded,fail`` - Name request fails.
- ``overlay,clicked`` - A overlay is clicked.
- ``loaded`` - when a map is finally loaded.
- ``language,changed`` - the program's language changed
- ``focused`` - When the map has received focus. (since 1.8)
- ``unfocused`` - When the map has lost focus. (since 1.8)
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

View File

@ -1,2 +1,33 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.mapbuf
Mapbuf
######
.. image:: /images/mapbuf-preview.png
Widget description
==================
This holds one content object and uses an Evas Map of transformation
points to be later used with this content. So the content will be
moved, resized, etc as a single image. So it will improve performance
when you have a complex interface, with a lot of elements, and will
need to resize or move it frequently (the content object and its
children).
Layout content parts
====================
- ``default`` - The main content of the mapbuf
Inheritance diagram
===================
.. inheritance-diagram:: Mapbuf
:parts: 2
.. autoclass:: Mapbuf

View File

@ -1,2 +1,48 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.menu
Menu
####
.. image:: /images/menu-preview.png
Widget description
==================
A menu is a list of items displayed above its parent.
When the menu is showing its parent is darkened. Each item can have a
sub-menu. The menu object can be used to display a menu on a right click
event, in a toolbar, anywhere.
Emitted signals
===============
- ``clicked`` - the user clicked the empty space in the menu to dismiss.
- ``dismissed`` - the user clicked the empty space in the menu to dismiss (since 1.8)
Layout content parts
====================
- ``default`` - A main content of the menu item
Layout text parts
=================
- ``default`` - label in the menu item
Inheritance diagram
===================
.. inheritance-diagram::
Menu
MenuItem
:parts: 2
.. autoclass:: Menu
.. autoclass:: MenuItem

View File

@ -1,2 +1,60 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.multibuttonentry
MultiButtonEntry
################
.. image:: /images/multibuttonentry-preview.png
Widget description
==================
A Multibuttonentry is a widget to allow a user enter text and manage
it as a number of buttons. Each text button is inserted by pressing the
"return" key. If there is no space in the current row, a new button is
added to the next row. When a text button is pressed, it will become
focused. Backspace removes the focus. When the Multibuttonentry loses
focus items longer than one line are shrunk to one line.
Typical use case of multibuttonentry is, composing emails/messages to a
group of addresses, each of which is an item that can be clicked for
further actions.
Emitted signals
===============
- ``item,selected`` - this is called when an item is selected by
api, user interaction, and etc. this is also called when a
user press back space while cursor is on the first field of
entry. event_info contains the item.
- ``item,added`` - when a new multi-button entry item is added.
event_info contains the item.
- ``item,deleted`` - when a multi-button entry item is deleted.
event_info contains the item.
- ``item,clicked`` - this is called when an item is clicked by user
interaction. Both "item,selected" and "item,clicked" are needed.
event_info contains the item.
- ``clicked`` - when multi-button entry is clicked.
- ``focused`` - when multi-button entry is focused.
- ``unfocused`` - when multi-button entry is unfocused.
- ``expanded`` - when multi-button entry is expanded.
- ``contracted`` - when multi-button entry is contracted.
- ``expand,state,changed`` - when shrink mode state of
multi-button entry is changed.
Layout text parts
=================
- ``default`` - A label of the multibuttonentry
- ``default`` - A label of the multibuttonentry item
Inheritance diagram
===================
.. inheritance-diagram:: MultiButtonEntry
:parts: 2
.. autoclass:: MultiButtonEntry

View File

@ -1,2 +1,97 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.naviframe
Naviframe
#########
.. image:: /images/naviframe-preview.png
Widget description
==================
Naviframe stands for navigation frame. It's a views manager
for applications.
A naviframe holds views (or pages) as its items. Those items are
organized in a stack, so that new items get pushed on top of the
old, and only the topmost view is displayed at one time. The
transition between views is animated, depending on the theme
applied to the widget.
Naviframe views hold spaces to various elements, which are:
- back button, used to navigate to previous views,
- next button, used to navigate to next views in the stack,
- title label,
- sub-title label,
- title icon and
- content area.
Layout content parts
====================
- ``default`` - The main content of the current page
- ``icon`` - An icon in the title area of the current page
- ``prev_btn`` - A button of the current page to go to the previous page
- ``next_btn`` - A button of the current page to go to the next page
Layout text parts
=================
- ``default`` - Title label in the title area of the current page
- ``subtitle`` - Sub-title label in the title area of the current page
Most of those content objects can be passed at the time of an item
creation (see :py:meth:`~NaviframeItem.push_to`).
Available styles
================
Naviframe items can have different styles, which affect the
transition between views, for example. On the default theme, two of
them are supported:
- ``basic`` - views are switched sliding horizontally, one after the other
- ``overlap`` - like the previous one, but the previous view stays at its place
and is overlapped by the new
Emitted signals
===============
- ``transition,finished`` - When the transition is finished in changing the item
- ``title,transition,finished`` - When the title area's transition is finished
- ``title,clicked`` - User clicked title area
- ``focused`` - When the naviframe has received focus. (since 1.8)
- ``unfocused`` - When the naviframe has lost focus. (since 1.8)
All the parts, for content and text, described here will also be
reachable by naviframe **items** direct calls:
- :py:meth:`~efl.elementary.object_item.ObjectItem.delete`
- :py:meth:`~efl.elementary.object_item.ObjectItem.part_text_set`
- :py:meth:`~efl.elementary.object_item.ObjectItem.part_text_get`
- :py:meth:`~efl.elementary.object_item.ObjectItem.part_content_set`
- :py:meth:`~efl.elementary.object_item.ObjectItem.part_content_get`
- :py:meth:`~efl.elementary.object_item.ObjectItem.part_content_unset`
- :py:meth:`~efl.elementary.object_item.ObjectItem.signal_emit`
What happens is that the topmost item of a naviframe will be the
widget's target layout, when accessed directly. Items lying below
the top one can be interacted with this way.
Inheritance diagram
===================
.. inheritance-diagram::
Naviframe
NaviframeItem
:parts: 2
.. autoclass:: Naviframe
.. autoclass:: NaviframeItem

View File

@ -1,2 +1,20 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.need
Need
####
Description
===========
These functions are used for requesting use of optional Elementary modules.
Check their return value for whether the feature is actually supported.
.. autofunction:: efl.elementary.need_efreet
.. autofunction:: efl.elementary.need_systray
.. autofunction:: efl.elementary.need_sys_notify
.. autofunction:: efl.elementary.need_e_dbus
.. autofunction:: efl.elementary.need_eldbus
.. autofunction:: efl.elementary.need_elocation
.. autofunction:: efl.elementary.need_ethumb
.. autofunction:: efl.elementary.need_web

View File

@ -1,2 +1,54 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.notify
Notify
######
.. image:: /images/notify-preview.png
Widget description
==================
Display a container in a particular region of the parent.
A timeout can be set to automatically hide the notify. This is so that, after
an :py:meth:`~efl.evas.Object.show` on a notify object, if a timeout was set on
it, it will **automatically** get hidden after that time.
Emitted signals
===============
- ``timeout`` - when timeout happens on notify and it's hidden
- ``block,clicked`` - when a click outside of the notify happens
Layout content parts
====================
- ``default`` - The main content of the notify
Enumerations
============
.. _ELM_NOTIFY_ALIGN_FILL:
ELM_NOTIFY_ALIGN_FILL
---------------------
.. data:: ELM_NOTIFY_ALIGN_FILL
Use with :py:attr:`Notify.align`
.. versionadded:: 1.8
Inheritance diagram
===================
.. inheritance-diagram:: Notify
:parts: 2
.. autoclass:: Notify

View File

@ -1,2 +1,282 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.object
Object
######
Copy and Paste
==============
Implements the following functionality
a. select, copy/cut and paste
b. clipboard
c. drag and drop
in order to share data across application windows.
Contains functions to select text or a portion of data,
send it to a buffer, and paste the data into a target.
elm_cnp provides a generic copy and paste facility based on its windowing
system.
It is not necessary to know the details of each windowing system,
but some terms and behavior are common.
Currently the X11 window system is widely used, and only X11 functionality is
implemented.
In X11R6 window system, CopyPaste works like a peer-to-peer communication.
Copying is an operation on an object in an X server.
X11 calls those objects 'selections' which have names.
Generally, two selection types are needed for copy and paste:
The Primary selection and the Clipboard selection.
Primary selection is for selecting text (that means highlighted text).
Clipboard selection is for explicit copying behavior
(such as ctrl+c, or 'copy' in a menu).
Thus, in applications most cases only use the clipboard selection.
As stated before, taking ownership of a selection doesn't move any actual data.
Copying and Pasting is described as follows:
1. Copy text in Program A : Program A takes ownership of the selection
2. Paste text in Program B : Program B notes that Program A owns the selection
3. Program B asks A for the text
4. Program A responds and sends the text to program B
5. Program B pastes the response
More information is on
- http://www.jwz.org/doc/x-cut-and-paste.html
- X11R6 Inter-Client Communication Conventions Manual, section 2
Enumerations
============
.. _Elm_Object_Focus_Direction:
Focus direction
---------------
.. data:: ELM_FOCUS_PREVIOUS
Focus previous
.. data:: ELM_FOCUS_NEXT
Focus next
.. data:: ELM_FOCUS_UP
Focus up
.. versionadded:: 1.8.1
.. data:: ELM_FOCUS_DOWN
Focus down
.. versionadded:: 1.8.1
.. data:: ELM_FOCUS_RIGHT
Focus right
.. versionadded:: 1.8.1
.. data:: ELM_FOCUS_LEFT
Focus left
.. versionadded:: 1.8.1
.. _Elm_Focus_Move_Policy:
Focus move policy
-----------------
.. data:: ELM_FOCUS_MOVE_POLICY_CLICK
Give focus to object when they are clicked
.. versionadded:: 1.10
.. data:: ELM_FOCUS_MOVE_POLICY_IN
Give focus to object on mouse-in
.. versionadded:: 1.10
.. _Elm_Focus_Autoscroll_Mode:
Focus autoscroll mode
---------------------
.. data:: ELM_FOCUS_AUTOSCROLL_MODE_SHOW
Directly show the focused region or item automatically.
.. versionadded:: 1.10
.. data:: ELM_FOCUS_AUTOSCROLL_MODE_NONE
Do not show the focused region or item automatically.
.. versionadded:: 1.10
.. data:: ELM_FOCUS_AUTOSCROLL_MODE_BRING_IN
Bring_in the focused region or item automatically which might
invole the scrolling
.. versionadded:: 1.10
.. _Elm_Input_Event_Type:
Input event types
-----------------
.. data:: EVAS_CALLBACK_KEY_DOWN
.. data:: EVAS_CALLBACK_KEY_UP
.. data:: EVAS_CALLBACK_MOUSE_WHEEL
.. _Elm_Object_Sel_Type:
Selection type
--------------
Defines the types of selection property names.
:see: http://www.x.org/docs/X11/xlib.pdf for more details.
.. data:: ELM_SEL_TYPE_PRIMARY
Primary text selection (highlighted or selected text)
.. data:: ELM_SEL_TYPE_SECONDARY
Used when primary selection is in use
.. data:: ELM_SEL_TYPE_XDND
Drag 'n' Drop
.. data:: ELM_SEL_TYPE_CLIPBOARD
Clipboard selection (ctrl+C)
.. _Elm_Object_Sel_Format:
Selection format
----------------
Defines the types of content.
.. data:: ELM_SEL_FORMAT_TARGETS
For matching every possible atom
.. data:: ELM_SEL_FORMAT_NONE
Content is from outside of Elementary
.. data:: ELM_SEL_FORMAT_TEXT
Plain unformatted text: Used for things that don't want rich markup
.. data:: ELM_SEL_FORMAT_MARKUP
Edje textblock markup, including inline images
.. data:: ELM_SEL_FORMAT_IMAGE
Images
.. data:: ELM_SEL_FORMAT_VCARD
Vcards
.. data:: ELM_SEL_FORMAT_HTML
Raw HTML-like data (eg. webkit)
.. _Elm_Object_Xdnd_Action:
XDND action
-----------
Defines the kind of action associated with the drop data if for XDND
.. versionadded:: 1.8
.. data:: ELM_XDND_ACTION_UNKNOWN
Action type is unknown
.. data:: ELM_XDND_ACTION_COPY
Copy the data
.. data:: ELM_XDND_ACTION_MOVE
Move the data
.. data:: ELM_XDND_ACTION_PRIVATE
Private action type
.. data:: ELM_XDND_ACTION_ASK
Ask the user what to do
.. data:: ELM_XDND_ACTION_LIST
List the data
.. data:: ELM_XDND_ACTION_LINK
Link the data
.. data:: ELM_XDND_ACTION_DESCRIPTION
Describe the data
.. _Elm_Object_Select_Mode:
Selection modes
---------------
.. data:: ELM_OBJECT_SELECT_MODE_DEFAULT
Items will only call their selection func and callback when
first becoming selected. Any further clicks will do nothing,
unless you set always select mode.
.. data:: ELM_OBJECT_SELECT_MODE_ALWAYS
This means that, even if selected, every click will make the
selected callbacks be called.
.. data:: ELM_OBJECT_SELECT_MODE_NONE
This will turn off the ability to select items entirely and
they will neither appear selected nor call selected callback
functions.
.. data:: ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY
No select mode with no finger size rule
Inheritance diagram
===================
.. inheritance-diagram:: Object
:parts: 2
.. autoclass:: Object

View File

@ -1,2 +1,13 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.object_item
Object Item
###########
Inheritance diagram
===================
.. inheritance-diagram:: ObjectItem
:parts: 2
.. autoclass:: ObjectItem

View File

@ -1,2 +1,62 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.panel
Panel
#####
.. image:: /images/panel-preview.png
Widget description
==================
A panel is a type of animated container that contains subobjects.
It can be expanded or contracted by clicking the button on it's edge.
Emitted signals
===============
- ``focused`` - When the panel has received focus. (since 1.8)
- ``unfocused`` - When the panel has lost focus. (since 1.8)
Layout content parts
====================
- ``default`` - A content of the panel
Enumerations
============
.. _Elm_Panel_Orient:
Panel orientation types
-----------------------
.. data:: ELM_PANEL_ORIENT_TOP
Panel (dis)appears from the top
.. data:: ELM_PANEL_ORIENT_BOTTOM
Panel (dis)appears from the bottom
.. data:: ELM_PANEL_ORIENT_LEFT
Panel (dis)appears from the left
.. data:: ELM_PANEL_ORIENT_RIGHT
Panel (dis)appears from the right
Inheritance diagram
===================
.. inheritance-diagram:: Panel
:parts: 2
.. autoclass:: Panel

View File

@ -1,2 +1,46 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.panes
Panes
#####
.. image:: /images/panes-preview.png
Widget description
==================
The panes widget adds a draggable bar between two contents. When
dragged this bar will resize contents' size.
Panes can be displayed vertically or horizontally, and contents size
proportion can be customized (homogeneous by default).
Emitted signals
===============
- ``press`` - The panes has been pressed (button wasn't released yet).
- ``unpressed`` - The panes was released after being pressed.
- ``clicked`` - The panes has been clicked.
- ``clicked,double`` - The panes has been double clicked.
Layout content parts
====================
- ``left`` - A leftside content of the panes
- ``right`` - A rightside content of the panes
- ``top`` - A top content of the vertical panes
- ``bottom`` - A bottom content of the vertical panes
If panes are displayed vertically, left content will be displayed on top.
Inheritance diagram
===================
.. inheritance-diagram:: Panes
:parts: 2
.. autoclass:: Panes

View File

@ -1,2 +1,39 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.photo
Photo
#####
.. image:: /images/photo-preview.png
Widget description
==================
An Elementary photo widget is intended for displaying a photo, for
ex., a person's image (contact).
Simple, yet with a very specific purpose. It has a decorative frame
around the inner image itself, on the default theme.
This widget relies on an internal :py:class:`~efl.elementary.icon.Icon`, so
that the APIs of these two widgets are similar (drag and drop is also possible
here, for example).
Emitted signals
===============
- ``clicked`` - This is called when a user has clicked the photo
- ``drag,start`` - One has started dragging the inner image out of the photo's
frame
- ``drag,end`` - One has dropped the dragged image somewhere
Inheritance diagram
===================
.. inheritance-diagram:: Photo
:parts: 2
.. autoclass:: Photo

View File

@ -1,2 +1,95 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.photocam
Photocam
########
Widget description
==================
This is a widget specifically for displaying high-resolution digital
camera photos giving speedy feedback (fast load), low memory footprint
and zooming and panning as well as fitting logic. It is entirely focused
on jpeg images, and takes advantage of properties of the jpeg format (via
evas loader features in the jpeg loader).
Emitted signals
===============
- ``clicked`` - This is called when a user has clicked the photo without
dragging around.
- ``press`` - This is called when a user has pressed down on the photo.
- ``longpressed`` - This is called when a user has pressed down on the
photo for a long time without dragging around.
- ``clicked,double`` - This is called when a user has double-clicked the
photo.
- ``load`` - Photo load begins.
- ``loaded`` - This is called when the image file load is complete for
the first view (low resolution blurry version).
- ``load,detail`` - Photo detailed data load begins.
- ``loaded,detail`` - This is called when the image file load is
complete for the detailed image data (full resolution needed).
- ``zoom,start`` - Zoom animation started.
- ``zoom,stop`` - Zoom animation stopped.
- ``zoom,change`` - Zoom changed when using an auto zoom mode.
- ``scroll`` - the content has been scrolled (moved)
- ``scroll,anim,start`` - scrolling animation has started
- ``scroll,anim,stop`` - scrolling animation has stopped
- ``scroll,drag,start`` - dragging the contents around has started
- ``scroll,drag,stop`` - dragging the contents around has stopped
- ``download,start`` - remote url download has started
- ``download,progress`` - url download in progress
- ``download,end`` - remote url download has finished
- ``download,error`` - remote url download has finished with errors
- ``focused`` - When the photocam has received focus. (since 1.8)
- ``unfocused`` - When the photocam has lost focus. (since 1.8)
Scrollable Interface
====================
This widget supports the scrollable interface.
If you wish to control the scrolling behaviour using these functions,
inherit both the widget class and the
:py:class:`~efl.elementary.scroller.Scrollable` class
using multiple inheritance, for example::
class ScrollableGenlist(Genlist, Scrollable):
def __init__(self, canvas, *args, **kwargs):
Genlist.__init__(self, canvas)
Enumerations
============
.. _Elm_Photocam_Zoom_Mode:
Photocam zoom modes
-------------------
.. data:: ELM_PHOTOCAM_ZOOM_MODE_MANUAL
Zoom controlled normally by :py:attr:`~Photocam.zoom`
.. data:: ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT
Zoom until photo fits in photocam
.. data:: ELM_PHOTOCAM_ZOOM_MODE_AUTO_FILL
Zoom until photo fills photocam
.. data:: ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT_IN
Zoom in until photo fits in photocam
Inheritance diagram
===================
.. inheritance-diagram:: Photocam
:parts: 2
.. autoclass:: Photocam

View File

@ -1,2 +1,38 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.plug
Plug
####
Widget Description
==================
An object that allows one to show an image which other process created.
It can be used anywhere like any other elementary widget.
Emitted signals
===============
- ``clicked`` - the user clicked the image (press/release).
- ``image,deleted`` - the server side was deleted.
- ``image,resized`` - the server side was resized. The ``event_info`` parameter
of the callback will be ``Evas_Coord_Size`` (two integers).
.. note::
the event "image,resized" will be sent whenever the server
resized its image and this **always** happen on the first
time. Then it can be used to track when the server-side image
is fully known (client connected to server, retrieved its
image buffer through shared memory and resized the evas
object).
Inheritance diagram
===================
.. inheritance-diagram:: Plug
:parts: 2
.. autoclass:: Plug

View File

@ -1,2 +1,153 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.popup
Popup
#####
.. image:: /images/popup-preview.png
Widget description
==================
This widget is an enhancement of :py:class:`~efl.elementary.notify.Notify`.
In addition to Content area, there are two optional sections namely Title
area and Action area.
Popup Widget displays its content with a particular orientation in the
parent area. This orientation can be one among top, center, bottom,
left, top-left, top-right, bottom-left and bottom-right. Content part of
Popup can be an Evas Object set by application or it can be Text set by
application or set of items containing an icon and/or text. The
content/item-list can be removed using elm_object_content_set with second
parameter passed as None.
Following figures shows the textual layouts of popup in which Title Area
and Action area area are optional ones. Action area can have up to 3
buttons handled using elm_object common APIs mentioned below. If user
wants to have more than 3 buttons then these buttons can be put inside
the items of a list as content. User needs to handle the clicked signal
of these action buttons if required. No event is processed by the widget
automatically when clicked on these action buttons.
Figure::
|---------------------| |---------------------| |---------------------|
| Title Area | | Title Area | | Title Area |
|Icon| Text | |Icon| Text | |Icon| Text |
|---------------------| |---------------------| |---------------------|
| Item 1 | | | | |
|---------------------| | | | |
| Item 2 | | | | Description |
|---------------------| | Content | | |
| Item 3 | | | | |
|---------------------| | | | |
| . | |---------------------| |---------------------|
| . | | Action Area | | Action Area |
| . | | Btn1 |Btn2|. |Btn3 | | Btn1 |Btn2| |Btn3 |
|---------------------| |---------------------| |---------------------|
| Item N | Content Based Layout Description based Layout
|---------------------|
| Action Area |
| Btn1 |Btn2|. |Btn3 |
|---------------------|
Item Based Layout
Timeout can be set on expiry of which popup instance hides and sends a
smart signal "timeout" to the user. The visible region of popup is
surrounded by a translucent region called Blocked Event area. By
clicking on Blocked Event area, the signal "block,clicked" is sent to
the application. This block event area can be avoided by using API
elm_popup_allow_events_set. When gets hidden, popup does not get
destroyed automatically, application should destroy the popup instance
after use. To control the maximum height of the internal scroller for
item, we use the height of the action area which is passed by theme
based on the number of buttons currently set to popup.
Emitted signals
===============
- ``timeout`` - when ever popup is closed as a result of timeout.
- ``block,clicked`` - when ever user taps on Blocked Event area.
- ``focused`` - When the popup has received focus. (since 1.8)
- ``unfocused`` - When the popup has lost focus. (since 1.8)
- ``language,changed`` - the program's language changed (since 1.8)
- ``item,focused`` - the popup item has received focus. (since 1.10)
- ``item,unfocused`` - the popup item has lost focus. (since 1.10)
Layout content parts
====================
- ``default`` - The content of the popup
- ``title,icon`` - Title area's icon
- ``button1`` - 1st button of the action area
- ``button2`` - 2nd button of the action area
- ``button3`` - 3rd button of the action area
- ``default`` - Item's icon
Layout text parts
=================
- ``title,text`` - This operates on Title area's label
- ``default`` - content-text set in the content area of the widget
- ``default`` - Item's label
Enumerations
============
.. _Elm_Popup_Orient:
Popup orientation types
-----------------------
.. data:: ELM_POPUP_ORIENT_TOP
Popup should appear in the top of parent, default
.. data:: ELM_POPUP_ORIENT_CENTER
Popup should appear in the center of parent
.. data:: ELM_POPUP_ORIENT_BOTTOM
Popup should appear in the bottom of parent
.. data:: ELM_POPUP_ORIENT_LEFT
Popup should appear in the left of parent
.. data:: ELM_POPUP_ORIENT_RIGHT
Popup should appear in the right of parent
.. data:: ELM_POPUP_ORIENT_TOP_LEFT
Popup should appear in the top left of parent
.. data:: ELM_POPUP_ORIENT_TOP_RIGHT
Popup should appear in the top right of parent
.. data:: ELM_POPUP_ORIENT_BOTTOM_LEFT
Popup should appear in the bottom left of parent
.. data:: ELM_POPUP_ORIENT_BOTTOM_RIGHT
Popup should appear in the bottom right of parent
Inheritance diagram
===================
.. inheritance-diagram::
Popup
PopupItem
:parts: 2
.. autoclass:: Popup
.. autoclass:: PopupItem

View File

@ -1,2 +1,68 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.progressbar
Progressbar
###########
.. image:: /images/progressbar-preview.png
Widget description
==================
The progress bar is a widget for visually representing the progress
status of a given job/task.
A progress bar may be horizontal or vertical. It may display an icon
besides it, as well as primary and **units** labels. The former is meant
to label the widget as a whole, while the latter, which is formatted
with floating point values (and thus accepts a ``printf``-style format
string, like ``"%1.2f units"``), is meant to label the widget's **progress
value**. Label, icon and unit strings/objects are **optional** for
progress bars.
A progress bar may be **inverted**, in which case it gets its values
inverted, i.e., high values being on the left or top and low values on
the right or bottom, for horizontal and vertical modes respectively.
The **span** of the progress, as set by :py:attr:`~Progressbar.span_size`, is
its length (horizontally or vertically), unless one puts size hints on the
widget to expand on desired directions, by any container. That length will be
scaled by the object or applications scaling factor. Applications can query the
progress bar for its value with :py:attr:`~Progressbar.value`.
This widget emits the following signals, besides the ones sent from
:py:class:`~efl.elementary.layout_class.LayoutClass`:
- ``changed`` - when the value is changed
- ``focused`` - When the progressbar has received focus. (since 1.8)
- ``unfocused`` - When the progressbar has lost focus. (since 1.8)
This widget has the following styles:
- ``default``
- ``wheel`` (simple style, no text, no progression, only "pulse"
effect is available)
- ``double`` (style with two independent progress indicators)
Default text parts of the progressbar widget that you can use for are:
- ``default`` - Label of the progressbar
Default content parts of the progressbar widget that you can use for are:
- ``icon`` - An icon of the progressbar
Default part names for the "recording" style:
- ``elm.cur.progressbar`` - The "main" indicator bar
- ``elm.cur.progressbar1`` - The "secondary" indicator bar
Inheritance diagram
===================
.. inheritance-diagram:: Progressbar
:parts: 2
.. autoclass:: Progressbar

View File

@ -1,2 +1,63 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.radio
Radio
#####
.. image:: /images/radio-preview.png
Widget description
==================
Radio is a widget that allows for one or more options to be displayed
and have the user choose only one of them.
A radio object contains an indicator, an optional Label and an optional
icon object. While it's possible to have a group of only one radio they,
are normally used in groups of two or more.
Radio objects are grouped in a slightly different, compared to other UI
toolkits. There is no separate group name/id to remember or manage. The
members represent the group, there are the group. To make a group, use
:py:meth:`Radio.group_add` and pass existing radio object and the new radio
object.
The radio object(s) will select from one of a set of integer values, so
any value they are configuring needs to be mapped to a set of integers.
To configure what value that radio object represents, use
:py:attr:`~Radio.state_value` to set the integer it represents. The
value of the whole group (which one is currently selected) is
represented by the property :py:attr:`~Radio.value` on any group member. For
convenience the radio objects are also able to directly set an
integer(int) to the value that is selected.
Emitted signals
===============
- ``changed`` - This is called whenever the user changes the state of one of
the radio objects within the group of radio objects that work together.
- ``focused`` - When the radio has received focus. (since 1.8)
- ``unfocused`` - When the radio has lost focus. (since 1.8)
Layout text parts
=================
- ``default`` - Label of the radio
Layout content parts
====================
- ``icon`` - An icon of the radio
Inheritance diagram
===================
.. inheritance-diagram:: Radio
:parts: 2
.. autoclass:: Radio

View File

@ -1,2 +1,136 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.scroller
Scroller
########
.. image:: /images/scroller-preview.png
Widget description
==================
A scroller holds a single object and "scrolls it around".
This means that it allows the user to use a scrollbar (or a finger) to
drag the viewable region around, allowing to move through a much larger
object that is contained in the scroller. The scroller will always have
a small minimum size by default as it won't be limited by the contents
of the scroller.
This widget inherits from :py:class:`~efl.elementary.layout_class.LayoutClass`,
so that all the functions acting on it also work for scroller objects.
.. note:: When Elementary is in embedded mode the scrollbars will not be
draggable, they appear merely as indicators of how much has been
scrolled.
.. note:: When Elementary is in desktop mode the thumbscroll(a.k.a.
fingerscroll) won't work.
Emitted signals
===============
- ``edge,left`` - the left edge of the content has been reached
- ``edge,right`` - the right edge of the content has been reached
- ``edge,top`` - the top edge of the content has been reached
- ``edge,bottom`` - the bottom edge of the content has been reached
- ``scroll`` - the content has been scrolled (moved)
- ``scroll,left`` - the content has been scrolled (moved) leftwards
- ``scroll,right`` - the content has been scrolled (moved) rightwards
- ``scroll,up`` - the content has been scrolled (moved) upwards
- ``scroll,down`` - the content has been scrolled (moved) downwards
- ``scroll,anim,start`` - scrolling animation has started
- ``scroll,anim,stop`` - scrolling animation has stopped
- ``scroll,drag,start`` - dragging the contents around has started
- ``scroll,drag,stop`` - dragging the contents around has stopped
- ``vbar,drag`` - the vertical scroll bar has been dragged
- ``vbar,press`` - the vertical scroll bar has been pressed
- ``vbar,unpress`` - the vertical scroll bar has been unpressed
- ``hbar,drag`` - the horizontal scroll bar has been dragged
- ``hbar,press`` - the horizontal scroll bar has been pressed
- ``hbar,unpress`` - the horizontal scroll bar has been unpressed
- ``scroll,page,changed`` - the visible page has changed
- ``focused`` - When the scroller has received focus. (since 1.8)
- ``unfocused`` - When the scroller has lost focus. (since 1.8)
.. note:: The "scroll,anim,*" and "scroll,drag,*" signals are only emitted by
user intervention.
Layout content parts
====================
- ``default`` - A content of the scroller
Enumerations
============
.. _Elm_Scroller_Policy:
Scrollbar visibility
--------------------
.. data:: ELM_SCROLLER_POLICY_AUTO
Show scrollbars as needed
.. data:: ELM_SCROLLER_POLICY_ON
Always show scrollbars
.. data:: ELM_SCROLLER_POLICY_OFF
Never show scrollbars
.. _Elm_Scroller_Single_Direction:
Single direction
----------------
Type that controls how the content is scrolled.
.. data:: ELM_SCROLLER_SINGLE_DIRECTION_NONE
Scroll every direction
.. data:: ELM_SCROLLER_SINGLE_DIRECTION_SOFT
Scroll single direction if the direction is certain
.. data:: ELM_SCROLLER_SINGLE_DIRECTION_HARD
Scroll only single direction
.. _Elm_Scroller_Movement_Block:
Movement block
--------------
Type that blocks the scroll movement in one or more direction.
:since: 1.8
.. data:: ELM_SCROLLER_MOVEMENT_NO_BLOCK
Do not block movements
.. data:: ELM_SCROLLER_MOVEMENT_BLOCK_VERTICAL
Block vertical movements
.. data:: ELM_SCROLLER_MOVEMENT_BLOCK_HORIZONTAL
Block horizontal movements
Inheritance diagram
===================
.. inheritance-diagram:: Scroller
:parts: 2
.. autoclass:: Scroller

View File

@ -1,2 +1,50 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.segment_control
Segment Control
###############
.. image:: /images/segmentcontrol-preview.png
Widget description
==================
Segment control widget is a horizontal control made of multiple
segment items, each segment item functioning similar to discrete two
state button. A segment control groups the items together and provides
compact single button with multiple equal size segments.
Segment item size is determined by base widget size and the number of
items added. Only one segment item can be at selected state. A segment
item can display combination of Text and any Evas_Object like Images or
other widget.
Emitted signals
===============
- ``changed`` - When the user clicks on a segment item which is not
previously selected and get selected. The event_info parameter is the
segment item.
Layout content parts
====================
- ``icon`` - An icon in a segment control item
Layout text parts
=================
- ``default`` - Title label in a segment control item
Inheritance diagram
===================
.. inheritance-diagram:: SegmentControl
:parts: 2
.. autoclass:: SegmentControl

View File

@ -1,2 +1,24 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.separator
Separator
#########
.. image:: /images/separator-preview.png
Widget description
==================
Separator is a very thin object used to separate other objects.
A separator can be vertical or horizontal.
Inheritance diagram
===================
.. inheritance-diagram:: Separator
:parts: 2
.. autoclass:: Separator

View File

@ -1,2 +1,70 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.slider
Slider
######
.. image:: /images/slider-preview.png
Widget description
==================
The slider adds a draggable "slider" widget for selecting the value of
something within a range.
A slider can be horizontal or vertical. It can contain an Icon and has a
primary label as well as a units label (that is formatted with floating
point values and thus accepts a printf-style format string, like
``"%1.2f units"``. There is also an indicator string that may be somewhere
else (like on the slider itself) that also accepts a format string like
units. Label, Icon Unit and Indicator strings/objects are optional.
A slider may be inverted which means values invert, with high vales being
on the left or top and low values on the right or bottom (as opposed to
normally being low on the left or top and high on the bottom and right).
The slider should have its minimum and maximum values set by the
application with :py:attr:`Slider.min_max` and value should also be set by
the application before use with :py:attr:`Slider.value`. The span of the
slider is its length (horizontally or vertically). This will be scaled by
the object or applications scaling factor. At any point code can query the
slider for its value with :py:attr:`Slider.value`.
Emitted signals
===============
- ``changed`` - Whenever the slider value is changed by the user.
- ``slider,drag,start`` - dragging the slider indicator around has
started.
- ``slider,drag,stop`` - dragging the slider indicator around has
stopped.
- ``delay,changed`` - A short time after the value is changed by
the user. This will be called only when the user stops dragging
for a very short period or when they release their finger/mouse,
so it avoids possibly expensive reactions to the value change.
- ``focused`` - When the slider has received focus. (since 1.8)
- ``unfocused`` - When the slider has lost focus. (since 1.8)
Layout content parts
====================
- ``icon`` - An icon of the slider
- ``end`` - A end part content of the slider
Layout text parts
=================
- ``default`` - Label of the slider
Inheritance diagram
===================
.. inheritance-diagram:: Slider
:parts: 2
.. autoclass:: Slider

View File

@ -1,2 +1,74 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.slideshow
Slideshow
#########
.. image:: /images/slideshow-preview.png
Widget description
==================
This widget, as the name indicates, is a pre-made image
slideshow panel, with API functions acting on (child) image
items presentation. Between those actions, are:
- advance to next/previous image
- select the style of image transition animation
- set the exhibition time for each image
- start/stop the slideshow
The transition animations are defined in the widget's theme,
consequently new animations can be added without having to
update the widget's code.
Slideshow items
===============
For slideshow items, just like for :py:class:`~efl.elementary.genlist.Genlist`
ones, the user defines a **classes**, specifying functions that will be called
on the item's creation and deletion times.
The :py:class:`SlideshowItemClass` class contains the following
members:
- ``get`` - When an item is displayed, this function is
called, and it's where one should create the item object, de
facto. For example, the object can be a pure Evas image object
or a :py:class:`~efl.elementary.photocam.Photocam` widget.
- ``delete`` - When an item is no more displayed, this function
is called, where the user must delete any data associated to
the item.
Slideshow caching
=================
The slideshow provides facilities to have items adjacent to the
one being displayed **already "realized"** (i.e. loaded) for
you, so that the system does not have to decode image data
anymore at the time it has to actually switch images on its
viewport. The user is able to set the numbers of items to be
cached **before** and **after** the current item, in the widget's
item list.
Emitted signals
===============
- ``changed`` - when the slideshow switches its view to a new item.
event_info parameter in callback contains the current visible item
- ``transition,end`` - when a slide transition ends. event_info
parameter in callback contains the current visible item
- ``focused`` - When the slideshow has received focus. (since 1.8)
- ``unfocused`` - When the slideshow has lost focus. (since 1.8)
Inheritance diagram
===================
.. inheritance-diagram:: Slideshow
:parts: 2
.. autoclass:: Slideshow

View File

@ -1,2 +1,53 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.spinner
Spinner
#######
.. image:: /images/spinner-preview.png
Widget description
==================
A spinner is a widget which allows the user to increase or decrease
numeric values using arrow buttons, or edit values directly, clicking
over it and typing the new value.
By default the spinner will not wrap and has a label
of ``"%.0f"`` (just showing the integer value of the double).
A spinner has a label that is formatted with floating
point values and thus accepts a printf-style format string, like
``"%1.2f units"``.
It also allows specific values to be replaced by pre-defined labels.
Emitted signals
===============
- ``changed`` - Whenever the spinner value is changed.
- ``delay,changed`` - A short time after the value is changed by
the user. This will be called only when the user stops dragging
for a very short period or when they release their finger/mouse,
so it avoids possibly expensive reactions to the value change.
- ``language,changed`` - the program's language changed
- ``focused`` - When the spinner has received focus. (since 1.8)
- ``unfocused`` - When the spinner has lost focus. (since 1.8)
Available styles
================
- ``default``: Default style
- ``vertical``: up/down buttons at the right side and text left aligned.
Inheritance diagram
===================
.. inheritance-diagram:: Spinner
:parts: 2
.. autoclass:: Spinner

View File

@ -1,2 +1,57 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.systray
Systray
#######
Enumerations
============
.. _Elm_Systray_Category:
Category of the Status Notifier Item.
-------------------------------------
.. data:: ELM_SYSTRAY_CATEGORY_APP_STATUS
Indicators of application status
.. data:: ELM_SYSTRAY_CATEGORY_COMMUNICATIONS
Communications apps
.. data:: ELM_SYSTRAY_CATEGORY_SYS_SERVICES
System Service apps
.. data:: ELM_SYSTRAY_CATEGORY_HARDWARE
Hardware indicators
.. data:: ELM_SYSTRAY_CATEGORY_OTHER
Undefined category
.. _Elm_Systray_Status:
Application status information.
-------------------------------
.. data:: ELM_SYSTRAY_STATUS_PASSIVE
Passive (normal)
.. data:: ELM_SYSTRAY_STATUS_ACTIVE
Active
.. data:: ELM_SYSTRAY_STATUS_ATTENTION
Needs Attention
.. autoclass:: Systray
.. autofunction:: on_systray_ready
.. autoclass:: EventSystrayReady

View File

@ -1,2 +1,38 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.table
Table
#####
.. image:: /images/table-preview.png
Widget description
==================
A container widget to arrange other widgets in a table where items can
span multiple columns or rows - even overlap (and then be raised or
lowered accordingly to adjust stacking if they do overlap).
The row and column count is not fixed. The table widget adjusts itself
when subobjects are added to it dynamically.
The most common way to use a table is::
table = Table(win)
table.show()
table.padding = (space_between_columns, space_between_rows)
table.pack(table_content_object, x_coord, y_coord, colspan, rowspan)
table.pack(table_content_object, x_coord, y_coord, colspan, rowspan)
table.pack(table_content_object, x_coord, y_coord, colspan, rowspan)
Inheritance diagram
===================
.. inheritance-diagram:: Table
:parts: 2
.. autoclass:: Table
.. autofunction:: table_pack_set
.. autofunction:: table_pack_get

View File

@ -1,2 +1,81 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.theme
Theme
#####
Description
===========
Elementary uses Edje to theme its widgets, naturally. But for the most
part this is hidden behind a simpler interface that lets the user set
extensions and choose the style of widgets in a much easier way.
Instead of thinking in terms of paths to Edje files and their groups
each time you want to change the appearance of a widget, Elementary
works so you can add any theme file with extensions or replace the
main theme at one point in the application, and then just set the style
of widgets with
:py:attr:`Object.style<efl.elementary.object.Object.style>`
and related functions. Elementary
will then look in its list of themes for a matching group and apply it,
and when the theme changes midway through the application, all widgets
will be updated accordingly.
There are three concepts you need to know to understand how Elementary
theming works: default theme, extensions and overlays.
Default theme, obviously enough, is the one that provides the default
look of all widgets. End users can change the theme used by Elementary
by setting the ``ELM_THEME`` environment variable before running an
application, or globally for all programs using the ``elementary_config``
utility. Applications can change the default theme using :py:attr:`Theme.order`,
but this can go against the user wishes, so it's not an advised practice.
Ideally, applications should find everything they need in the already
provided theme, but there may be occasions when that's not enough and
custom styles are required to correctly express the idea. For this
cases, Elementary has extensions.
Extensions allow the application developer to write styles of its own
to apply to some widgets. This requires knowledge of how each widget
is themed, as extensions will always replace the entire group used by
the widget, so important signals and parts need to be there for the
object to behave properly (see documentation of Edje for details).
Once the theme for the extension is done, the application needs to add
it to the list of themes Elementary will look into, using
:py:func:`Theme.extension_add()`, and set the style of the desired widgets as
he would normally with
:py:attr:`Object.style<efl.elementary.object.Object.style>`.
Overlays, on the other hand, can replace the look of all widgets by
overriding the default style. Like extensions, it's up to the application
developer to write the theme for the widgets it wants, the difference
being that when looking for the theme, Elementary will check first the
list of overlays, then the set theme and lastly the list of extensions,
so with overlays it's possible to replace the default view and every
widget will be affected. This is very much alike to setting the whole
theme for the application and will probably clash with the end user
options, not to mention the risk of ending up with not matching styles
across the program. Unless there's a very special reason to use them,
overlays should be avoided for the reasons exposed before.
All these theme lists are handled by :py:class:`Theme` instances. Elementary
keeps one default internally. It's possible to create a new instance of a
:py:class:`Theme` to set other theme for a specific widget (and all of its
children), but this is as discouraged, if not even more so, than using
overlays. Don't use this unless you really know what you are doing.
.. note::
Remember to :py:func:`Theme.free` the instance when you're done with it!
Inheritance diagram
===================
.. inheritance-diagram:: Theme
:parts: 2
.. autoclass:: Theme

View File

@ -1,2 +1,172 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.thumb
Thumb
#####
.. image:: /images/thumb-preview.png
Widget description
==================
A thumbnail object is used for displaying the thumbnail of an image
or video. You must have compiled Elementary with ``Ethumb_Client``
support. Also, Ethumb's DBus service must be present and
auto-activated in order to have thumbnails generated. You must also
have a **session** bus, not a **system** one.
Once the thumbnail object becomes visible, it will check if there
is a previously generated thumbnail image for the file set on
it. If not, it will start generating this thumbnail.
Different configuration settings will cause different thumbnails to
be generated even on the same file.
Generated thumbnails are stored under ``$HOME/.thumbnails/``. Check
Ethumb's documentation to change this path, and to see other
configuration options.
Emitted signals
===============
- ``clicked`` - This is called when a user has clicked the
thumbnail object without dragging it around.
- ``clicked,double`` - This is called when a user has double-clicked
the thumbnail object.
- ``press`` - This is called when a user has pressed down over the
thumbnail object.
- ``generate,start`` - The thumbnail generation has started.
- ``generate,stop`` - The generation process has stopped.
- ``generate,error`` - The thumbnail generation failed.
- ``load,error`` - The thumbnail image loading failed.
Available styles
================
- ``default``
- ``noframe``
Enumerations
============
.. _Elm_Thumb_Animation_Setting:
Thumb animation mode
--------------------
.. data:: ELM_THUMB_ANIMATION_START
Play animation once
.. data:: ELM_THUMB_ANIMATION_LOOP
Keep playing animation until stop is requested
.. data:: ELM_THUMB_ANIMATION_STOP
Stop playing the animation
.. _Ethumb_Thumb_FDO_Size:
Thumb FDO size
--------------
.. data:: ETHUMB_THUMB_NORMAL
128x128 as defined by FreeDesktop.Org standard
.. data:: ETHUMB_THUMB_LARGE
256x256 as defined by FreeDesktop.Org standard
.. _Ethumb_Thumb_Format:
Thumb format
------------
.. data:: ETHUMB_THUMB_FDO
PNG as defined by FreeDesktop.Org standard
.. data:: ETHUMB_THUMB_JPEG
JPEGs are often smaller and faster to read/write
.. data:: ETHUMB_THUMB_EET
EFL's own storage system, supports key parameter
.. _Ethumb_Thumb_Aspect:
Thumb aspect
------------
.. data:: ETHUMB_THUMB_KEEP_ASPECT
keep original proportion between width and height
.. data:: ETHUMB_THUMB_IGNORE_ASPECT
ignore aspect and foce it to match thumbnail's width and height
.. data:: ETHUMB_THUMB_CROP
keep aspect but crop (cut) the largest dimension
.. _Ethumb_Thumb_Orientation:
Thumb orientation
-----------------
.. data:: ETHUMB_THUMB_ORIENT_NONE
keep orientation as pixel data is
.. data:: ETHUMB_THUMB_ROTATE_90_CW
rotate 90° clockwise
.. data:: ETHUMB_THUMB_ROTATE_180
rotate 180°
.. data:: ETHUMB_THUMB_ROTATE_90_CCW
rotate 90° counter-clockwise
.. data:: ETHUMB_THUMB_FLIP_HORIZONTAL
flip horizontally
.. data:: ETHUMB_THUMB_FLIP_VERTICAL
flip vertically
.. data:: ETHUMB_THUMB_FLIP_TRANSPOSE
transpose
.. data:: ETHUMB_THUMB_FLIP_TRANSVERSE
transverse
.. data:: ETHUMB_THUMB_ORIENT_ORIGINAL
use orientation from metadata (EXIF-only currently)
Inheritance diagram
===================
.. inheritance-diagram:: Thumb
:parts: 2
.. autoclass:: Thumb

View File

@ -1,2 +1,130 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.toolbar
Toolbar
#######
.. image:: /images/toolbar-preview.png
Widget description
==================
A toolbar is a widget that displays a list of items inside a box. It
can be scrollable, show a menu with items that don't fit to toolbar size
or even crop them.
Only one item can be selected at a time.
Items can have multiple states, or show menus when selected by the user.
Emitted signals
===============
- ``clicked`` - when the user clicks on a toolbar item and becomes selected.
- ``longpressed`` - when the toolbar is pressed for a certain amount of time.
- ``language,changed`` - when the program language changes.
- ``focused`` - When the toolbar has received focus. (since 1.8)
- ``unfocused`` - When the toolbar has lost focus. (since 1.8)
- ``item,focused`` - When the toolbar item has received focus. (since 1.10)
- ``item,unfocused`` - When the toolbar item has lost focus. (since 1.10)
Available styles
================
- ``default``
- ``transparent`` - no background or shadow, just show the content
Layout text parts
=================
- ``default`` - label of the toolbar item
Scrollable Interface
====================
This widget supports the scrollable interface.
If you wish to control the scrolling behaviour using these functions,
inherit both the widget class and the
:py:class:`~efl.elementary.scroller.Scrollable` class
using multiple inheritance, for example::
class ScrollableGenlist(Genlist, Scrollable):
def __init__(self, canvas, *args, **kwargs):
Genlist.__init__(self, canvas)
Enumerations
============
.. _Elm_Toolbar_Shrink_Mode:
Toolbar shrink modes
--------------------
.. data:: ELM_TOOLBAR_SHRINK_NONE
Set toolbar minimum size to fit all the items
.. data:: ELM_TOOLBAR_SHRINK_HIDE
Hide exceeding items
.. data:: ELM_TOOLBAR_SHRINK_SCROLL
Allow accessing exceeding items through a scroller
.. data:: ELM_TOOLBAR_SHRINK_MENU
Inserts a button to pop up a menu with exceeding items
.. data:: ELM_TOOLBAR_SHRINK_EXPAND
Expand all items according the size of the toolbar.
.. _Elm_Toolbar_Item_Scrollto_Type:
Toolbar item scrollto types
---------------------------
Where to position the item in the toolbar.
.. data:: ELM_TOOLBAR_ITEM_SCROLLTO_NONE
No scrollto
.. data:: ELM_TOOLBAR_ITEM_SCROLLTO_IN
To the nearest viewport
.. data:: ELM_TOOLBAR_ITEM_SCROLLTO_FIRST
To the first of viewport
.. data:: ELM_TOOLBAR_ITEM_SCROLLTO_MIDDLE
To the middle of viewport
.. data:: ELM_TOOLBAR_ITEM_SCROLLTO_LAST
To the last of viewport
Inheritance diagram
===================
.. inheritance-diagram::
Toolbar
ToolbarItem
ToolbarItemState
:parts: 2
.. autoclass:: Toolbar
.. autoclass:: ToolbarItem
.. autoclass:: ToolbarItemState

View File

@ -1,2 +1,166 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.transit
Transit
#######
Widget description
==================
Transit is designed to apply various animated transition effects to
``Evas_Object``, such like translation, rotation, etc. For using these
effects, create a :py:class:`Transit` and add the desired transition effects.
Once the effects are added into transit, they will be automatically managed
(their callback will be called for the set duration and they will be deleted
upon completion).
Example::
from efl.elementary.transit import Transit, ELM_TRANSIT_TWEEN_MODE_DECELERATE
t = Transit()
t.object_add(obj)
t.effect_translation_add(0, 0, 280, 280)
t.duration = 1
t.auto_reverse = True
t.tween_mode = ELM_TRANSIT_TWEEN_MODE_DECELERATE
t.repeat_times = 3
Some transition effects are used to change the properties of objects. They
are:
- :py:func:`~Transit.effect_translation_add`
- :py:func:`~Transit.effect_color_add`
- :py:func:`~Transit.effect_rotation_add`
- :py:func:`~Transit.effect_wipe_add`
- :py:func:`~Transit.effect_zoom_add`
- :py:func:`~Transit.effect_resizing_add`
Other transition effects are used to make one object disappear and another
object appear on its place. These effects are:
- :py:func:`~Transit.effect_flip_add`
- :py:func:`~Transit.effect_resizable_flip_add`
- :py:func:`~Transit.effect_fade_add`
- :py:func:`~Transit.effect_blend_add`
It's also possible to make a transition chain with
:py:func:`~Transit.chain_transit_add`.
.. warning:: We strongly recommend to use elm_transit just when edje can
not do the trick. Edje is better at handling transitions than
Elm_Transit. Edje has more flexibility and animations can be
manipulated inside the theme.
Enumerations
============
.. _Elm_Transit_Effect_Flip_Axis:
Flip effects
------------
.. data:: ELM_TRANSIT_EFFECT_FLIP_AXIS_X
Flip on X axis
.. data:: ELM_TRANSIT_EFFECT_FLIP_AXIS_Y
Flip on Y axis
.. _Elm_Transit_Effect_Wipe_Dir:
Wipe effects
------------
.. data:: ELM_TRANSIT_EFFECT_WIPE_DIR_LEFT
Wipe to the left
.. data:: ELM_TRANSIT_EFFECT_WIPE_DIR_RIGHT
Wipe to the right
.. data:: ELM_TRANSIT_EFFECT_WIPE_DIR_UP
Wipe up
.. data:: ELM_TRANSIT_EFFECT_WIPE_DIR_DOWN
Wipe down
.. _Elm_Transit_Effect_Wipe_Type:
Wipe types
----------
.. data:: ELM_TRANSIT_EFFECT_WIPE_TYPE_HIDE
Hide the object during the animation.
.. data:: ELM_TRANSIT_EFFECT_WIPE_TYPE_SHOW
Show the object during the animation.
.. _Elm_Transit_Tween_Mode:
Tween modes
-----------
.. data:: ELM_TRANSIT_TWEEN_MODE_LINEAR
Constant speed
.. data:: ELM_TRANSIT_TWEEN_MODE_SINUSOIDAL
Starts slow, increase speed over time, then decrease again and stop slowly
.. data:: ELM_TRANSIT_TWEEN_MODE_DECELERATE
Starts fast and decrease speed over time
.. data:: ELM_TRANSIT_TWEEN_MODE_ACCELERATE
Starts slow and increase speed over time
.. data:: ELM_TRANSIT_TWEEN_MODE_DIVISOR_INTERP
Start at gradient v1, interpolated via power of v2 curve
.. versionadded:: 1.13
.. data:: ELM_TRANSIT_TWEEN_MODE_BOUNCE
Start at 0.0 then "drop" like a ball bouncing to the ground at 1.0, and
bounce v2 times, with decay factor of v1
.. versionadded:: 1.13
.. data:: ELM_TRANSIT_TWEEN_MODE_SPRING
Start at 0.0 then "wobble" like a spring rest position 1.0, and wobble
v2 times, with decay factor of v1
.. versionadded:: 1.13
.. data:: ELM_TRANSIT_TWEEN_MODE_BEZIER_CURVE
Follow the cubic-bezier curve calculated with the control points (x1,
y1), (x2, y2)
.. versionadded:: 1.13
Inheritance diagram
===================
.. inheritance-diagram:: Transit
:parts: 2
.. autoclass:: Transit

View File

@ -1,2 +1,33 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.video
Video
#####
Widget description
==================
Display a video by using Emotion.
It embeds the video inside an Edje object, so you can do some
animation depending on the video state change. It also implements a
resource management policy to remove this burden from the application.
These widgets emit the following signals, besides the ones sent from
:py:class:`~efl.elementary.layout_class.LayoutClass`:
- ``focused`` - When the widget has received focus. (since 1.8)
- ``unfocused`` - When the widget has lost focus. (since 1.8)
Inheritance diagram
===================
.. inheritance-diagram::
Video
Player
:parts: 2
.. autoclass:: Video
.. autoclass:: Player

View File

@ -1,2 +1,141 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.web
Web
###
Widget description
==================
A web widget is used for displaying web pages (HTML/CSS/JS)
using WebKit-EFL. You must have compiled Elementary with
ewebkit support.
Emitted signals
===============
- ``download,request``: A file download has been requested. Event info is
a WebDownload instance
- ``editorclient,contents,changed``: Editor client's contents changed
- ``editorclient,selection,changed``: Editor client's selection changed
- ``frame,created``: A new frame was created. Event info is an
Evas_Object which can be handled with WebKit's ewk_frame API
- ``icon,received``: An icon was received by the main frame
- ``inputmethod,changed``: Input method changed. Event info is an
Eina_Bool indicating whether it's enabled or not
- ``js,windowobject,clear``: JS window object has been cleared
- ``link,hover,in``: Mouse cursor is hovering over a link. Event info
is a tuple, where the first string contains the URL the link
points to, and the second one the title of the link
- ``link,hover,out``: Mouse cursor left the link
- ``load,document,finished``: Loading of a document finished. Event info
is the frame that finished loading
- ``load,error``: Load failed. Event info is a WebFrameLoadError instance
- ``load,finished``: Load finished. Event info is None on success, on
error it's a WebFrameLoadError instance
- ``load,newwindow,show``: A new window was created and is ready to be
shown
- ``load,progress``: Overall load progress. Event info is
a double containing a value between 0.0 and 1.0
- ``load,provisional``: Started provisional load
- ``load,started``: Loading of a document started
- ``menubar,visible,get``: Queries if the menubar is visible. Event info
is a bool where the callback should set True if
the menubar is visible, or False in case it's not
- ``menubar,visible,set``: Informs menubar visibility. Event info is
a bool indicating the visibility
- ``popup,created``: A dropdown widget was activated, requesting its
popup menu to be created. Event info is a WebMenu instance
- ``popup,willdelete``: The web object is ready to destroy the popup
object created. Event info is a WebMenu instance
- ``ready``: Page is fully loaded
- ``scrollbars,visible,get``: Queries visibility of scrollbars. Event
info is a bool where the visibility state should be set
- ``scrollbars,visible,set``: Informs scrollbars visibility. Event info
is an Eina_Bool with the visibility state set
- ``statusbar,text,set``: Text of the statusbar changed. Event info is
a string with the new text
- ``statusbar,visible,get``: Queries visibility of the status bar.
Event info is a bool where the visibility state should be
set.
- ``statusbar,visible,set``: Informs statusbar visibility. Event info is
an Eina_Bool with the visibility value
- ``title,changed``: Title of the main frame changed. Event info is a
string with the new title
- ``toolbars,visible,get``: Queries visibility of toolbars. Event info
is a bool where the visibility state should be set
- ``toolbars,visible,set``: Informs the visibility of toolbars. Event
info is an Eina_Bool with the visibility state
- ``tooltip,text,set``: Show and set text of a tooltip. Event info is
a string with the text to show
- ``uri,changed``: URI of the main frame changed. Event info is a string (deprecated. use ``url,changed`` instead)
- ``url,changed``: URL of the main frame changed. Event info is a string
with the new URI
- ``view,resized``: The web object internal's view changed sized
- ``windows,close,request``: A JavaScript request to close the current
window was requested
- ``zoom,animated,end``: Animated zoom finished
- ``focused`` : When the web has received focus. (since 1.8)
- ``unfocused`` : When the web has lost focus. (since 1.8)
Enumerations
============
.. _Elm_Web_Window_Feature:
Web window features
-------------------
.. data:: ELM_WEB_WINDOW_FEATURE_TOOLBAR
Toolbar
.. data:: ELM_WEB_WINDOW_FEATURE_STATUSBAR
Status bar
.. data:: ELM_WEB_WINDOW_FEATURE_SCROLLBARS
Scrollbars
.. data:: ELM_WEB_WINDOW_FEATURE_MENUBAR
Menu bar
.. data:: ELM_WEB_WINDOW_FEATURE_LOCATIONBAR
Location bar
.. data:: ELM_WEB_WINDOW_FEATURE_FULLSCREEN
Fullscreen
.. _Elm_Web_Zoom_Mode:
Web zoom modes
--------------
.. data:: ELM_WEB_ZOOM_MODE_MANUAL
Zoom controlled normally by :py:attr:`~Web.zoom`
.. data:: ELM_WEB_ZOOM_MODE_AUTO_FIT
Zoom until content fits in web object.
.. data:: ELM_WEB_ZOOM_MODE_AUTO_FILL
Zoom until content fills web object.
Inheritance diagram
===================
.. inheritance-diagram:: Web
:parts: 2
.. autoclass:: Web

View File

@ -1,2 +1,361 @@
.. currentmodule:: efl.elementary
.. automodule:: efl.elementary.window
Window
######
Widget description
==================
The window class of Elementary.
Contains functions to manipulate windows. The Evas engine used to render
the window contents is specified in the system or user elementary config
files (whichever is found last), and can be overridden with the
ELM_ENGINE environment variable for testing. Engines that may be
supported (depending on Evas and Ecore-Evas compilation setup and
modules actually installed at runtime) are (listed in order of best
supported and most likely to be complete and work to lowest quality).
Note that ELM_ENGINE is really only needed for special cases and debugging.
you should normally use ELM_DISPLAY and ELM_ACCEL environment variables, or
core elementary config. ELM_DISPLAY can be set to "x11" or "wl" to indicate
the target display system (as on Linux systems you may have both display
systems available, so this selects which to use). ELM_ACCEL may also be set
to indicate if you want accelerations and which kind to use. see
:py:attr:`~efl.elementary.configuration.Configuration.accel_preference` for
details on this environment variable values.
``x11``, ``x``, ``software-x11``, ``software_x11``
Software rendering in X11
``gl``, ``opengl``, ``opengl-x11``, ``opengl_x11``
OpenGL or OpenGL-ES2 rendering in X11
``shot:...``
Virtual screenshot renderer - renders to output file and exits
``fb``, ``software-fb``, ``software_fb``
Linux framebuffer direct software rendering
``sdl``, ``software-sdl``, ``software_sdl``
SDL software rendering to SDL buffer
``gl-sdl``, ``gl_sdl``, ``opengl-sdl``, ``opengl_sdl``
OpenGL or OpenGL-ES2 using SDL
``gdi``, ``software-gdi``, ``software_gdi``
Windows WIN32 rendering via GDI with software
``ews``
rendering to EWS (Ecore + Evas Single Process Windowing System)
``gl-cocoa``, ``gl_cocoa``, ``opengl-cocoa``, ``opengl_cocoa``
OpenGL rendering in Cocoa
``wayland_shm``
Wayland client SHM rendering
``wayland_egl``
Wayland client OpenGL/EGL rendering
``drm``
Linux drm/kms etc. direct display
All engines use a simple string to select the engine to render, EXCEPT
the "shot" engine. This actually encodes the output of the virtual
screenshot and how long to delay in the engine string. The engine string
is encoded in the following way::
"shot:[delay=XX][:][repeat=DDD][:][file=XX]"
Where options are separated by a ``:`` char if more than one option is
given, with delay, if provided being the first option and file the last
(order is important). The delay specifies how long to wait after the
window is shown before doing the virtual "in memory" rendering and then
save the output to the file specified by the file option (and then exit).
If no delay is given, the default is 0.5 seconds. If no file is given the
default output file is "out.png". Repeat option is for continuous
capturing screenshots. Repeat range is from 1 to 999 and filename is
fixed to "out001.png" Some examples of using the shot engine::
ELM_ENGINE="shot:delay=1.0:repeat=5:file=elm_test.png" elementary_test
ELM_ENGINE="shot:delay=1.0:file=elm_test.png" elementary_test
ELM_ENGINE="shot:file=elm_test2.png" elementary_test
ELM_ENGINE="shot:delay=2.0" elementary_test
ELM_ENGINE="shot:" elementary_test
Emitted signals
===============
- ``delete,request``: the user requested to close the window. See
:py:attr:`~Window.autodel`.
- ``focus,in``: window got focus
- ``focus,out``: window lost focus
- ``moved``: window that holds the canvas was moved
- ``withdrawn``: window is still managed normally but removed from view
- ``iconified``: window is minimized (perhaps into an icon or taskbar)
- ``normal``: window is in a normal state (not withdrawn or iconified)
- ``stick``: window has become sticky (shows on all desktops)
- ``unstick``: window has stopped being sticky
- ``fullscreen``: window has become fullscreen
- ``unfullscreen``: window has stopped being fullscreen
- ``maximized``: window has been maximized
- ``unmaximized``: window has stopped being maximized
- ``ioerr``: there has been a low-level I/O error with the display system
- ``indicator,prop,changed``: an indicator's property has been changed
- ``rotation,changed``: window rotation has been changed
- ``profile,changed``: profile of the window has been changed
- ``focused`` - When the window has received focus. (since 1.8)
- ``unfocused`` - When the window has lost focus. (since 1.8)
- ``theme,changed`` - The theme was changed. (since 1.13)
Enumerations
============
.. _Elm_Win_Type:
Window types
------------
.. data:: ELM_WIN_UNKNOWN
Unknown window type (since 1.9)
.. data:: ELM_WIN_BASIC
A normal window.
Indicates a normal, top-level window. Almost every window will be
created with this type.
.. data:: ELM_WIN_DIALOG_BASIC
Used for simple dialog windows
.. data:: ELM_WIN_DESKTOP
For special desktop windows, like a background window holding desktop icons.
.. data:: ELM_WIN_DOCK
The window is used as a dock or panel.
Usually would be kept on top of any other window by the Window Manager.
.. data:: ELM_WIN_TOOLBAR
The window is used to hold a floating toolbar, or similar.
.. data:: ELM_WIN_MENU
Similar to ELM_WIN_TOOLBAR.
.. data:: ELM_WIN_UTILITY
A persistent utility window, like a toolbox or palette.
.. data:: ELM_WIN_SPLASH
Splash window for a starting up application.
.. data:: ELM_WIN_DROPDOWN_MENU
The window is a dropdown menu, as when an entry in a menubar is clicked.
Typically used with :py:attr:`~Window.override`. This hint exists for
completion only, as the EFL way of implementing a menu would not
normally use a separate window for its contents.
.. data:: ELM_WIN_POPUP_MENU
Like ELM_WIN_DROPDOWN_MENU, but for the menu triggered by right-clicking
an object.
.. data:: ELM_WIN_TOOLTIP
The window is a tooltip.
A short piece of explanatory text that typically appear after the mouse
cursor hovers over an object for a while. Typically used with
:py:attr:`~Window.override` and also not very commonly used in the EFL.
.. data:: ELM_WIN_NOTIFICATION
A notification window, like a warning about battery life or a new E-Mail
received.
.. data:: ELM_WIN_COMBO
A window holding the contents of a combo box.
Not usually used in the EFL.
.. data:: ELM_WIN_DND
Used to indicate the window is a representation of an object being
dragged across different windows, or even applications.
Typically used with :py:attr:`~Window.override`.
.. data:: ELM_WIN_INLINED_IMAGE
The window is rendered onto an image buffer.
No actual window is created for this type, instead the window and all of
its contents will be rendered to an image buffer. This allows to have
children window inside a parent one just like any other object would be,
and do other things like applying Evas_Map effects to it. This is the
only type of window that requires the ``parent`` parameter
to be a valid :py:class:`efl.evas.Object`.
.. data:: ELM_WIN_SOCKET_IMAGE
The window is rendered onto an image buffer and can be shown other
process's plug image object.
No actual window is created for this type, instead the window and all of
its contents will be rendered to an image buffer and can be shown other
process's plug image object
.. _Elm_Win_Indicator_Mode:
Indicator states
----------------
.. data:: ELM_WIN_INDICATOR_UNKNOWN
Unknown indicator state.
.. data:: ELM_WIN_INDICATOR_HIDE
Hides the indicator.
.. data:: ELM_WIN_INDICATOR_SHOW
Shows the indicator.
.. _Elm_Win_Indicator_Opacity_Mode:
Indicator opacity
-----------------
.. data:: ELM_WIN_INDICATOR_OPACITY_UNKNOWN
Unknown indicator opacity mode.
.. data:: ELM_WIN_INDICATOR_OPAQUE
Opacifies the indicator.
.. data:: ELM_WIN_INDICATOR_TRANSLUCENT
Be translucent the indicator.
.. data:: ELM_WIN_INDICATOR_TRANSPARENT
Transparentizes the indicator.
.. _Elm_Win_Keyboard_Mode:
Keyboard virtual keyboard modes
-------------------------------
.. data:: ELM_WIN_KEYBOARD_UNKNOWN
Unknown keyboard state.
.. data:: ELM_WIN_KEYBOARD_OFF
Request to deactivate the keyboard.
.. data:: ELM_WIN_KEYBOARD_ON
Enable keyboard with default layout.
.. data:: ELM_WIN_KEYBOARD_ALPHA
Alpha (a-z) keyboard layout.
.. data:: ELM_WIN_KEYBOARD_NUMERIC
Numeric keyboard layout.
.. data:: ELM_WIN_KEYBOARD_PIN
PIN keyboard layout.
.. data:: ELM_WIN_KEYBOARD_PHONE_NUMBER
Phone keyboard layout.
.. data:: ELM_WIN_KEYBOARD_HEX
Hexadecimal numeric keyboard layout.
.. data:: ELM_WIN_KEYBOARD_TERMINAL
Full (QWERTY) keyboard layout.
.. data:: ELM_WIN_KEYBOARD_PASSWORD
Password keyboard layout.
.. data:: ELM_WIN_KEYBOARD_IP
IP keyboard layout.
.. data:: ELM_WIN_KEYBOARD_HOST
Host keyboard layout.
.. data:: ELM_WIN_KEYBOARD_FILE
File keyboard layout.
.. data:: ELM_WIN_KEYBOARD_URL
URL keyboard layout.
.. data:: ELM_WIN_KEYBOARD_KEYPAD
Keypad layout.
.. data:: ELM_WIN_KEYBOARD_J2ME
J2ME keyboard layout.
.. _Elm_Illume_Command:
Illume commands
---------------
Available commands that can be sent to the Illume manager.
When running under an Illume session, a window may send commands to the
Illume manager to perform different actions.
.. data:: ELM_ILLUME_COMMAND_FOCUS_BACK
Reverts focus to the previous window
.. data:: ELM_ILLUME_COMMAND_FOCUS_FORWARD
Sends focus to the next window in the list
.. data:: ELM_ILLUME_COMMAND_FOCUS_HOME
Hides all windows to show the Home screen
.. data:: ELM_ILLUME_COMMAND_CLOSE
Closes the currently active window
Inheritance diagram
===================
.. inheritance-diagram::
Window
StandardWindow
DialogWindow
:parts: 2
.. autoclass:: Window
.. autoclass:: StandardWindow
.. autoclass:: DialogWindow

View File

@ -16,10 +16,6 @@
# along with this Python-EFL. If not, see <http://www.gnu.org/licenses/>.
#
from efl.elementary.general import *
from efl.elementary.need import *
__all__ = (
#"access",
"actionslider",
@ -57,7 +53,6 @@ __all__ = (
"index",
"innerwindow",
"label",
"layout_class",
"layout",
"list",
"map",
@ -68,7 +63,6 @@ __all__ = (
"need",
"notify",
"object",
"object_item",
"panel",
"panes",
"photo",

View File

@ -16,268 +16,10 @@
# along with this Python-EFL. If not, see <http://www.gnu.org/licenses/>.
#
"""
:mod:`general` Module
#####################
.. _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.
.. _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.
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
.. _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_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
Inheritance diagram
===================
.. inheritance-diagram:: efl.elementary.general
:parts: 2
"""
from cpython cimport PyUnicode_AsUTF8String, PyMem_Malloc, Py_DECREF, Py_INCREF
from libc.string cimport memcpy
from libc.string cimport memcpy, strdup
from libc.stdlib cimport malloc, free
from libc.stdint cimport uintptr_t
from efl.evas cimport Object as evasObject
@ -291,11 +33,16 @@ from efl.eina cimport EINA_LOG_DOM_DBG, EINA_LOG_DOM_INFO, \
from efl.ecore cimport Event, EventHandler, _event_mapping_register
import sys
import traceback
import atexit
include "elementary_cdef.pxi"
elm_log = add_logger("efl.elementary")
cdef int PY_EFL_ELM_LOG_DOMAIN = elm_log.eina_log_domain
@ -469,7 +216,7 @@ def on_process_background(func, *args, **kwargs):
return EventHandler(ELM_EVENT_PROCESS_BACKGROUND, func, *args, **kwargs)
def on_process_background(func, *args, **kwargs):
def on_process_foreground(func, *args, **kwargs):
"""Use this to set a handler for the process foreground event.
Emitted when going from nothing being visible to at least one window being
@ -488,7 +235,7 @@ def on_sys_notify_notification_closed(func, *args, **kargs):
def on_sys_notify_action_invoked(func, *args, **kargs):
return EventHandler(
ELM_EVENT_SYS_NOTIFY_NOTIFICATION_CLOSED, func, *args, **kargs
ELM_EVENT_SYS_NOTIFY_ACTION_INVOKED, func, *args, **kargs
)
@ -832,3 +579,93 @@ def sys_notify_send(
<const void *>py_cb_data if cb is not None else NULL
)
from cpython cimport PyObject_GetBuffer, PyBuffer_Release, PyBUF_SIMPLE, \
PyObject_CheckBuffer
from efl.utils.deprecated cimport DEPRECATED
from efl.utils.conversions cimport *
from efl.eo cimport Eo, object_from_instance
from efl.evas cimport SmartObject, EventKeyDown, EventKeyUp, EventMouseWheel
from datetime import date, datetime
cdef object _cb_string_conv(void *addr):
return _ctouni(<const char *>addr) if addr is not NULL else None
cdef object _cb_object_item_conv(void *addr):
return _object_item_to_python(<Elm_Object_Item *>addr)
#include "access.pxi"
include "actionslider.pxi"
include "background.pxi"
include "box.pxi"
include "bubble.pxi"
include "button.pxi"
include "calendar.pxi"
include "check.pxi"
include "clock.pxi"
include "colorselector.pxi"
include "configuration.pxi"
include "conformant.pxi"
include "ctxpopup.pxi"
include "datetime.pxi"
include "dayselector.pxi"
include "diskselector.pxi"
include "entry.pxi"
include "fileselector.pxi"
include "fileselector_button.pxi"
include "fileselector_entry.pxi"
include "flip.pxi"
include "flipselector.pxi"
include "frame.pxi"
#include "general.pxi"
include "gengrid.pxi"
include "genlist.pxi"
include "gesture_layer.pxi"
#include "glview.pxi"
include "grid.pxi"
include "hover.pxi"
include "hoversel.pxi"
include "icon.pxi"
include "image.pxi"
include "index.pxi"
include "innerwindow.pxi"
include "label.pxi"
#include "layout_class.pxi"
include "layout.pxi"
include "list.pxi"
include "map.pxi"
include "mapbuf.pxi"
include "menu.pxi"
include "multibuttonentry.pxi"
include "naviframe.pxi"
include "need.pxi"
include "notify.pxi"
include "object.pxi"
include "object_item.pxi"
include "panel.pxi"
include "panes.pxi"
include "photo.pxi"
include "photocam.pxi"
include "plug.pxi"
include "popup.pxi"
include "progressbar.pxi"
include "radio.pxi"
include "scroller.pxi"
include "segment_control.pxi"
include "separator.pxi"
include "slider.pxi"
include "slideshow.pxi"
include "spinner.pxi"
#include "store.pxi"
include "systray.pxi"
include "table.pxi"
include "theme.pxi"
include "thumb.pxi"
include "toolbar.pxi"
include "transit.pxi"
include "video.pxi"
include "web.pxi"
include "window.pxi"

View File

@ -16,103 +16,7 @@
# along with this Python-EFL. If not, see <http://www.gnu.org/licenses/>.
#
"""
:mod:`actionslider` Module
##########################
.. 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:: efl.elementary.actionslider
:parts: 2
"""
from libc.stdint cimport uintptr_t
from cpython cimport PyObject
from efl.eo cimport _object_mapping_register
from efl.utils.conversions cimport _ctouni
from efl.evas cimport Object as evasObject
from layout_class cimport LayoutClass
cdef object _cb_string_conv(void *addr):
return _ctouni(<const char *>addr) if addr is not NULL else None
include "actionslider_cdef.pxi"
cdef class Actionslider(LayoutClass):
"""

View File

@ -0,0 +1,7 @@
from . import Actionslider
from . import ELM_ACTIONSLIDER_NONE
from . import ELM_ACTIONSLIDER_LEFT
from . import ELM_ACTIONSLIDER_CENTER
from . import ELM_ACTIONSLIDER_RIGHT
from . import ELM_ACTIONSLIDER_ALL

View File

@ -1,6 +1,3 @@
from efl.evas cimport Evas_Object
cdef extern from "Elementary.h":
cpdef enum Elm_Actionslider_Pos:

View File

@ -16,70 +16,8 @@
# along with this Python-EFL. If not, see <http://www.gnu.org/licenses/>.
#
"""
:mod:`background` Module
########################
.. 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:: efl.elementary.background
:parts: 2
"""
from cpython cimport PyUnicode_AsUTF8String
from efl.eo cimport _object_mapping_register, Eo
from efl.utils.conversions cimport _ctouni
from efl.evas cimport Object as evasObject
from layout_class cimport LayoutClass
include "background_cdef.pxi"
cdef class Background(LayoutClass):

View File

@ -0,0 +1,6 @@
from . import Background
from . import ELM_BG_OPTION_CENTER
from . import ELM_BG_OPTION_SCALE
from . import ELM_BG_OPTION_STRETCH
from . import ELM_BG_OPTION_TILE

View File

@ -1,6 +1,3 @@
from efl.evas cimport Eina_Bool, Evas_Object, Evas_Coord
cdef extern from "Elementary.h":
cpdef enum Elm_Bg_Option:

View File

@ -16,131 +16,7 @@
# along with this Python-EFL. If not, see <http://www.gnu.org/licenses/>.
#
"""
:mod:`box` Module
#################
.. 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:: efl.elementary.box
:parts: 2
"""
from efl.c_eo cimport Eo as cEo
from efl.eo cimport _object_mapping_register, object_from_instance
from efl.evas cimport Object as evasObject
from object cimport Object
from efl.utils.conversions cimport eina_list_objects_to_python_list
include "box_cdef.pxi"
ELM_BOX_LAYOUT_HORIZONTAL = 0

11
efl/elementary/box.py Normal file
View File

@ -0,0 +1,11 @@
from . import Box
from . import ELM_BOX_LAYOUT_HORIZONTAL
from . import ELM_BOX_LAYOUT_VERTICAL
from . import ELM_BOX_LAYOUT_HOMOGENEOUS_VERTICAL
from . import ELM_BOX_LAYOUT_HOMOGENEOUS_HORIZONTAL
from . import ELM_BOX_LAYOUT_HOMOGENEOUS_MAX_SIZE_HORIZONTAL
from . import ELM_BOX_LAYOUT_HOMOGENEOUS_MAX_SIZE_VERTICAL
from . import ELM_BOX_LAYOUT_FLOW_HORIZONTAL
from . import ELM_BOX_LAYOUT_FLOW_VERTICAL
from . import ELM_BOX_LAYOUT_STACK

View File

@ -1,5 +1,3 @@
from efl.evas cimport Eina_Bool, Eina_List, Evas_Object, Evas_Coord
cdef extern from "Ecore.h":
ctypedef void (*Ecore_Cb)(void *data)

View File

@ -16,99 +16,7 @@
# along with this Python-EFL. If not, see <http://www.gnu.org/licenses/>.
#
"""
:mod:`bubble` Module
####################
.. 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.
- ``focused`` - When the bubble has received focus. (since 1.8)
- ``unfocused`` - When the bubble has lost focus. (since 1.8)
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:: efl.elementary.bubble
:parts: 2
"""
from efl.eo cimport _object_mapping_register
from efl.evas cimport Object as evasObject
from layout_class cimport LayoutClass
include "bubble_cdef.pxi"
cdef class Bubble(LayoutClass):
"""

6
efl/elementary/bubble.py Normal file
View File

@ -0,0 +1,6 @@
from . import Bubble
from . import ELM_BUBBLE_POS_TOP_LEFT
from . import ELM_BUBBLE_POS_TOP_RIGHT
from . import ELM_BUBBLE_POS_BOTTOM_LEFT
from . import ELM_BUBBLE_POS_BOTTOM_RIGHT

View File

@ -1,6 +1,3 @@
from efl.evas cimport Evas_Object
cdef extern from "Elementary.h":
cpdef enum Elm_Bubble_Pos:

View File

@ -15,74 +15,7 @@
# You should have received a copy of the GNU Lesser General Public License
# along with this Python-EFL. If not, see <http://www.gnu.org/licenses/>.
"""
:mod:`button` Module
####################
.. 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.
- ``focused`` : When the button has received focus. (since 1.8)
- ``unfocused`` : When the button has lost focus. (since 1.8)
Inheritance diagram
===================
.. inheritance-diagram:: efl.elementary.button
:parts: 2
"""
from efl.eo cimport _object_mapping_register
from efl.evas cimport Object as evasObject
from layout_class cimport LayoutClass
include "button_cdef.pxi"
cdef class Button(LayoutClass):
"""

1
efl/elementary/button.py Normal file
View File

@ -0,0 +1 @@
from . import Button

View File

@ -1,6 +1,3 @@
from efl.evas cimport Eina_Bool, Evas_Object
from layout_class cimport LayoutClass
cdef extern from "Elementary.h":
Evas_Object *elm_button_add(Evas_Object *parent)
@ -10,7 +7,3 @@ cdef extern from "Elementary.h":
double elm_button_autorepeat_initial_timeout_get(const Evas_Object *obj)
void elm_button_autorepeat_gap_timeout_set(Evas_Object *obj, double t)
double elm_button_autorepeat_gap_timeout_get(const Evas_Object *obj)
cdef class Button(LayoutClass):
pass

View File

@ -16,178 +16,7 @@
# along with this Python-EFL. If not, see <http://www.gnu.org/licenses/>.
#
"""
:mod:`calendar_elm` Module
##########################
.. 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.
- ``focused`` - When the calendar has received focus. (since 1.8)
- ``unfocused`` - When the calendar has lost focus. (since 1.8)
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).
.. _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:: efl.elementary.calendar_elm
:parts: 2
"""
from cpython cimport PyUnicode_AsUTF8String
from efl.utils.conversions cimport array_of_strings_to_python_list, \
python_list_strings_to_array_of_strings
from efl.eo cimport _object_mapping_register
from efl.evas cimport Object as evasObject
from layout_class cimport LayoutClass
from datetime import date
include "calendar_cdef.pxi"
cdef class CalendarMark(object):
"""

View File

@ -1,11 +1,3 @@
from efl.evas cimport Eina_Bool, Eina_List, Evas_Object
cdef extern from "string.h":
void *memcpy(void *dst, void *src, int n)
char *strdup(char *str)
cdef extern from "time.h":
struct tm:
int tm_sec
@ -21,7 +13,6 @@ cdef extern from "time.h":
long int tm_gmtoff
const char *tm_zone
cdef extern from "Elementary.h":
cpdef enum Elm_Calendar_Mark_Repeat_Type:

View File

@ -0,0 +1,27 @@
from . import Calendar, CalendarMark
from . import ELM_CALENDAR_UNIQUE
from . import ELM_CALENDAR_DAILY
from . import ELM_CALENDAR_WEEKLY
from . import ELM_CALENDAR_MONTHLY
from . import ELM_CALENDAR_ANNUALLY
from . import ELM_CALENDAR_LAST_DAY_OF_MONTH
from . import ELM_CALENDAR_SELECT_MODE_DEFAULT
from . import ELM_CALENDAR_SELECT_MODE_ALWAYS
from . import ELM_CALENDAR_SELECT_MODE_NONE
from . import ELM_CALENDAR_SELECT_MODE_ONDEMAND
from . import ELM_CALENDAR_SELECTABLE_NONE
from . import ELM_CALENDAR_SELECTABLE_YEAR
from . import ELM_CALENDAR_SELECTABLE_MONTH
from . import ELM_CALENDAR_SELECTABLE_DAY
from . import ELM_DAY_SUNDAY
from . import ELM_DAY_MONDAY
from . import ELM_DAY_TUESDAY
from . import ELM_DAY_WEDNESDAY
from . import ELM_DAY_THURSDAY
from . import ELM_DAY_FRIDAY
from . import ELM_DAY_SATURDAY
from . import ELM_DAY_LAST

View File

@ -15,59 +15,7 @@
# You should have received a copy of the GNU Lesser General Public License
# along with this Python-EFL. If not, see <http://www.gnu.org/licenses/>.
"""
:mod:`check` Module
###################
.. 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.
- ``focused`` - When the check has received focus. (since 1.8)
- ``unfocused`` - When the check has lost focus. (since 1.8)
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:: efl.elementary.check
:parts: 2
"""
from efl.eo cimport _object_mapping_register
from efl.evas cimport Object as evasObject
from layout_class cimport LayoutClass
include "check_cdef.pxi"
cdef class Check(LayoutClass):
"""

1
efl/elementary/check.py Normal file
View File

@ -0,0 +1 @@
from . import Check

View File

@ -1,5 +1,3 @@
from efl.evas cimport Eina_Bool, Evas_Object
cdef extern from "Elementary.h":
Evas_Object *elm_check_add(Evas_Object *parent)
void elm_check_state_set(Evas_Object *obj, Eina_Bool state)

View File

@ -16,104 +16,7 @@
# along with this Python-EFL. If not, see <http://www.gnu.org/licenses/>.
#
"""
:mod:`clock` Module
###################
.. 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
- ``focused`` - When the clock has received focus. (since 1.8)
- ``unfocused`` - When the clock has lost focus. (since 1.8)
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:: efl.elementary.clock
:parts: 2
"""
from efl.eo cimport _object_mapping_register
from efl.evas cimport Object as evasObject
from layout_class cimport LayoutClass
include "clock_cdef.pxi"
cdef class Clock(LayoutClass):
"""

10
efl/elementary/clock.py Normal file
View File

@ -0,0 +1,10 @@
from . import Clock
from . import ELM_CLOCK_EDIT_DEFAULT
from . import ELM_CLOCK_EDIT_HOUR_DECIMAL
from . import ELM_CLOCK_EDIT_HOUR_UNIT
from . import ELM_CLOCK_EDIT_MIN_DECIMAL
from . import ELM_CLOCK_EDIT_MIN_UNIT
from . import ELM_CLOCK_EDIT_SEC_DECIMAL
from . import ELM_CLOCK_EDIT_SEC_UNIT
from . import ELM_CLOCK_EDIT_ALL

View File

@ -1,6 +1,3 @@
from efl.evas cimport Evas_Object, Eina_Bool
cdef extern from "Elementary.h":
cpdef enum Elm_Clock_Edit_Mode:

View File

@ -1,5 +1,3 @@
from object_item cimport Elm_Object_Item
from efl.elementary.object cimport Elm_Sel_Type, Elm_Sel_Format, Elm_Xdnd_Action
from efl.utils.conversions cimport python_list_objects_to_eina_list
cdef extern from "Elementary.h":

View File

@ -16,83 +16,7 @@
# along with this Python-EFL. If not, see <http://www.gnu.org/licenses/>.
#
"""
:mod:`colorselector` Module
###########################
.. 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
- ``"changed,user"`` - When the color value changes after a user interaction,
not fired when the value is changed by an api call (since 1.14)
- ``"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.
- ``focused`` - When the colorselector has received focus. (since 1.8)
- ``unfocused`` - When the colorselector has lost focus. (since 1.8)
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:: efl.elementary.colorselector
:parts: 2
"""
from cpython cimport PyUnicode_AsUTF8String
from libc.stdint cimport uintptr_t
from efl.eo cimport _object_mapping_register
from efl.utils.conversions cimport _ctouni
from efl.evas cimport Object as evasObject
from object_item cimport ObjectItem, _object_item_to_python
from layout_class cimport LayoutClass
cdef object _cb_object_item_conv(void *addr):
return _object_item_to_python(<Elm_Object_Item *>addr)
include "colorselector_cdef.pxi"
cdef class ColorselectorPaletteItem(ObjectItem):

View File

@ -0,0 +1,5 @@
from . import Colorselector, ColorselectorPaletteItem
from . import ELM_COLORSELECTOR_PALETTE
from . import ELM_COLORSELECTOR_COMPONENTS
from . import ELM_COLORSELECTOR_BOTH

View File

@ -1,7 +1,3 @@
from efl.evas cimport Evas_Object, Eina_List, Eina_Bool
from object_item cimport Elm_Object_Item
cdef extern from "Elementary.h":
cpdef enum Elm_Colorselector_Mode:

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