action listener on textbutton list

This commit is contained in:
minjaesong
2017-07-20 22:25:40 +09:00
parent 48b8923434
commit cb8d3fd8b9
13 changed files with 215 additions and 53 deletions

View File

@@ -110,6 +110,11 @@ abstract class UICanvas {
//uiItems.forEach { it.keyT }
}
open fun resize(width: Int, height: Int) {
this.width = width
this.height = height
}
companion object {
const val OPENCLOSE_GENERIC = 0.2f

View File

@@ -114,8 +114,6 @@ abstract class UIItem(var parentUI: UICanvas) { // do not replace parentUI to UI
return false
}
open fun touchDown(screenX: Int, screenY: Int, pointer: Int, button: Int): Boolean {
println("trsaneirsatneioarsteniotrsaneioarstineoarstneio")
var actionDone = false
if (touchDownListener != null) {
@@ -123,7 +121,9 @@ abstract class UIItem(var parentUI: UICanvas) { // do not replace parentUI to UI
actionDone = true
}
if (!clickOnceListenerFired && mouseUp) {
if (clickOnceListener != null && !clickOnceListenerFired && mouseUp) {
println("arstineotarsneio")
clickOnceListener!!.invoke(relativeMouseX, relativeMouseY, button)
actionDone = true
}

View File

@@ -53,4 +53,32 @@ open class UIItemImageButton(
override fun dispose() {
image.texture.dispose()
}
override fun keyDown(keycode: Int): Boolean {
return super.keyDown(keycode)
}
override fun keyUp(keycode: Int): Boolean {
return super.keyUp(keycode)
}
override fun mouseMoved(screenX: Int, screenY: Int): Boolean {
return super.mouseMoved(screenX, screenY)
}
override fun touchDragged(screenX: Int, screenY: Int, pointer: Int): Boolean {
return super.touchDragged(screenX, screenY, pointer)
}
override fun touchDown(screenX: Int, screenY: Int, pointer: Int, button: Int): Boolean {
return super.touchDown(screenX, screenY, pointer, button)
}
override fun touchUp(screenX: Int, screenY: Int, pointer: Int, button: Int): Boolean {
return super.touchUp(screenX, screenY, pointer, button)
}
override fun scrolled(amount: Int): Boolean {
return super.scrolled(amount)
}
}

View File

@@ -77,4 +77,32 @@ open class UIItemTextButton(
override fun dispose() {
}
override fun keyDown(keycode: Int): Boolean {
return super.keyDown(keycode)
}
override fun keyUp(keycode: Int): Boolean {
return super.keyUp(keycode)
}
override fun mouseMoved(screenX: Int, screenY: Int): Boolean {
return super.mouseMoved(screenX, screenY)
}
override fun touchDragged(screenX: Int, screenY: Int, pointer: Int): Boolean {
return super.touchDragged(screenX, screenY, pointer)
}
override fun touchDown(screenX: Int, screenY: Int, pointer: Int, button: Int): Boolean {
return super.touchDown(screenX, screenY, pointer, button)
}
override fun touchUp(screenX: Int, screenY: Int, pointer: Int, button: Int): Boolean {
return super.touchUp(screenX, screenY, pointer, button)
}
override fun scrolled(amount: Int): Boolean {
return super.scrolled(amount)
}
}

View File

@@ -6,6 +6,7 @@ import com.badlogic.gdx.graphics.glutils.ShapeRenderer
import net.torvald.terrarum.BlendMode
import net.torvald.terrarum.fillRect
import net.torvald.terrarum.gameactors.Second
import net.torvald.terrarum.gameactors.ai.toInt
import net.torvald.terrarum.gameactors.roundInt
import net.torvald.terrarum.inUse
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
@@ -175,4 +176,32 @@ class UIItemTextButtonList(
override fun dispose() {
iconSpriteSheet?.dispose()
}
override fun keyDown(keycode: Int): Boolean {
return super.keyDown(keycode) || buttons.map { it.keyDown(keycode).toInt() }.sum() != 0
}
override fun keyUp(keycode: Int): Boolean {
return super.keyUp(keycode) || buttons.map { it.keyUp(keycode).toInt() }.sum() != 0
}
override fun mouseMoved(screenX: Int, screenY: Int): Boolean {
return super.mouseMoved(screenX, screenY) || buttons.map { it.mouseMoved(screenX, screenY).toInt() }.sum() != 0
}
override fun touchDragged(screenX: Int, screenY: Int, pointer: Int): Boolean {
return super.touchDragged(screenX, screenY, pointer) || buttons.map { it.touchDragged(screenX, screenY, pointer).toInt() }.sum() != 0
}
override fun touchDown(screenX: Int, screenY: Int, pointer: Int, button: Int): Boolean {
return super.touchDown(screenX, screenY, pointer, button) || buttons.map { it.touchDown(screenX, screenY, pointer, button).toInt() }.sum() != 0
}
override fun touchUp(screenX: Int, screenY: Int, pointer: Int, button: Int): Boolean {
return super.touchUp(screenX, screenY, pointer, button) || buttons.map { it.touchUp(screenX, screenY, pointer, button).toInt() }.sum() != 0
}
override fun scrolled(amount: Int): Boolean {
return super.scrolled(amount) || buttons.map { it.scrolled(amount).toInt() }.sum() != 0
}
}

View File

@@ -16,7 +16,7 @@ class UIStartMenu : UICanvas() {
"MENU_LABEL_EXIT"
)
val menubarOffY = Terrarum.HEIGHT - 180 - 40 * menuLabels.size.plus(1)
val menubarOffY: Int; get() = Terrarum.HEIGHT / 2 - (Terrarum.fontGame.lineHeight * 1.5).toInt()
}
@@ -45,7 +45,7 @@ class UIStartMenu : UICanvas() {
// attach listeners
menubar.buttons[3].clickOnceListener = { _, _, _ -> System.exit(0) }
menubar.buttons[menuLabels.indexOf("MENU_LABEL_EXIT")].clickOnceListener = { _, _, _ -> System.exit(0) }
}
override fun update(delta: Float) {