# Function: lm_createframe

## CALL:

h = lm_createframe(parent,'property', value, 'property', value) (PREFERRED) h = lm_createframe('property', value, 'property', value)

## DESCRIPTION:

Maak een lm_resize frame aan

## INPUT:

parent | any |
        modelit.layout.Frame
             If parent handle is not defined, current figure will be parent
        property/value pairs (varargin):
             Any settings that overide defaults

     PROPERTY         DESCRIPTION
    ======================================================================
     'active'         Visibility of this frame and all siblings
                      true ==> visible
                      false==> not visible
                      NaN  ==> let lm_resize evaluate value of this
                               attribute. If this frame has any active child.
                               lm_resize will treat this frame as active.
                               Recurse if needed.
     'backgroundcolor'
                      Background color used for elements like title,
                      exitbuttun
     'border'
                      Visibility of uicontrol frame object
                      true==> visible
                      false==> not visible
     'enable'         enable properties of frame and siblings
     'exitbutton'     (default=false)
                      include exit button. This property will become obsolete
                      inth future.
     'exitfunction'   functiona that is called when frame becomes inactive
     'lineprops'      (default empty)
                      Property of line, if used as border
                      zie Matlab - line voor meer informatie
                      VOORBEELD: ...,'lineprops',lm_lineprops('color','k','shadowed',0 ),...
                                 ...,'lineprops',lm_lineprops,...
     'shadowed'       (default true)
                      If true a ahdow effect will be created by drawing a second line.
                      Note 20171005:this property is ignored in current
                      implementation. Frame borders are always shadowed.
     'maxpixelsize'   (default=[inf inf])
                      When pixelsize is set this defines the maxvalue (per
                      dimension)
     'minmarges'      margin in pixels for this frame [LEFT LOWER RIGHT UPPER]
                      This set the margin relative to the parent frame
                      defaults to [0 0 0 0]
     'normposition'   Only for top frame. Sets normalized position(normalized)
     'normsize'       (default=[1 1])
                      Normalized size of frame
                      NOTE: One may specify NaN for 1 or both dimensions. In
                      this case the normalized size will be computed from the
                      active siblings.
     'parenthandle'   handle of parent frame
     'patchprops'    (default: [])
                      Eigenschappen van de patch die het frame markeert
                      zie Matlab - patch voor meer informatie
                      VOORBEELD: ...,'patchprops',lm_patchprops('facec',C.WINCOLOR,'linew',1),...

     'pixelposition'  Only used for topframe. Pixelposition of topframe.
     'pixelsize'      (default=[0 0])
                      Size of frame in pixels.
                      NOTE (1): One may specify NaN for 1 or both dimensions. In
                      this case the pixel size will be computed from the
                      active siblings.
                      NOTE (2): lm_arrange overwrites this property, so there
                      is no need to specify pixelsize with lm_createframe if
                      lm_arrange will be called later.
                      NOTE (3): pixelsize implies a minimum value. Frames will not
                      be resized below this value, even if this means it will
                      no longer be smaller than its parent frame. Therefore
                      parent frames should not have a pixelsize that is
                      smaller than the totalized pixelsize of its siblings.
                      (TO DO: create function that checks this)
     'rank'           (default=0)
                      Relative position of frame
                      When ordering in horizontal position: low rank goes
                      eft.  High rank goes right.
                      When ordering in vertical position. Low rank goes up.
                      High rank goes down.
                      NOTE: only the relative ranks are important.
     'slider'         handle for a slider slider object
                      When a handle is specified, the vertical shift is
                      determined by the slider settings.
     'splithor'       Orientation of the frame
                      true==> siblings will be ordered horizontally
                      false==> siblings will be ordered in vertical direction
     'title'          Title to be displayed

## OUTPUT:

h | any |
       modelit.layout.Frame

    EXAMPLES
    Example -1-
    Create a figure that sizes to fit contents exactly:
    hfig=lm_createframe(HWIN,'splithor',0,'pixelsize',[NaN NaN],'normsize',[0 0]);

    Example -2-
    Create a figure that sizes to fit contents but does not shrink the figure:
    hfig=lm_createframe(HWIN,'splithor',0,'pixelsize',[NaN NaN],'normsize',[1 1]);