Safe Haskell | None |
---|---|
Language | Haskell2010 |
MiniLight module exports all basic concepts and oprations except for concrete components.
Synopsis
- module MiniLight.Light
- module MiniLight.Event
- module MiniLight.Figure
- module MiniLight.Component
- runLightT :: (MonadIO m, MonadMask m) => LightT LightEnv m a -> m a
- data LoopConfig = LoopConfig {
- watchKeys :: Maybe [Scancode]
- appConfigFile :: Maybe FilePath
- componentResolver :: Text -> Value -> MiniLight Component
- additionalComponents :: [Component]
- defConfig :: LoopConfig
- data LoopEnv env = LoopState {}
- type MiniLoop = LightT (LoopEnv LightEnv) IO
- runMainloop :: (HasLightEnv env, HasLightEnv loop, HasLoopEnv loop, MonadIO m, MonadMask m) => (LoopEnv env -> loop) -> LoopConfig -> s -> (s -> LightT loop m s) -> LightT env m ()
Documentation
module MiniLight.Light
module MiniLight.Event
module MiniLight.Figure
module MiniLight.Component
data LoopConfig Source #
Use defConfig
for a default setting.
LoopConfig | |
|
defConfig :: LoopConfig Source #
Default configurations for the mainloop. You need to set componentResolver
if you use a component.
LoopEnv value would be passed to user side in a mainloop.
Instances
HasLoopEnv (LoopEnv env) Source # | |
HasLightEnv env => HasLightEnv (LoopEnv env) Source # | |
type MiniLoop = LightT (LoopEnv LightEnv) IO Source #
Type synonym to the minimal type of the mainloop
:: (HasLightEnv env, HasLightEnv loop, HasLoopEnv loop, MonadIO m, MonadMask m) | |
=> (LoopEnv env -> loop) | LoopState conversion function (you can pass |
-> LoopConfig | loop config |
-> s | initial state |
-> (s -> LightT loop m s) | a function called in every loop |
-> LightT env m () |
Run a mainloop. In a mainloop, components and events are managed.
Components in a mainloop: draw ~ update ~ (user-defined function) ~ event handling
Orphan instances
Hashable Scancode Source # | |
hashWithSalt :: Int -> Scancode -> Int | |
HasLoopEnv env => HasLoopEnv (Text, env) Source # | |
HasLightEnv env => HasLightEnv (Text, env) Source # | |
HasComponentEnv (Text, env) Source # | |