mirror of
https://github.com/yairm210/Unciv.git
synced 2025-01-05 21:11:35 +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.badlogic.gdx.Gdx
|
||||||
import com.unciv.json.json
|
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
|
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.images.ImageGetter
|
||||||
import com.unciv.ui.popups.ConfirmPopup
|
import com.unciv.ui.popups.ConfirmPopup
|
||||||
import com.unciv.ui.screens.basescreen.BaseScreen
|
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.ui.screens.worldscreen.NotificationsScroll
|
||||||
import com.unciv.utils.Display
|
import com.unciv.utils.Display
|
||||||
import com.unciv.utils.ScreenMode
|
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.images.ImageGetter
|
||||||
import com.unciv.ui.popups.ToastPopup
|
import com.unciv.ui.popups.ToastPopup
|
||||||
import com.unciv.ui.screens.basescreen.BaseScreen
|
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.Concurrency
|
||||||
import com.unciv.utils.Log
|
import com.unciv.utils.Log
|
||||||
import com.unciv.utils.debug
|
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.MapEditorScreen
|
||||||
import com.unciv.ui.screens.mapeditorscreen.TileInfoNormalizer
|
import com.unciv.ui.screens.mapeditorscreen.TileInfoNormalizer
|
||||||
import com.unciv.ui.screens.newgamescreen.ModCheckboxTable
|
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.popups.Popup
|
||||||
import com.unciv.ui.screens.basescreen.BaseScreen
|
import com.unciv.ui.screens.basescreen.BaseScreen
|
||||||
import com.unciv.ui.components.TabbedPager
|
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.components.input.onChange
|
||||||
import com.unciv.ui.images.ImageGetter
|
import com.unciv.ui.images.ImageGetter
|
||||||
import com.unciv.ui.screens.basescreen.BaseScreen
|
import com.unciv.ui.screens.basescreen.BaseScreen
|
||||||
import com.unciv.ui.screens.newgamescreen.TranslatedSelectBox
|
import com.unciv.ui.components.TranslatedSelectBox
|
||||||
import kotlin.math.sign
|
import kotlin.math.sign
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -19,6 +19,7 @@ import com.unciv.ui.audio.MusicMood
|
|||||||
import com.unciv.ui.audio.MusicTrackChooserFlags
|
import com.unciv.ui.audio.MusicTrackChooserFlags
|
||||||
import com.unciv.ui.components.AutoScrollPane
|
import com.unciv.ui.components.AutoScrollPane
|
||||||
import com.unciv.ui.components.ExpanderTab
|
import com.unciv.ui.components.ExpanderTab
|
||||||
|
import com.unciv.ui.components.TranslatedSelectBox
|
||||||
import com.unciv.ui.components.UncivSlider
|
import com.unciv.ui.components.UncivSlider
|
||||||
import com.unciv.ui.components.extensions.pad
|
import com.unciv.ui.components.extensions.pad
|
||||||
import com.unciv.ui.components.extensions.toCheckBox
|
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.badlogic.gdx.scenes.scene2d.ui.Table
|
||||||
import com.unciv.logic.map.MapGeneratedMainType
|
import com.unciv.logic.map.MapGeneratedMainType
|
||||||
|
import com.unciv.ui.components.TranslatedSelectBox
|
||||||
import com.unciv.ui.components.extensions.toLabel
|
import com.unciv.ui.components.extensions.toLabel
|
||||||
import com.unciv.ui.components.input.onChange
|
import com.unciv.ui.components.input.onChange
|
||||||
import com.unciv.ui.screens.basescreen.BaseScreen
|
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.MapSizeNew
|
||||||
import com.unciv.logic.map.MapType
|
import com.unciv.logic.map.MapType
|
||||||
import com.unciv.ui.components.ExpanderTab
|
import com.unciv.ui.components.ExpanderTab
|
||||||
|
import com.unciv.ui.components.TranslatedSelectBox
|
||||||
import com.unciv.ui.components.UncivSlider
|
import com.unciv.ui.components.UncivSlider
|
||||||
import com.unciv.ui.components.UncivTextField
|
import com.unciv.ui.components.UncivTextField
|
||||||
import com.unciv.ui.components.WrappableLabel
|
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.Gdx
|
||||||
import com.badlogic.gdx.graphics.Color
|
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.scenes.scene2d.ui.VerticalGroup
|
||||||
import com.badlogic.gdx.utils.Array
|
|
||||||
import com.unciv.Constants
|
import com.unciv.Constants
|
||||||
import com.unciv.UncivGame
|
import com.unciv.UncivGame
|
||||||
import com.unciv.logic.GameInfo
|
import com.unciv.logic.GameInfo
|
||||||
@ -411,23 +408,3 @@ class NewGameScreen(
|
|||||||
override fun recreate(): BaseScreen = NewGameScreen(gameSetupInfo)
|
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.components.input.OnClickListener
|
||||||
import com.unciv.ui.images.ImageGetter
|
import com.unciv.ui.images.ImageGetter
|
||||||
import com.unciv.ui.screens.basescreen.BaseScreen
|
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.victoryscreen.VictoryScreenCivGroup.DefeatedPlayerStyle
|
||||||
import com.unciv.ui.screens.worldscreen.WorldScreen
|
import com.unciv.ui.screens.worldscreen.WorldScreen
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user