fudgets-0.18.3: Contrib/KeyGfx.hs
module KeyGfx(keyGfx) where
import Fudgets
import Data.Char(toUpper)
keyGfx gfx k = hboxD' 12 [g gfx,keyD (keyCap k)]
where
keyD c = spacedD (hAlignS aRight `compS` hMarginS 0 3) $
hboxD' 0 [diamondD,spacedD alignKeysS $ g c]
diamondD = spacedD vCenterS $ g $ FlexD 10 False False d
d (Rect p (Point w h)) = [FillPolygon Convex CoordModeOrigin
[p+pP w2 0,p+pP w h2,p+pP w2 h,p+pP 0 h2]]
where w2 = w `div` 2
h2 = h `div` 2
alignKeysS = minSizeS (pP 12 10) `compS` hCenterS
-- This is a hack to make the keybord shortcuts align nicely in a column.
-- It assumes that no character is wider than 12 pixels.
--ctrlkey = argFlag "menuctrlkey" False
keyCap k =
case k of
[c] -> [toUpper c]
"period" -> "."
"comma" -> ","
"plus" -> "+"
"minus" -> "-"
"slash" -> "/"
"asterisk" -> "*"
"apostrophe" -> "'"
"question" -> "?"
"less" -> "<"
"greater" -> ">"
_ -> k -- ??