~alcinnz/fontconfig-pure

ref: dfce3326f7f5b2367df56675e92742b3d5f7fbc3 fontconfig-pure/lib/Graphics/Text/Font/Choose/Weight.hs -rw-r--r-- 1.5 KiB
dfce3326 — Adrian Cochrane Test @font-face parsing. 4 months ago
                                                                                
18b29da8 Adrian Cochrane
dbefdc06 Adrian Cochrane
1abac8a1 Adrian Cochrane
18b29da8 Adrian Cochrane
94860b2e Adrian Cochrane
18b29da8 Adrian Cochrane
94860b2e Adrian Cochrane
18b29da8 Adrian Cochrane
94860b2e Adrian Cochrane
c71ba262 Adrian Cochrane
94860b2e Adrian Cochrane
c71ba262 Adrian Cochrane
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{-# LANGUAGE CApiFFI #-}
-- | Convert between OpenType & FontConfig weight scales.
module Graphics.Text.Font.Choose.Weight(weightFromOpenTypeDouble,
        weightToOpenTypeDouble, weightFromOpenType, weightToOpenType) where

-- | Returns an double value to use with FC_WEIGHT, from an double in the 1..1000 range,
-- resembling the numbers from OpenType specification's OS2 usWeight numbers,
-- which are also similar to CSS font-weight numbers.
-- If input is negative, zero, or greater than 1000, returns -1.
-- This function linearly interpolates between various FC_WEIGHT_* constants.
-- As such, the returned value does not necessarily match any of the predefined constants.
foreign import capi "fontconfig/fontconfig.h FcWeightFromOpenTypeDouble"
    weightFromOpenTypeDouble :: Double -> Double
-- | the inverse of FcWeightFromOpenType. If the input is less than FC_WEIGHT_THIN
-- or greater than FC_WEIGHT_EXTRABLACK, returns -1.
-- Otherwise returns a number in the range 1 to 1000.
foreign import capi "fontconfig/fontconfig.h FcWeightToOpenTypeDouble"
    weightToOpenTypeDouble :: Double -> Double
-- | Like weightFromOpenTypeDouble but with integer arguments. Use the other function instead.
weightFromOpenType :: Int -> Int
weightFromOpenType = fromEnum . weightFromOpenTypeDouble . toEnum
-- | Like weightToOpenTypeDouble but with integer arguments. Use the other function instead.
weightToOpenType :: Int -> Int
weightToOpenType = fromEnum . weightToOpenTypeDouble . toEnum