resolution input will have red text if the text format is invalid

This commit is contained in:
minjaesong
2023-04-09 15:27:59 +09:00
parent 2bb0a0f91c
commit acd215c7c6
2 changed files with 21 additions and 2 deletions

View File

@@ -78,12 +78,13 @@ class UIGraphicsControlPanel(remoCon: UIRemoCon?) : UICanvas() {
(it as UIItemTextLineInput).textCommitListener = { text ->
val text = text.lowercase()
if (text.matches(Regex("""[0-9]+x[0-9]+"""))) {
it.markAsNormal()
val width = text.substringBefore('x').toInt()
val height = text.substringAfter('x').toInt()
App.setConfig(keyWidth, width)
App.setConfig(keyHeight, height)
}
// else it.markAsInvalid
else it.markAsInvalid()
}
}
}

View File

@@ -150,6 +150,24 @@ class UIItemTextLineInput(
private val candidatesBackCol = TEXTINPUT_COL_BACKGROUND.cpy().mul(1f,1f,1f,1.5f)
private val candidateNumberStrWidth = App.fontGame.getWidth("8. ")
private var textStatus = 0 // 0: normal, 1: invalid, 2: disabled
private var textColours = arrayOf(
Color.WHITE,
Color(0xff8888ff.toInt()),
Color(0x888888ff.toInt())
)
fun markAsNormal() {
textStatus = 0
}
fun markAsInvalid() {
textStatus = 1
}
fun markAsDisabled() {
textStatus = 2
}
/** Event fired whenever a character is entered or pasted from clipboard */
var textCommitListener: (String) -> Unit = {}
@@ -489,7 +507,7 @@ class UIItemTextLineInput(
fbo.inAction(camera as OrthographicCamera, batch) { batch.inUse {
gdxClearAndEnableBlend(0f, 0f, 0f, 0f)
it.color = Color.WHITE
it.color = textColours[textStatus]
val text = if (textbuf.isEmpty()) currentPlaceholderText else textbuf
val tw = App.fontGameFBO.getWidth(text)