//[tvlib](../../index.md)/[org.mjdev.tvlib.ui.components.gallery](index.md)
# Package-level declarations
## Functions
| Name | Summary |
|---|---|
| [BoxWithControls](-box-with-controls.md) | [androidJvm]
@[Composable](https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable.html)
fun [BoxWithControls](-box-with-controls.md)(modifier: [Modifier](https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier.html) = Modifier, src: [Any](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html)? = null, contentAlignment: [Alignment](https://developer.android.com/reference/kotlin/androidx/compose/ui/Alignment.html) = Alignment.BottomCenter, controlsState: [MutableState](https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableState.html)<[Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)> = remember { mutableStateOf(false) }, onTap: () -> [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) = { controlsState.toggle() }, controls: @[Composable](https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable.html)(src: [Any](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html)?, bckColor: [Color](https://developer.android.com/reference/kotlin/androidx/compose/ui/graphics/Color.html), controlsState: [MutableState](https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableState.html)<[Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)>) -> [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) = { _, _, _ -> }, content: @[Composable](https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable.html)(src: [Any](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html)?, bckColor: [Color](https://developer.android.com/reference/kotlin/androidx/compose/ui/graphics/Color.html), controlsState: [MutableState](https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableState.html)<[Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)>) -> [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)) |
| [Gallery](-gallery.md) | [androidJvm]
@[Composable](https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable.html)
fun [Gallery](-gallery.md)(modifier: [Modifier](https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier.html) = Modifier, list: [List](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html)<[Any](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html)?> = listOf(Unit), index: [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) = 0, delayedHide: [Long](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-long/index.html) = 5000, controlsState: [MutableState](https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableState.html)<[Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)> = remember { mutableStateOf(true) }, currentItemIndex: [MutableIntState](https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableIntState.html) = remember { mutableIntStateOf(index) }, focusRequester: [FocusRequester](https://developer.android.com/reference/kotlin/androidx/compose/ui/focus/FocusRequester.html) = rememberFocusRequester(), imageScaleType: [MutableState](https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableState.html)<[ContentScale](https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/ContentScale.html)> = rememberSaveable( saver = contentScaleSaver ) { mutableStateOf(ContentScale.Crop) }, listState: [TvLazyListState](https://developer.android.com/reference/kotlin/androidx/tv/foundation/lazy/list/TvLazyListState.html) = rememberTvLazyListState(), switchImageScale: () -> [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) = { imageScaleType.value = when (imageScaleType.value) { ContentScale.Fit -> ContentScale.Crop ContentScale.Crop -> ContentScale.Fit else -> ContentScale.Fit } }, customContentViewer: @[Composable](https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable.html)(src: [Any](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html)?, type: [ItemType](../org.mjdev.tvlib.helpers.media/-item-type/index.md), list: [List](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html)<[Any](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html)?>) -> [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) = { _, _, _ -> }) |
| [ImmersiveInnerList](-immersive-inner-list.md) | [androidJvm]
@[Composable](https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable.html)
fun [ImmersiveListScope](../org.mjdev.tvlib.ui.components.immersivelist/-immersive-list-scope/index.md).[ImmersiveInnerList](-immersive-inner-list.md)(modifier: [Modifier](https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier.html) = Modifier, visible: [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html) = ComposeExt.isEditMode(), backgroundColor: [Color](https://developer.android.com/reference/kotlin/androidx/compose/ui/graphics/Color.html) = Color.Transparent, enter: [EnterTransition](https://developer.android.com/reference/kotlin/androidx/compose/animation/EnterTransition.html) = fadeIn() + slideInVertically(initialOffsetY = { it / 2 }), exit: [ExitTransition](https://developer.android.com/reference/kotlin/androidx/compose/animation/ExitTransition.html) = fadeOut() + slideOutVertically(targetOffsetY = { it / 2 }), list: @[Composable](https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable.html)[ImmersiveListScope](../org.mjdev.tvlib.ui.components.immersivelist/-immersive-list-scope/index.md).() -> [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) = {}) |
| [ItemInfo](-item-info.md) | [androidJvm]
@[Composable](https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable.html)
fun [ItemInfo](-item-info.md)(modifier: [Modifier](https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier.html) = Modifier, src: [Any](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html)? = null, visible: [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html) = isEditMode(), backgroundColor: [Color](https://developer.android.com/reference/kotlin/androidx/compose/ui/graphics/Color.html) = Color.Transparent, metadataRetriever: [MetadataRetriever](../org.mjdev.tvlib.helpers.media/-metadata-retriever/index.md) = rememberMetaDataRetriever(), titleFromItem: () -> [Any](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html)? = { (src as? ItemWithTitle<*>)?.title }, dateFromItem: () -> [Any](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html)? = { (src as? ItemWithDate)?.date ?: "-" }, detailsFromItem: () -> [Any](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html)? = { metadataRetriever.getInfo(src) }) |
## Properties
| Name | Summary |
|---|---|
| [contentScaleSaver](content-scale-saver.md) | [androidJvm]
val [contentScaleSaver](content-scale-saver.md): [Saver](https://developer.android.com/reference/kotlin/androidx/compose/runtime/saveable/Saver.html)<[MutableState](https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableState.html)<[ContentScale](https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/ContentScale.html)>, [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)> |