org.jetbrains.kotlinx.ggdsl.letsplot.feature.Layout.kt Maven / Gradle / Ivy
package org.jetbrains.kotlinx.ggdsl.letsplot.feature
import kotlinx.serialization.Serializable
import org.jetbrains.kotlinx.ggdsl.dsl.internal.PlotDslMarker
import org.jetbrains.kotlinx.ggdsl.ir.feature.FeatureName
import org.jetbrains.kotlinx.ggdsl.ir.feature.PlotFeature
import org.jetbrains.kotlinx.ggdsl.letsplot.theme.CustomTheme
import org.jetbrains.kotlinx.ggdsl.letsplot.theme.Theme
//todo
@PlotDslMarker
@Serializable
public data class Layout(
var title: String? = null,
var subtitle: String? = null,
var caption: String? = null,
// todo remove?
var xAxisLabel: String? = null,
var yAxisLabel: String? = null,
var size: Pair? = null
) : PlotFeature {
@PublishedApi
internal var theme: Theme? = null
@PublishedApi
internal var customTheme: CustomTheme? = null
public inline fun theme(theme: Theme, block: CustomTheme.() -> Unit = {}) {
this.theme = theme
customTheme = CustomTheme().apply(block)
}
public inline fun theme(block: CustomTheme.() -> Unit) {
theme = CustomTheme().apply(block)
}
override val featureName: FeatureName = NAME
public companion object {
public val NAME: FeatureName = FeatureName("layout")
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy