diff options
author | Robert Jaros <rjaros@finn.pl> | 2018-01-29 23:59:51 +0100 |
---|---|---|
committer | Robert Jaros <rjaros@finn.pl> | 2018-01-29 23:59:51 +0100 |
commit | 0c01ee40a27fde99ebc23dd13a5b54ce54a01b0f (patch) | |
tree | 9b72e603322591228ef9577cca0d1f7adf556305 /src | |
parent | 2c7ca3f8808935fc0c56458dca54f7bf417141f7 (diff) | |
download | kvision-0c01ee40a27fde99ebc23dd13a5b54ce54a01b0f.tar.gz kvision-0c01ee40a27fde99ebc23dd13a5b54ce54a01b0f.tar.bz2 kvision-0c01ee40a27fde99ebc23dd13a5b54ce54a01b0f.zip |
"auto" support in CssSize
Diffstat (limited to 'src')
5 files changed, 37 insertions, 34 deletions
diff --git a/src/main/kotlin/pl/treksoft/kvision/core/Css.kt b/src/main/kotlin/pl/treksoft/kvision/core/Css.kt index 1e6fdbeb..a5a85531 100644 --- a/src/main/kotlin/pl/treksoft/kvision/core/Css.kt +++ b/src/main/kotlin/pl/treksoft/kvision/core/Css.kt @@ -1,5 +1,6 @@ package pl.treksoft.kvision.core +import pl.treksoft.kvision.utils.asString import pl.treksoft.kvision.utils.toHexString typealias ResString = String @@ -19,7 +20,8 @@ enum class UNIT(val unit: String) { vh("vh"), vmin("vmin"), vmax("vmax"), - perc("%") + perc("%"), + auto("auto") } typealias CssSize = Pair<Int, UNIT> @@ -226,9 +228,7 @@ class Border private constructor( constructor(width: CssSize? = null, style: BORDERSTYLE? = null, color: COLOR) : this(width, style, color.color) fun asString(): String { - val w = width?.let { - it.first.toString() + it.second.unit - } + val w = width?.asString() return w.orEmpty() + " " + (style?.borderStyle).orEmpty() + " " + color.orEmpty() } } @@ -286,18 +286,10 @@ class Background private constructor( val img = image?.let { "url($image)" } - val posX = positionX?.let { - it.first.toString() + it.second.unit - } - val posY = positionY?.let { - it.first.toString() + it.second.unit - } - val sX = sizeX?.let { - it.first.toString() + it.second.unit - } - val sY = sizeY?.let { - it.first.toString() + it.second.unit - } + val posX = positionX?.asString() + val posY = positionY?.asString() + val sX = sizeX?.asString() + val sY = sizeY?.asString() return color.orEmpty() + " " + img.orEmpty() + " " + posX.orEmpty() + " " + posY.orEmpty() + if (sX != null || sY != null || size != null) { (if (posX != null || posY != null) " / " else " 0px 0px / ") + diff --git a/src/main/kotlin/pl/treksoft/kvision/core/StyledComponent.kt b/src/main/kotlin/pl/treksoft/kvision/core/StyledComponent.kt index 12ed797e..f4bf6e09 100644 --- a/src/main/kotlin/pl/treksoft/kvision/core/StyledComponent.kt +++ b/src/main/kotlin/pl/treksoft/kvision/core/StyledComponent.kt @@ -1,6 +1,7 @@ package pl.treksoft.kvision.core import pl.treksoft.kvision.snabbdom.StringPair +import pl.treksoft.kvision.utils.asString abstract class StyledComponent : Component { @@ -155,22 +156,22 @@ abstract class StyledComponent : Component { protected open fun getSnStyle(): List<StringPair> { val snstyle = mutableListOf<StringPair>() width?.let { - snstyle.add("width" to it.first.toString() + it.second.unit) + snstyle.add("width" to it.asString()) } minWidth?.let { - snstyle.add("min-width" to it.first.toString() + it.second.unit) + snstyle.add("min-width" to it.asString()) } maxWidth?.let { - snstyle.add("max-width" to it.first.toString() + it.second.unit) + snstyle.add("max-width" to it.asString()) } height?.let { - snstyle.add("height" to it.first.toString() + it.second.unit) + snstyle.add("height" to it.asString()) } minHeight?.let { - snstyle.add("min-height" to it.first.toString() + it.second.unit) + snstyle.add("min-height" to it.asString()) } maxHeight?.let { - snstyle.add("max-height" to it.first.toString() + it.second.unit) + snstyle.add("max-height" to it.asString()) } border?.let { snstyle.add("border" to it.asString()) @@ -188,34 +189,34 @@ abstract class StyledComponent : Component { snstyle.add("border-left" to it.asString()) } margin?.let { - snstyle.add("margin" to it.first.toString() + it.second.unit) + snstyle.add("margin" to it.asString()) } marginTop?.let { - snstyle.add("margin-top" to it.first.toString() + it.second.unit) + snstyle.add("margin-top" to it.asString()) } marginRight?.let { - snstyle.add("margin-right" to it.first.toString() + it.second.unit) + snstyle.add("margin-right" to it.asString()) } marginBottom?.let { - snstyle.add("margin-bottom" to it.first.toString() + it.second.unit) + snstyle.add("margin-bottom" to it.asString()) } marginLeft?.let { - snstyle.add("margin-left" to it.first.toString() + it.second.unit) + snstyle.add("margin-left" to it.asString()) } padding?.let { - snstyle.add("padding" to it.first.toString() + it.second.unit) + snstyle.add("padding" to it.asString()) } paddingTop?.let { - snstyle.add("padding-top" to it.first.toString() + it.second.unit) + snstyle.add("padding-top" to it.asString()) } paddingRight?.let { - snstyle.add("padding-right" to it.first.toString() + it.second.unit) + snstyle.add("padding-right" to it.asString()) } paddingBottom?.let { - snstyle.add("padding-bottom" to it.first.toString() + it.second.unit) + snstyle.add("padding-bottom" to it.asString()) } paddingLeft?.let { - snstyle.add("padding-left" to it.first.toString() + it.second.unit) + snstyle.add("padding-left" to it.asString()) } color?.let { snstyle.add("color" to it.asString()) diff --git a/src/main/kotlin/pl/treksoft/kvision/data/DataContainer.kt b/src/main/kotlin/pl/treksoft/kvision/data/DataContainer.kt index 32546bd5..2c87daea 100644 --- a/src/main/kotlin/pl/treksoft/kvision/data/DataContainer.kt +++ b/src/main/kotlin/pl/treksoft/kvision/data/DataContainer.kt @@ -56,7 +56,7 @@ class DataContainer<M : DataComponent, C : Widget>( return this.child.renderVNode() } - open fun get(index: Int) = model[index] + fun get(index: Int) = model[index] override fun update() { model.forEach { it.container = this } diff --git a/src/main/kotlin/pl/treksoft/kvision/form/select/SelectInput.kt b/src/main/kotlin/pl/treksoft/kvision/form/select/SelectInput.kt index f38429e3..6830823d 100644 --- a/src/main/kotlin/pl/treksoft/kvision/form/select/SelectInput.kt +++ b/src/main/kotlin/pl/treksoft/kvision/form/select/SelectInput.kt @@ -10,6 +10,7 @@ import pl.treksoft.kvision.panel.SimplePanel import pl.treksoft.kvision.snabbdom.StringBoolPair import pl.treksoft.kvision.snabbdom.StringPair import pl.treksoft.kvision.snabbdom.obj +import pl.treksoft.kvision.utils.asString enum class SELECTWIDTHTYPE(val value: String) { AUTO("auto"), @@ -254,7 +255,7 @@ open class SelectInput( selectWidthType?.let { sn.add("data-width" to it.value) } ?: selectWidth?.let { - sn.add("data-width" to it.first.toString() + it.second.unit) + sn.add("data-width" to it.asString()) } return sn } diff --git a/src/main/kotlin/pl/treksoft/kvision/utils/Utils.kt b/src/main/kotlin/pl/treksoft/kvision/utils/Utils.kt index b426e432..80a7c482 100644 --- a/src/main/kotlin/pl/treksoft/kvision/utils/Utils.kt +++ b/src/main/kotlin/pl/treksoft/kvision/utils/Utils.kt @@ -23,6 +23,15 @@ fun Int.vh(): CssSize = Pair(this, UNIT.vh) fun Int.vw(): CssSize = Pair(this, UNIT.vw) fun Int.vmin(): CssSize = Pair(this, UNIT.vmin) fun Int.vmax(): CssSize = Pair(this, UNIT.vmax) +fun auto(): CssSize = Pair(0, UNIT.auto) + +fun CssSize.asString(): String { + return if (this.second != UNIT.auto) { + this.first.toString() + this.second.unit + } else { + "auto" + } +} private val hex = arrayOf("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f") |