2015-04-22 04:43:05 -07:00
|
|
|
class Elm.Slideshow (Elm.Layout, Elm_Interface_Atspi_Widget_Action)
|
2014-03-26 02:53:31 -07:00
|
|
|
{
|
|
|
|
eo_prefix: elm_obj_slideshow;
|
2015-05-07 09:32:53 -07:00
|
|
|
methods {
|
|
|
|
@property cache_after {
|
2014-03-26 02:53:31 -07:00
|
|
|
set {
|
|
|
|
/*@
|
|
|
|
Set the number of items to cache, on a given slideshow widget,
|
|
|
|
<b>after the current item</b>
|
|
|
|
|
2015-08-06 07:12:27 -07:00
|
|
|
The default value for this property is $2. See
|
2014-03-26 02:53:31 -07:00
|
|
|
@ref Slideshow_Caching "slideshow caching" for more details.
|
|
|
|
|
|
|
|
@see elm_slideshow_cache_after_get()
|
|
|
|
|
|
|
|
@ingroup Slideshow */
|
|
|
|
}
|
|
|
|
get {
|
|
|
|
/*@
|
2014-11-19 02:51:57 -08:00
|
|
|
Get the number of items to cache, on a given slideshow widget,
|
2014-03-26 02:53:31 -07:00
|
|
|
<b>after the current item</b>
|
|
|
|
|
|
|
|
@return The number of items set to be cached after the current one
|
|
|
|
|
|
|
|
@see elm_slideshow_cache_after_set() for more details
|
|
|
|
|
|
|
|
@ingroup Slideshow */
|
|
|
|
}
|
|
|
|
values {
|
2015-05-18 08:16:08 -07:00
|
|
|
count: int; /*@ Number of items to cache after the current one */
|
2014-03-26 02:53:31 -07:00
|
|
|
}
|
|
|
|
}
|
2015-05-07 09:32:53 -07:00
|
|
|
@property cache_before {
|
2014-03-26 02:53:31 -07:00
|
|
|
set {
|
|
|
|
/*@
|
|
|
|
Set the number of items to cache, on a given slideshow widget,
|
|
|
|
<b>before the current item</b>
|
|
|
|
|
2015-08-06 07:12:27 -07:00
|
|
|
The default value for this property is $2. See
|
2014-03-26 02:53:31 -07:00
|
|
|
@ref Slideshow_Caching "slideshow caching" for more details.
|
|
|
|
|
|
|
|
@see elm_slideshow_cache_before_get()
|
|
|
|
|
|
|
|
@ingroup Slideshow */
|
|
|
|
}
|
|
|
|
get {
|
|
|
|
/*@
|
2014-11-19 02:51:57 -08:00
|
|
|
Get the number of items to cache, on a given slideshow widget,
|
2014-03-26 02:53:31 -07:00
|
|
|
<b>before the current item</b>
|
|
|
|
|
|
|
|
@return The number of items set to be cached before the current one
|
|
|
|
|
|
|
|
@see elm_slideshow_cache_before_set() for more details
|
|
|
|
|
|
|
|
@ingroup Slideshow */
|
|
|
|
}
|
|
|
|
values {
|
2015-05-18 08:16:08 -07:00
|
|
|
count: int; /*@ Number of items to cache before the current one */
|
2014-03-26 02:53:31 -07:00
|
|
|
}
|
|
|
|
}
|
2015-05-07 09:32:53 -07:00
|
|
|
@property layout {
|
2014-03-26 02:53:31 -07:00
|
|
|
set {
|
|
|
|
/*@
|
|
|
|
Set the current slide layout in use for a given slideshow widget
|
|
|
|
|
2015-08-06 07:12:27 -07:00
|
|
|
If $layout is implemented in $obj's theme (i.e., is contained
|
2014-03-26 02:53:31 -07:00
|
|
|
in the list returned by elm_slideshow_layouts_get()), this new
|
|
|
|
images layout will be used on the widget.
|
|
|
|
|
|
|
|
@see elm_slideshow_layouts_get() for more details
|
|
|
|
|
|
|
|
@ingroup Slideshow */
|
|
|
|
}
|
|
|
|
get {
|
|
|
|
/*@
|
|
|
|
Get the current slide layout in use for a given slideshow widget
|
|
|
|
|
|
|
|
@return The current layout's name
|
|
|
|
|
|
|
|
@see elm_slideshow_layout_set() for more details
|
|
|
|
|
|
|
|
@ingroup Slideshow */
|
|
|
|
}
|
|
|
|
values {
|
2015-05-18 08:16:08 -07:00
|
|
|
layout: const(char)*; /*@ The new layout's name string */
|
2014-03-26 02:53:31 -07:00
|
|
|
}
|
|
|
|
}
|
2015-05-07 09:32:53 -07:00
|
|
|
@property transition {
|
2014-03-26 02:53:31 -07:00
|
|
|
set {
|
|
|
|
/*@
|
|
|
|
Set the current slide transition/effect in use for a given
|
|
|
|
slideshow widget
|
|
|
|
|
2015-08-06 07:12:27 -07:00
|
|
|
If $transition is implemented in $obj's theme (i.e., is
|
2014-03-26 02:53:31 -07:00
|
|
|
contained in the list returned by
|
|
|
|
elm_slideshow_transitions_get()), this new sliding effect will
|
|
|
|
be used on the widget.
|
|
|
|
|
|
|
|
@see elm_slideshow_transitions_get() for more details
|
|
|
|
|
|
|
|
@ingroup Slideshow */
|
|
|
|
}
|
|
|
|
get {
|
|
|
|
/*@
|
|
|
|
Get the current slide transition/effect in use for a given
|
|
|
|
slideshow widget
|
|
|
|
|
|
|
|
@return The current transition's name
|
|
|
|
|
|
|
|
@see elm_slideshow_transition_set() for more details
|
|
|
|
|
|
|
|
@ingroup Slideshow */
|
|
|
|
}
|
|
|
|
values {
|
2015-05-18 08:16:08 -07:00
|
|
|
transition: const(char)* @nullable; /*@ The new transition's name string */
|
2014-03-26 02:53:31 -07:00
|
|
|
}
|
|
|
|
}
|
2015-05-07 09:32:53 -07:00
|
|
|
@property loop {
|
2014-03-26 02:53:31 -07:00
|
|
|
set {
|
|
|
|
/*@
|
|
|
|
Set if, after a slideshow is started, for a given slideshow
|
|
|
|
widget, its items should be displayed cyclically or not.
|
|
|
|
|
|
|
|
@note elm_slideshow_next() and elm_slideshow_previous() will @b
|
|
|
|
ignore what is set by this functions, i.e., they'll @b always
|
|
|
|
cycle through items. This affects only the "automatic"
|
|
|
|
slideshow, as set by elm_slideshow_timeout_set().
|
|
|
|
|
|
|
|
@see elm_slideshow_loop_get()
|
|
|
|
|
|
|
|
@ingroup Slideshow */
|
|
|
|
}
|
|
|
|
get {
|
|
|
|
/*@
|
|
|
|
Get if, after a slideshow is started, for a given slideshow
|
|
|
|
widget, its items are to be displayed cyclically or not.
|
|
|
|
|
2015-08-06 07:12:27 -07:00
|
|
|
@return $true, if the items in $obj will be cycled
|
|
|
|
through or $false, otherwise
|
2014-03-26 02:53:31 -07:00
|
|
|
|
|
|
|
@see elm_slideshow_loop_set() for more details
|
|
|
|
|
|
|
|
@ingroup Slideshow */
|
|
|
|
}
|
|
|
|
values {
|
2015-08-06 07:12:27 -07:00
|
|
|
loop: bool; /*@ Use $true to make it cycle through items or
|
|
|
|
$false for it to stop at the end of $obj's internal
|
2014-03-26 02:53:31 -07:00
|
|
|
list of items */
|
|
|
|
}
|
|
|
|
}
|
2015-05-07 09:32:53 -07:00
|
|
|
@property timeout {
|
2014-03-26 02:53:31 -07:00
|
|
|
set {
|
|
|
|
/*@
|
|
|
|
Set the interval between each image transition on a given
|
|
|
|
slideshow widget, <b>and start the slideshow, itself</b>
|
|
|
|
|
|
|
|
After this call, the slideshow widget will start cycling its
|
|
|
|
view, sequentially and automatically, with the images of the
|
|
|
|
items it has. The time between each new image displayed is going
|
2015-08-06 07:12:27 -07:00
|
|
|
to be $timeout, in @b seconds. If a different timeout was set
|
2014-03-26 02:53:31 -07:00
|
|
|
previously and an slideshow was in progress, it will continue
|
|
|
|
with the new time between transitions, after this call.
|
|
|
|
|
2015-08-06 07:12:27 -07:00
|
|
|
@note A value less than or equal to 0 on $timeout will disable
|
2014-03-26 02:53:31 -07:00
|
|
|
the widget's internal timer, thus halting any slideshow which
|
2015-08-06 07:12:27 -07:00
|
|
|
could be happening on $obj.
|
2014-03-26 02:53:31 -07:00
|
|
|
|
|
|
|
@see elm_slideshow_timeout_get()
|
|
|
|
|
|
|
|
@ingroup Slideshow */
|
|
|
|
}
|
|
|
|
get {
|
|
|
|
/*@
|
|
|
|
Get the interval set for image transitions on a given slideshow
|
|
|
|
widget.
|
|
|
|
|
|
|
|
@return Returns the timeout set on it or -1.0, on errors
|
|
|
|
|
|
|
|
@see elm_slideshow_timeout_set() for more details
|
|
|
|
|
|
|
|
@ingroup Slideshow */
|
|
|
|
}
|
|
|
|
values {
|
2015-05-18 08:16:08 -07:00
|
|
|
timeout: double; /*@ The new displaying timeout for images */
|
2014-03-26 02:53:31 -07:00
|
|
|
}
|
|
|
|
}
|
2015-05-07 09:32:53 -07:00
|
|
|
@property items {
|
2014-03-26 02:53:31 -07:00
|
|
|
get {
|
|
|
|
/*@
|
|
|
|
Get the internal list of items in a given slideshow widget.
|
|
|
|
|
2015-08-06 06:30:34 -07:00
|
|
|
@return The list of items (#Elm.Widget_Item as data) or
|
2015-08-06 07:12:27 -07:00
|
|
|
$NULL on errors.
|
2014-03-26 02:53:31 -07:00
|
|
|
|
|
|
|
This list is @b not to be modified in any way and must not be
|
|
|
|
freed. Use the list members with functions like
|
|
|
|
elm_object_item_del(), elm_object_item_data_get().
|
|
|
|
|
2015-08-06 07:12:27 -07:00
|
|
|
@warning This list is only valid until $obj object's internal
|
2014-03-26 02:53:31 -07:00
|
|
|
items list is changed. It should be fetched again with another
|
|
|
|
call to this function when changes happen.
|
|
|
|
|
|
|
|
@ingroup Slideshow */
|
2015-08-06 06:30:34 -07:00
|
|
|
return: const(list<Elm.Widget_Item *>)*;
|
2014-03-26 02:53:31 -07:00
|
|
|
}
|
|
|
|
}
|
2015-05-07 09:32:53 -07:00
|
|
|
@property transitions {
|
2014-03-26 02:53:31 -07:00
|
|
|
get {
|
|
|
|
/*@
|
|
|
|
Returns the list of sliding transition/effect names available, for a
|
|
|
|
given slideshow widget.
|
|
|
|
|
|
|
|
@return The list of transitions (list of @b stringshared strings
|
|
|
|
as data)
|
|
|
|
|
2015-08-06 07:12:27 -07:00
|
|
|
The transitions, which come from $obj's theme, must be an EDC
|
|
|
|
data item named $"transitions" on the theme file, with (prefix)
|
2014-03-26 02:53:31 -07:00
|
|
|
names of EDC programs actually implementing them.
|
|
|
|
|
|
|
|
The available transitions for slideshows on the default theme are:
|
2015-08-06 07:12:27 -07:00
|
|
|
- $"fade" - the current item fades out, while the new one
|
2014-03-26 02:53:31 -07:00
|
|
|
fades in to the slideshow's viewport.
|
2015-08-06 07:12:27 -07:00
|
|
|
- $"black_fade" - the current item fades to black, and just
|
2014-03-26 02:53:31 -07:00
|
|
|
then, the new item will fade in.
|
2015-08-06 07:12:27 -07:00
|
|
|
- $"horizontal" - the current item slides horizontally, until
|
2014-03-26 02:53:31 -07:00
|
|
|
it gets out of the slideshow's viewport, while the new item
|
|
|
|
comes from the left to take its place.
|
2015-08-06 07:12:27 -07:00
|
|
|
- $"vertical" - the current item slides vertically, until it
|
2014-03-26 02:53:31 -07:00
|
|
|
gets out of the slideshow's viewport, while the new item comes
|
|
|
|
from the bottom to take its place.
|
2015-08-06 07:12:27 -07:00
|
|
|
- $"square" - the new item starts to appear from the middle of
|
2014-03-26 02:53:31 -07:00
|
|
|
the current one, but with a tiny size, growing until its
|
|
|
|
target (full) size and covering the old one.
|
|
|
|
|
|
|
|
@warning The stringshared strings get no new references
|
|
|
|
exclusive to the user grabbing the list, here, so if you'd like
|
|
|
|
to use them out of this call's context, you'd better @c
|
|
|
|
eina_stringshare_ref() them. Also the list is an internal list and
|
|
|
|
so is only valid for as long as the slideshow object is valid and
|
|
|
|
has not internally changed its list for some reason, so make a
|
|
|
|
copy if you need it around.
|
|
|
|
|
|
|
|
@see elm_slideshow_transition_set()
|
|
|
|
|
|
|
|
@ingroup Slideshow */
|
2015-04-23 03:46:48 -07:00
|
|
|
return: const(list<const(char)*>)*;
|
2014-03-26 02:53:31 -07:00
|
|
|
}
|
|
|
|
}
|
2015-05-07 09:32:53 -07:00
|
|
|
@property count {
|
2014-03-26 02:53:31 -07:00
|
|
|
get {
|
|
|
|
/*@
|
|
|
|
Get the number of items stored in a given slideshow widget
|
|
|
|
|
2015-08-06 07:12:27 -07:00
|
|
|
@return The number of items on $obj, at the moment of this call
|
2014-03-26 02:53:31 -07:00
|
|
|
|
|
|
|
@ingroup Slideshow */
|
2014-08-11 07:46:11 -07:00
|
|
|
return: uint;
|
2014-03-26 02:53:31 -07:00
|
|
|
}
|
|
|
|
}
|
2015-05-07 09:32:53 -07:00
|
|
|
@property item_current {
|
2014-03-26 02:53:31 -07:00
|
|
|
get {
|
|
|
|
/*@
|
|
|
|
Returns the currently displayed item, in a given slideshow widget
|
|
|
|
|
2015-08-06 07:12:27 -07:00
|
|
|
@return A handle to the item being displayed in $obj or
|
|
|
|
$NULL, if none is (and on errors)
|
2014-03-26 02:53:31 -07:00
|
|
|
|
|
|
|
@ingroup Slideshow */
|
2015-08-06 06:30:34 -07:00
|
|
|
return: Elm.Widget_Item *;
|
2014-03-26 02:53:31 -07:00
|
|
|
}
|
|
|
|
}
|
2015-05-07 09:32:53 -07:00
|
|
|
@property layouts {
|
2014-03-26 02:53:31 -07:00
|
|
|
get {
|
|
|
|
/*@
|
|
|
|
Returns the list of @b layout names available, for a given
|
|
|
|
slideshow widget.
|
|
|
|
|
|
|
|
@return The list of layouts (list of @b stringshared strings
|
|
|
|
as data)
|
|
|
|
|
|
|
|
Slideshow layouts will change how the widget is to dispose each
|
|
|
|
image item in its viewport, with regard to cropping, scaling,
|
|
|
|
etc.
|
|
|
|
|
2015-08-06 07:12:27 -07:00
|
|
|
The layouts, which come from $obj's theme, must be an EDC
|
|
|
|
data item name $"layouts" on the theme file, with (prefix)
|
2014-03-26 02:53:31 -07:00
|
|
|
names of EDC programs actually implementing them.
|
|
|
|
|
|
|
|
The available layouts for slideshows on the default theme are:
|
2015-08-06 07:12:27 -07:00
|
|
|
- $"fullscreen" - item images with original aspect, scaled to
|
2014-03-26 02:53:31 -07:00
|
|
|
touch top and down slideshow borders or, if the image's height
|
|
|
|
is not enough, left and right slideshow borders.
|
2015-08-06 07:12:27 -07:00
|
|
|
- $"not_fullscreen" - the same behavior as the $"fullscreen"
|
2014-03-26 02:53:31 -07:00
|
|
|
one, but always leaving 10% of the slideshow's dimensions of
|
|
|
|
distance between the item image's borders and the slideshow
|
|
|
|
borders, for each axis.
|
|
|
|
|
|
|
|
@warning The stringshared strings get no new references
|
|
|
|
exclusive to the user grabbing the list, here, so if you'd like
|
|
|
|
to use them out of this call's context, you'd better @c
|
|
|
|
eina_stringshare_ref() them.
|
|
|
|
|
|
|
|
@see elm_slideshow_layout_set()
|
|
|
|
|
|
|
|
@ingroup Slideshow */
|
2015-04-23 03:46:48 -07:00
|
|
|
return: const(list<const(char)*>)*;
|
2014-03-26 02:53:31 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
previous {
|
|
|
|
/*@
|
|
|
|
Slide to the @b previous item, in a given slideshow widget
|
|
|
|
|
2015-08-06 07:12:27 -07:00
|
|
|
The sliding animation $obj is set to use will be the
|
2014-03-26 02:53:31 -07:00
|
|
|
transition effect used, after this call is issued.
|
|
|
|
|
|
|
|
@note If the beginning of the slideshow's internal list of items
|
|
|
|
is reached, it'll wrap around to the list's end, again.
|
|
|
|
|
|
|
|
@ingroup Slideshow */
|
|
|
|
|
|
|
|
}
|
2014-07-22 09:13:52 -07:00
|
|
|
item_nth_get @const {
|
2014-03-26 02:53:31 -07:00
|
|
|
/*@
|
|
|
|
Get the the item, in a given slideshow widget, placed at
|
2015-08-06 07:12:27 -07:00
|
|
|
position $nth, in its internal items list
|
2014-03-26 02:53:31 -07:00
|
|
|
|
2015-08-06 07:12:27 -07:00
|
|
|
@return The item stored in $obj at position $nth or $NULL,
|
2014-03-26 02:53:31 -07:00
|
|
|
if there's no item with that index (and on errors)
|
|
|
|
|
|
|
|
@ingroup Slideshow */
|
2015-08-06 06:30:34 -07:00
|
|
|
return: Elm.Widget_Item *;
|
2014-03-26 02:53:31 -07:00
|
|
|
params {
|
2015-05-18 08:16:08 -07:00
|
|
|
@in nth: uint; /*@ The number of the item to grab a handle to (0 being
|
2014-03-26 02:53:31 -07:00
|
|
|
the first) */
|
|
|
|
}
|
|
|
|
}
|
|
|
|
next {
|
|
|
|
/*@
|
|
|
|
Slide to the @b next item, in a given slideshow widget
|
|
|
|
|
2015-08-06 07:12:27 -07:00
|
|
|
The sliding animation $obj is set to use will be the
|
2014-03-26 02:53:31 -07:00
|
|
|
transition effect used, after this call is issued.
|
|
|
|
|
|
|
|
@note If the end of the slideshow's internal list of items is
|
|
|
|
reached, it'll wrap around to the list's beginning, again.
|
|
|
|
|
|
|
|
@ingroup Slideshow */
|
|
|
|
|
|
|
|
}
|
|
|
|
clear {
|
|
|
|
/*@
|
|
|
|
Remove all items from a given slideshow widget
|
|
|
|
|
2015-08-06 07:12:27 -07:00
|
|
|
This removes (and deletes) all items in $obj, leaving it
|
2014-03-26 02:53:31 -07:00
|
|
|
empty.
|
|
|
|
|
|
|
|
@see elm_object_item_del(), to remove just one item.
|
|
|
|
|
|
|
|
@ingroup Slideshow */
|
|
|
|
|
|
|
|
}
|
|
|
|
item_add {
|
|
|
|
/*@
|
|
|
|
Add (append) a new item in a given slideshow widget.
|
|
|
|
|
2015-08-06 07:12:27 -07:00
|
|
|
@return A handle to the item added or $NULL, on errors
|
2014-03-26 02:53:31 -07:00
|
|
|
|
2015-08-06 07:12:27 -07:00
|
|
|
Add a new item to $obj's internal list of items, appending it.
|
2014-03-26 02:53:31 -07:00
|
|
|
The item's class must contain the function really fetching the
|
|
|
|
image object to show for this item, which could be an Evas image
|
2015-08-06 07:12:27 -07:00
|
|
|
object or an Elementary photo, for example. The $data
|
2014-03-26 02:53:31 -07:00
|
|
|
parameter is going to be passed to both class functions of the
|
|
|
|
item.
|
|
|
|
|
|
|
|
@see #Elm_Slideshow_Item_Class
|
|
|
|
@see elm_slideshow_item_sorted_insert()
|
|
|
|
@see elm_object_item_data_set()
|
|
|
|
|
|
|
|
@ingroup Slideshow */
|
|
|
|
|
2015-08-06 06:30:34 -07:00
|
|
|
return: Elm.Widget_Item *;
|
2014-03-26 02:53:31 -07:00
|
|
|
params {
|
2015-05-18 08:16:08 -07:00
|
|
|
@in itc: const(Elm_Slideshow_Item_Class)*; /*@ The item class for the item */
|
|
|
|
@in data: const(void)*; /*@ The item's data */
|
2014-03-26 02:53:31 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
item_sorted_insert {
|
|
|
|
/*@
|
2015-08-06 07:12:27 -07:00
|
|
|
Insert a new item into the given slideshow widget, using the $func
|
2014-03-26 02:53:31 -07:00
|
|
|
function to sort items (by item handles).
|
|
|
|
|
|
|
|
@return Returns The slideshow item handle, on success, or
|
2015-08-06 07:12:27 -07:00
|
|
|
$NULL, on errors
|
2014-03-26 02:53:31 -07:00
|
|
|
|
2015-08-06 07:12:27 -07:00
|
|
|
Add a new item to $obj's internal list of items, in a position
|
|
|
|
determined by the $func comparing function. The item's class
|
2014-03-26 02:53:31 -07:00
|
|
|
must contain the function really fetching the image object to
|
|
|
|
show for this item, which could be an Evas image object or an
|
2015-08-06 07:12:27 -07:00
|
|
|
Elementary photo, for example. The $data parameter is going to
|
2014-03-26 02:53:31 -07:00
|
|
|
be passed to both class functions of the item.
|
|
|
|
|
|
|
|
@see #Elm_Slideshow_Item_Class
|
|
|
|
@see elm_slideshow_item_add()
|
|
|
|
|
|
|
|
@ingroup Slideshow */
|
|
|
|
|
2015-08-06 06:30:34 -07:00
|
|
|
return: Elm.Widget_Item *;
|
2014-03-26 02:53:31 -07:00
|
|
|
params {
|
2015-05-18 08:16:08 -07:00
|
|
|
@in itc: const(Elm_Slideshow_Item_Class)*; /*@ The item class for the item */
|
|
|
|
@in data: const(void)*; /*@ The item's data */
|
|
|
|
@in func: Eina_Compare_Cb; /*@ The comparing function to be used to sort slideshow
|
2014-03-26 02:53:31 -07:00
|
|
|
items <b>by #Elm_Slideshow_Item_Class item handles</b> */
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
implements {
|
2014-06-20 02:47:39 -07:00
|
|
|
class.constructor;
|
2014-06-27 15:36:05 -07:00
|
|
|
Eo.Base.constructor;
|
|
|
|
Evas.Object_Smart.add;
|
|
|
|
Evas.Object_Smart.del;
|
2015-04-22 04:33:10 -07:00
|
|
|
Elm.Widget.focus_next_manager_is;
|
|
|
|
Elm.Widget.focus_direction_manager_is;
|
|
|
|
Elm.Widget.event;
|
2015-04-22 04:37:40 -07:00
|
|
|
Elm.Layout.sizing_eval;
|
2014-07-25 01:33:19 -07:00
|
|
|
Elm_Interface_Atspi_Widget_Action.elm_actions.get;
|
2014-03-26 02:53:31 -07:00
|
|
|
}
|
|
|
|
events {
|
|
|
|
changed;
|
|
|
|
transition,end;
|
|
|
|
language,changed;
|
|
|
|
access,changed;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|