diff options
author | Will Thompson <will@willthompson.co.uk> | 2015-02-13 11:40:23 +0000 |
---|---|---|
committer | Will Thompson <will@willthompson.co.uk> | 2015-02-13 11:40:23 +0000 |
commit | 35f13bc4019bb7b9a49a6149d16b7a906dad568b (patch) | |
tree | cf70b935fed8aa289690372d28b082be3880c98e | |
parent | 58019b7a31a4a111755cce7a15b6b1ae9f76438c (diff) |
Rename Markup → Marquee
This:
import Graphics.UI.Gtk hiding (Markup)
is a warning (which is apparently fatal in Travis CI-land) because new
gtk2hs doesn't export Markup (a synonym for String) from there. It's
only necessary because my own Markup shadowed pango's Markup, so let's
rename it.
Also, remove the 'show' calls: apparently Past Me added a typeclass to
coerce String or Text to String, so I can use that.
-rw-r--r-- | Bustle/Diagram.hs | 18 | ||||
-rw-r--r-- | Bustle/Marquee.hs (renamed from Bustle/Markup.hs) | 52 | ||||
-rw-r--r-- | Bustle/StatisticsPane.hs | 34 | ||||
-rw-r--r-- | Bustle/UI.hs | 3 | ||||
-rw-r--r-- | Bustle/UI/DetailsView.hs | 10 | ||||
-rw-r--r-- | Bustle/UI/Recorder.hs | 3 | ||||
-rw-r--r-- | bustle.cabal | 2 |
7 files changed, 63 insertions, 59 deletions
diff --git a/Bustle/Diagram.hs b/Bustle/Diagram.hs index bc6a794..f9a96b7 100644 --- a/Bustle/Diagram.hs +++ b/Bustle/Diagram.hs @@ -58,8 +58,8 @@ import Graphics.UI.Gtk.Cairo (cairoCreateContext, showLayout) import Graphics.Rendering.Pango.Layout import Graphics.Rendering.Pango.Font -import qualified Bustle.Markup as Markup -import Bustle.Markup (Markup) +import qualified Bustle.Marquee as Marquee +import Bustle.Marquee (Marquee) import Bustle.Util import Bustle.Types (ObjectPath, InterfaceName, MemberName) @@ -430,7 +430,7 @@ drawArc cx cy dx dy x1 y1 x2 y2 cap = saved $ do stroke setSourceRGB 0 0 0 - l <- mkLayout (Markup.escape cap) EllipsizeNone AlignLeft + l <- mkLayout (Marquee.escape cap) EllipsizeNone AlignLeft (PangoRectangle _ _ textWidth _, _) <- liftIO $ layoutGetExtents l let tx = min x2 dx + abs (x2 - dx) / 2 moveTo (if x1 > cx then tx - textWidth else tx) (y2 - 5) @@ -445,7 +445,7 @@ font = unsafePerformIO $ do {-# NOINLINE font #-} mkLayout :: (MonadIO m) - => Markup -> EllipsizeMode -> LayoutAlignment + => Marquee -> EllipsizeMode -> LayoutAlignment -> m PangoLayout mkLayout s e a = liftIO $ do ctx <- cairoCreateContext Nothing @@ -456,7 +456,7 @@ mkLayout s e a = liftIO $ do -- which we need to disambiguate between Text and String. Old versions were -- .. -> IO String -- so go with that. - layoutSetMarkup layout (Markup.unMarkup s) :: IO String + layoutSetMarkup layout (Marquee.toPangoMarkup s) :: IO String layoutSetFontDescription layout (Just font) layoutSetEllipsize layout e layoutSetAlignment layout a @@ -470,7 +470,7 @@ withWidth m w = do drawHeader :: [String] -> Double -> Double -> Render () drawHeader names x y = forM_ (zip [0..] names) $ \(i, name) -> do - l <- mkLayout (Markup.escape name) EllipsizeEnd AlignCenter `withWidth` columnWidth + l <- mkLayout (Marquee.escape name) EllipsizeEnd AlignCenter `withWidth` columnWidth moveTo (x - (columnWidth / 2)) (y + i * h) showLayout l where h = 10 @@ -491,14 +491,14 @@ drawMember p i m isReturn x y = do moveTo (x - memberWidth / 2) y' showLayout l - path = (if isReturn then id else Markup.b) $ Markup.escape p + path = (if isReturn then id else Marquee.b) $ Marquee.escape p fullMethod = - (if isReturn then Markup.i else id) $ Markup.formatMember i m + (if isReturn then Marquee.i else id) $ Marquee.formatMember i m drawTimestamp :: String -> Double -> Double -> Render () drawTimestamp ts x y = do moveTo (x - timestampWidth / 2) (y - 10) - showLayout =<< mkLayout (Markup.escape ts) EllipsizeNone AlignLeft `withWidth` timestampWidth + showLayout =<< mkLayout (Marquee.escape ts) EllipsizeNone AlignLeft `withWidth` timestampWidth drawClientLines :: NonEmpty Double -> Double -> Double -> Render () drawClientLines xs y1 y2 = saved $ do diff --git a/Bustle/Markup.hs b/Bustle/Marquee.hs index 5c31552..46c2b4c 100644 --- a/Bustle/Markup.hs +++ b/Bustle/Marquee.hs @@ -1,6 +1,6 @@ {-# LANGUAGE TypeSynonymInstances, FlexibleInstances #-} {- -Bustle.Diagram: My First Type-Safe Markup Library +Bustle.Marquee: My First Type-Safe Markup Library With A Cutesy Name To Not Collide With Pango's 'Markup' Which Is A Synonym For String Copyright © 2011 Will Thompson This library is free software; you can redistribute it and/or @@ -17,9 +17,9 @@ You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -} -module Bustle.Markup - ( Markup - , unMarkup +module Bustle.Marquee + ( Marquee + , toPangoMarkup , tag , b , i @@ -29,6 +29,8 @@ module Bustle.Markup , escape , formatMember + + , toString ) where @@ -42,44 +44,44 @@ import Graphics.Rendering.Pango.Markup (markSpan, SpanAttribute(..)) import Bustle.Types (ObjectPath, formatObjectPath, InterfaceName, formatInterfaceName, MemberName, formatMemberName) -newtype Markup = Markup { unMarkup :: String } +newtype Marquee = Marquee { unMarquee :: String } deriving (Show, Read, Ord, Eq) -instance Monoid Markup where - mempty = Markup "" - mappend x y = Markup (unMarkup x `mappend` unMarkup y) - mconcat = Markup . mconcat . map unMarkup +toPangoMarkup :: Marquee -> String +toPangoMarkup = unMarquee ---raw :: String -> Markup ---raw = Markup +instance Monoid Marquee where + mempty = Marquee "" + mappend x y = Marquee (unMarquee x `mappend` unMarquee y) + mconcat = Marquee . mconcat . map unMarquee -tag :: String -> Markup -> Markup +tag :: String -> Marquee -> Marquee tag name contents = - Markup $ concat [ "<", name, ">" - , unMarkup contents + Marquee $ concat [ "<", name, ">" + , unMarquee contents , "</", name, ">" ] -b, i :: Markup -> Markup +b, i :: Marquee -> Marquee b = tag "b" i = tag "i" a :: String -> String - -> Markup + -> Marquee a href contents = - Markup $ concat [ "<a href=\"", escapeMarkup href, "\">" + Marquee $ concat [ "<a href=\"", escapeMarkup href, "\">" , escapeMarkup contents , "</a>" ] -span_ :: [SpanAttribute] -> Markup -> Markup -span_ attrs = Markup . markSpan attrs . unMarkup +span_ :: [SpanAttribute] -> Marquee -> Marquee +span_ attrs = Marquee . markSpan attrs . unMarquee -light :: Markup -> Markup +light :: Marquee -> Marquee light = span_ [FontWeight WeightLight] -red :: Markup -> Markup +red :: Marquee -> Marquee red = span_ [FontForeground "#ff0000"] -- Kind of a transitional measure because some strings are Strings, and some are Text. @@ -101,12 +103,12 @@ instance Unescaped ObjectPath where instance Unescaped MemberName where toString = formatMemberName -escape :: Unescaped s => s -> Markup -escape = Markup . escapeMarkup . toString +escape :: Unescaped s => s -> Marquee +escape = Marquee . escapeMarkup . toString -formatMember :: Maybe InterfaceName -> MemberName -> Markup +formatMember :: Maybe InterfaceName -> MemberName -> Marquee formatMember iface member = iface' `mappend` b (escape member) where iface' = case iface of - Just ifaceName -> escape ifaceName `mappend` Markup "." + Just ifaceName -> escape ifaceName `mappend` Marquee "." Nothing -> light (escape "(no interface) ") diff --git a/Bustle/StatisticsPane.hs b/Bustle/StatisticsPane.hs index 8e895a8..1faead4 100644 --- a/Bustle/StatisticsPane.hs +++ b/Bustle/StatisticsPane.hs @@ -26,12 +26,12 @@ where import Control.Applicative ((<$>)) import Control.Monad (forM_) import Text.Printf -import Graphics.UI.Gtk hiding (Markup) +import Graphics.UI.Gtk import Bustle.Stats import Bustle.Translation (__) import Bustle.Types (Log) -import qualified Bustle.Markup as Markup -import Bustle.Markup (Markup) +import qualified Bustle.Marquee as Marquee +import Bustle.Marquee (Marquee) import Data.Monoid data StatsPane = @@ -83,20 +83,20 @@ statsPaneSetMessages sp sessionMessages systemMessages = do addTextRenderer :: TreeViewColumn -> ListStore a -> Bool - -> (a -> Markup) + -> (a -> Marquee) -> IO CellRendererText addTextRenderer col store expand f = do renderer <- cellRendererTextNew cellLayoutPackStart col renderer expand set renderer [ cellTextSizePoints := 7 ] cellLayoutSetAttributes col renderer store $ \x -> - [ cellTextMarkup := (Just . Markup.unMarkup) $ f x ] + [ cellTextMarkup := (Just . Marquee.toPangoMarkup) $ f x ] return renderer addMemberRenderer :: TreeViewColumn -> ListStore a -> Bool - -> (a -> Markup) + -> (a -> Marquee) -> IO CellRendererText addMemberRenderer col store expand f = do renderer <- addTextRenderer col store expand f @@ -110,7 +110,7 @@ addMemberRenderer col store expand f = do addStatColumn :: TreeView -> ListStore a -> String - -> (a -> Markup) + -> (a -> Marquee) -> IO () addStatColumn view store title f = do col <- treeViewColumnNew @@ -126,7 +126,7 @@ addTextStatColumn :: TreeView -> (a -> String) -> IO () addTextStatColumn view store title f = - addStatColumn view store title (Markup.escape . f) + addStatColumn view store title (Marquee.escape . f) -- If we managed to load the method and signal icons... maybeAddTypeIconColumn :: CellLayoutClass layout @@ -164,7 +164,7 @@ newCountView method signal = do TallySignal -> False addMemberRenderer nameColumn countStore True $ \fi -> - Markup.formatMember (fiInterface fi) (fiMember fi) + Marquee.formatMember (fiInterface fi) (fiMember fi) treeViewAppendColumn countView nameColumn countColumn <- treeViewColumnNew @@ -203,7 +203,7 @@ newTimeView = do ] addMemberRenderer nameColumn timeStore True $ \ti -> - Markup.formatMember (tiInterface ti) (tiMethodName ti) + Marquee.formatMember (tiInterface ti) (tiMethodName ti) treeViewAppendColumn timeView nameColumn addTextStatColumn timeView timeStore (__ "Total") @@ -214,16 +214,16 @@ newTimeView = do return (timeStore, timeView) -formatSizeInfoMember :: SizeInfo -> Markup +formatSizeInfoMember :: SizeInfo -> Marquee formatSizeInfoMember si = - f (Markup.formatMember (siInterface si) (siName si)) + f (Marquee.formatMember (siInterface si) (siName si)) where f = case siType si of - SizeReturn -> Markup.i - SizeError -> Markup.red + SizeReturn -> Marquee.i + SizeError -> Marquee.red _ -> id -formatSize :: Int -> Markup +formatSize :: Int -> Marquee formatSize s | s < maxB = value 1 `mappend` units (__ "B") | s < maxKB = value 1024 `mappend` units (__ "KB") @@ -232,9 +232,9 @@ formatSize s maxB = 10000 maxKB = 10000 * 1024 - units = Markup.escape . (' ':) + units = Marquee.escape . (' ':) - value factor = Markup.escape (show (s `div` factor)) + value factor = Marquee.escape (show (s `div` factor)) newSizeView :: Maybe Pixbuf -> Maybe Pixbuf diff --git a/Bustle/UI.hs b/Bustle/UI.hs index 9fa340d..733dd08 100644 --- a/Bustle/UI.hs +++ b/Bustle/UI.hs @@ -38,6 +38,7 @@ import Bustle.Application.Monad import Bustle.Renderer import Bustle.Types import Bustle.Diagram +import Bustle.Marquee (toString) import Bustle.Util import Bustle.UI.AboutDialog import Bustle.UI.Canvas @@ -526,7 +527,7 @@ loadPixbuf :: FilePath -> IO (Maybe Pixbuf) loadPixbuf filename = do iconName <- getDataFileName $ "data/" ++ filename C.catch (fmap Just (pixbufNewFromFile iconName)) - (\(GError _ _ msg) -> warn (show msg) >> return Nothing) + (\(GError _ _ msg) -> warn (toString msg) >> return Nothing) openDialogue :: Window -> B () openDialogue window = embedIO $ \r -> do diff --git a/Bustle/UI/DetailsView.hs b/Bustle/UI/DetailsView.hs index d1b9d96..c347bbd 100644 --- a/Bustle/UI/DetailsView.hs +++ b/Bustle/UI/DetailsView.hs @@ -25,13 +25,13 @@ module Bustle.UI.DetailsView where import Data.List (intercalate) -import Graphics.UI.Gtk hiding (Signal, Markup) +import Graphics.UI.Gtk hiding (Signal) import qualified DBus as D import Bustle.Translation (__) import Bustle.Types -import Bustle.Markup +import Bustle.Marquee import Bustle.VariantFormatter data DetailsView = @@ -99,7 +99,7 @@ detailsViewNew = do widgetShowAll table return $ DetailsView table title pathLabel memberLabel view -pickTitle :: Detailed Message -> Markup +pickTitle :: Detailed Message -> Marquee pickTitle (Detailed _ m _) = case m of MethodCall {} -> b (escape (__ "Method call")) MethodReturn {} -> b (escape (__ "Method return")) @@ -111,7 +111,7 @@ pickTitle (Detailed _ m _) = case m of getMemberMarkup :: Member -> String getMemberMarkup m = - unMarkup $ formatMember (iface m) (membername m) + toPangoMarkup $ formatMember (iface m) (membername m) getMember :: Detailed Message -> Maybe Member getMember (Detailed _ m _) = case m of @@ -140,7 +140,7 @@ detailsViewUpdate :: DetailsView detailsViewUpdate d m = do buf <- textViewGetBuffer $ detailsBodyView d let member_ = getMember m - labelSetMarkup (detailsTitle d) (unMarkup $ pickTitle m) + labelSetMarkup (detailsTitle d) (toPangoMarkup $ pickTitle m) labelSetText (detailsPath d) (maybe unknown (D.formatObjectPath . path) member_) labelSetMarkup (detailsMember d) (maybe unknown getMemberMarkup member_) textBufferSetText buf $ formatMessage m diff --git a/Bustle/UI/Recorder.hs b/Bustle/UI/Recorder.hs index 0e40a23..d0546bd 100644 --- a/Bustle/UI/Recorder.hs +++ b/Bustle/UI/Recorder.hs @@ -36,6 +36,7 @@ import Graphics.UI.Gtk import Bustle.Loader.Pcap (convert) import Bustle.Loader (isRelevant) +import Bustle.Marquee (toString) import Bustle.Monitor import Bustle.Renderer import Bustle.Translation (__) @@ -143,7 +144,7 @@ recorderRun filename mwindow incoming finished = C.handle newFailed $ do widgetShowAll dialog where newFailed (GError _ _ message) = do - displayError mwindow (show message) Nothing + displayError mwindow (toString message) Nothing recorderChooseFile :: FilePath -> Maybe Window diff --git a/bustle.cabal b/bustle.cabal index 1f5ad25..d416fa2 100644 --- a/bustle.cabal +++ b/bustle.cabal @@ -71,7 +71,7 @@ Executable bustle , Bustle.Loader , Bustle.Loader.OldSkool , Bustle.Loader.Pcap - , Bustle.Markup + , Bustle.Marquee , Bustle.Monitor , Bustle.Noninteractive , Bustle.Regions |