Safe Haskell | None |
---|---|
Language | Haskell2010 |
Slideshows.
Synopsis
- type FontOverlayMap = EnumMap DisplayFont Overlay
- maxYofFontOverlayMap :: FontOverlayMap -> Int
- type KeyOrSlot = Either KM MenuSlot
- data MenuSlot
- natSlots :: [MenuSlot]
- data ButtonWidth = ButtonWidth {}
- type KYX = (KeyOrSlot, (PointUI, ButtonWidth))
- xytranslateKXY :: Int -> Int -> KYX -> KYX
- xtranslateKXY :: Int -> KYX -> KYX
- ytranslateKXY :: Int -> KYX -> KYX
- yrenumberKXY :: Int -> KYX -> KYX
- type OKX = (FontOverlayMap, [KYX])
- emptyOKX :: OKX
- xytranslateOKX :: Int -> Int -> OKX -> OKX
- sideBySideOKX :: Int -> Int -> OKX -> OKX -> OKX
- labDescOKX :: DisplayFont -> DisplayFont -> [(AttrString, AttrString, KeyOrSlot)] -> OKX
- data Slideshow
- emptySlideshow :: Slideshow
- unsnoc :: Slideshow -> Maybe (Slideshow, OKX)
- toSlideshow :: FontSetup -> Bool -> [OKX] -> Slideshow
- attrLinesToFontMap :: [(DisplayFont, [AttrLine])] -> FontOverlayMap
- menuToSlideshow :: OKX -> Slideshow
- wrapOKX :: DisplayFont -> Int -> Int -> Int -> [(KM, String)] -> (Overlay, [KYX])
- splitOverlay :: FontSetup -> Bool -> Int -> Int -> Int -> Report -> [KM] -> OKX -> Slideshow
- splitOKX :: FontSetup -> Bool -> Int -> Int -> Int -> AttrString -> [KM] -> OKX -> [OKX]
- highSlideshow :: FontSetup -> Bool -> Int -> Int -> ScoreTable -> Int -> Text -> TimeZone -> Slideshow
- keysOKX :: DisplayFont -> Int -> Int -> Int -> [KM] -> (Overlay, [KYX])
- showTable :: TimeZone -> Int -> ScoreTable -> Int -> Int -> [AttrLine]
- showNearbyScores :: TimeZone -> Int -> ScoreTable -> Int -> [[AttrLine]]
Documentation
type FontOverlayMap = EnumMap DisplayFont Overlay Source #
Instances
Enum MenuSlot Source # | |
Defined in Game.LambdaHack.Client.UI.Slideshow | |
Eq MenuSlot Source # | |
Ord MenuSlot Source # | |
Defined in Game.LambdaHack.Client.UI.Slideshow | |
Show MenuSlot Source # | |
Binary MenuSlot Source # | |
data ButtonWidth Source #
Width of on-screen button text, expressed in characters, and so UI (mono font) width is deduced from the used font.
Instances
Eq ButtonWidth Source # | |
Defined in Game.LambdaHack.Client.UI.Slideshow (==) :: ButtonWidth -> ButtonWidth -> Bool # (/=) :: ButtonWidth -> ButtonWidth -> Bool # | |
Show ButtonWidth Source # | |
Defined in Game.LambdaHack.Client.UI.Slideshow showsPrec :: Int -> ButtonWidth -> ShowS # show :: ButtonWidth -> String # showList :: [ButtonWidth] -> ShowS # |
type KYX = (KeyOrSlot, (PointUI, ButtonWidth)) Source #
A key or a menu slot at a given position on the screen.
type OKX = (FontOverlayMap, [KYX]) Source #
An Overlay of text with an associated list of keys or slots that activate when the specified screen position is pointed at. The list should be sorted wrt rows and then columns.
labDescOKX :: DisplayFont -> DisplayFont -> [(AttrString, AttrString, KeyOrSlot)] -> OKX Source #
A list of active screenfulls to be shown one after another. Each screenful has an independent numbering of rows and columns.
attrLinesToFontMap :: [(DisplayFont, [AttrLine])] -> FontOverlayMap Source #
This appends vertically a list of blurbs into a single font overlay map. Not to be used if some blurbs need to be places overlapping vertically, e.g., when the square font symbol needs to be in the same line as the start of the descritpion of the denoted item or when mono font buttons need to be after a prompt.
menuToSlideshow :: OKX -> Slideshow Source #
splitOverlay :: FontSetup -> Bool -> Int -> Int -> Int -> Report -> [KM] -> OKX -> Slideshow Source #
:: FontSetup | |
-> Bool | |
-> Int | width of the display area |
-> Int | height of the display area |
-> ScoreTable | current score table |
-> Int | position of the current score in the table |
-> Text | the name of the game mode |
-> TimeZone | the timezone where the game is run |
-> Slideshow |
Generate a slideshow with the current and previous scores.
Internal operations
showTable :: TimeZone -> Int -> ScoreTable -> Int -> Int -> [AttrLine] Source #
Show a screenful of the high scores table.
Parameter entries
is the number of (3-line) scores to be shown.
showNearbyScores :: TimeZone -> Int -> ScoreTable -> Int -> [[AttrLine]] Source #
Produce a couple of renderings of the high scores table.