Allow to change menu options with rclick, move towards shader experiment
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
module Dodge.Menu.Option where
|
||||
|
||||
import Control.Applicative
|
||||
--import Dodge.ScodeToChar
|
||||
import Dodge.Default.SelectionList
|
||||
import Data.Maybe
|
||||
@@ -61,14 +62,15 @@ makeOptionsSelectionList ::
|
||||
Universe ->
|
||||
[MenuOption] ->
|
||||
PositionedMenuOption ->
|
||||
SelectionList (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)]
|
||||
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)
|
||||
@@ -115,7 +117,8 @@ optionValueOffset u mo = case _moString mo u of
|
||||
MODStringOption s _ -> length s
|
||||
_ -> 0
|
||||
|
||||
menuOptionToSelectionItem :: Universe -> Int -> MenuOption -> SelectionItem (Universe -> Universe)
|
||||
menuOptionToSelectionItem :: Universe -> Int -> MenuOption
|
||||
-> SelectionItem (Universe -> Universe,Universe -> Universe)
|
||||
menuOptionToSelectionItem w padAmount mo =
|
||||
SelectionItem
|
||||
{ _siPictures = [optionText]
|
||||
@@ -124,13 +127,14 @@ menuOptionToSelectionItem w padAmount mo =
|
||||
--, _siWidth = length optionText
|
||||
, _siColor = thecol
|
||||
, _siOffX = 0
|
||||
, _siPayload = f
|
||||
, _siPayload = (f,g)
|
||||
}
|
||||
where
|
||||
isselectable = case _moString mo w of
|
||||
MODBlockedString{} -> False
|
||||
_ -> True
|
||||
f = fromMaybe id $ mo ^? moEff
|
||||
f = fromMaybe id $ mo ^? moEff <|> mo ^? moEff1
|
||||
g = fromMaybe id $ mo ^? moEff2
|
||||
thecol = case _moString mo w of
|
||||
MODBlockedString{} -> greyN 0.5
|
||||
_ -> white
|
||||
|
||||
Reference in New Issue
Block a user