| Portability | unportable |
|---|---|
| Stability | unstable |
| Maintainer | andrea.rossato@unibz.it |
XMonad.Layout.Decoration
Contents
Description
A layout modifier and a class for easily creating decorated layouts.
- decoration :: (DecorationStyle ds a, Shrinker s) => s -> Theme -> ds a -> l a -> ModifiedLayout (Decoration ds s) l a
- data Theme = Theme {}
- defaultTheme :: Theme
- data Decoration ds s a
- data DecorationMsg = SetTheme Theme
- class (Read (ds a), Show (ds a), Eq a) => DecorationStyle ds a where
- describeDeco :: ds a -> String
- shrink :: ds a -> Rectangle -> Rectangle -> Rectangle
- decorationEventHook :: ds a -> DecorationState -> Event -> X ()
- decorationMouseFocusHook :: ds a -> DecorationState -> Event -> X ()
- decorationMouseDragHook :: ds a -> DecorationState -> Event -> X ()
- pureDecoration :: ds a -> Dimension -> Dimension -> Rectangle -> Stack a -> [(a, Rectangle)] -> (a, Rectangle) -> Maybe Rectangle
- decorate :: ds a -> Dimension -> Dimension -> Rectangle -> Stack a -> [(a, Rectangle)] -> (a, Rectangle) -> X (Maybe Rectangle)
- data DefaultDecoration a = DefaultDecoration
- class (Read s, Show s) => Shrinker s where
- data DefaultShrinker
- shrinkText :: DefaultShrinker
- data CustomShrink = CustomShrink
- shrinkWhile :: (String -> [String]) -> (String -> X Bool) -> String -> X String
- isInStack :: Eq a => Stack a -> a -> Bool
- isVisible :: Rectangle -> [Rectangle] -> Bool
- isInvisible :: Rectangle -> [Rectangle] -> Bool
- isWithin :: Rectangle -> Rectangle -> Bool
- fi :: (Integral a, Num b) => a -> b
- findWindowByDecoration :: Window -> DecorationState -> Maybe (OrigWin, (Window, Maybe Rectangle))
- module XMonad.Layout.LayoutModifier
Usage:
This module is intended for layout developers, who want to decorate their layouts. End users will not find here very much for them.
For examples of DecorationStyle instances you can have a look at
XMonad.Layout.SimpleDecoration, XMonad.Layout.Tabbed,
XMonad.Layout.DwmStyle, or XMonad.Layout.TabBarDecoration.
decoration :: (DecorationStyle ds a, Shrinker s) => s -> Theme -> ds a -> l a -> ModifiedLayout (Decoration ds s) l a
A layout modifier that, with a Shrinker, a Theme, a
DecorationStyle, and a layout, will decorate this layout
according to the decoration style provided.
For some usage examples see XMonad.Layout.DecorationMadness.
data Theme
A Theme is a record of colors, font etc., to customize a
DecorationStyle.
For a collection of Themes see XMonad.Util.Themes
Constructors
| Theme | |
Fields
| |
The default xmonad Theme.
data Decoration ds s a
The Decoration LayoutModifier. This data type is an instance
of the LayoutModifier class. This data type will be passed,
together with a layout, to the ModifiedLayout type constructor
to modify the layout by adding decorations according to a
DecorationStyle.
Instances
| (DecorationStyle ds Window, Shrinker s) => LayoutModifier (Decoration ds s) Window | The long In The state is After that we resync the updated state with the windows' list and then we process the resynced stated (as we do with a new state). First we map the decoration windows, we update each decoration to reflect any decorated window's change, and we insert, in the list of windows and rectangles returned by the underlying layout, the decoration for each window. This way xmonad will restack the decorations and their windows accordingly. At the end we remove invisible/stacked windows. Message handling is quite simple: when needed we release the state
component of the |
| (Read s, Read (ds a)) => Read (Decoration ds s a) | |
| (Show s, Show (ds a)) => Show (Decoration ds s a) |
data DecorationMsg
A Decoration layout modifier will handle SetTheme, a message
to dynamically change the decoration Theme.
Instances
| Typeable DecorationMsg | |
| Message DecorationMsg |
class (Read (ds a), Show (ds a), Eq a) => DecorationStyle ds a where
The DecorationStyle class, defines methods used in the
implementation of the Decoration LayoutModifier instance. A
type instance of this class is passed to the Decoration type in
order to decorate a layout, by using these methods.
Methods
describeDeco :: ds a -> String
The description that the Decoration modifier will display.
shrink :: ds a -> Rectangle -> Rectangle -> Rectangle
Shrink the window's rectangle when applying a decoration.
decorationEventHook :: ds a -> DecorationState -> Event -> X ()
The decoration event hook, where the
decorationMouseFocusHook and decorationMouseDragHook are
called. If you reimplement it those methods will not be
called.
decorationMouseFocusHook :: ds a -> DecorationState -> Event -> X ()
This method is called when the user clicks the pointer over the decoration.
decorationMouseDragHook :: ds a -> DecorationState -> Event -> X ()
This method is called when the user starts grabbing the decoration.
pureDecoration :: ds a -> Dimension -> Dimension -> Rectangle -> Stack a -> [(a, Rectangle)] -> (a, Rectangle) -> Maybe Rectangle
The pure version of the main method, decorate.
decorate :: ds a -> Dimension -> Dimension -> Rectangle -> Stack a -> [(a, Rectangle)] -> (a, Rectangle) -> X (Maybe Rectangle)
Instances
| Eq a => DecorationStyle DefaultDecoration a | |
| Eq a => DecorationStyle TabbedDecoration a | |
| Eq a => DecorationStyle DwmStyle a | |
| Eq a => DecorationStyle SimpleDecoration a | |
| Eq a => DecorationStyle NoFrillsDecoration a | |
| Eq a => DecorationStyle TabBarDecoration a |
data DefaultDecoration a
The default DecorationStyle, with just the default methods'
implementations.
Constructors
| DefaultDecoration |
Instances
| Eq a => DecorationStyle DefaultDecoration a | |
| Read (DefaultDecoration a) | |
| Show (DefaultDecoration a) |
data DefaultShrinker
isInStack :: Eq a => Stack a -> a -> Bool
True if the window is in the Stack. The Window comes second
to facilitate list processing, even though w `isInStack` s won't
work...;)
isInvisible :: Rectangle -> [Rectangle] -> Bool
The contrary of isVisible.
fi :: (Integral a, Num b) => a -> b
Short-hand for fromIntegral
module XMonad.Layout.LayoutModifier