Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
Display attributes
Attributes have three components: a foreground color, a background
color, and a style mask. The simplest attribute is the default
attribute, or defAttr
. Attributes can be modified with
withForeColor
, withBackColor
, and withStyle
, e.g.,
defAttr `withForeColor` red
Image
constructors often require an Attr
to indicate the
attributes used in the image, e.g.,
string (defAttr `withForeColor` red) "this text will be red"
The appearance of Image
s using defAttr
is determined by the The
terminal, so this is not something VTY can control. The user is free
to The define the color scheme of the terminal as they see fit.
The value currentAttr
will keep the attributes of whatever was
output previously.
Synopsis
- module Graphics.Vty.Attributes.Color
- data Attr = Attr {
- attrStyle :: !(MaybeDefault Style)
- attrForeColor :: !(MaybeDefault Color)
- attrBackColor :: !(MaybeDefault Color)
- attrURL :: !(MaybeDefault Text)
- data FixedAttr = FixedAttr {
- fixedStyle :: !Style
- fixedForeColor :: !(Maybe Color)
- fixedBackColor :: !(Maybe Color)
- fixedURL :: !(Maybe Text)
- data MaybeDefault v where
- Default :: MaybeDefault v
- KeepCurrent :: MaybeDefault v
- SetTo :: forall v. (Eq v, Show v, Read v) => !v -> MaybeDefault v
- defAttr :: Attr
- currentAttr :: Attr
- type Style = Word8
- withStyle :: Attr -> Style -> Attr
- standout :: Style
- italic :: Style
- underline :: Style
- reverseVideo :: Style
- blink :: Style
- dim :: Style
- bold :: Style
- defaultStyleMask :: Style
- styleMask :: Attr -> Word8
- hasStyle :: Style -> Style -> Bool
- withForeColor :: Attr -> Color -> Attr
- withBackColor :: Attr -> Color -> Attr
- withURL :: Attr -> Text -> Attr
Documentation
A display attribute defines the Color and Style of all the characters rendered after the attribute is applied.
At most 256 colors, picked from a 240 and 16 color palette, are possible for the background and foreground. The 240 colors and 16 colors are points in different palettes. See Color for more information.
Attr | |
|
Instances
Eq Attr Source # | |
Read Attr Source # | |
Show Attr Source # | |
Generic Attr Source # | |
Semigroup Attr Source # | |
Monoid Attr Source # | |
NFData Attr Source # | |
Defined in Graphics.Vty.Attributes | |
type Rep Attr Source # | |
Defined in Graphics.Vty.Attributes type Rep Attr = D1 (MetaData "Attr" "Graphics.Vty.Attributes" "vty-5.28.2-Cs606gPf5U9H2a4Y823qy9" False) (C1 (MetaCons "Attr" PrefixI True) ((S1 (MetaSel (Just "attrStyle") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 (MaybeDefault Style)) :*: S1 (MetaSel (Just "attrForeColor") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 (MaybeDefault Color))) :*: (S1 (MetaSel (Just "attrBackColor") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 (MaybeDefault Color)) :*: S1 (MetaSel (Just "attrURL") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 (MaybeDefault Text))))) |
Specifies the display attributes such that the final style and color values do not depend on the previously applied display attribute. The display attributes can still depend on the terminal's default colors (unfortunately).
FixedAttr | |
|
data MaybeDefault v where Source #
The style and color attributes can either be the terminal defaults. Or be equivalent to the previously applied style. Or be a specific value.
Default :: MaybeDefault v | |
KeepCurrent :: MaybeDefault v | |
SetTo :: forall v. (Eq v, Show v, Read v) => !v -> MaybeDefault v |
Instances
Sets the style, background color and foreground color to the default values for the terminal. There is no easy way to determine what the default background and foreground colors are.
currentAttr :: Attr Source #
Keeps the style, background color and foreground color that was previously set. Used to override some part of the previous style.
EG: current_style withForeColor
brightMagenta
Would be the currently applied style (be it underline, bold, etc) but with the foreground color set to brightMagenta.
Styles
Styles are represented as an 8 bit word. Each bit in the word is 1 if the style attribute assigned to that bit should be applied and 0 if the style attribute should not be applied.
The 7 possible style attributes:
- standout
- underline
- reverseVideo
- blink
- dim
- bold/bright
- italic
(The invisible, protect, and altcharset display attributes some terminals support are not supported via VTY.)
The 7 possible style attributes:
- standout
- underline
- reverseVideo
- blink
- dim
- bold/bright
- italic
(The invisible, protect, and altcharset display attributes some terminals support are not supported via VTY.)
The 7 possible style attributes:
- standout
- underline
- reverseVideo
- blink
- dim
- bold/bright
- italic
(The invisible, protect, and altcharset display attributes some terminals support are not supported via VTY.)
reverseVideo :: Style Source #
The 7 possible style attributes:
- standout
- underline
- reverseVideo
- blink
- dim
- bold/bright
- italic
(The invisible, protect, and altcharset display attributes some terminals support are not supported via VTY.)
The 7 possible style attributes:
- standout
- underline
- reverseVideo
- blink
- dim
- bold/bright
- italic
(The invisible, protect, and altcharset display attributes some terminals support are not supported via VTY.)
The 7 possible style attributes:
- standout
- underline
- reverseVideo
- blink
- dim
- bold/bright
- italic
(The invisible, protect, and altcharset display attributes some terminals support are not supported via VTY.)
The 7 possible style attributes:
- standout
- underline
- reverseVideo
- blink
- dim
- bold/bright
- italic
(The invisible, protect, and altcharset display attributes some terminals support are not supported via VTY.)
hasStyle :: Style -> Style -> Bool Source #
true if the given Style value has the specified Style set.
Setting attribute colors
Setting hyperlinks
withURL :: Attr -> Text -> Attr Source #
Add a hyperlinked URL using the proposed escape sequences for
hyperlinked
URLs.
These escape sequences are comparatively new and aren't widely
supported in terminal emulators yet, but most terminal emulators
that don't know about these sequences will ignore these sequences,
and therefore this should fall back sensibly. In some cases they
won't and this will result in garbage, so this is why hyperlinking is
disabled by default, in which case this combinator has no observable
effect. To enable it, enable Hyperlink
mode on your Vty output
interface.