Portability | non-portable |
---|---|
Stability | experimental |
Maintainer | Fumiaki Kinsohita <fumiexcel@gmail.com> |
Safe Haskell | None |
Abstract structures for descripting user interfaces
- data UI m a
- tick :: MonadFree (UI n) m => m ()
- bracket :: MonadFree (UI n) m => F (UI n) a -> m a
- quit :: MonadFree (UI n) m => m Void
- embedIO :: MonadFree (UI n) m => IO a -> m a
- liftUI :: (Functor n, MonadFree (UI n) m) => n a -> m a
- _LiftUI :: Applicative f => (m a -> f (m a)) -> UI m a -> f (UI m a)
- class Picture2D p where
- class Picture2D p => Figure2D p where
- class Keyboard t where
- keyChar :: Char -> t Bool
- keySpecial :: SpecialKey -> t Bool
- class Mouse t where
- mousePosition :: t (V2 Float)
- mouseWheel :: t Int
- mouseButtonL :: t Bool
- mouseButtonM :: t Bool
- mouseButtonR :: t Bool
- class FromFinalizer m where
- fromFinalizer :: FinalizerT IO a -> m a
- data SpecialKey
- = KeySpace
- | KeyEsc
- | KeyLeftShift
- | KeyRightShift
- | KeyLeftControl
- | KeyRightControl
- | KeyUp
- | KeyDown
- | KeyLeft
- | KeyRight
- | KeyTab
- | KeyEnter
- | KeyBackspace
- | KeyInsert
- | KeyDelete
- | KeyPageUp
- | KeyPageDown
- | KeyHome
- | KeyEnd
- | KeyF1
- | KeyF2
- | KeyF3
- | KeyF4
- | KeyF5
- | KeyF6
- | KeyF7
- | KeyF8
- | KeyF9
- | KeyF10
- | KeyF11
- | KeyF12
- | KeyPad0
- | KeyPad1
- | KeyPad2
- | KeyPad3
- | KeyPad4
- | KeyPad5
- | KeyPad6
- | KeyPad7
- | KeyPad8
- | KeyPad9
- | KeyPadDivide
- | KeyPadMultiply
- | KeyPadSubtract
- | KeyPadAdd
- | KeyPadDecimal
- | KeyPadEqual
- | KeyPadEnter
Types
A functor enriches given functor with control structure.
Basic operations
bracket :: MonadFree (UI n) m => F (UI n) a -> m aSource
Run a Game monad in a Game monad. resources (e.g. pictures) will be released when inner computation is done.
_LiftUI :: Applicative f => (m a -> f (m a)) -> UI m a -> f (UI m a)Source
Classes
The class of types that can be regarded as a kind of picture.
fromBitmap :: Bitmap -> p ()Source
rotate :: Float -> p a -> p aSource
Counterclockwise, degrees
scale :: V2 Float -> p a -> p aSource
Picture2D Picture | |
Picture2D GUIBase | |
(Picture2D m, Monad m) => Picture2D (IdentityT m) | |
(Picture2D m, Functor m) => Picture2D (F m) | |
(Picture2D m, Functor m) => Picture2D (Free m) | |
(Picture2D m, Monad m) => Picture2D (ListT m) | |
(Picture2D m, Monad m) => Picture2D (MaybeT m) | |
Picture2D m => Picture2D (UI m) | |
(Picture2D m, Monad m) => Picture2D (ContT r m) | |
(Picture2D m, Monad m, Error e) => Picture2D (ErrorT e m) | |
(Picture2D m, Monad m) => Picture2D (ReaderT r m) | |
(Picture2D m, Monad m) => Picture2D (StateT s m) | |
(Picture2D m, Monad m) => Picture2D (StateT s m) | |
(Picture2D m, Monad m, Monoid w) => Picture2D (WriterT w m) | |
(Picture2D m, Monad m, Monoid w) => Picture2D (WriterT w m) | |
(Picture2D m, Monad m, Monoid w) => Picture2D (RWST r w s m) | |
(Picture2D m, Monad m, Monoid w) => Picture2D (RWST r w s m) |
class Picture2D p => Figure2D p whereSource
line :: [V2 Float] -> p ()Source
polygon :: [V2 Float] -> p ()Source
polygonOutline :: [V2 Float] -> p ()Source
circleOutline :: Float -> p ()Source
Figure2D Picture | |
Figure2D GUIBase | |
(Figure2D m, Monad m) => Figure2D (IdentityT m) | |
(Figure2D m, Functor m) => Figure2D (F m) | |
(Figure2D m, Functor m) => Figure2D (Free m) | |
(Figure2D m, Monad m) => Figure2D (ListT m) | |
(Figure2D m, Monad m) => Figure2D (MaybeT m) | |
Figure2D m => Figure2D (UI m) | |
(Figure2D m, Monad m) => Figure2D (ContT r m) | |
(Figure2D m, Monad m, Error e) => Figure2D (ErrorT e m) | |
(Figure2D m, Monad m) => Figure2D (ReaderT r m) | |
(Figure2D m, Monad m) => Figure2D (StateT s m) | |
(Figure2D m, Monad m) => Figure2D (StateT s m) | |
(Figure2D m, Monad m, Monoid w) => Figure2D (WriterT w m) | |
(Figure2D m, Monad m, Monoid w) => Figure2D (WriterT w m) | |
(Figure2D m, Monad m, Monoid w) => Figure2D (RWST r w s m) | |
(Figure2D m, Monad m, Monoid w) => Figure2D (RWST r w s m) |
The class of types that can handle inputs of the keyboard.
keyChar :: Char -> t BoolSource
keySpecial :: SpecialKey -> t BoolSource
Keyboard GUIInput | |
Keyboard GUIBase | |
(Keyboard m, Monad m) => Keyboard (IdentityT m) | |
Keyboard m => Keyboard (Ap m) | |
(Keyboard m, Functor m) => Keyboard (F m) | |
(Keyboard m, Functor m) => Keyboard (Free m) | |
(Keyboard m, Monad m) => Keyboard (ListT m) | |
(Keyboard m, Monad m) => Keyboard (MaybeT m) | |
Keyboard m => Keyboard (UI m) | |
(Keyboard m, Monad m) => Keyboard (ContT r m) | |
(Keyboard m, Monad m, Error e) => Keyboard (ErrorT e m) | |
(Keyboard m, Monad m) => Keyboard (ReaderT s m) | |
(Keyboard m, Monad m) => Keyboard (StateT s m) | |
(Keyboard m, Monad m) => Keyboard (StateT s m) | |
(Keyboard m, Monad m, Monoid w) => Keyboard (WriterT w m) | |
(Keyboard m, Monad m, Monoid w) => Keyboard (WriterT w m) | |
(Keyboard m, Monad m, Monoid w) => Keyboard (RWST r w s m) | |
(Keyboard m, Monad m, Monoid w) => Keyboard (RWST r w s m) |
The class of types that can handle inputs of the mouse.
mousePosition :: t (V2 Float)Source
mouseWheel :: t IntSource
mouseButtonL :: t BoolSource
mouseButtonM :: t BoolSource
mouseButtonR :: t BoolSource
Mouse GUIInput | |
Mouse GUIBase | |
(Mouse m, Monad m) => Mouse (IdentityT m) | |
Mouse m => Mouse (Ap m) | |
(Mouse m, Functor m) => Mouse (F m) | |
(Mouse m, Functor m) => Mouse (Free m) | |
(Mouse m, Monad m) => Mouse (ListT m) | |
(Mouse m, Monad m) => Mouse (MaybeT m) | |
Mouse m => Mouse (UI m) | |
(Mouse m, Monad m) => Mouse (ContT r m) | |
(Mouse m, Monad m, Error e) => Mouse (ErrorT e m) | |
(Mouse m, Monad m) => Mouse (ReaderT r m) | |
(Mouse m, Monad m) => Mouse (StateT s m) | |
(Mouse m, Monad m) => Mouse (StateT s m) | |
(Mouse m, Monad m, Monoid w) => Mouse (WriterT w m) | |
(Mouse m, Monad m, Monoid w) => Mouse (WriterT w m) | |
(Mouse m, Monad m, Monoid w) => Mouse (RWST r w s m) | |
(Mouse m, Monad m, Monoid w) => Mouse (RWST r w s m) |
class FromFinalizer m whereSource
fromFinalizer :: FinalizerT IO a -> m aSource
FromFinalizer Picture | |
FromFinalizer GUIBase | |
(FromFinalizer m, Monad m) => FromFinalizer (IdentityT m) | |
(FromFinalizer m, Functor m) => FromFinalizer (F m) | |
(FromFinalizer m, Functor m) => FromFinalizer (Free m) | |
(FromFinalizer m, Monad m) => FromFinalizer (ListT m) | |
(FromFinalizer m, Monad m) => FromFinalizer (MaybeT m) | |
FromFinalizer m => FromFinalizer (UI m) | |
(FromFinalizer m, Monad m) => FromFinalizer (ContT r m) | |
(FromFinalizer m, Monad m, Error e) => FromFinalizer (ErrorT e m) | |
(FromFinalizer m, Monad m) => FromFinalizer (StateT s m) | |
(FromFinalizer m, Monad m) => FromFinalizer (StateT s m) | |
(FromFinalizer m, Monad m, Monoid w) => FromFinalizer (WriterT w m) | |
(FromFinalizer m, Monad m, Monoid w) => FromFinalizer (WriterT w m) | |
(FromFinalizer m, Monad m, Monoid w) => FromFinalizer (RWST r w s m) | |
(FromFinalizer m, Monad m, Monoid w) => FromFinalizer (RWST r w s m) |
data SpecialKey Source