From 9c22ec4f379c5c4f47ec8691e3c5569eea30f808 Mon Sep 17 00:00:00 2001 From: Jens Nolte <jens@nightmarestudio.de> Date: Sun, 8 Dec 2019 05:28:18 +0100 Subject: [PATCH] Add types for new internal text format --- src/QBar/Core.hs | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/src/QBar/Core.hs b/src/QBar/Core.hs index fd0ae51..db2155d 100644 --- a/src/QBar/Core.hs +++ b/src/QBar/Core.hs @@ -85,7 +85,38 @@ data Bar = Bar { data BarUpdateChannel = BarUpdateChannel (IO ()) type BarUpdateEvent = Event.Event +newtype BlockText = BlockText [BlockTextSegment] +instance Semigroup BlockText where + (BlockText a) <> (BlockText b) = BlockText (a <> b) +instance Monoid BlockText where + mempty = BlockText [] +data BlockTextSegment = BlockTextSegment { + active :: Bool, + importance :: Importance, + text :: T.Text + } + | PangoTextSegment T.Text + +type Importance = Float + +mkText :: Bool -> Importance -> T.Text -> BlockText +mkText active importance text = BlockText [BlockTextSegment { text, active, importance }] + +activeImportantText :: Importance -> T.Text -> BlockText +activeImportantText = mkText True + +importantText :: Importance -> T.Text -> BlockText +importantText = mkText False + +activeText :: T.Text -> BlockText +activeText = mkText True 0 + +normalText :: T.Text -> BlockText +normalText = mkText False 0 + +pangoText :: T.Text -> BlockText +pangoText pango = BlockText [PangoTextSegment pango] defaultColor :: T.Text defaultColor = "#969896" -- GitLab