All Downloads are FREE. Search and download functionalities are using the official Maven repository.

commonMain.Scope.kt Maven / Gradle / Ivy

package com.zakgof

import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.debugInspectorInfo


interface TableScope {
    fun Row(rowContent: @Composable TableRowScope.() -> Unit)
}

interface TableRowScope {
    fun Modifier.columnSpan(columns: Int): Modifier
    fun Modifier.rowSpan(rows: Int): Modifier
}

internal object TableRowScopeImpl : TableRowScope {

    override fun Modifier.columnSpan(columns: Int): Modifier {
        require(columns > 0) { "invalid columnSpan $columns; must be greater than zero" }
        return this.then(
            ModifierColumnSpanImpl(
                value = columns,
                inspectorInfo = debugInspectorInfo {
                    name = "columnSpan"
                    this.value = columns
                    properties["value"] = columns
                }
            )
        )
    }

    override fun Modifier.rowSpan(rows: Int): Modifier {
        require(rows > 0) { "invalid rowSpan $rows; must be greater than zero" }
        return this.then(
            ModifierRowSpanImpl(
                value = rows,
                inspectorInfo = debugInspectorInfo {
                    name = "rowSpan"
                    this.value = rows
                    properties["value"] = rows
                }
            )
        )
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy