From cd5daf9e48c87a1ba6baec6e3f4e742520fa1528 Mon Sep 17 00:00:00 2001 From: Jens Nolte <jens@nightmarestudio.de> Date: Sun, 8 Dec 2019 17:41:57 +0100 Subject: [PATCH] Move BlockText to BlockOutput.hs --- src/QBar/BlockOutput.hs | 39 +++++++++++++++++++++++++++++++++++++++ src/QBar/Core.hs | 32 -------------------------------- 2 files changed, 39 insertions(+), 32 deletions(-) create mode 100644 src/QBar/BlockOutput.hs diff --git a/src/QBar/BlockOutput.hs b/src/QBar/BlockOutput.hs new file mode 100644 index 0000000..23cc250 --- /dev/null +++ b/src/QBar/BlockOutput.hs @@ -0,0 +1,39 @@ +module BlockOutput where + +import qualified Data.Text.Lazy as T + +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] + +surroundWith :: (T.Text -> BlockText) -> T.Text -> T.Text -> BlockText -> BlockText +surroundWith format left right middle = (format left) <> middle <> (format right) diff --git a/src/QBar/Core.hs b/src/QBar/Core.hs index db2155d..9b25be1 100644 --- a/src/QBar/Core.hs +++ b/src/QBar/Core.hs @@ -85,38 +85,6 @@ 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