| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Data.Component.Basic
Description
The package provides the basics for all components in the library.
A component should have the followings (those can be omitted):
- position:
{x: int, y: int} - size:
{width: int, height: int} - color:
int[4] - font:
{family: string, bold: bool, italic: bool, size: int}
Synopsis
- data Config = Config {}
- class HasConfig c where
- defConfig :: Config
- wrapConfig :: (Config -> a -> Parser r) -> (Object -> Parser a) -> Value -> Parser r
- areaRectangle :: Config -> Rectangle Int
- data Signal where
- MousePressed :: V2 Int -> Signal
- MouseReleased :: V2 Int -> Signal
- MouseOver :: V2 Int -> Signal
- SetVisibility :: Bool -> Signal
- wrapFigures :: Config -> [Figure] -> [Figure]
- wrapSignal :: (HasLightEnv env, HasLoopEnv env, HasComponentEnv env, MonadIO m, ComponentUnit c) => Lens' c Config -> (Event -> c -> LightT env m c) -> Event -> c -> LightT env m c
- emitBasicSignal :: (HasLightEnv env, HasLoopEnv env, HasComponentEnv env, MonadIO m) => Event -> Config -> LightT env m ()
- handleBasicSignal :: (HasLightEnv env, HasLoopEnv env, HasComponentEnv env, MonadIO m) => Event -> Config -> LightT env m Config
- contains :: (Ord a, Num a) => Rectangle a -> V2 a -> Bool
Documentation
class HasConfig c where Source #
Minimal complete definition
Methods
config :: Lens' c Config Source #
_position :: Lens' c (V2 Int) Source #
wrapConfig :: (Config -> a -> Parser r) -> (Object -> Parser a) -> Value -> Parser r Source #
This wrapper function is useful when you write your component config parser.
Basic signal type.
Constructors
| MousePressed | |
| MouseReleased | |
| MouseOver | |
| SetVisibility :: Bool -> Signal | |
Instances
| EventType Signal Source # | |
Defined in Data.Component.Basic | |
wrapFigures :: Config -> [Figure] -> [Figure] Source #
This automatically applies basic configuration such as: position.
Arguments
| :: (HasLightEnv env, HasLoopEnv env, HasComponentEnv env, MonadIO m, ComponentUnit c) | |
| => Lens' c Config | lens to |
| -> (Event -> c -> LightT env m c) | custom |
| -> Event -> c -> LightT env m c |
This wrapper function is useful when you write your own onSignal component.
emitBasicSignal :: (HasLightEnv env, HasLoopEnv env, HasComponentEnv env, MonadIO m) => Event -> Config -> LightT env m () Source #
Basic signaling function. Signals are emitted towards the source component.
handleBasicSignal :: (HasLightEnv env, HasLoopEnv env, HasComponentEnv env, MonadIO m) => Event -> Config -> LightT env m Config Source #
handle basic signals