Refactor: ExtraKeysView now use CombinedSequence
This commit is contained in:
parent
5f8f165a5b
commit
4f6696ead6
@ -49,8 +49,8 @@ class OldExtraKeysConfigureFile(configureFile: File) : NeoConfigureFile(configur
|
||||
visitor.onEnterContext(index.toString())
|
||||
visitor.getCurrentContext()
|
||||
.defineAttribute(NeoExtraKey.EKS_META_WITH_ENTER, NeoLangValue(button.withEnter))
|
||||
.defineAttribute(NeoExtraKey.EKS_META_DISPLAY, NeoLangValue(button.buttonText!!))
|
||||
.defineAttribute(NeoExtraKey.EKS_META_CODE, NeoLangValue(button.buttonText!!))
|
||||
.defineAttribute(NeoExtraKey.EKS_META_DISPLAY, NeoLangValue(button.buttonKeys!!))
|
||||
.defineAttribute(NeoExtraKey.EKS_META_CODE, NeoLangValue(button.buttonKeys!!))
|
||||
visitor.onExitContext()
|
||||
}
|
||||
}
|
||||
|
@ -8,6 +8,7 @@ import android.widget.Button
|
||||
|
||||
import io.neoterm.R
|
||||
import io.neoterm.frontend.terminal.TerminalView
|
||||
import io.neoterm.frontend.terminal.eks.combine.CombinedSequence
|
||||
|
||||
/**
|
||||
* @author kiva
|
||||
@ -15,11 +16,11 @@ import io.neoterm.frontend.terminal.TerminalView
|
||||
|
||||
abstract class IExtraButton : View.OnClickListener {
|
||||
|
||||
var buttonText: String? = null
|
||||
var buttonKeys: CombinedSequence? = null
|
||||
var displayText: String? = null
|
||||
|
||||
override fun toString(): String {
|
||||
return "${this.javaClass.simpleName} { display: $displayText, code: $buttonText }"
|
||||
return "${this.javaClass.simpleName} { display: $displayText, code: ${buttonKeys?.keys} }"
|
||||
}
|
||||
|
||||
abstract override fun onClick(view: View)
|
||||
@ -35,12 +36,17 @@ abstract class IExtraButton : View.OnClickListener {
|
||||
val KEY_PAGE_DOWN = "PgDn"
|
||||
val KEY_HOME = "Home"
|
||||
val KEY_END = "End"
|
||||
val KEY_ARROW_UP_TEXT = "Up"
|
||||
val KEY_ARROW_DOWN_TEXT = "Down"
|
||||
val KEY_ARROW_LEFT_TEXT = "Left"
|
||||
val KEY_ARROW_RIGHT_TEXT = "Right"
|
||||
val KEY_SHOW_ALL_BUTTONS = "···"
|
||||
val KEY_TOGGLE_IME = "Im"
|
||||
|
||||
val KEY_ARROW_UP = "▲"
|
||||
val KEY_ARROW_DOWN = "▼"
|
||||
val KEY_ARROW_LEFT = "◀"
|
||||
val KEY_ARROW_RIGHT = "▶"
|
||||
val KEY_SHOW_ALL_BUTTONS = "···"
|
||||
val KEY_TOGGLE_IME = "Im"
|
||||
|
||||
var NORMAL_TEXT_COLOR = 0xFFFFFFFF.toInt()
|
||||
var SELECTED_TEXT_COLOR = 0xFF80DEEA.toInt()
|
||||
@ -55,6 +61,10 @@ abstract class IExtraButton : View.OnClickListener {
|
||||
KEY_ARROW_LEFT -> keyCode = KeyEvent.KEYCODE_DPAD_LEFT
|
||||
KEY_ARROW_RIGHT -> keyCode = KeyEvent.KEYCODE_DPAD_RIGHT
|
||||
KEY_ARROW_DOWN -> keyCode = KeyEvent.KEYCODE_DPAD_DOWN
|
||||
KEY_ARROW_UP_TEXT -> keyCode = KeyEvent.KEYCODE_DPAD_UP
|
||||
KEY_ARROW_LEFT_TEXT -> keyCode = KeyEvent.KEYCODE_DPAD_LEFT
|
||||
KEY_ARROW_RIGHT_TEXT -> keyCode = KeyEvent.KEYCODE_DPAD_RIGHT
|
||||
KEY_ARROW_DOWN_TEXT -> keyCode = KeyEvent.KEYCODE_DPAD_DOWN
|
||||
KEY_PAGE_UP -> keyCode = KeyEvent.KEYCODE_PAGE_UP
|
||||
KEY_PAGE_DOWN -> keyCode = KeyEvent.KEYCODE_PAGE_DOWN
|
||||
KEY_HOME -> keyCode = KeyEvent.KEYCODE_MOVE_HOME
|
||||
|
@ -30,7 +30,7 @@ open class StatedControlButton @JvmOverloads constructor(text: String, var initS
|
||||
return outerButton
|
||||
}
|
||||
|
||||
fun setStatus(status: Boolean?) {
|
||||
private fun setStatus(status: Boolean?) {
|
||||
val button = toggleButton
|
||||
if (button != null && status != null) {
|
||||
button.isChecked = status
|
||||
|
@ -4,22 +4,22 @@ import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
import android.view.View
|
||||
import android.widget.Button
|
||||
import io.neoterm.frontend.terminal.eks.combine.CombinedSequence
|
||||
|
||||
/**
|
||||
* @author kiva
|
||||
*/
|
||||
|
||||
open class TextButton @JvmOverloads constructor(text: String, withEnter: Boolean = false) : IExtraButton() {
|
||||
var withEnter = false
|
||||
|
||||
open class TextButton constructor(text: String, val withEnter: Boolean = false) : IExtraButton() {
|
||||
init {
|
||||
this.buttonText = text
|
||||
this.buttonKeys = CombinedSequence.solveString(text)
|
||||
this.displayText = text
|
||||
this.withEnter = withEnter
|
||||
}
|
||||
|
||||
override fun onClick(view: View) {
|
||||
sendKey(view, buttonText!!)
|
||||
buttonKeys!!.keys.forEach {
|
||||
sendKey(view, it)
|
||||
}
|
||||
if (withEnter) {
|
||||
sendKey(view, "\n")
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
package io.neoterm.component.eks.combine
|
||||
package io.neoterm.frontend.terminal.eks.combine
|
||||
|
||||
/**
|
||||
* <Ctrl> <Alt> <Delete>
|
||||
@ -16,7 +16,7 @@ class CombinedSequence private constructor() {
|
||||
keyString.split(' ').forEach {
|
||||
val key = if (it.startsWith('<') && it.endsWith('>')) {
|
||||
// is a sequence
|
||||
it.substring(1, it.length - 1).toUpperCase()
|
||||
it.substring(1, it.length - 1)
|
||||
} else {
|
||||
// is a normal string
|
||||
it
|
@ -1,6 +1,6 @@
|
||||
package io.neoterm
|
||||
|
||||
import io.neoterm.component.eks.combine.CombinedSequence
|
||||
import io.neoterm.frontend.terminal.eks.combine.CombinedSequence
|
||||
import org.junit.Test
|
||||
|
||||
/**
|
||||
|
Loading…
x
Reference in New Issue
Block a user