gloss-1.9.3.1: Painless 2D vector graphics, animations and simulations.

Safe Haskell | None
Language | Haskell98

Graphics.Gloss.Data.ViewState

Synopsis

- data Command
  - = CRestore
  - | CTranslate
  - | CRotate
  - | CBumpZoomOut
  - | CBumpZoomIn
  - | CBumpLeft
  - | CBumpRight
  - | CBumpUp
  - | CBumpDown
  - | CBumpClockwise
  - | CBumpCClockwise
- type CommandConfig = [(Command, [(Key, Maybe Modifiers)])]
- defaultCommandConfig :: CommandConfig
- data ViewState = ViewState {
  - viewStateCommands :: !(Map Command [(Key, Maybe Modifiers)])
  - viewStateScaleStep :: !Float
  - viewStateRotateFactor :: !Float
  - viewStateTranslateMark :: !(Maybe (Float, Float))
  - viewStateRotateMark :: !(Maybe (Float, Float))
  - viewStateViewPort :: ViewPort
  }
- viewStateInit :: ViewState
- viewStateInitWithConfig :: CommandConfig -> ViewState
- updateViewStateWithEvent :: Event -> ViewState -> ViewState
- updateViewStateWithEventMaybe :: Event -> ViewState -> Maybe ViewState

# Documentation

data Command Source

The commands suported by the view controller.

Constructors

CRestore |
CTranslate |
CRotate |
CBumpZoomOut |
CBumpZoomIn |
CBumpLeft |
CBumpRight |
CBumpUp |
CBumpDown |
CBumpClockwise |
CBumpCClockwise |

Instances

Eq Command Source |
Ord Command Source |
Show Command Source |

type CommandConfig = [(Command, [(Key, Maybe Modifiers)])] Source

defaultCommandConfig :: CommandConfig Source

The default commands. Left click pans, wheel zooms, right click rotates, "r" key resets.

data ViewState Source

State for controlling the viewport. These are used by the viewport control component.

Constructors

ViewState |

Fields

viewStateCommands :: !(Map Command [(Key, Maybe Modifiers)])

  The command list for the viewport controller. These can be safely overwridden at any time by deleting or adding entries to the list. Entries at the front of the list take precedence.

viewStateScaleStep :: !Float

  How much to scale the world by for each step of the mouse wheel.

viewStateRotateFactor :: !Float

  How many degrees to rotate the world by for each pixel of x motion.

viewStateTranslateMark :: !(Maybe (Float, Float))

  During viewport translation, where the mouse was clicked on the window.

viewStateRotateMark :: !(Maybe (Float, Float))

  During viewport rotation, where the mouse was clicked on the window

viewStateViewPort :: ViewPort

viewStateInit :: ViewState Source

The initial view state.

viewStateInitWithConfig :: CommandConfig -> ViewState Source

Initial view state, with user defined config.

updateViewStateWithEvent :: Event -> ViewState -> ViewState Source

Apply an event to a `ViewState`.

updateViewStateWithEventMaybe :: Event -> ViewState -> Maybe ViewState Source

Like `updateViewStateWithEvent`, but returns `Nothing` if no update was needed.