Elementary.fileselector: Add missing bits, fix doc issues.

This commit is contained in:
Kai Huuhko 2013-11-29 02:20:12 +02:00
parent b4e363cb41
commit 1e08683763
2 changed files with 126 additions and 36 deletions

View File

@ -1,22 +1,28 @@
from efl.evas cimport Eina_Bool, Evas_Object
from efl.eina cimport Eina_Bool, const_Eina_List
from efl.evas cimport Evas_Object, const_Evas_Object
from enums cimport Elm_Fileselector_Mode
from libc.string cimport const_char
cdef extern from "Elementary.h":
Evas_Object * elm_fileselector_add(Evas_Object *parent)
void elm_fileselector_is_save_set(Evas_Object *obj, Eina_Bool is_save)
Eina_Bool elm_fileselector_is_save_get(Evas_Object *obj)
Eina_Bool elm_fileselector_is_save_get(const_Evas_Object *obj)
void elm_fileselector_folder_only_set(Evas_Object *obj, Eina_Bool value)
Eina_Bool elm_fileselector_folder_only_get(Evas_Object *obj)
Eina_Bool elm_fileselector_folder_only_get(const_Evas_Object *obj)
void elm_fileselector_buttons_ok_cancel_set(Evas_Object *obj, Eina_Bool value)
Eina_Bool elm_fileselector_buttons_ok_cancel_get(Evas_Object *obj)
Eina_Bool elm_fileselector_buttons_ok_cancel_get(const_Evas_Object *obj)
void elm_fileselector_expandable_set(Evas_Object *obj, Eina_Bool value)
Eina_Bool elm_fileselector_expandable_get(Evas_Object *obj)
Eina_Bool elm_fileselector_expandable_get(const_Evas_Object *obj)
void elm_fileselector_path_set(Evas_Object *obj, const_char *path)
const_char * elm_fileselector_path_get(Evas_Object *obj)
Eina_Bool elm_fileselector_selected_set(Evas_Object *obj, const_char *path)
const_char * elm_fileselector_selected_get(Evas_Object *obj)
const_char * elm_fileselector_path_get(const_Evas_Object *obj)
void elm_fileselector_mode_set(Evas_Object *obj, Elm_Fileselector_Mode mode)
Elm_Fileselector_Mode elm_fileselector_mode_get(Evas_Object *obj)
Elm_Fileselector_Mode elm_fileselector_mode_get(const_Evas_Object *obj)
void elm_fileselector_multi_select_set(Evas_Object *obj, Eina_Bool multi)
Eina_Bool elm_fileselector_multi_select_get(const_Evas_Object *obj)
Eina_Bool elm_fileselector_selected_set(Evas_Object *obj, const_char *path)
const_char * elm_fileselector_selected_get(const_Evas_Object *obj)
const_Eina_List * elm_fileselector_selected_paths_get(const_Evas_Object *obj)
Eina_Bool elm_fileselector_mime_types_filter_append(Evas_Object *obj, const_char *mime_types, const_char *filter_name)
void elm_fileselector_filters_clear(Evas_Object *obj)
void elm_fileselector_hidden_visible_set(Evas_Object *obj, Eina_Bool visible)
Eina_Bool elm_fileselector_hidden_visible_get(const_Evas_Object *obj)

View File

@ -49,8 +49,11 @@ the second form of view will display preview thumbnails of files which
it supports.
This widget emits the following signals, besides the ones sent from
:py:class:`elementary.layout.Layout`:
:py:class:`~efl.elementary.layout_class.LayoutClass`:
- ``activated`` - the user activated a file. This can happen by
double-clicking or pressing Enter key. (**event_info** is a
pointer to 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
@ -80,7 +83,7 @@ Fileselector modes
from cpython cimport PyUnicode_AsUTF8String
from efl.eo cimport _object_mapping_register
from efl.utils.conversions cimport _ctouni
from efl.utils.conversions cimport _ctouni, eina_list_strings_to_python_list
from efl.evas cimport Object as evasObject
from layout_class cimport LayoutClass
@ -216,9 +219,61 @@ cdef class Fileselector(LayoutClass):
def path_get(self):
return _ctouni(elm_fileselector_path_get(self.obj))
property mode:
"""The mode in which a given file selector widget will display
(layout) file system entries in its view
.. note:: By using :py:attr:`expandable`, the user may
trigger a tree view for that list.
.. note:: 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. You must have
elm_need_ethumb() called in your Elementary for thumbnailing to
work, though.
:seealso: :py:attr:`expandable`
:type: :ref:`Elm_Fileselector_Mode`
"""
def __get__(self):
return elm_fileselector_mode_get(self.obj)
def __set__(self, mode):
elm_fileselector_mode_set(self.obj, mode)
def mode_set(self, mode):
elm_fileselector_mode_set(self.obj, mode)
def mode_get(self):
return elm_fileselector_mode_get(self.obj)
property multi_select:
"""Multi-selection in the file selector widget.
This enables (**True**) or disables (**False**) multi-selection in
the list/grid of the file selector widget. This allows more than 1 item to
be selected. To retrieve the list of selected paths, use
:py:attr:`selected_paths`.
:type: bool
:since: 1.8
"""
def __set__(self, bint multi):
elm_fileselector_multi_select_set(self.obj, multi)
def __get__(self):
return bool(elm_fileselector_multi_select_get(self.obj))
def multi_select_set(self, multi):
elm_fileselector_multi_select_set(self.obj, multi)
def multi_select_get(self):
return bool(elm_fileselector_multi_select_get(self.obj))
property selected:
"""The currently selected file/directory in the given file selector
widget
widget.
:type: string
:raise RuntimeError: when setting the selected file path fails
@ -241,34 +296,29 @@ cdef class Fileselector(LayoutClass):
def selected_get(self):
return _ctouni(elm_fileselector_selected_get(self.obj))
property mode:
"""The mode in which a given file selector widget will display
(layout) file system entries in its view
property selected_paths:
"""A list of selected paths in the file selector.
.. note:: By using :py:attr:`expandable`, the user may
trigger a tree view for that list.
It returns a list of the selected paths. This list pointer is only valid
so long as the selection doesn't change (no items are selected or
unselected, or unselected implicitly by deletion). The list contains
strings. The order of the items in this list is the order which
they were selected, i.e. the first item in this list is the first item
that was selected, and so on.
.. note:: 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. You must have
elm_need_ethumb() called in your Elementary for thumbnailing to
work, though.
.. note:: If not in multi-select mode, consider using
:py:attr:`selected` instead.
.. seealso:: :py:attr:`expandable`
.. seealso::
:py:attr:`multi_select`
:py:attr:`selected`
:type: :ref:`Elm_Fileselector_Mode`
:since: 1.8
"""
def __get__(self):
return elm_fileselector_mode_get(self.obj)
def __set__(self, mode):
elm_fileselector_mode_set(self.obj, mode)
def mode_set(self, mode):
elm_fileselector_mode_set(self.obj, mode)
def mode_get(self):
return elm_fileselector_mode_get(self.obj)
return eina_list_strings_to_python_list(
elm_fileselector_selected_paths_get(self.obj))
def mime_types_filter_append(self, list mime_types, filter_name=None):
"""mime_types_filter_append(list mime_types, str filter_name=None)
@ -285,8 +335,8 @@ cdef class Fileselector(LayoutClass):
.. note:: mime type filter is only working with efreet now.
.. note:: first added filter will be the default filter at the moment.
:see: :py:func:`~efl.elementary.need.need_efreet`
:see: :py:meth:`filters_clear`
:seealso: :py:func:`~efl.elementary.need.need_efreet`
:seealso: :py:meth:`filters_clear`
:since: 1.8
@ -308,13 +358,47 @@ cdef class Fileselector(LayoutClass):
If filter list is empty, file selector assume that all
files are matched.
:see: elm_fileselector_mime_type_filter_append()
:seealso: :py:meth:`mime_types_filter_append`
:since: 1.8
"""
elm_fileselector_filters_clear(self.obj)
property hidden_visible:
"""Visibility of hidden files/directories in the file selector widget.
This enables (**True**) or disables (**False**) visibility of hidden
files/directories in the list/grid of the file selector widget.
Default is disabled.
:type: bool
:since: 1.8
"""
def __set__(self, bint visible):
elm_fileselector_hidden_visible_set(self.obj, visible)
def __get__(self):
return bool(elm_fileselector_hidden_visible_get(self.obj))
def hidden_visible_set(self, bint visible):
elm_fileselector_hidden_visible_set(self.obj, visible)
def hidden_visible_get(self):
return bool(elm_fileselector_hidden_visible_get(self.obj))
def callback_activated_add(self, func, *args, **kwargs):
"""the user activated a file. This can happen by
double-clicking or pressing Enter key. (**event_info** is a
pointer to the activated file path)."""
self._callback_add_full("activated", _cb_string_conv, func,
*args, **kwargs)
def callback_activated_del(self, func):
self._callback_del_full("activated", _cb_string_conv, func)
def callback_selected_add(self, func, *args, **kwargs):
"""The user has clicked on a file (when not in folders-only mode) or
directory (when in folders-only mode). Parameter ``event_info``