Add dynamic keyboard dimensions and integrate adjustable knob
Introduced adjustable `keyboardWidth` and `keyboardHeight` for `KeyboardComponent`, making dimensions dynamic. Added a knob component to control keyboard width in `MainView`. Enhanced layouts for flexibility and customization.
This commit is contained in:
@@ -4,10 +4,12 @@ package nl.astraeus.vst.ui.view
|
||||
|
||||
import kotlinx.html.div
|
||||
import kotlinx.html.h1
|
||||
import kotlinx.html.hr
|
||||
import kotlinx.html.js.onClickFunction
|
||||
import kotlinx.html.option
|
||||
import kotlinx.html.select
|
||||
import kotlinx.html.span
|
||||
import kotlinx.html.style
|
||||
import nl.astraeus.css.properties.AlignItems
|
||||
import nl.astraeus.css.properties.BoxSizing
|
||||
import nl.astraeus.css.properties.Display
|
||||
@@ -39,6 +41,7 @@ import nl.astraeus.vst.ui.css.hover
|
||||
class MainView : Komponent() {
|
||||
private var messages: MutableList<String> = ArrayList()
|
||||
var started = true
|
||||
var keyboardWidth = 500
|
||||
|
||||
fun addMessage(message: String) {
|
||||
messages.add(message)
|
||||
@@ -113,7 +116,30 @@ class MainView : Komponent() {
|
||||
}
|
||||
}
|
||||
div {
|
||||
include(KeyboardComponent())
|
||||
style = "height: 150px;"
|
||||
include(
|
||||
KnobComponent(
|
||||
value = keyboardWidth.toDouble(),
|
||||
label = "Keyboard",
|
||||
minValue = 100.0,
|
||||
maxValue = 2000.0,
|
||||
step = 5.0,
|
||||
width = 100,
|
||||
height = 120,
|
||||
) { value ->
|
||||
keyboardWidth = value.toInt()
|
||||
requestUpdate()
|
||||
}
|
||||
)
|
||||
}
|
||||
hr {}
|
||||
div {
|
||||
include(KeyboardComponent(
|
||||
keyboardWidth = keyboardWidth,
|
||||
keyboardHeight = keyboardWidth / 2,
|
||||
onNoteDown = { println("Note down: $it") },
|
||||
onNoteUp = { println("Note up: $it") },
|
||||
))
|
||||
}
|
||||
/*
|
||||
div {
|
||||
|
||||
Reference in New Issue
Block a user