summaryrefslogtreecommitdiffhomepage
path: root/src/Xmobar
diff options
context:
space:
mode:
authorjao <jao@gnu.org>2022-09-13 05:44:29 +0100
committerjao <jao@gnu.org>2022-09-13 05:44:29 +0100
commit2e9a7612751000bd57b81100c99ff0ba06cafa38 (patch)
tree6df18a36c60a86e48261b7ca4e61c3bfaef6023b /src/Xmobar
parent0c13ab7001fea76c8ef06b681b8463471399754b (diff)
downloadxmobar-2e9a7612751000bd57b81100c99ff0ba06cafa38.tar.gz
xmobar-2e9a7612751000bd57b81100c99ff0ba06cafa38.tar.bz2
'Core' fonts not used anymore (utf8 is always required)
Diffstat (limited to 'src/Xmobar')
-rw-r--r--src/Xmobar/X11/Text.hs33
-rw-r--r--src/Xmobar/X11/XlibDraw.hs32
2 files changed, 15 insertions, 50 deletions
diff --git a/src/Xmobar/X11/Text.hs b/src/Xmobar/X11/Text.hs
index 8de2e7d..6da96fa 100644
--- a/src/Xmobar/X11/Text.hs
+++ b/src/Xmobar/X11/Text.hs
@@ -3,7 +3,7 @@
-----------------------------------------------------------------------------
-- |
-- Module : Xmobar.X11.Text
--- Copyright : (C) 2011, 2012, 2013, 2014, 2015, 2017, 2018, 2022 Jose Antonio Ortega Ruiz
+-- Copyright : (C) 2011-2015, 2017, 2018, 2022 Jose Antonio Ortega Ruiz
-- (C) 2007 Andrea Rossato
-- License : BSD3
--
@@ -14,10 +14,8 @@
-----------------------------------------------------------------------------
module Xmobar.X11.Text
- ( XFont(..)
+ ( XFont
, initFont
- , initCoreFont
- , initUtf8Font
, textExtents
, textWidth
) where
@@ -26,34 +24,19 @@ import Control.Exception (SomeException, handle)
import Foreign
import Graphics.X11.Xlib hiding (textExtents, textWidth)
-import qualified Graphics.X11.Xlib as Xlib (textExtents, textWidth)
import Graphics.X11.Xlib.Extras
import System.Mem.Weak ( addFinalizer )
-data XFont = Core FontStruct
- | Utf8 FontSet
+type XFont = FontSet
--- | When initFont gets a font name that starts with 'xft:' it switchs
--- to the Xft backend Example: 'xft:Sans-10'
initFont :: Display -> String -> IO XFont
-initFont d s = fmap Utf8 $ initUtf8Font d s
+initFont = initUtf8Font
miscFixedFont :: String
miscFixedFont = "-misc-fixed-*-*-*-*-*-*-*-*-*-*-*-*"
-- | Given a fontname returns the font structure. If the font name is
-- not valid the default font will be loaded and returned.
-initCoreFont :: Display -> String -> IO FontStruct
-initCoreFont d s = do
- f <- handle fallBack getIt
- addFinalizer f (freeFont d f)
- return f
- where getIt = loadQueryFont d s
- fallBack :: SomeException -> IO FontStruct
- fallBack = const $ loadQueryFont d miscFixedFont
-
--- | Given a fontname returns the font structure. If the font name is
--- not valid the default font will be loaded and returned.
initUtf8Font :: Display -> String -> IO FontSet
initUtf8Font d s = do
(_,_,f) <- handle fallBack getIt
@@ -64,14 +47,10 @@ initUtf8Font d s = do
fallBack = const $ createFontSet d miscFixedFont
textWidth :: Display -> XFont -> String -> IO Int
-textWidth _ (Utf8 fs) s = return $ fromIntegral $ wcTextEscapement fs s
-textWidth _ (Core fs) s = return $ fromIntegral $ Xlib.textWidth fs s
+textWidth _ fs s = return $ fromIntegral $ wcTextEscapement fs s
textExtents :: XFont -> String -> IO (Int32,Int32)
-textExtents (Core fs) s = do
- let (_,a,d,_) = Xlib.textExtents fs s
- return (a,d)
-textExtents (Utf8 fs) s = do
+textExtents fs s = do
let (_,rl) = wcTextExtents fs s
ascent = fromIntegral $ negate (rect_y rl)
descent = fromIntegral $ rect_height rl + fromIntegral (rect_y rl)
diff --git a/src/Xmobar/X11/XlibDraw.hs b/src/Xmobar/X11/XlibDraw.hs
index 9a005e8..d1432f8 100644
--- a/src/Xmobar/X11/XlibDraw.hs
+++ b/src/Xmobar/X11/XlibDraw.hs
@@ -81,31 +81,17 @@ verticalOffset ht (Icon _) _ _ conf
| otherwise = return $ fi (ht `div` 2) - 1
verticalOffset _ (Hspace _) _ voffs _ = return $ fi voffs
-printString :: Display
- -> Drawable
- -> XFont
- -> GC
- -> String
- -> String
- -> Position
- -> Position
- -> Position
- -> Position
- -> String
- -> Int
+printString :: Display -> Drawable -> XFont -> GC
+ -> String -> String
+ -> Position -> Position -> Position -> Position
+ -> String -> Int
-> IO ()
-printString d p (Core fs) gc fc bc x y _ _ s a = do
- setFont d gc $ fontFromFontStruct fs
- withColors d [fc, bc] $ \[fc', bc'] -> do
- setForeground d gc fc'
- when (a == 255) (setBackground d gc bc')
- drawImageString d p gc x y s
-printString d p (Utf8 fs) gc fc bc x y _ _ s a =
- withColors d [fc, bc] $ \[fc', bc'] -> do
- setForeground d gc fc'
- when (a == 255) (setBackground d gc bc')
- liftIO $ wcDrawImageString d p fs gc x y s
+printString d p fs gc fc bc x y _ _ s a =
+ withColors d [fc, bc] $ \[fc', bc'] -> do
+ setForeground d gc fc'
+ when (a == 255) (setBackground d gc bc')
+ liftIO $ wcDrawImageString d p fs gc x y s
-- | An easy way to print the stuff we need to print
printStrings :: Drawable