# Function: lm_arrange

## CALL:

lm_arrange(hframe,property,value,...) lm_arrange(hframe,propertystruct)

## DESCRIPTION:

Arrange uicontrol objects in rows and columns

## INPUT:

          input comes in parameter-name,parameter_value pairs. Parameter name
          case insensitive sensitive

      INPUT PARAMETERS:

CLEAR | any |
    true or false, Defaults to true.
    If true, all other parameter value pairs will be ignored, and
    properties normpos will be reset to their default values. Use
    lm_arrange(hframe,'CLEAR', true) before issueing an lm_arrange
    command that must ovverride earlier one.
LMARGE | any |
    margin left (Default =10)
    LMARGE is a scalar
RMARGE | any |
    margin right (Default =10)
               RMARGE is a scalar
HMARGE | any |
    margin between, horizontal (Default =5)
               HMARGE may be specified as a vector or scalar
TMARGE | any |
    margin top (Default =15)
               TMARGE is a scalar
BMARGE | any |
    margin below (Default =6)
               BMARGE is a scalar
VMARGE | any |
    margin between, vertical (Default =1)
               VMARGE may be specified as a vector or scalar
PIXELW | any |
    pixel width of frame (default: compute from extent of HG object)
PIXELH | any |
    pixel height of frame (default: compute from extent of HG object)
NORESIZE | any |
    if set, do not resize frame
HEQUAL | any |
    (true or false, default false)
    if true, distribute Horizontally. Setting HEQUAL to true is
    equivalent to setting WIDTH component of normpos property to
    exact same value for all objects, and likewise for pixelpos
    property.
VEQUAL | any |
    (true or false, default false)
    if true, distribute Vertically. Setting VEQUAL to true is
    equivalent to setting HEIGHT component of normpos property to
    exact same value for all objects, and likewise for pixelpos
    property.
HNORM | any |
    (true or false, default false)
    if true: normalize  horizontally (use full frame width)
VNORM | any |
            (true or false, default false)
            if true: normalize  vertically (use full frame height)
        HCENTER
            (0,1,2) if 0: left align
                         if 1: center items in horizontal direction
                         if 2: right align items in horizontal direction
                 NOTE: if HNORM==1 the HCENTER option is ignored
        VCENTER
            (0,1,2) if 0: top align
                         if 1: center items in vertical direction
                         if 2: bottom align
                 NOTE: if VNORM==1 the VCENTER option is ignored

    INDIRECT INPUT
        object application data:
            keeppixelsize: set to 1 to prevent changing pixelsize
            ignoreh      : set to 1 to prevent using height to compute row
                           pixel height
            ignorew      : set to 1 to prevent using width to compute column
                           pixel width
            pixelpos     : if set, pixelpos is not recomputed
            normpos      : if option HNORM is active, element 3 of normpos is
                           used (EXCEPTION: if object is spread over more
                           columns, its normalized width is not used)
        object attributes
            pos
            type
            extent

## OUTPUT:

pixpos | any |
    [pixpos(1) pixpos(2] extent van objecten, inclusief marges
raster | any |
    Coordinates of raster. Suppose raster is M x N:
          raster.x.pixelpos (length N+1)
          raster.x.normpos  (length N+1)
          raster.y.pixelpos (length M+1)
          raster.y.normpos  (length M+1)