Copyright (c) Hyperion Entertainment and contributors.

TMUI IFF Project File Format

From AmigaOS Documentation Wiki
Jump to navigation Jump to search

TMUI

Toolmaker IFF project file format (ToolMaker V1.19)
---------------------------------

FORM TMUI

Description by Michael Erwin


The TMUI FORM is used by Toolmaker to describe the created graphical user
interface.  TMUI stands for Toolmaker User Interface.  This description is
for the output of Toolmaker V1.19 and may change in the future.

ZTS in the following FORMs and chunks means Zero Terminated String.  All
reserved fields must be set to 0.


FORMs and chunks:

  THDR

    The THDR chunk contains the project's header information.  It is always
    located within the TMUI FORM.

      - ZTS version - the project's version string. (Ex: '$VER: Toolmaker
                      Project 1.19 (8.7.92)\0')

      - ULONG reserved

      - ULONG reserved

  ANNO

    The ANNO chunk contains the project's annotation information.  It is always
    located within the TMUI FORM.

      - ZTS description - a string describing the project file. (Ex: 'Project
                          file created by Toolmaker (c) 1992-1999 Amiga,
                          Inc. (c) 1991 Michael J. Erwin\0')

  TMSE

    The TMSE FORM contains all settings information.  It is always located
    within the TMUI FORM.  Each setting is contained in its own chunk within
    the TMSE FORM.

  SATB

    The SATB chunk contains information for the Top Border Adjust setting.  It
    is always located within the TMSE FORM.

      - UBYTE flags - Top Border Adjust flags.

                      bit    0: 1 = Top Border Adjust on.
                      bit 1-31: reserved

  SCOM

    The SCOM chunk contains information for the Code Comments setting. It is
    always located within the TMSE FORM.

      - UBYTE flags - Code Comments flags.

                      bit    0: 1 = Code Comments on.
                      bit 1-31: reserved

  SPRA

    The SPRA chunk contains information for the Use Pragmas setting.  It is
    always located within the TMSE FORM.

      - UBYTE flags - Use Pragmas flags.

                      bit    0: 1 = Use Pragmas on.
                      bit 1-31: reserved

  SICN

    The SICN chunk contains information for the Create Icons setting.  It is
    always located within the TMSE FORM.

      - UBYTE flags - Create Icons flags.

                      bit    0: 1 = Create Icons on.
                      bit 1-31: reserved

  SUSG

    The SUSG chunk contains information for the User Wait Signal setting.  It
    is always located within the TMSE FORM.

      - UBYTE flags - User Wait Signal flags.

                      bit    0: 1 = Create Icons on.
                      bit 1-31: reserved

  SARX

    The SARX chunk contains information for the Use SimpleRexx setting.  It is
    always located within the TMSE FORM.

      - UBYTE flags - Use SimpleRexx flags.

                      bit    0: 1 = Use SimpleRexx on.
                      bit 1-31: reserved

  SCHP

    The SCHP chunk contains information for the Use __chip Keyword setting.  It
    is always located within the TMSE FORM.:

      - UBYTE flags - Use __chip Keyword flags.

                      bit    0: 1 = Use __chip Keyword on.
                      bit 1-31: reserved

  SUDA

    The SUDA chunk contains information for the Use UserData Structures setting.
    It is always located within the TMSE FORM.

      - UBYTE flags - Use UserData Structures flags.

                      bit    0: 1 = Use UserData Structures on.
                      bit 1-31: reserved

  SFRQ

    The SFRQ chunk contains information for the Use ASL File Requester setting.
    It is always located within the TMSE FORM.

      - UBYTE flags - Use ASL File Requester flags.

                      bit    0: 1 = Use ASL File Requester on.
                      bit 1-31: reserved

  SGSZ

    The SGSZ chunk contains information for the Grid Snap setting.  It is
    always located within the TMSE FORM.

      - UBYTE gridsize - the size of the grid spacing.  Future versions of
                         Toolmaker may use other values.

                         1 = Grid Snap Off.
                         2 = Grid Snap at 2 pixels.
                         4 = Grid Snap at 4 pixels.
                         8 = Grid Snap at 8 pixels.

      - UBYTE reserved

  TSCR

    The TSCR FORM contains all information for a screen.  It is always
    located within the TMUI FORM.  There is one TSCR FORM for each screen.
    As of V1.19 only one TSCR FORM is created and looked for.  A TSCR FORM
    exists even if the Workbench screen is used instead of a custom screen.

  TSDA

    The TSDA chunk contains general screen data.  It is always located within
    a TSCR FORM.  For the Workbench screen only the displayID and mode fields
    are used.  All others are ignored.

      - ULONG displayID - DisplayID as defined in <graphics/modeid.h>.
                          (0 = Workbench screen)

      - ULONG width - the screen's width.

      - ULONG height - the screen's height.

      - ULONG depth - the screen's depth (number of bitplanes).

      - ULONG overscan - overscan as defined in <intuition/screens.h>.

      - ULONG TMflags - Toolmaker screen flags.

                        bit  0-2: reserved
                        bit    3: 1 = open at start
                        bit 4-31: reserved

      - ULONG mode - Toolmaker internal screen mode flags.  Future versions
                     of Toolmaker may ignore this info since this data is
                     redundant.

                     bit     0: 1 = NTSC
                     bit     1: 1 = PAL
                     bit     2: 1 = Interlace
                     bit     3: 1 = HIRES
                     bit     4: 1 = SuperHIRES
                     bit     5: 1 = Productivity
                     bit     6: 1 = A2024 10Hz
                     bit     7: 1 = A2024 15Hz
                     bit     8: 1 = Overscan TEXT
                     bit     9: 1 = Overscan STANDARD
                     bit    10: 1 = Overscan MAX
                     bit    11: 1 = Overscan VIDEO
                     bit    12: reserved
                     bit    13: 1 = Custom palette
                     bit    14: 1 = Default width
                     bit    15: 1 = Default height
                     bit 16-30: reserved
                     bit    31: 1 = Workbench

      - struct Rectangle reserved

      - ULONG reserved

      - ULONG reserved

      - ZTS title - the screen's title bar text.

      - ZTS label - the screen's source code label.

      - ZTS reserved

  CMAP

    The CMAP chunk contains color map data for the screen.  It is in the same
    format as the CMAP in the ILBM FORM and is always located within a TSCR
    FORM.  There are three UBYTEs for each bitplane of the screen.

      - UBYTE red level.

      - UBYTE green level.

      - UBYTE blue level.

        .
        .
        .

  TWIN

    The TWIN FORM contains all information for a window.  It is always
    located within a TSCR FORM.  There is one TWIN FORM for each window
    of the screen.

  TWDA

    The TWDA chunk contains general window data.  It is always located within
    a TWIN FORM.

      - ULONG IDCMP - the window's IDCMP flags.

      - ULONG TMflags - Toolmaker window flags.

                        bit    0: 1 = gimmezerozero
                        bit    1: reserved
                        bit    2: 1 = open at start
                        bit 4-31: reserved

      - ULONG reserved

      - ULONG reserved

      - ZTS title - the window's title bar text.

      - ZTS label - the window's source code label.

      - ZTS reserved

  TMEN

    The TMEN FORM contains all information for a menu.  It is always located
    within a TWIN FORM.  There is one TMEN FORM for each menu within a menu
    bar.

  TMDA

    The TMDA chunk contains general menu data.  It is always located within a
    TWIN FORM.

      - ULONG number - the menu's number counting from the left.  For V1.19
                       this number is ignored and the menus are expected to be
                       in the correct order within the TWIN FORM.

      - UWORD flags - the menu's flags as defined in <intuition/intuition.h>.

      - ULONG TMflags - Toolmaker menu flags.

                        bit 0-31: reserved

      - ULONG reserved

      - ULONG reserved

      - ZTS text - the menu's text

      - ZTS label - the menu's source label

      - ZTS reserved

  TITE

    The TITE FORM contains all information for a menu item.  It is always
    located within a TMEN FORM.  There is one TITE FORM for each item within
    the menu.

  TIDA

    The TIDA chunk contains general a menu item data.  It is always located
    within a TITE FORM.

      - ULONG number - the item's number counting from the top.  For V1.19
                       this number is ignored and the items are expected to be
                       in the correct order within the TMEN FORM.

      - UWORD flags - the item's flags as defined in <intuition/intuition.h>.

      - ULONG TMflags - Toolmaker menu item flags.

                        bit    0: 1 = mutual exclude all other items.
                        bit 1-31: reserved

      - ULONG reserved

      - ULONG reserved

      - ULONG reserved

      - ZTS text - the item's text.

      - ZTS commkey - a character for the item's keyboard shortcut.

      - ZTS label - the item's source code label.

      - ZTS reserved

  TSID

    The TSID chunk contains all information for a menu subitem.  It is always
    located within a TITE FORM.  There is one TSID chunk for each subitem
    within an item.

      - ULONG number - the subitem's number counting from the top.  For V1.19
                       this number is ignored and the subitems are expected to be
                       in the correct order within the TITE FORM.

      - UWORD flags - the subitem's flags as described in <intuition/intuition.h>.

      - ULONG TMflags - Toolmaker menu subitem flags.

                        bit    0: 1 = mutual exclude all other subitems.
                        bit 1-31: reserved

      - ULONG reserved

      - ULONG reserved

      - ULONG reserved

      - ZTS text - the subitem's text.

      - ZTS commkey - the subitem's keyboard shortcut character. (Ex: "A")

      - ZTS label - the subitem's source code label.

      - ZTS reserved

  TGAD

    The TGAD FORM contains all information for a gadget.  It is always located
    within a TWIN FORM.  There is one TGAD FORM for each gadget within the
    window.

  TGDA

    The TGDA chunk contains general gadget data.  It is always located within
    a TGAD FORM.

      - ULONG number - the gadgets's number counting from the first one to
                       display.  For V1.19 this number is ignored and the
                       gadgets are expected to be in the correct order within
                       the TWIN FORM.

      - ULONG kind - the gadget's kind as described in <libraries/gadtools.h>.

      - ULONG TMflags - Toolmaker gadget flags.

                        bit 0-31: reserved

      - struct NewGadget newgadget - the gadget's NewGadget structure.
                                     The ng_GadgetText, ng_TextAttr,
                                     ng_GadgetID, ng_VisualInfo, and
                                     ng_UserData fields are ignored.

                                     * The ng_TopEdge is from the bottom of
                                     the window's top border and the
                                     ng_LeftEdge is from the right edge of
                                     the window's left border if the Auto Top
                                     Border setting is on.

      - ULONG reserved

      - ULONG reserved

      - ZTS text - the gadget's text.

      - ZTS label - the gadget's source code label.

      - ZTS reserved

  TFON

    The TFON FORM contains all information for a font.  It may be located
    within a TSCR or TGAD FORM.

  TTAT

    The TTAT chunk contains general font data.  Is is always located within
    a TFON FORM.

      - struct TextAttr textattr - the font's TextAttr structure.  The ta_Name
                                   field is ignored.

      - ZTS name - the font's name (Ex: "topaz.font").

  TINT

    The TINT chunk contains information for an integer tag.  It may be located
    within a TSCR, TWIN, TGAD, or TFON FORM.

      - ULONG tag - the tag.

      - ULONG data - the tag's integer value.

      - ULONG reserved

      - ZTS data - the tag's value in character form.  This is used mostly
                   for constants such as TRUE and FALSE.  (Ex: "TRUE" or "1")

  TCHA

    The TCHA chunk contains information for a character tag.  It may be located
    within a TSCR, TWIN, TGAD, or TFON FORM.

      - ULONG tag - the tag.

      - ULONG character - the tag's ASCII character value (Ex: 'a' or 'b')

      - ULONG reserved

      - ZTS character - the tag's value in character form. (Ex: "a" or "b")

  TWLS

    The TWLS chunk contains information for a WORD list tag.  It may be located
    within a TSCR, TWIN, TGAD, or TFON FORM.

      - SHORT count - the number of WORDs in the list.

      - ULONG tag - the tag.

      - ULONG reserved

      - WORD[count] - the list of WORDs.

  TSTR

    The TSTR chunk contains information for a string tag.  It may be located
    within a TSCR, TWIN, TGAD, or TFON FORM.

      - ULONG tag - the tag.

      - ULONG reserved

      - ULONG reserved

      - ZTS string - the string.

  TSLS

    The TSLS chunk contains information for a string list tag.  It may be
    located within a TSCR, TWIN, TGAD, or TFON FORM.

      - SHORT count - the number of strings in the list.

      - ULONG tag - the tag.

      - ULONG reserved1[count] - a reserved ULONG for each string in the list.

      - ULONG reserved2[count] - a reserved ULONG for each string in the list.

      - ZTS string[count] - the list of strings.

      - ZTS label[count] - the source labels for each string.

  TLLS

    The TLLS chunk contains information for a linked list tag.  It may be
    located within a TSCR, TWIN, TGAD, or TFON FORM.

      - SHORT count - the number of items in the list.

      - ULONG tag - the tag.

      - ULONG reserved1[count] - a reserved ULONG for each item in the list.

      - ULONG reserved2[count] - a reserved ULONG for each item in the list.

      - ZTS item[count] - the list of items.

      - ZTS label[count] - the source labels for each item.

  TNIN

    The TNIN chunk contains information for a non-interactive tag.  It may be
    located within a TSCR, TWIN, TGAD, or TFON FORM.

      - ULONG tag - the tag.

      - ULONG reserved

      - ZTS data - the tag's value in character form. (Ex: "TRUE" or "12")