mirror of
https://github.com/yairm210/Unciv.git
synced 2025-01-03 21:40:31 +07:00
chore: Moved TranslatedSelectBox to its own file in ui.components - see #10031
This commit is contained in:
parent
d19281e0e6
commit
743c90d454
@ -2,7 +2,7 @@ package com.unciv.models.metadata
|
||||
|
||||
import com.badlogic.gdx.Gdx
|
||||
import com.unciv.json.json
|
||||
import com.unciv.ui.screens.newgamescreen.TranslatedSelectBox
|
||||
import com.unciv.ui.components.TranslatedSelectBox
|
||||
import com.unciv.ui.screens.pickerscreens.Github
|
||||
|
||||
|
||||
|
27
core/src/com/unciv/ui/components/TranslatedSelectBox.kt
Normal file
27
core/src/com/unciv/ui/components/TranslatedSelectBox.kt
Normal file
@ -0,0 +1,27 @@
|
||||
package com.unciv.ui.components
|
||||
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.SelectBox
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Skin
|
||||
import com.badlogic.gdx.utils.Array
|
||||
import com.unciv.models.translations.tr
|
||||
|
||||
class TranslatedSelectBox(values : Collection<String>, default:String, skin: Skin) : SelectBox<TranslatedSelectBox.TranslatedString>(skin) {
|
||||
class TranslatedString(val value: String) {
|
||||
val translation = value.tr()
|
||||
override fun toString() = translation
|
||||
// Equality contract needs to be implemented else TranslatedSelectBox.setSelected won't work properly
|
||||
override fun equals(other: Any?): Boolean = other is TranslatedString && value == other.value
|
||||
override fun hashCode() = value.hashCode()
|
||||
}
|
||||
|
||||
init {
|
||||
val array = Array<TranslatedString>()
|
||||
values.forEach { array.add(TranslatedString(it)) }
|
||||
items = array
|
||||
selected = array.firstOrNull { it.value == default } ?: array.first()
|
||||
}
|
||||
|
||||
fun setSelected(newValue: String) {
|
||||
selected = items.firstOrNull { it == TranslatedString(newValue) } ?: return
|
||||
}
|
||||
}
|
@ -23,7 +23,7 @@ import com.unciv.ui.components.extensions.toTextButton
|
||||
import com.unciv.ui.images.ImageGetter
|
||||
import com.unciv.ui.popups.ConfirmPopup
|
||||
import com.unciv.ui.screens.basescreen.BaseScreen
|
||||
import com.unciv.ui.screens.newgamescreen.TranslatedSelectBox
|
||||
import com.unciv.ui.components.TranslatedSelectBox
|
||||
import com.unciv.ui.screens.worldscreen.NotificationsScroll
|
||||
import com.unciv.utils.Display
|
||||
import com.unciv.utils.ScreenMode
|
||||
|
@ -23,7 +23,7 @@ import com.unciv.ui.components.input.onClick
|
||||
import com.unciv.ui.images.ImageGetter
|
||||
import com.unciv.ui.popups.ToastPopup
|
||||
import com.unciv.ui.screens.basescreen.BaseScreen
|
||||
import com.unciv.ui.screens.newgamescreen.TranslatedSelectBox
|
||||
import com.unciv.ui.components.TranslatedSelectBox
|
||||
import com.unciv.utils.Concurrency
|
||||
import com.unciv.utils.Log
|
||||
import com.unciv.utils.debug
|
||||
|
@ -10,7 +10,7 @@ import com.unciv.models.ruleset.RulesetCache
|
||||
import com.unciv.ui.screens.mapeditorscreen.MapEditorScreen
|
||||
import com.unciv.ui.screens.mapeditorscreen.TileInfoNormalizer
|
||||
import com.unciv.ui.screens.newgamescreen.ModCheckboxTable
|
||||
import com.unciv.ui.screens.newgamescreen.TranslatedSelectBox
|
||||
import com.unciv.ui.components.TranslatedSelectBox
|
||||
import com.unciv.ui.popups.Popup
|
||||
import com.unciv.ui.screens.basescreen.BaseScreen
|
||||
import com.unciv.ui.components.TabbedPager
|
||||
|
@ -17,7 +17,7 @@ import com.unciv.ui.components.input.onActivation
|
||||
import com.unciv.ui.components.input.onChange
|
||||
import com.unciv.ui.images.ImageGetter
|
||||
import com.unciv.ui.screens.basescreen.BaseScreen
|
||||
import com.unciv.ui.screens.newgamescreen.TranslatedSelectBox
|
||||
import com.unciv.ui.components.TranslatedSelectBox
|
||||
import kotlin.math.sign
|
||||
|
||||
/**
|
||||
|
@ -19,6 +19,7 @@ import com.unciv.ui.audio.MusicMood
|
||||
import com.unciv.ui.audio.MusicTrackChooserFlags
|
||||
import com.unciv.ui.components.AutoScrollPane
|
||||
import com.unciv.ui.components.ExpanderTab
|
||||
import com.unciv.ui.components.TranslatedSelectBox
|
||||
import com.unciv.ui.components.UncivSlider
|
||||
import com.unciv.ui.components.extensions.pad
|
||||
import com.unciv.ui.components.extensions.toCheckBox
|
||||
|
@ -2,6 +2,7 @@ package com.unciv.ui.screens.newgamescreen
|
||||
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Table
|
||||
import com.unciv.logic.map.MapGeneratedMainType
|
||||
import com.unciv.ui.components.TranslatedSelectBox
|
||||
import com.unciv.ui.components.extensions.toLabel
|
||||
import com.unciv.ui.components.input.onChange
|
||||
import com.unciv.ui.screens.basescreen.BaseScreen
|
||||
|
@ -15,6 +15,7 @@ import com.unciv.logic.map.MapSize
|
||||
import com.unciv.logic.map.MapSizeNew
|
||||
import com.unciv.logic.map.MapType
|
||||
import com.unciv.ui.components.ExpanderTab
|
||||
import com.unciv.ui.components.TranslatedSelectBox
|
||||
import com.unciv.ui.components.UncivSlider
|
||||
import com.unciv.ui.components.UncivTextField
|
||||
import com.unciv.ui.components.WrappableLabel
|
||||
|
@ -2,10 +2,7 @@ package com.unciv.ui.screens.newgamescreen
|
||||
|
||||
import com.badlogic.gdx.Gdx
|
||||
import com.badlogic.gdx.graphics.Color
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.SelectBox
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Skin
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.VerticalGroup
|
||||
import com.badlogic.gdx.utils.Array
|
||||
import com.unciv.Constants
|
||||
import com.unciv.UncivGame
|
||||
import com.unciv.logic.GameInfo
|
||||
@ -411,23 +408,3 @@ class NewGameScreen(
|
||||
override fun recreate(): BaseScreen = NewGameScreen(gameSetupInfo)
|
||||
}
|
||||
|
||||
class TranslatedSelectBox(values : Collection<String>, default:String, skin: Skin) : SelectBox<TranslatedSelectBox.TranslatedString>(skin) {
|
||||
class TranslatedString(val value: String) {
|
||||
val translation = value.tr()
|
||||
override fun toString() = translation
|
||||
// Equality contract needs to be implemented else TranslatedSelectBox.setSelected won't work properly
|
||||
override fun equals(other: Any?): Boolean = other is TranslatedString && value == other.value
|
||||
override fun hashCode() = value.hashCode()
|
||||
}
|
||||
|
||||
init {
|
||||
val array = Array<TranslatedString>()
|
||||
values.forEach { array.add(TranslatedString(it)) }
|
||||
items = array
|
||||
selected = array.firstOrNull { it.value == default } ?: array.first()
|
||||
}
|
||||
|
||||
fun setSelected(newValue: String) {
|
||||
selected = items.firstOrNull { it == TranslatedString(newValue) } ?: return
|
||||
}
|
||||
}
|
||||
|
@ -14,7 +14,7 @@ import com.unciv.ui.components.extensions.packIfNeeded
|
||||
import com.unciv.ui.components.input.OnClickListener
|
||||
import com.unciv.ui.images.ImageGetter
|
||||
import com.unciv.ui.screens.basescreen.BaseScreen
|
||||
import com.unciv.ui.screens.newgamescreen.TranslatedSelectBox
|
||||
import com.unciv.ui.components.TranslatedSelectBox
|
||||
import com.unciv.ui.screens.victoryscreen.VictoryScreenCivGroup.DefeatedPlayerStyle
|
||||
import com.unciv.ui.screens.worldscreen.WorldScreen
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user