Table Of Contents

Previous topic

dayselector Module

Next topic

entry Module

diskselector Module

../_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.

Smart callbacks one can listen to:

  • 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)

Available styles for it:

  • "default"

Default content parts of the diskselector items that you can use for are:

  • “icon” - An icon in the diskselector item

Default text parts of the diskselector items that you can use for are:

  • “default” - Label of the diskselector item

Note

The “scroll,anim,*” and “scroll,drag,*” signals are only emitted by user intervention.

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 Scrollable class using multiple inheritance, for example:

class ScrollableGenlist(Genlist, Scrollable):
    def __init__(self, canvas, *args, **kwargs):
        Genlist.__init__(self, canvas)
class efl.elementary.diskselector.Diskselector

Bases: efl.elementary.object.Object

This is the class that actually implements the widget.

bounce

Deprecated since version 1.8: You should combine with Scrollable class instead.

callback_clicked_add()

This is called when a user clicks an item

:since 1.8

callback_focused_add()

When the diskselector has received focus.

New in version 1.8.

callback_scroll_anim_start_add()

Scrolling animation has started.

callback_scroll_anim_stop_add()

Scrolling animation has stopped.

callback_scroll_drag_start_add()

Dragging the diskselector has started.

callback_scroll_drag_stop_add()

Dragging the diskselector has stopped.

callback_selected_add()

When item is selected, i.e. scroller stops.

callback_unfocused_add()

When the diskselector has lost focus.

New in version 1.8.

clear()

Remove all diskselector’s items.

display_item_num

The number of items to be displayed.

Default value is 3, and also it’s the minimum. If num is less than 3, it will be set to 3.

Also, it can be set on theme, using data item display_item_num on group “elm/diskselector/item/X”, where X is style set. E.g.:

group { name: "elm/diskselector/item/X";
    data {
        item: "display_item_num" "5";
    }
Type :int
first_item

Get the first item of the diskselector.

The list of items follows append order. So it will return the first item appended to the widget that wasn’t deleted.

See also

item_append() items

Type :DiskselectorItem
item_append(self, unicode label, evas.Object icon = None, callback = None, *args, **kwargs) → DiskselectorItem

A constructor for DiskselectorItem

See ::py:func`DiskselectorItem.append_to`
items

Get a list of all the diskselector items.

Type :list of DiskselectorItem
last_item

Get the last item of the diskselector.

The list of items follows append order. So it will return last first item appended to the widget that wasn’t deleted.

See also

item_append() items

Type :DiskselectorItem
round_enabled

Enable or disable round mode.

Disabled by default. If round mode is enabled the items list will work like a circular list, so when the user reaches the last item, the first one will popup.

Type :bool
scroller_policy

Deprecated since version 1.8: You should combine with Scrollable class instead.

selected_item

Get the selected item.

The selected item can be unselected with function DiskselectorItem.selected, and the first item of diskselector will be selected.

The selected item always will be centered on diskselector, with full label displayed, i.e., max length set to side labels won’t apply on the selected item. More details on side_text_max_length.

Type :DiskselectorItem
side_text_max_length

The side labels max length.

Length is the number of characters of items’ label that will be visible when it’s set on side positions. It will just crop the string after defined size. E.g.:

An item with label “January” would be displayed on side position as “Jan” if max length is set to 3, or “Janu”, if this property is set to 4.

When it’s selected, the entire label will be displayed, except for width restrictions. In this case label will be cropped and ”...” will be concatenated.

Default side label max length is 3.

This property will be applied over all items, included before or later this function call.

Type :int
class efl.elementary.diskselector.DiskselectorItem

Bases: efl.elementary.object_item.ObjectItem

An item for the Diskselector widget.

A new item will be created and appended to the diskselector, i.e., will be set as last item. Also, if there is no selected item, it will be selected. This will always happens for the first appended item.

If no icon is set, label will be centered on item position, otherwise the icon will be placed at left of the label, that will be shifted to the right.

Items created with this method can be deleted with delete().

If a function is passed as argument, it will be called every time this item is selected, i.e., the user stops the diskselector with this item on center position.

Simple example (with no function callback or data associated):

disk = Diskselector(win)
ic = Icon(win, file="path/to/image", resizable=(True, True))
disk.item_append("label", ic)
Parameters:
  • label (string) – The label of the diskselector item.
  • icon (Object) – The icon object to use at left side of the item. An icon can be any Evas object, but usually it is an Icon.
  • func (function) – The function to call when the item is selected.
append_to(self, Diskselector diskselector) → DiskselectorItem

Appends a new item to the diskselector object.

Returns:The created item or None upon failure.
Return type:DiskselectorItem
next

Get the item after item in diskselector.

The list of items follows append order. So it will return item appended just after item and that wasn’t deleted.

If it is the last item, None will be returned. Last item can be get by Diskselector.last_item.

Type :DiskselectorItem
prev

Get the item before item in diskselector.

The list of items follows append order. So it will return item appended just before item and that wasn’t deleted.

If it is the first item, None will be returned. First item can be get by Diskselector.first_item.

Type :DiskselectorItem
selected

The selected state of an item.

This sets the selected state of the given item. True for selected, False for not selected.

If a new item is selected the previously selected will be unselected. Previously selected item can be fetched from the property Diskselector.selected_item.

If the item is unselected, the first item of diskselector will be selected.

Selected items will be visible on center position of diskselector. So if it was on another position before selected, or was invisible, diskselector will animate items until the selected item reaches center position.

Type :bool