This commit is contained in:
2023-05-10 20:32:26 +01:00
parent 312f342e09
commit 5f238a65d0
9 changed files with 96 additions and 92 deletions
+1 -1
View File
@@ -9,7 +9,7 @@ loadingScreen str = OptionScreen
{ _scTitle = str
, _scOptions = []
, _scOffset = 0
, _scPositionedMenuOption = NoPositionedMenuOption
, _scPositionedMenuOption = NoEscapeMenuOption
, _scOptionFlag = LoadingScreen
, _scSelectionList = defaultSelectionList
, _scAvailableLines = 0
+7 -7
View File
@@ -11,7 +11,7 @@ import LensHelp
import Padding
import Picture.Base
initializeOptionMenu :: String -> [MenuOption] -> PositionedMenuOption -> Universe -> ScreenLayer
initializeOptionMenu :: String -> [MenuOption] -> EscapeMenuOption -> Universe -> ScreenLayer
initializeOptionMenu title ops pmo u =
OptionScreen
{ _scTitle = title
@@ -29,7 +29,7 @@ initializeOptionMenu title ops pmo u =
initializeOptionMenuBO :: String -> [MenuOption] -> String -> (Universe -> Universe) -> Universe -> ScreenLayer
initializeOptionMenuBO title ops str eff = initializeOptionMenu title ops pmo
where
pmo = BottomMenuOption $ (Toggle eff . const . MODString) str
pmo = BottomEscapeMenuOption $ (Toggle eff . const . MODString) str
refreshOptionsSelectionList :: Universe -> Universe
refreshOptionsSelectionList u = u & uvScreenLayers . ix 0 %~ f
@@ -48,7 +48,7 @@ makeOptionsSelectionList ::
Maybe Int ->
Universe ->
[MenuOption] ->
PositionedMenuOption ->
EscapeMenuOption ->
SelectionList (Universe -> Universe, Universe -> Universe)
makeOptionsSelectionList maxlines mselpos u mos pmo =
defaultSelectionList
@@ -60,12 +60,12 @@ optionsToSelections ::
Int ->
Universe ->
[MenuOption] ->
PositionedMenuOption ->
EscapeMenuOption ->
[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)
BottomMenuOption mo -> map (menuOptionToSelectionItem u maxOptionLength) (ops ++ [mo])
NoEscapeMenuOption -> map (menuOptionToSelectionItem u maxOptionLength) ops
TopEscapeMenuOption mo -> map (menuOptionToSelectionItem u maxOptionLength) (mo : ops)
BottomEscapeMenuOption mo -> map (menuOptionToSelectionItem u maxOptionLength) (ops ++ [mo])
where
offset = fromMaybe 0 $ u ^? uvScreenLayers . _head . scOffset
ops
+1
View File
@@ -16,6 +16,7 @@ makeEnumOption lns str sideeff =
(\u -> sideeff (u & uvConfig . lns #%~ cycleDownEnum))
(\u -> MODStringOption str (show (u ^# uvConfig . lns)))
makeSubmenuOption :: (Universe -> ScreenLayer) -> MenuOptionDisplay -> MenuOption
makeSubmenuOption submenu t = Toggle (pushScreen submenu) (const t)
cycleEnum :: (Eq a, Enum a, Bounded a) => a -> a