blob: 219a64b20f931ed7503c11147444088e7b6864dd (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
------------------------------------------------------------------------------
-- |
-- Module: Xmobar.Draw.Types
-- Copyright: (c) 2022 jao
-- License: BSD3-style (see LICENSE)
--
-- Maintainer: mail@jao.io
-- Stability: unstable
-- Portability: portable
-- Created: Tue Sep 20, 2022 04:49
--
--
-- Type definitions for describing drawing operations
--
------------------------------------------------------------------------------
module Xmobar.Draw.Types where
import GHC.Word (Word32, Word64)
import Data.Map (Map)
import Xmobar.Config.Types (Config)
import Xmobar.Run.Actions (Action)
import Xmobar.Run.Parsers (Segment)
type Position = Double
type ActionPos = ([Action], Position, Position)
type Actions = [ActionPos]
type BitmapDrawer = Double -> Double -> String -> IO ()
data BitmapType = Mono Word64 | Poly
data Bitmap = Bitmap { bWidth :: Word32
, bHeight :: Word32
, bPixmap :: Word64
, bShapepixmap :: Maybe Word64
, bBitmaptype :: BitmapType
}
type BitmapCache = Map FilePath Bitmap
data DrawContext = DC { dcBitmapDrawer :: BitmapDrawer
, dcBitmapLookup :: String -> Maybe Bitmap
, dcConfig :: Config
, dcWidth :: Double
, dcHeight :: Double
, dcSegments :: [[Segment]]
}
|