uni-htk-2.2.0.0: HTk/Kernel/GridPackOptions.hs
-- | Pack options for the grid geometry manager.
module HTk.Kernel.GridPackOptions (
GridPackOption(..),
StickyKind(..),
showGridPackOptions
) where
-- -----------------------------------------------------------------------
-- grid pack options
-- -----------------------------------------------------------------------
-- | Various pack options of the grid geometry manager.
data GridPackOption =
Column Int -- ^ the column to pack the widget
| Row Int -- ^ the row to pack the widget
| GridPos (Int, Int) -- ^ row column and row to pack the widget
| Sticky StickyKind -- ^ pack widgets sticky to the grid (see type <code>StickyKind</code>)
| Columnspan Int -- ^ columnspan like HTML
| Rowspan Int -- ^ rowspan like HTML
| GridPadX Int -- ^ horizontal pad
| GridPadY Int -- ^ vertical pad
| GridIPadX Int -- ^ inner horizontal pad
| GridIPadY Int -- ^ inner vertical pad
-- | Internal.
instance Show GridPackOption where
showsPrec d (Row i) r = "row " ++ show i ++ r
showsPrec d (Column i) r = "column " ++ show i ++ r
showsPrec d (GridPos (i, j)) r =
"column " ++ show i ++ " -row " ++ show j ++ r
showsPrec d (Sticky kind) r = "sticky " ++ show kind ++ r
showsPrec d (Columnspan i) r = "columnspan " ++ show i ++ r
showsPrec d (Rowspan i) r = "rowspan " ++ show i ++ r
showsPrec d (GridPadX i) r = "padx " ++ show i ++ r
showsPrec d (GridPadY i) r = "pady " ++ show i ++ r
showsPrec d (GridIPadX i) r = "ipadx " ++ show i ++ r
showsPrec d (GridIPadY i) r = "ipady " ++ show i ++ r
-- | The @StickyKind@ datatype - sticky packing to the grid.
data StickyKind =
N | S | E | W
| NS | NE | NW | SE | SW | EW
| NSE | NSW | NEW | SEW
| NSEW
-- | Internal.
instance Show StickyKind where
showsPrec d N r = "n"
showsPrec d S r = "s"
showsPrec d E r = "e"
showsPrec d W r = "w"
showsPrec d NS r = "ns"
showsPrec d NE r = "ne"
showsPrec d NW r = "nw"
showsPrec d SE r = "se"
showsPrec d SW r = "sw"
showsPrec d EW r = "ew"
showsPrec d NSE r = "nse"
showsPrec d NSW r = "nsw"
showsPrec d NEW r = "new"
showsPrec d SEW r = "sew"
showsPrec d NSEW r = "nsew"
-- | Internal.
showGridPackOptions :: [GridPackOption] -> String
showGridPackOptions [] = ""
showGridPackOptions (opt : opts) =
"-" ++ show opt ++ " " ++ showGridPackOptions opts