Refactor window size, update selection cursor on new screen
This commit is contained in:
@@ -14,4 +14,5 @@ loadingScreen str = OptionScreen
|
||||
, _scSelectionList = defaultSelectionList
|
||||
, _scAvailableLines = 0
|
||||
, _scListDisplayParams = optionListDisplayParams
|
||||
, _scDisplayTime = 0
|
||||
}
|
||||
|
||||
+19
-14
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user