Refactor window size, update selection cursor on new screen

This commit is contained in:
2023-03-25 09:27:27 +00:00
parent 20c05be23f
commit ea0c942887
57 changed files with 346 additions and 310 deletions
+1
View File
@@ -14,4 +14,5 @@ loadingScreen str = OptionScreen
, _scSelectionList = defaultSelectionList
, _scAvailableLines = 0
, _scListDisplayParams = optionListDisplayParams
, _scDisplayTime = 0
}
+19 -14
View File
@@ -1,14 +1,11 @@
module Dodge.Menu.Option where
import Control.Applicative
--import Dodge.ScodeToChar
import Dodge.Default.SelectionList
import Data.Maybe
--import Dodge.WindowLayout
import Dodge.Data.CardinalPoint
import Dodge.Data.SelectionList
import Dodge.Data.Universe
import Dodge.Default.SelectionList
import Dodge.SelectionList
import LensHelp
import Padding
@@ -36,6 +33,7 @@ initializeOptionMenu title ops pmo u =
, _scSelectionList = makeOptionsSelectionList 10 (Just 0) u ops pmo
, _scAvailableLines = getAvailableListLines optionListDisplayParams (u ^. uvConfig)
, _scListDisplayParams = optionListDisplayParams
, _scDisplayTime = 0
}
-- BO = Bottom Option
@@ -62,15 +60,19 @@ makeOptionsSelectionList ::
Universe ->
[MenuOption] ->
PositionedMenuOption ->
SelectionList (Universe -> Universe,Universe -> Universe)
SelectionList (Universe -> Universe, Universe -> Universe)
makeOptionsSelectionList maxlines mselpos u mos pmo =
defaultSelectionList
{ _slItems = optionsToSelections maxlines u mos pmo
, _slSelPos = mselpos
}
optionsToSelections :: Int -> Universe -> [MenuOption] -> PositionedMenuOption
-> [SelectionItem (Universe -> Universe,Universe -> Universe)]
optionsToSelections ::
Int ->
Universe ->
[MenuOption] ->
PositionedMenuOption ->
[SelectionItem (Universe -> Universe, Universe -> Universe)]
optionsToSelections maxlines u allops pmo = case pmo of
NoPositionedMenuOption -> map (menuOptionToSelectionItem u maxOptionLength) ops
TopMenuOption mo -> map (menuOptionToSelectionItem u maxOptionLength) (mo : ops)
@@ -106,8 +108,8 @@ colStrToSelItem (col, str) =
{ _siPictures = [str]
, _siHeight = 1
, _siIsSelectable = True
--, _siWidth = length str
, _siColor = col
, --, _siWidth = length str
_siColor = col
, _siOffX = 0
, _siPayload = id
}
@@ -117,17 +119,20 @@ optionValueOffset u mo = case _moString mo u of
MODStringOption s _ -> length s
_ -> 0
menuOptionToSelectionItem :: Universe -> Int -> MenuOption
-> SelectionItem (Universe -> Universe,Universe -> Universe)
menuOptionToSelectionItem ::
Universe ->
Int ->
MenuOption ->
SelectionItem (Universe -> Universe, Universe -> Universe)
menuOptionToSelectionItem w padAmount mo =
SelectionItem
{ _siPictures = [optionText]
, _siHeight = 1
, _siIsSelectable = isselectable
--, _siWidth = length optionText
, _siColor = thecol
, --, _siWidth = length optionText
_siColor = thecol
, _siOffX = 0
, _siPayload = (f,g)
, _siPayload = (f, g)
}
where
isselectable = case _moString mo w of