fix: Handle DataWidth slightly better

This commit is contained in:
Florian Bouillon 2023-01-10 17:32:20 +01:00
parent ce565c2472
commit 7a17d45257

View File

@ -21,23 +21,13 @@ class XAxis(
set(value) { set(value) {
val max = getXMax() - getDataWidth() val max = getXMax() - getDataWidth()
val min = getXMin() val min = getXMin()
if (value > max && min <= max) {
field = max
return
}
if (value < min) { field = value.coerceIn(min, max.coerceAtLeast(min))
field = min
return
}
field = value
} }
override var enabled = true override var enabled = true
override var dataWidth: Double? = null override var dataWidth: Double? = null
get() = field ?: getXMax()
override var labelCount: Int = 2 override var labelCount: Int = 2
@ -133,16 +123,13 @@ class XAxis(
} }
} }
return clamp(drawableSpace.width() * smallest / getDataWidth() - spacing, 1.0, drawableSpace.width().toDouble()) return (drawableSpace.width() * smallest / getDataWidth() - spacing)
.coerceIn(1.0, drawableSpace.width().toDouble())
} }
override fun getDataWidth(): Double { override fun getDataWidth(): Double {
// TODO: handle the auto dataWidth better // TODO: handle the auto dataWidth better (still not sure it is good enough)
return dataWidth ?: getXMax() return dataWidth ?: (getXMax() - getXMin() + 1)
} }
private fun clamp(value: Double, min: Double, max: Double): Double {
return if (value < min) min else if (value > max) max else value
}
} }