Karya, built on Mon Jul 24 11:39:07 PDT 2017 (patch 33511aca01257b76b88de7c7a2763b7a965c084e)

Safe HaskellNone

Ui.UiMsg

Description

Receive events from the C++ UI layer, package them up nicely, and forward them on to the event handling mechanism (the responder).

Synopsis

Documentation

data UiMsg Source #

Technically not all UiMsgs have a Context, but it's easier to give everyone a Context since it can be all Nothing anyway.

Constructors

UiMsg Context Msg 

data Context Source #

Constructors

Context 

Fields

data Track Source #

Whether the context is on the track itself or the skeleton display above the track.

There are a few cases where there is a track but no position and it *doesn't* mean SkeletonDisplay, namely UpdateTrackWidth and UpdateInput. However, those cases are handled in a specific place while Track goes on to become a mouse Modifier, so I don't mind if the former is a little awkward for the benefit of the latter.

data Msg Source #

Corresponds to UiMsg::MsgType enum.

Each UiUpdate has a ViewId which is separate from the focus. This is because they can happen to an unfocused view, e.g. on OS X UpdateViewResize and UpdateClose.

Constructors

MsgEvent MsgEvent 
UiUpdate ViewId UiUpdate 
UpdateScreenSize Int Int Rect.Rect

Give screen dimensions: screen number, total screens, rect. This is a UiUpdate but it doesn't have a ViewId.

Instances

Eq Msg # 

Methods

(==) :: Msg -> Msg -> Bool #

(/=) :: Msg -> Msg -> Bool #

Ord Msg # 

Methods

compare :: Msg -> Msg -> Ordering #

(<) :: Msg -> Msg -> Bool #

(<=) :: Msg -> Msg -> Bool #

(>) :: Msg -> Msg -> Bool #

(>=) :: Msg -> Msg -> Bool #

max :: Msg -> Msg -> Msg #

min :: Msg -> Msg -> Msg #

Show Msg # 

Methods

showsPrec :: Int -> Msg -> ShowS #

show :: Msg -> String #

showList :: [Msg] -> ShowS #

data UiUpdate Source #

These are generated when the UI is manipulated directly and makes changes to its own state. They are like Ui.Update except in the opposide direction: fltk telling haskell what changes occurred.

Constructors

UpdateInput !(Maybe Text)

Nothing means the text didn't change, but a msg is being sent anyway since that's the only way I know the floating edit input has closed.

UpdateTrackScroll !Types.Width 
UpdateTimeScroll !ScoreTime 
UpdateViewResize !Rect.Rect !Block.Padding

Size of entire block window, and padding.

UpdateTrackWidth !Types.Width 
UpdateClose

The given view was closed.

data MsgEvent Source #

MsgType.msg_event, which is a fltk event.

Constructors

Mouse 

Fields

Kbd KbdState [Key.Modifier] Key.Key (Maybe Char)

The Char is the text that this key wants to enter, if any. They Key is just the keycap, without taking shift into account.

AuxMsg AuxMsg 
Unhandled Int 

data AuxMsg Source #

Most of these are unused, but are included here for completeness.

Instances