Next Previous Contents

5. Disposition control

5.1 typewriter strategy

Fields are presented from left to right as they come. The Newline command instructs the GUI server to change to a new line. At the end, all the lines are organized into a grid where the width of each columns is computed as the width of the larger member of this columns. The height of a line is computed as the height of the thickest item.

This strategy is basic and various commands let you enhance the layout. It is important to understand that Linuxconf does not rely on direct widget positioning, but completely on this strategy.

5.2 Another example: form.simple2

        MainForm basic Basic menu
        Label Your name
        String S1 15
        Dispolast l 2 c 1
        Newline
        Label Telephone
        String S2 15
        Dispolast l 2 c 1
        Newline
        Label Status
        Radio R1 1 0 single
        Radio R1 2 0 Married
        Newline
        Button B1 Accept
        Button B2 Cancel
        Dispolast l 2 c 1
        End
        

5.3 Commands used to affect the layout.

Most commands are used to define new components. Some exist only to make the layout strategy more flexible. Here they are with their numeric code in parentheses.

(5) Dispolast horid nbhcell vertid nbvcell

Set the disposition specification of the last component placed. The default is that each component occupy one cell horizontally and one vertically. The component is placed at the top left of the cell.

Here is the description of the parameters:

horid

This is one of the letter l,c,r. This controls the positioning of the field horizontally in the cell(s) it will use. The letters stand for left, center and right,

nbhcell

This controls the number of cells used by this field horizontally.

vertid

This is one of the letter t,c,b. This controls the positioning of the field vertically in the cell(s) it will use. The letters stand for top, center and bottom.

nbvcell

This controls the number of cells used by this field vertically.

Dispolast lets you define components which logically spans more than one cell. Here an example made only of Label.

Example form.donut

        MainForm basic Donut
            Label top left
            Label space
            Label top center
            Label space
            Label top right
            Newline

            Label left side
            Label center
            Dispolast c 3 c 3
            Label right side
            Newline

            Label left side
            # The center component occupy the next 3 cells
            Label right side
            Newline

            Label left side
            # The center component occupy the next 3 cells
            Label right side
            Newline

            Label bottom left
            Label space
            Label bottom center
            Label space
            Label bottom right
            End
        

Principles

A cell is the space assigned to a field. The layout strategy goes like this:

This is recursive with a depth first strategy: A field may be a sub-panel itself composed of fields and sub-panels.

(30) Fill

Fill enter some invisible but elastic component. This is used to spread the various widget of a form horizontally so they fill as much as possible the form instead of staying packed on the left.

(3) Skip N

Leave N empty cells in the dialog. This would be equivalent to placing N empty label horizontally.


Next Previous Contents