Safe Haskell | None |
---|---|
Language | Haskell2010 |
MiniLight
Contents
Description
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
- module MiniLight.Loader
- runLightT :: (MonadIO m, MonadMask m) => LightT LightEnv m a -> m a
- runLightTWith :: (MonadIO m, MonadMask m) => LightConfig -> LightT LightEnv m a -> m a
- data LightConfig = LightConfig {}
- defLightConfig :: LightConfig
- data LoopState = LoopState {}
- data LoopConfig = LoopConfig {}
- defConfig :: LoopConfig
- runMainloop :: (HasLightEnv env, HasLightEnv env', HasLoopEnv env', HasLoaderEnv env', MonadIO m, MonadMask m) => (env -> LoopEnv -> LoaderEnv -> env') -> LoopConfig -> s -> (s -> LightT env' m s) -> LightT env m ()
- type MiniLoop = LightT LoopState IO
- runMiniloop :: LoopConfig -> s -> (s -> MiniLoop s) -> MiniLight ()
- runComponentEnv :: (HasLightEnv env, HasLoopEnv env) => Component -> (forall env'. (HasComponentEnv env', HasLoopEnv env', HasLightEnv env') => LightT env' m ()) -> LightT env m ()
- (@@!) :: (EventType et, HasLoaderEnv env, HasLoopEnv env, HasLightEnv env, MonadIO m) => Text -> et -> LightT env m ()
- quit :: (MonadIO m, HasLoopEnv env) => LightT env m ()
Documentation
module MiniLight.Light
module MiniLight.Event
module MiniLight.Figure
module MiniLight.Component
module MiniLight.Loader
runLightT :: (MonadIO m, MonadMask m) => LightT LightEnv m a -> m a Source #
Run a light monad with default configuration.
runLightT = runLightTWith defLightConfig
runLightTWith :: (MonadIO m, MonadMask m) => LightConfig -> LightT LightEnv m a -> m a Source #
Run a Light monad.
data LightConfig Source #
Custom configuration for LightT
defLightConfig :: LightConfig Source #
Default configuration for runLightT
The state in the mainloop.
Instances
HasLightEnv LoopState Source # | |
HasLoopEnv LoopState Source # | |
HasLoaderEnv LoopState Source # | |
data LoopConfig Source #
Use defConfig
for a default setting.
Constructors
LoopConfig | |
Fields
|
defConfig :: LoopConfig Source #
Default configurations for the mainloop. You need to set componentResolver
if you use a component.
Arguments
:: (HasLightEnv env, HasLightEnv env', HasLoopEnv env', HasLoaderEnv env', MonadIO m, MonadMask m) | |
=> (env -> LoopEnv -> LoaderEnv -> env') | Environment conversion |
-> LoopConfig | Loop config |
-> s | Initial state |
-> (s -> LightT env' 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
runMiniloop :: LoopConfig -> s -> (s -> MiniLoop s) -> MiniLight () Source #
Same as runMainloop
but fixing the type.
runComponentEnv :: (HasLightEnv env, HasLoopEnv env) => Component -> (forall env'. (HasComponentEnv env', HasLoopEnv env', HasLightEnv env') => LightT env' m ()) -> LightT env m () Source #
Run an action over a component.
(@@!) :: (EventType et, HasLoaderEnv env, HasLoopEnv env, HasLightEnv env, MonadIO m) => Text -> et -> LightT env m () Source #
Emit a signal with a loader-defined target name
(
!) :: EventType et => T.Text -> et -> MiniLoop ()
quit :: (MonadIO m, HasLoopEnv env) => LightT env m () Source #
Quit the mainloop and terminate the application.