Package-level declarations

Types

Link copied to clipboard
data class TimelineBlock(val startSeconds: Float, val endSeconds: Float, val color: Color, val label: String = "", val description: String = "", val id: Long? = null)
Link copied to clipboard
data class TimelineLane(val label: String, val blocks: List<TimelineBlock>)
Link copied to clipboard
Link copied to clipboard
data class TimelineTheme(val axis: TimelineTheme.AxisStyle, val grid: TimelineTheme.GridStyle, val hover: TimelineTheme.HoverStyle, val laneLabel: TimelineTheme.LaneLabelStyle, val selection: TimelineTheme.SelectionStyle, val laneSeparatorColor: Color, val backgroundColor: Color)
Link copied to clipboard
data class TimeSelection(val startSeconds: Float, val endSeconds: Float)

Functions

Link copied to clipboard
private fun badgeBounds(selection: TimeSelection, state: TimelineState, componentWidth: Float, badgeSize: IntSize, axisHeight: Float): Pair<Float, Float>

Computes the top-left position of the selection badge in viewport pixels.

Link copied to clipboard
@Composable
private fun BlockBadge(block: TimelineBlock, style: TimelineTheme.SelectionStyle, onArrowClick: () -> Unit)
Link copied to clipboard
internal fun blockBadgeBounds(block: TimelineBlock, laneIndex: Int, state: TimelineState, componentWidth: Float, badgeSize: IntSize, axisHeight: Float, componentHeight: Float, laneCount: Int): Pair<Float, Float>

Computes the top-left position of the block badge in viewport pixels.

Link copied to clipboard
Link copied to clipboard
internal fun DrawScope.drawAxisBaseline(axisHeight: Float, tickColor: Color)
Link copied to clipboard
internal fun DrawScope.drawAxisTicks(interval: Int, startSec: Int, endSec: Int, pxPerSecond: Float, axisHeight: Float, labelWidth: Int, labelHeight: Int, textMeasurer: TextMeasurer, style: TimelineTheme.AxisStyle)
Link copied to clipboard
internal fun DrawScope.drawBlocks(lanes: List<TimelineLane>, state: TimelineState, lanesTop: Float, laneHeight: Float, pxPerSecond: Float, startSec: Int, endSec: Int)
Link copied to clipboard
internal fun DrawScope.drawGrid(interval: Int, startSec: Int, endSec: Int, pxPerSecond: Float, style: TimelineTheme.GridStyle)
Link copied to clipboard
internal fun DrawScope.drawHoverLabel(hoverSeconds: Float?, hoveredBlock: TimelineBlock?, pxPerSecond: Float, scrollX: Float, localMousePos: Offset?, textMeasurer: TextMeasurer, style: TimelineTheme.HoverStyle)
Link copied to clipboard
internal fun DrawScope.drawLaneLabels(lanes: List<TimelineLane>, lanesTop: Float, laneHeight: Float, localMousePos: Offset?, textMeasurer: TextMeasurer, style: TimelineTheme.LaneLabelStyle)
Link copied to clipboard
internal fun DrawScope.drawLaneSeparators(laneCount: Int, lanesTop: Float, laneHeight: Float, separatorColor: Color)
Link copied to clipboard
internal fun DrawScope.drawSelectionOverlay(selection: TimeSelection?, lanesTop: Float, lanesHeight: Float, pxPerSecond: Float, style: TimelineTheme.SelectionStyle)
Link copied to clipboard
internal fun DrawScope.drawTimeIndicators(showCurrentTime: Boolean, currentTimeSeconds: Float, pxPerSecond: Float, hoverSeconds: Float?, hoverLineColor: Color)
Link copied to clipboard
fun formatDuration(seconds: Float): String
Link copied to clipboard
fun formatTickLabel(seconds: Int): String
Link copied to clipboard
Link copied to clipboard
private fun isBadgeHit(pos: Offset, state: TimelineState, componentWidth: Float, badgeSize: IntSize, axisHeight: Float): Boolean

Returns true when pos lands within the selection badge bounds.

Link copied to clipboard
private fun isBlockBadgeHit(pos: Offset, state: TimelineState, componentWidth: Float, componentHeight: Float, blockBadgeSize: IntSize, axisHeight: Float, laneCount: Int): Boolean

Returns true when pos lands within the block badge bounds.

Link copied to clipboard
fun pickTickInterval(pixelsPerSecond: Float, minPixelSpacing: Float = 40.0f): Int

Dobiera interwał ticków (w sekundach) na podstawie aktualnego zoomu, tak żeby odstęp między liniami wynosił co najmniej minPixelSpacing px. Minimalny interwał = 60s (co minutę).

Link copied to clipboard
@Composable
fun rememberCurrentTimeSeconds(enabled: Boolean): Float
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
@Composable
private fun SelectionBadge(selection: TimeSelection, style: TimelineTheme.SelectionStyle, onArrowClick: () -> Unit)
Link copied to clipboard
@Composable
fun TimelineComponent(state: TimelineState = rememberTimelineState(), showCurrentTime: Boolean = false, lanes: List<TimelineLane> = emptyList(), theme: TimelineTheme = rememberTimelineTheme(), contextMenuContent: @Composable ColumnScope.() -> Unit = {}, blockContextMenuContent: @Composable ColumnScope.(onDismiss: () -> Unit) -> Unit = {}, modifier: Modifier = Modifier)
Link copied to clipboard
@Composable
internal fun TimelineSelectionOverlay(state: TimelineState, lanes: List<TimelineLane>, axisHeight: Float, componentWidth: Float, componentHeight: Float, badgeSize: IntSize, onBadgeSizeChanged: (IntSize) -> Unit, blockBadgeSize: IntSize, onBlockBadgeSizeChanged: (IntSize) -> Unit, selectionStyle: TimelineTheme.SelectionStyle, showContextMenu: Boolean, contextMenuAnchorPx: Offset, onShowContextMenu: (anchor: Offset) -> Unit, onDismissContextMenu: () -> Unit, showBlockContextMenu: Boolean, blockContextMenuAnchorPx: Offset, onShowBlockContextMenu: (anchor: Offset) -> Unit, onDismissBlockContextMenu: () -> Unit, contextMenuContent: @Composable ColumnScope.() -> Unit, blockContextMenuContent: @Composable ColumnScope.(onDismiss: () -> Unit) -> Unit)