mirror of
https://github.com/curioustorvald/tsvm.git
synced 2026-06-12 23:54:04 +09:00
vm config menu
This commit is contained in:
Binary file not shown.
93
tsvm_executable/src/net/torvald/tsvm/ConfigMenu.kt
Normal file
93
tsvm_executable/src/net/torvald/tsvm/ConfigMenu.kt
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
package net.torvald.tsvm
|
||||||
|
|
||||||
|
import com.badlogic.gdx.graphics.Color
|
||||||
|
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
||||||
|
import net.torvald.tsvm.VMEmuExecutableWrapper.Companion.FONT
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by minjaesong on 2023-05-12.
|
||||||
|
*/
|
||||||
|
class ConfigMenu(parent: VMEmuExecutable, x: Int, y: Int, w: Int, h: Int) : EmuMenu(parent, x, y, w, h) {
|
||||||
|
|
||||||
|
override fun show() {
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun hide() {
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun update() {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private val STR_COM = "\u00D6\u00D7\u00D8\u00D9"
|
||||||
|
private val STR_CARD = "\u00DA\u00DB\u00DC\u00DD"
|
||||||
|
|
||||||
|
private val selectedPort = "" // com1-4, card1-7, ram16k..ram8192k
|
||||||
|
private val ramsize = listOf(16,32,64,128,256,512,1024,2048,4096,8192)
|
||||||
|
|
||||||
|
|
||||||
|
override fun render(batch: SpriteBatch) {
|
||||||
|
|
||||||
|
batch.color = Color.WHITE
|
||||||
|
|
||||||
|
parent.currentlyPersistentVM.let { vmInfo ->
|
||||||
|
|
||||||
|
if (vmInfo == null) {
|
||||||
|
batch.inUse {
|
||||||
|
FONT.draw(batch, "Please select a VM", 12f, 11f)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else vmInfo.let { (vm, vmName) ->
|
||||||
|
batch.inUse {
|
||||||
|
// background
|
||||||
|
batch.color = EmulatorGuiToolkit.Theme.COL_WELL
|
||||||
|
batch.fillRect(8, 35, 67, 56)
|
||||||
|
batch.fillRect(8, 100, 67, 95)
|
||||||
|
batch.fillRect(8, 204, 67, 134)
|
||||||
|
|
||||||
|
//labels
|
||||||
|
batch.color = Color.WHITE
|
||||||
|
// vm name
|
||||||
|
FONT.draw(batch, vmName, 12f, 11f)
|
||||||
|
// COM
|
||||||
|
"COM".forEachIndexed { index, c -> FONT.draw(batch, "$c", 12f, 44f + FONT.H * index) }
|
||||||
|
// CARD
|
||||||
|
"CARD".forEachIndexed { index, c -> FONT.draw(batch, "$c", 12f, 123f + FONT.H * index) }
|
||||||
|
// RAM
|
||||||
|
"RAM".forEachIndexed { index, c -> FONT.draw(batch, "$c", 12f, 251f + FONT.H * index) }
|
||||||
|
|
||||||
|
|
||||||
|
// COM buttons
|
||||||
|
for (i in 1..4) {
|
||||||
|
batch.setColourBy { selectedPort == "com$i" }
|
||||||
|
FONT.draw(batch, "$i", 29f, 24f + FONT.H * i)
|
||||||
|
FONT.draw(batch, STR_COM, 40f, 24f + FONT.H * i)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// CARD buttons
|
||||||
|
for (i in 1..7) {
|
||||||
|
batch.setColourBy { selectedPort == "card$i" }
|
||||||
|
FONT.draw(batch, "$i", 29f, 89f + FONT.H * i)
|
||||||
|
FONT.draw(batch, STR_CARD, 40f, 89f + FONT.H * i)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
for (i in 0..9) {
|
||||||
|
val ramnum = ramsize[i]
|
||||||
|
batch.setColourBy { selectedPort == "ram${ramnum}k" }
|
||||||
|
FONT.draw(batch, "${ramnum}K", 36f + (if (ramnum < 100) 7f else if (ramnum < 1000) 4f else 0f), 206f + FONT.H * i)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun dispose() {
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -426,7 +426,7 @@ class VMEmuExecutable(val windowWidth: Int, val windowHeight: Int, var panelsX:
|
|||||||
private val tabPos = (menuTabs + "").mapIndexed { index, _ -> 1 + menuTabs.subList(0, index).sumBy { it.length } + 2 * index }
|
private val tabPos = (menuTabs + "").mapIndexed { index, _ -> 1 + menuTabs.subList(0, index).sumBy { it.length } + 2 * index }
|
||||||
private val tabs = arrayOf(
|
private val tabs = arrayOf(
|
||||||
ProfilesMenu(this, menuTabX, menuTabY, menuTabW, menuTabH), // Profiles
|
ProfilesMenu(this, menuTabX, menuTabY, menuTabW, menuTabH), // Profiles
|
||||||
DummyMenu(this, menuTabX, menuTabY, menuTabW, menuTabH), // Config
|
ConfigMenu(this, menuTabX, menuTabY, menuTabW, menuTabH), // Config
|
||||||
MMUMenu(this, menuTabX, menuTabY, menuTabW, menuTabH), // MMU
|
MMUMenu(this, menuTabX, menuTabY, menuTabW, menuTabH), // MMU
|
||||||
DummyMenu(this, menuTabX, menuTabY, menuTabW, menuTabH), // COM1
|
DummyMenu(this, menuTabX, menuTabY, menuTabW, menuTabH), // COM1
|
||||||
DummyMenu(this, menuTabX, menuTabY, menuTabW, menuTabH), // COM2
|
DummyMenu(this, menuTabX, menuTabY, menuTabW, menuTabH), // COM2
|
||||||
|
|||||||
Reference in New Issue
Block a user