Refactor, try to limit dependencies

This commit is contained in:
2022-07-28 00:59:56 +01:00
parent 8aa5c17ab9
commit 160560af5f
418 changed files with 15104 additions and 13342 deletions
+13 -10
View File
@@ -1,20 +1,23 @@
{-# OPTIONS -fno-warn-missing-signatures #-}
module Dodge.Menu.OptionType where
import Dodge.Data
import Dodge.Menu.PushPop
import Control.Lens
import Dodge.Data.Universe
import Dodge.Menu.PushPop
makeBoolOption lns t = Toggle
(return . Just . (uvConfig . lns #%~ not))
(\u -> Right (t , show (u ^# uvConfig . lns)))
makeBoolOption lns t =
Toggle
(return . Just . (uvConfig . lns #%~ not))
(\u -> Right (t, show (u ^# uvConfig . lns)))
makeEnumOption lns str sideeff = Toggle
(\u -> Just <$> sideeff (u & uvConfig . lns #%~ cycleEnum) )
(\u -> Right (str , show (u ^# uvConfig . lns)) )
makeEnumOption lns str sideeff =
Toggle
(\u -> Just <$> sideeff (u & uvConfig . lns #%~ cycleEnum))
(\u -> Right (str, show (u ^# uvConfig . lns)))
makeSubmenuOption submenu t = Toggle (pushScreen submenu) (const t)
cycleEnum :: (Eq a, Enum a,Bounded a) => a -> a
cycleEnum x
cycleEnum :: (Eq a, Enum a, Bounded a) => a -> a
cycleEnum x
| x == maxBound = minBound
| otherwise = succ x
+4 -2
View File
@@ -1,14 +1,16 @@
module Dodge.Menu.PushPop where
import Dodge.Data
import Dodge.Data.Universe
import LensHelp
popScreen' :: Universe -> Maybe Universe
popScreen' = Just . (menuLayers %~ tail)
popScreen :: Universe -> IO (Maybe Universe)
popScreen = return . popScreen'
pushScreen' :: ScreenLayer -> Universe -> Maybe Universe
pushScreen' ml = Just . (menuLayers .:~ ml)
pushScreen :: ScreenLayer -> Universe -> IO (Maybe Universe)
pushScreen ml = return . pushScreen' ml