| wxcore-0.10.1: wxHaskell is a portable and native GUI library for Haskell. | Contents | Index |
|
Graphics.UI.WXCore.Layout |
|
|
|
|
Description |
|
|
Synopsis |
|
|
|
|
Types
|
|
data Layout |
Abstract data type that represents the layout of controls in a window.
| Instances | |
|
|
sizerFromLayout :: Window a -> Layout -> IO (Sizer ()) |
Create a Sizer from a Layout and a parent window.
|
|
Window
|
|
windowSetLayout :: Window a -> Layout -> IO () |
Set the layout of a window (automatically calls sizerFromLayout).
|
|
layoutFromWindow :: Window a -> Layout |
(primitive) Lift a basic control to a Layout.
|
|
windowReFit :: Window a -> IO () |
Fits a widget properly by calling windowReLayout on
the parent frame or dialog (windowGetFrameParent).
|
|
windowReFitMinimal :: Window a -> IO () |
Fits a widget properly by calling windowReLayout on
the parent frame or dialog (windowGetFrameParent).
|
|
windowReLayout :: Window a -> IO () |
Re-invoke layout algorithm to fit a window around its
children. It will enlarge when the current
client size is too small, but not shrink when the window
is already large enough. (in contrast, windowReLayoutMinimal will
also shrink a window so that it always minimally sized).
|
|
windowReLayoutMinimal :: Window a -> IO () |
Re-invoke layout algorithm to fit a window around its
children. It will resize the window to its minimal
acceptable size (windowFit).
|
|
Layouts
|
|
Widgets
|
|
class Widget w where |
Anything in the widget class can be layed out.
| | Methods | widget :: w -> Layout | Create a layout from a widget.
|
| | Instances | |
|
|
widget :: Widget w => w -> Layout |
Create a layout from a widget.
|
|
label :: String -> Layout |
(primitive) Create a static label label (= StaticText).
|
|
rule :: Int -> Int -> Layout |
(primitive) A line with a given width and height
|
|
hrule :: Int -> Layout |
A horizontal line with a given width.
|
|
vrule :: Int -> Layout |
A vertical line with a given height.
|
|
sizer :: Sizer a -> Layout |
(primitive) Create a Layout from a Sizer object.
|
|
Containers
|
|
row :: Int -> [Layout] -> Layout |
Layout elements in a horizontal direction with a certain amount of space between the elements.
|
|
column :: Int -> [Layout] -> Layout |
Layout elements in a vertical direction with a certain amount of space between the elements.
|
|
grid :: Int -> Int -> [[Layout]] -> Layout |
(primitive) The expression (grid w h rows) creates a grid of rows. The w argument
is the extra horizontal space between elements and h the extra vertical space between elements.
(implemented using the FlexGrid sizer).
Only when all elements of a column have horizontal stretch (see stretch and hstretch), the entire
column will stretch horizontally, and the same holds for rows with vertical stretch.
When any column or row in a grid can stretch, the grid itself will also stretch in that direction
and the grid will expand to fill the assigned area by default (instead of being static).
|
|
boxed :: String -> Layout -> Layout |
(primitive) Create a labeled border around a layout (= StaticBox).
Just like a grid, the horizontal or vertical stretch of the child layout determines
the stretch and expansion mode of the box.
|
|
container :: Window a -> Layout -> Layout |
(primitive) Add a container widget (for example, a Panel).
Just like a grid, the horizontal or vertical stretch of the child layout determines
the stretch and expansion mode of the container.
|
|
tab :: String -> Layout -> TabPage |
Create a simple tab page with a certain title and layout.
|
|
imageTab :: String -> Bitmap () -> Layout -> TabPage |
Create a tab page with a certain title, icon, and layout.
|
|
tabs :: Notebook a -> [TabPage] -> Layout |
Create a notebook layout.
The pages always need to be embedded inside a container (normally a Panel).
Just like a grid, the horizontal or vertical stretch of the child layout determines
the stretch and expansion mode of the notebook.
|
|
hsplit :: SplitterWindow a -> Int -> Int -> Layout -> Layout -> Layout |
Add a horizontal sash bar between two windows. The two integer
arguments specify the width of the sash bar (5) and the initial
height of the top pane respectively.
|
|
vsplit :: SplitterWindow a -> Int -> Int -> Layout -> Layout -> Layout |
Add a vertical sash bar between two windows. The two integer
arguments specify the width of the sash bar (5) and the initial
width of the left pane respectively.
|
|
Glue
|
|
glue :: Layout |
An empty layout that stretchable in all directions.
|
|
hglue :: Layout |
An empty layout that is horizontally stretchable.
|
|
vglue :: Layout |
An empty layout that is vertically stretchable.
|
|
Whitespace
|
|
space :: Int -> Int -> Layout |
(primitive) Empty layout with a given width and height.
|
|
hspace :: Int -> Layout |
Horizontal space of a certain width.
|
|
vspace :: Int -> Layout |
Vertical space of a certain height.
|
|
empty :: Layout |
An empty layout. (see also space).
|
|
Transformers
|
|
dynamic :: Layout -> Layout |
Adjust the minimal size of a control dynamically when the content changes.
This is used for example to correctly layout static text or buttons when the
text or label changes at runtime. This property is automatically set for
StaticText, labels, and buttons.
|
|
Stretch
|
|
static :: Layout -> Layout |
(primitive) The layout is not stretchable. In a grid, the row and column that contain this layout will
not be resizeable. Note that a static layout can still be assigned an area that is larger
than its preferred size due to grid alignment constraints.
(default, except for containers like grid and boxed where it depends on the child layouts).
|
|
stretch :: Layout -> Layout |
(primitive) The layout is stretchable and can be assigned a larger area in both the horizontal and vertical
direction. See also combinators like fill and floatCentre.
|
|
hstretch :: Layout -> Layout |
(primitive) The layout is stretchable in the horizontal direction. See also combinators like hfill and hfloatCentre.
|
|
vstretch :: Layout -> Layout |
(primitive) The layout is stretchable in the vertical direction. See also combinators like vfill and vfloatCentre.
|
|
minsize :: Size -> Layout -> Layout |
(primitive) Set the minimal size of a widget.
|
|
Expansion
|
|
rigid :: Layout -> Layout |
(primitive) Never resize the layout, but align it in the assigned area
(default, except for containers like grid and boxed where it depends on the child layouts).
|
|
shaped :: Layout -> Layout |
(primitive) Expand the layout to fill the assigned area but maintain the original proportions
of the layout. Note that the layout can still be aligned in a horizontal or vertical direction.
|
|
expand :: Layout -> Layout |
(primitive) Expand the layout to fill the assigned area entirely, even when the original proportions can not
be maintained. Note that alignment will have no effect on such layout. See also fill.
|
|
Fill
|
|
fill :: Layout -> Layout |
The layout is stretchable and expands into the assigned area. (see also stretch and expand).
|
|
hfill :: Layout -> Layout |
The layout is horizontally stretchable and expands into the assigned area. (see also hstretch and expand).
|
|
vfill :: Layout -> Layout |
The layout is vertically stretchable and expands into the assigned area. (see also vstretch and expand).
|
|
Margin
|
|
margin :: Int -> Layout -> Layout |
Add a margin of a certain width around the entire layout.
|
|
marginWidth :: Int -> Layout -> Layout |
(primitive) Set the width of the margin (default is 10 pixels).
|
|
marginNone :: Layout -> Layout |
(primitive) Remove the margin of a layout (default).
|
|
marginLeft :: Layout -> Layout |
(primitive) Add a margin to the left.
|
|
marginTop :: Layout -> Layout |
(primitive) Add a margin to the top.
|
|
marginRight :: Layout -> Layout |
(primitive) Add a right margin.
|
|
marginBottom :: Layout -> Layout |
(primitive) Add a margin to the bottom.
|
|
Floating alignment
|
|
floatTopLeft :: Layout -> Layout |
Make the layout stretchable and align it in the top-left corner of the assigned area (default).
|
|
floatTop :: Layout -> Layout |
Make the layout stretchable and align it centered on the top of the assigned area.
|
|
floatTopRight :: Layout -> Layout |
Make the layout stretchable and align it to the top-right of the assigned area.
|
|
floatLeft :: Layout -> Layout |
Make the layout stretchable and align it centered to the left of the assigned area.
|
|
floatCentre :: Layout -> Layout |
Make the layout stretchable and align it in the center of the assigned area.
|
|
floatCenter :: Layout -> Layout |
Make the layout stretchable and align it in the center of the assigned area.
|
|
floatRight :: Layout -> Layout |
Make the layout stretchable and align it centered to the right of the assigned area.
|
|
floatBottomLeft :: Layout -> Layout |
Make the layout stretchable and align it to the bottom-left of the assigned area.
|
|
floatBottom :: Layout -> Layout |
Make the layout stretchable and align it centered on the bottom of the assigned area.
|
|
floatBottomRight :: Layout -> Layout |
Make the layout stretchable and align it to the bottom-right of the assigned area.
|
|
Horizontal floating alignment
|
|
hfloatLeft :: Layout -> Layout |
Make the layout horizontally stretchable and align to the left.
|
|
hfloatCentre :: Layout -> Layout |
Make the layout horizontally stretchable and align to the center.
|
|
hfloatCenter :: Layout -> Layout |
Make the layout horizontally stretchable and align to the center.
|
|
hfloatRight :: Layout -> Layout |
Make the layout horizontally stretchable and align to the right.
|
|
Vertical floating alignment
|
|
vfloatTop :: Layout -> Layout |
Make the layout vertically stretchable and align to the top.
|
|
vfloatCentre :: Layout -> Layout |
Make the layout vertically stretchable and align to the center.
|
|
vfloatCenter :: Layout -> Layout |
Make the layout vertically stretchable and align to the center.
|
|
vfloatBottom :: Layout -> Layout |
Make the layout vertically stretchable and align to the bottom.
|
|
Alignment
|
|
centre :: Layout -> Layout |
Align the layout in the center of the assigned area.
|
|
alignTopLeft :: Layout -> Layout |
Align the layout in the top-left corner of the assigned area (default).
|
|
alignTop :: Layout -> Layout |
Align the layout centered on the top of the assigned area.
|
|
alignTopRight :: Layout -> Layout |
Align the layout to the top-right of the assigned area.
|
|
alignLeft :: Layout -> Layout |
Align the layout centered to the left of the assigned area.
|
|
alignCentre :: Layout -> Layout |
Align the layout in the center of the assigned area.
|
|
alignCenter :: Layout -> Layout |
Align the layout in the center of the assigned area.
|
|
alignRight :: Layout -> Layout |
Align the layout centered to the right of the assigned area.
|
|
alignBottomLeft :: Layout -> Layout |
Align the layout to the bottom-left of the assigned area.
|
|
alignBottom :: Layout -> Layout |
Align the layout centered on the bottom of the assigned area.
|
|
alignBottomRight :: Layout -> Layout |
Align the layout to the bottom-right of the assigned area.
|
|
Horizontal alignment
|
|
halignLeft :: Layout -> Layout |
(primitive) Align horizontally to the left when the layout is assigned to a larger area (default).
|
|
halignCentre :: Layout -> Layout |
(primitive) Center horizontally when assigned to a larger area.
|
|
halignCenter :: Layout -> Layout |
(primitive) Center horizontally when assigned to a larger area.
|
|
halignRight :: Layout -> Layout |
(primitive) Align horizontally to the right when the layout is assigned to a larger area.
|
|
Vertical alignment
|
|
valignTop :: Layout -> Layout |
(primitive) Align vertically to the top when the layout is assigned to a larger area (default).
|
|
valignCentre :: Layout -> Layout |
(primitive) Center vertically when the layout is assigned to a larger area.
|
|
valignCenter :: Layout -> Layout |
(primitive) Center vertically when the layout is assigned to a larger area.
|
|
valignBottom :: Layout -> Layout |
(primitive) Align vertically to the bottom when the layout is assigned to a larger area.
|
|
Produced by Haddock version 2.1.0 |