Skip to content
Snippets Groups Projects
  • Zefram's avatar
    d1d6a97b
    Scale form elements consistently · d1d6a97b
    Zefram authored
    The ratios between the sizes of form elements, including text, is now
    fixed, aside from variations caused by rounding.  This makes form layout
    almost fully predictable, and particularly independent of player's
    screen size.  The proportions of non-text elements are the traditional
    proportions.
    
    For compatibility, the way in which element positions and sizes are
    specified remains unchanged, in all its baroqueness, with one exception.
    The exception is that the position of a label[] element is now defined
    in terms of the vertically center of the first line of the label,
    rather than the bottom of the first line of the label.  This change
    allows a label to be precisely aligned with button text or an edit box,
    which are positioned in a centering manner.  Label positioning remains
    consistent with the previous system, just more precisely defined.
    
    Make multi-line label[] elements work properly.  Previously the code set
    a bounding rectangle assuming that there would be only a single line,
    and as a result a multi-line label would be cut somewhere in the middle
    of the second line.  Now multi-line labels not only work, but have
    guaranteed line spacing relative to inventory slots, to aid alignment.
    
    Incidentally fix tabheader[] elements which were being constrained to
    the wrong width.
    
    Given an unusually large form, in variable-size mode, the form rendering
    system now chooses a scale that will fit the entire form on the screen,
    if that doesn't make elements too small.  Fixed-size forms, including the
    main menu, are have their sizes fixed in inch terms.  The fixed size for
    fixed-size forms and the preferred and minimum sizes for variable-size
    forms all scale according to the gui_scaling parameter.
    d1d6a97b
    History
    Scale form elements consistently
    Zefram authored
    The ratios between the sizes of form elements, including text, is now
    fixed, aside from variations caused by rounding.  This makes form layout
    almost fully predictable, and particularly independent of player's
    screen size.  The proportions of non-text elements are the traditional
    proportions.
    
    For compatibility, the way in which element positions and sizes are
    specified remains unchanged, in all its baroqueness, with one exception.
    The exception is that the position of a label[] element is now defined
    in terms of the vertically center of the first line of the label,
    rather than the bottom of the first line of the label.  This change
    allows a label to be precisely aligned with button text or an edit box,
    which are positioned in a centering manner.  Label positioning remains
    consistent with the previous system, just more precisely defined.
    
    Make multi-line label[] elements work properly.  Previously the code set
    a bounding rectangle assuming that there would be only a single line,
    and as a result a multi-line label would be cut somewhere in the middle
    of the second line.  Now multi-line labels not only work, but have
    guaranteed line spacing relative to inventory slots, to aid alignment.
    
    Incidentally fix tabheader[] elements which were being constrained to
    the wrong width.
    
    Given an unusually large form, in variable-size mode, the form rendering
    system now chooses a scale that will fit the entire form on the screen,
    if that doesn't make elements too small.  Fixed-size forms, including the
    main menu, are have their sizes fixed in inch terms.  The fixed size for
    fixed-size forms and the preferred and minimum sizes for variable-size
    forms all scale according to the gui_scaling parameter.