Move DiplomacyScreen close button to top right (#11225)

This commit is contained in:
SomeTroglodyte 2024-03-03 19:03:04 +01:00 committed by GitHub
parent 69c047790e
commit 61972cd50e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -18,7 +18,7 @@ import com.unciv.ui.audio.MusicMood
import com.unciv.ui.audio.MusicTrackChooserFlags import com.unciv.ui.audio.MusicTrackChooserFlags
import com.unciv.ui.components.extensions.addSeparator import com.unciv.ui.components.extensions.addSeparator
import com.unciv.ui.components.extensions.disable import com.unciv.ui.components.extensions.disable
import com.unciv.ui.components.extensions.setFontSize import com.unciv.ui.components.extensions.getCloseButton
import com.unciv.ui.components.extensions.surroundWithCircle import com.unciv.ui.components.extensions.surroundWithCircle
import com.unciv.ui.components.extensions.toLabel import com.unciv.ui.components.extensions.toLabel
import com.unciv.ui.components.extensions.toTextButton import com.unciv.ui.components.extensions.toTextButton
@ -52,6 +52,9 @@ class DiplomacyScreen(
companion object { companion object {
private const val nationIconSize = 100f private const val nationIconSize = 100f
private const val nationIconPad = 10f private const val nationIconPad = 10f
private const val closeButtonSize = 50f
/** distance of the floating close button from the top and right */
private const val closeButtonPad = 10f
} }
private val highlightColor: Color = clearColor.cpy().lerp(skin.getColor("color"), 0.333f) private val highlightColor: Color = clearColor.cpy().lerp(skin.getColor("color"), 0.333f)
@ -68,7 +71,7 @@ class DiplomacyScreen(
background = skinStrings.getUiBackground("DiplomacyScreen/RightSide", tintColor = highlightColor) background = skinStrings.getUiBackground("DiplomacyScreen/RightSide", tintColor = highlightColor)
} }
private val closeButton = Constants.close.toTextButton() private val closeButton = getCloseButton(closeButtonSize) { game.popScreen() }
internal fun isNotPlayersTurn() = !GUI.isAllowedChangeState() internal fun isNotPlayersTurn() = !GUI.isAllowedChangeState()
@ -81,11 +84,6 @@ class DiplomacyScreen(
splitPane.setFillParent(true) splitPane.setFillParent(true)
stage.addActor(splitPane) stage.addActor(splitPane)
closeButton.onActivation { UncivGame.Current.popScreen() }
closeButton.keyShortcuts.add(KeyCharAndCode.BACK)
closeButton.label.setFontSize(Constants.headingFontSize)
closeButton.labelCell.pad(10f)
closeButton.pack()
positionCloseButton() positionCloseButton()
stage.addActor(closeButton) // This must come after the split pane so it will be above, that the button will be clickable stage.addActor(closeButton) // This must come after the split pane so it will be above, that the button will be clickable
@ -101,12 +99,12 @@ class DiplomacyScreen(
} }
private fun positionCloseButton() { private fun positionCloseButton() {
closeButton.setPosition(stage.width * 0.1f, stage.height - 10f, Align.top) closeButton.setPosition(stage.width - closeButtonPad, stage.height - closeButtonPad, Align.topRight)
} }
internal fun updateLeftSideTable(selectCiv: Civilization?) { internal fun updateLeftSideTable(selectCiv: Civilization?) {
leftSideTable.clear() leftSideTable.clear()
leftSideTable.add().padBottom(70f).row() // room so the close button does not cover the first leftSideTable.add().padBottom(closeButtonPad).row() // no default pad, and make distance of first civ to top same as for the close button
var selectCivY = 0f var selectCivY = 0f