#ifndef EDITOR_REGISTRY_H
#define EDITOR_REGISTRY_H
/*
**      $Filename: registry.h
**      $Release:  6.2.0
**
**      Registry definitions.
**
**      (C) Copyright 1997-1999 Dietmar Eilert
**          All Rights Reserved
**      
*/

/* /// "defines" */

/*

   Linked trees of objects are the basis of the configuration. Each object
   has an "ID" and a "value" (object ID range: 0 - 2047, ie. 11 bit). Many
   objects additionally have a "name". The "value" can be of one of these
   types: a number, a string, a list or a memory block (as indicated by
   object->type).

*/

struct Object {

    struct Node           Node;                      /* it's a linked list */
    UWORD                 ID;                        /* object ID */
    UWORD                 Type;                      /* class ID */
    struct Class         *Class;                     /* internal data (class functions) */

    union {

        ULONG             Number;                    /* number */
        UBYTE            *String;                    /* OR: string */
        struct List      *List;                      /* OR: object tree */
        APTR              Data;                      /* OR: memory block */

    } Value;
};

/* object types (bit 0-2 of object->Type) */

#define OBJECT_TYPE_NUMBER     1                     /* object stores numbers */
#define OBJECT_TYPE_STRING     2                     /* object stores strings */
#define OBJECT_TYPE_LIST       3                     /* object stores tree */
#define OBJECT_TYPE_DATA       4                     /* object stores memory block */

/* additional type flag bits (bit 3-4 of object->Type) */

#define OBJECT_TYPE_NAMED      8                     /* indicates named object (node->ln_Name) */

/* /// */
/* /// "global" */

#define REGISTRY_GLOBAL 0

#define OBJECT_GLOBAL_BASE                 (REGISTRY_GLOBAL + 0 )   /* global data (LIST) */

#define OBJECT_GLOBAL_INSERTMODE           (REGISTRY_GLOBAL + 1 )   /* insert mode (BOOL) */
#define OBJECT_GLOBAL_WILDCARDS            (REGISTRY_GLOBAL + 2 )   /* wildcard search ? (BOOL) */
#define OBJECT_GLOBAL_CONFIRMREPLACE       (REGISTRY_GLOBAL + 3 )   /* confirm replaces ? (BOOL) */
#define OBJECT_GLOBAL_ONLYWORDS            (REGISTRY_GLOBAL + 4 )   /* find/replace only words ? (BOOL) */
#define OBJECT_GLOBAL_CASESENSITIVE        (REGISTRY_GLOBAL + 5 )   /* case sensitive search ? */
#define OBJECT_GLOBAL_UNFOLDSCAN           (REGISTRY_GLOBAL + 6 )   /* scan folds ? (BOOL) */
#define OBJECT_GLOBAL_SORTSCAN             (REGISTRY_GLOBAL + 7 )   /* sort scanner results ? (BOOL) */
#define OBJECT_GLOBAL_FINDTEXT             (REGISTRY_GLOBAL + 8 )   /* find text (STRING) */
#define OBJECT_GLOBAL_RPLCTEXT             (REGISTRY_GLOBAL + 9 )   /* replace text (STRING) */
#define OBJECT_GLOBAL_INSRTEXT             (REGISTRY_GLOBAL + 10)   /* insert text (STRING) */
#define OBJECT_GLOBAL_PATTERN              (REGISTRY_GLOBAL + 11)   /* file requester pattern (STRING) */
#define OBJECT_GLOBAL_ASCIITEXT            (REGISTRY_GLOBAL + 12)   /* ASCII code (STRING) */
#define OBJECT_GLOBAL_COMMAND              (REGISTRY_GLOBAL + 13)   /* command text (STRING) */
#define OBJECT_GLOBAL_INDENT               (REGISTRY_GLOBAL + 14)   /* indention (LONG) */
#define OBJECT_GLOBAL_ASLLEFT              (REGISTRY_GLOBAL + 15)   /* asl requester position (LONG) */
#define OBJECT_GLOBAL_ASLTOP               (REGISTRY_GLOBAL + 16)   /* asl requester position (LONG) */
#define OBJECT_GLOBAL_ASLWIDTH             (REGISTRY_GLOBAL + 17)   /* asl requester size (LONG) */
#define OBJECT_GLOBAL_ASLHEIGHT            (REGISTRY_GLOBAL + 18)   /* asl requester size (LONG) */
#define OBJECT_GLOBAL_MACROFILE            (REGISTRY_GLOBAL + 19)   /* last macro file (STRING) */
#define OBJECT_GLOBAL_SEQUENCEFILE         (REGISTRY_GLOBAL + 20)   /* last sequence file (STRING) */
#define OBJECT_GLOBAL_PRESETFILE           (REGISTRY_GLOBAL + 21)   /* last sequence file (STRING) */
#define OBJECT_GLOBAL_REMAPFILE            (REGISTRY_GLOBAL + 22)   /* remap template file (STRING) */
#define OBJECT_GLOBAL_SERIAL               (REGISTRY_GLOBAL + 23)   /* serial code (NAME), NUMBER */
#define OBJECT_GLOBAL_GOTOLINE             (REGISTRY_GLOBAL + 28)   /* goto line (STRING) */
#define OBJECT_GLOBAL_GOTOBYTE             (REGISTRY_GLOBAL + 80)   /* goto offset (STRING) */
#define OBJECT_GLOBAL_UNFOLDGOTO           (REGISTRY_GLOBAL + 29)   /* undfold folds ? (BOOL) */
#define OBJECT_GLOBAL_HISTORY              (REGISTRY_GLOBAL + 30)   /* find/replace history (LIST) */
#define OBJECT_GLOBAL_MACRO                (REGISTRY_GLOBAL + 31)   /* recorded sequence (LIST) */
#define OBJECT_GLOBAL_SCANNERS             (REGISTRY_GLOBAL + 32)   /* active scanner (NAME), scanner list (LIST) */
#define OBJECT_GLOBAL_GREPLIST             (REGISTRY_GLOBAL + 76)   /* file list (LIST) */
#define OBJECT_GLOBAL_POOL                 (REGISTRY_GLOBAL + 44)   /* pool tree (LIST) */
#define OBJECT_GLOBAL_PRESETS              (REGISTRY_GLOBAL + 85)   /* modified presets (LIST) */
#define OBJECT_GLOBAL_XPKLIST              (REGISTRY_GLOBAL + 86)   /* XPK packers (LIST) */
#define OBJECT_GLOBAL_INSTALLPATH          (REGISTRY_GLOBAL + 91)   /* install path (STRING) */
#define OBJECT_GLOBAL_DIALOGS              (REGISTRY_SCREEN + 95)   /* dialogs (LIST) */
#define OBJECT_GLOBAL_DIALOG               (REGISTRY_SCREEN + 64)   /* dialog dimensions (LONG): dialog ID (bit 0-7), width (bit 8-19), height (bit 20-31) */

#define OBJECT_GLOBAL_IMAGECACHE           (REGISTRY_GLOBAL + 87)   /* cached images (LIST) */
#define OBJECT_GLOBAL_IMAGE                (REGISTRY_GLOBAL + 88)   /* image name (NAME), image data (DATA) */

#define OBJECT_GLOBAL_FILTERS              (REGISTRY_GLOBAL + 33)   /* external import/export filters (LIST) - not yet supported */
#define OBJECT_GLOBAL_IMPORT               (REGISTRY_GLOBAL + 34)   /* external import filters (LIST) - not yet supported */
#define OBJECT_GLOBAL_EXPORT               (REGISTRY_GLOBAL + 35)   /* external export filters (LIST) - not yet supported */

#define OBJECT_GLOBAL_VARS                 (REGISTRY_GLOBAL + 36)   /* variables page (LIST) */
#define OBJECT_GLOBAL_VARIABLES            (REGISTRY_GLOBAL + 37)   /* variables (LIST) */
#define OBJECT_GLOBAL_VARIABLE             (REGISTRY_GLOBAL + 38)   /* variable name (NAME), variable data (STRING) */

#define OBJECT_GLOBAL_REGISTRY             (REGISTRY_GLOBAL + 39)   /* modes page (LIST): parent of MODES & POOL */
#define OBJECT_GLOBAL_DETECTTYPE           (REGISTRY_GLOBAL + 40)   /* detect file type ? (BOOL) - not yet supported */
#define OBJECT_GLOBAL_MODES                (REGISTRY_GLOBAL + 41)   /* list of modes (LIST) */
#define OBJECT_GLOBAL_MODE                 (REGISTRY_GLOBAL + 42)   /* mode (LIST) */
#define OBJECT_GLOBAL_PROPERTIES           (REGISTRY_GLOBAL + 79)   /* mode properties */
#define OBJECT_GLOBAL_PROPERTY             (REGISTRY_GLOBAL + 43)   /* mode property (NAME: preset file, NUMBER: preset type) */
#define OBJECT_GLOBAL_FILETYPES            (REGISTRY_GLOBAL + 77)   /* list of filetype patterns */
#define OBJECT_GLOBAL_FILETYPE             (REGISTRY_GLOBAL + 78)   /* filetype pattern (NAME, LONG: unused) */

#define OBJECT_GLOBAL_OPTIONS              (REGISTRY_GLOBAL + 75)   /* general options (LIST) */
#define OBJECT_GLOBAL_RESIDENT             (REGISTRY_GLOBAL + 46)   /* hotkey activation ? (BOOL) */
#define OBJECT_GLOBAL_LOGIN                (REGISTRY_GLOBAL + 94)   /* login password (STRING) */
#define OBJECT_GLOBAL_AUTOSESSION          (REGISTRY_GLOBAL + 47)   /* autoload last session ? (BOOL) */
#define OBJECT_GLOBAL_REXXDEBUG            (REGISTRY_GLOBAL + 48)   /* debug infos ? (BOOL) */
#define OBJECT_GLOBAL_NOCACHE              (REGISTRY_GLOBAL + 49)   /* disable cache while creating font ? (BOOL) */
#define OBJECT_GLOBAL_UNDOLEVELS           (REGISTRY_GLOBAL + 52)   /* undo levels (LONG) */
#define OBJECT_GLOBAL_UNDOBUFFER           (REGISTRY_GLOBAL + 53)   /* undo buffer size (LONG) */
#define OBJECT_GLOBAL_UNDOWARNINGS         (REGISTRY_GLOBAL + 54)   /* undo warnings enabled ? (BOOL) */
#define OBJECT_GLOBAL_UNDOMODE             (REGISTRY_GLOBAL + 55)   /* undo mode (LONG) */
#define OBJECT_GLOBAL_TASKPRI              (REGISTRY_GLOBAL + 56)   /* task pri (LONG) */
#define OBJECT_GLOBAL_NUMPAD               (REGISTRY_GLOBAL + 57)   /* recognize numpad ? (BOOL) */
#define OBJECT_GLOBAL_QUITACTION           (REGISTRY_GLOBAL + 58)   /* action to be taken if last window is closed (ULONG) - not yet supported */
#define OBJECT_GLOBAL_SIMPLEREFRESH        (REGISTRY_GLOBAL + 59)   /* simple refresh ? (BOOL) */
#define OBJECT_GLOBAL_MAXLEN               (REGISTRY_GLOBAL + 60)   /* max chars in line (LONG) - not yet supported */
#define OBJECT_GLOBAL_HUNT                 (REGISTRY_GLOBAL + 61)   /* file to be searched (STRING) */
#define OBJECT_GLOBAL_PASSWORD             (REGISTRY_GLOBAL + 63)   /* password (STRING) */
#define OBJECT_GLOBAL_DUPLICATES           (REGISTRY_GLOBAL + 65)   /* allow multiple loading of a file ? (BOOL) */
#define OBJECT_GLOBAL_SIMPLEMESSAGES       (REGISTRY_GLOBAL + 67)   /* simple messages ? (BOOL) */
#define OBJECT_GLOBAL_ERRORBEEP            (REGISTRY_GLOBAL + 68)   /* error beep volume (LONG) */
#define OBJECT_GLOBAL_USEASL               (REGISTRY_GLOBAL + 69)   /* use ASL requester ? (BOOL) */
#define OBJECT_GLOBAL_SNAPSHOT             (REGISTRY_GLOBAL + 96)   /* store dimensions of dialogs ? (BOOL) */
#define OBJECT_GLOBAL_CONFIRMERRORS        (REGISTRY_GLOBAL + 70)   /* confirm error messages ? (BOOL) */
#define OBJECT_GLOBAL_DATESTYLE            (REGISTRY_GLOBAL + 72)   /* date style (STRING) */
#define OBJECT_GLOBAL_WINDOWTITLE          (REGISTRY_GLOBAL + 73)   /* window title (STRING) */
#define OBJECT_GLOBAL_TRANSPARENCY         (REGISTRY_GLOBAL + 74)   /* transparent images ? (BOOL) */
#define OBJECT_GLOBAL_COMPILE              (REGISTRY_GLOBAL + 81)   /* compile sequences ? (BOOL) */
#define OBJECT_GLOBAL_CACHEIMAGES          (REGISTRY_GLOBAL + 89)   /* cache images in registry ? (BOOL) */
#define OBJECT_GLOBAL_SUGGEST              (REGISTRY_GLOBAL + 90)   /* suggest file names ? (BOOL) */
#define OBJECT_GLOBAL_UNFOLDTREES          (REGISTRY_GLOBAL + 92)   /* unfold first level of treeviews ? (BOOL) */
#define OBJECT_GLOBAL_HIDE                 (REGISTRY_GLOBAL + 93)   /* hide error requesters ? (BOOL) */
#define OBJECT_GLOBAL_CUSTOMRENDERING      (REGISTRY_GLOBAL + 97)   /* custom rendering functions ? (BOOL) */

#define OBJECT_GLOBAL_AUTORUN              (REGISTRY_GLOBAL + 82)   /* commands to be executed during startup (LIST) */
#define OBJECT_GLOBAL_AUTORUNREXX          (REGISTRY_GLOBAL + 83)   /* macro to be executed (NAME) and deleted (BOOL) */
#define OBJECT_GLOBAL_AUTORUNDOS           (REGISTRY_GLOBAL + 84)   /* macro to be executed (NAME) and deleted (BOOL) */

#define OBJECT_GLOBAL_GLOBALS              (REGISTRY_GLOBAL + 45)   /* obsolete */
#define OBJECT_GLOBAL_GUI                  (REGISTRY_GLOBAL + 66)   /* obsolete */
#define OBJECT_GLOBAL_CONFIRMBAK           (REGISTRY_GLOBAL + 71)   /* obsolete */
#define OBJECT_GLOBAL_BACKUPTIME           (REGISTRY_GLOBAL + 50)   /* obsolete */

/* /// */
/* /// "misc" */

#define REGISTRY_MISC 100

#define OBJECT_MISC_BASE                   (REGISTRY_MISC + 0 )     /* preset name (NAME), preset data (LIST) */
#define OBJECT_MISC_BACKUPDIR              (REGISTRY_MISC + 1 )     /* backup path (STRING) */
#define OBJECT_MISC_FOLDA                  (REGISTRY_MISC + 2 )     /* fold start (STRING) */
#define OBJECT_MISC_FOLDB                  (REGISTRY_MISC + 3 )     /* fold end (STRING) */
#define OBJECT_MISC_XPKPACKERNAME          (REGISTRY_MISC + 4 )     /* selected xpk packer (STRING) */
#define OBJECT_MISC_EFFICIENCY             (REGISTRY_MISC + 6 )     /* xpk efficiency (LONG) */
#define OBJECT_MISC_ENCRYPTION             (REGISTRY_MISC + 7 )     /* encryption supported by xpk packer ? (BOOL) */
#define OBJECT_MISC_TOOL                   (REGISTRY_MISC + 8 )     /* icon's default tool (STRING) */
#define OBJECT_MISC_CREATEDEBUG            (REGISTRY_MISC + 9 )     /* save breakpoints ? (BOOL) */
#define OBJECT_MISC_OVERWRITE              (REGISTRY_MISC + 10)     /* overwrite existing files ? (BOOL) */
#define OBJECT_MISC_CREATEINFO             (REGISTRY_MISC + 13)     /* create *.info file ? (BOOL) */
#define OBJECT_MISC_READ                   (REGISTRY_MISC + 14)     /* file protection (BOOL) */
#define OBJECT_MISC_WRITE                  (REGISTRY_MISC + 15)     /* file protection (BOOL) */
#define OBJECT_MISC_DELETE                 (REGISTRY_MISC + 16)     /* file protection (BOOL) */
#define OBJECT_MISC_SCRIPT                 (REGISTRY_MISC + 17)     /* file protection (BOOL) */
#define OBJECT_MISC_CRLF                   (REGISTRY_MISC + 25)     /* PC file format ? (BOOL) */
#define OBJECT_MISC_GENERATIONS            (REGISTRY_MISC + 18)     /* backup generations (UWORD) */
#define OBJECT_MISC_BACKLOG                (REGISTRY_MISC + 22)     /* backup backlog (days) (LONG) */
#define OBJECT_MISC_AUTOFOLD               (REGISTRY_MISC + 19)     /* autofold after loading ? (BOOL) */
#define OBJECT_MISC_INFOFILE               (REGISTRY_MISC + 20)     /* default .info-file (STRING) */
#define OBJECT_MISC_SMARTERASE             (REGISTRY_MISC + 21)     /* control size of backup directory ? (BOOL) - not yet supported */
#define OBJECT_MISC_OUTPUT                 (REGISTRY_MISC + 23)     /* default output (STRING) */
#define OBJECT_MISC_BACKUPTIME             (REGISTRY_MISC + 24)     /* backup interval (LONG) */

#define OBJECT_MISC_SAVETABS               (REGISTRY_MISC + 12)     /* obsolete */

/* /// */
/* /// "keyboard" */

#define REGISTRY_KEY 200

#define OBJECT_KEY_BASE                    (REGISTRY_KEY + 0 )      /* preset name (NAME), preset data (LIST) */
#define OBJECT_KEY_KEYLIST                 (REGISTRY_KEY + 3 )      /* keys (LIST) */
#define OBJECT_KEY_KEY                     (REGISTRY_KEY + 2 )      /* key name (NAME), event data (LIST) */

#define OBJECT_KEY_KEYS                    (REGISTRY_KEY + 1 )      /* obsolete */

/* /// */
/* /// "reference" */

#define REGISTRY_REFS 250

#define OBJECT_REFS_BASE                   (REGISTRY_REFS + 0 )     /* preset name (NAME), preset data (LIST) */
#define OBJECT_REFS_CACHEXREF              (REGISTRY_REFS + 1 )     /* use a cache ? (BOOL) */
#define OBJECT_REFS_DATABASES              (REGISTRY_REFS + 2 )     /* list of databases (LIST) */
#define OBJECT_REFS_FILES                  (REGISTRY_REFS + 3 )     /* hashfile (NAME), source files (LIST) */

/* /// */
/* /// "display" */

#define REGISTRY_SCREEN 300

#define OBJECT_SCREEN_BASE                 (REGISTRY_SCREEN + 0 )   /* preset name (NAME), preset data (LIST) */
#define OBJECT_SCREEN_SHANGHAI             (REGISTRY_SCREEN + 1 )   /* shanghai windows ? (BOOL) */
#define OBJECT_SCREEN_SLIDERMODE           (REGISTRY_SCREEN + 2 )   /* slider look (LONG) - not yet supported */
#define OBJECT_SCREEN_SHOWICONS            (REGISTRY_SCREEN + 3 )   /* show icons in listviews ? (BOOL) */
#define OBJECT_SCREEN_TYPE                 (REGISTRY_SCREEN + 4 )   /* screen type (LONG) */
#define OBJECT_SCREEN_SCREENNAME           (REGISTRY_SCREEN + 5 )   /* screen name (STRING) */
#define OBJECT_SCREEN_TXTFONT              (REGISTRY_SCREEN + 6 )   /* text font    (NAME), font size (LONG) */
#define OBJECT_SCREEN_WINFONT              (REGISTRY_SCREEN + 7 )   /* window font  (NAME), font size (LONG) */
#define OBJECT_SCREEN_SCRFONT              (REGISTRY_SCREEN + 8 )   /* screen font  (NAME), font size (LONG) */
#define OBJECT_SCREEN_PRVFONT              (REGISTRY_SCREEN + 9 )   /* preview font (NAME), font size (LONG) */
#define OBJECT_SCREEN_TOPFONT              (REGISTRY_SCREEN + 74)   /* status font  (NAME), font size (LONG) */
#define OBJECT_SCREEN_CHUNKYPIXEL          (REGISTRY_SCREEN + 10)   /* chunky pixel mode ? (BOOL) */
#define OBJECT_SCREEN_CLASSIC              (REGISTRY_SCREEN + 82)   /* classic interface ? (BOOL) */
#define OBJECT_SCREEN_SLIDERW              (REGISTRY_SCREEN + 93)   /* slider size (LONG) */
#define OBJECT_SCREEN_SLIDERH              (REGISTRY_SCREEN + 12)   /* slider size (LONG) */
#define OBJECT_SCREEN_BORDERBLANK          (REGISTRY_SCREEN + 13)   /* blank border ? (BOOL) */
#define OBJECT_SCREEN_FULLSCREEN           (REGISTRY_SCREEN + 14)   /* assume visible size = screen size ? (BOOL) */
#define OBJECT_SCREEN_SPACING              (REGISTRY_SCREEN + 15)   /* font spacing (LONG) */
#define OBJECT_SCREEN_BOTTOMSLIDER         (REGISTRY_SCREEN + 16)   /* show bottom scroller ? (BOOL) */
#define OBJECT_SCREEN_CLOCK                (REGISTRY_SCREEN + 17)   /* clock ? (BOOL) */
#define OBJECT_SCREEN_DATEFORMAT           (REGISTRY_SCREEN + 18)   /* date format (STRING) */
#define OBJECT_SCREEN_SCREEN               (REGISTRY_SCREEN + 19)   /* screen mode (NAME), screen attributes (LIST), */
#define OBJECT_SCREEN_AUTOSCROLL           (REGISTRY_SCREEN + 20)   /* attribute: autoscroll screen ? (BOOL) */
#define OBJECT_SCREEN_DEPTH                (REGISTRY_SCREEN + 21)   /* attribute: screen depth        (BOOL) */
#define OBJECT_SCREEN_AUTOSCROLLX          (REGISTRY_SCREEN + 22)   /* attribute: virtual screen size (LONG) */
#define OBJECT_SCREEN_AUTOSCROLLY          (REGISTRY_SCREEN + 23)   /* attribute: virtual screen size (LONG) */
#define OBJECT_SCREEN_MODEID               (REGISTRY_SCREEN + 24)   /* attribute: screen mode         (LONG) */
#define OBJECT_SCREEN_OVERSCANTYPE         (REGISTRY_SCREEN + 25)   /* attribute: overscan type       (LONG) */
#define OBJECT_SCREEN_COLORS               (REGISTRY_SCREEN + 26)   /* color list (LIST) */
#define OBJECT_SCREEN_COLOR                (REGISTRY_SCREEN + 27)   /* color name (NAME), RGB value (LONG): r (bit 0-7), g (bit 8-15), b (bit 16-23) */
#define OBJECT_SCREEN_ELEMENTS             (REGISTRY_SCREEN + 71)   /* element colors (LIST) */
#define OBJECT_SCREEN_ELEMENT_BRIGHTEDGES  (REGISTRY_SCREEN + 29)   /* RGB (NUMBER) */
#define OBJECT_SCREEN_ELEMENT_DARKEDGES    (REGISTRY_SCREEN + 30)   /* RGB (NUMBER) */
#define OBJECT_SCREEN_ELEMENT_WINDOWTITLE  (REGISTRY_SCREEN + 31)   /* RGB (NUMBER) */
#define OBJECT_SCREEN_ELEMENT_WINDOWTEXT   (REGISTRY_SCREEN + 32)   /* RGB (NUMBER) */
#define OBJECT_SCREEN_ELEMENT_MENUFILL     (REGISTRY_SCREEN + 33)   /* RGB (NUMBER) */
#define OBJECT_SCREEN_ELEMENT_MENUTEXT     (REGISTRY_SCREEN + 34)   /* RGB (NUMBER) */
#define OBJECT_SCREEN_ELEMENT_MENUBORDER   (REGISTRY_SCREEN + 35)   /* RGB (NUMBER) */
#define OBJECT_SCREEN_ELEMENT_TRIMPEN      (REGISTRY_SCREEN + 36)   /* RGB (NUMBER) */
#define OBJECT_SCREEN_ELEMENT_MARKER       (REGISTRY_SCREEN + 37)   /* RGB (NUMBER) */
#define OBJECT_SCREEN_ELEMENT_FOLDS        (REGISTRY_SCREEN + 38)   /* RGB (NUMBER) */
#define OBJECT_SCREEN_ELEMENT_GADGETFILL   (REGISTRY_SCREEN + 39)   /* RGB (NUMBER) */
#define OBJECT_SCREEN_ELEMENT_STATUSBAR    (REGISTRY_SCREEN + 40)   /* RGB (NUMBER) */
#define OBJECT_SCREEN_ELEMENT_STATUSTEXT   (REGISTRY_SCREEN + 41)   /* RGB (NUMBER) */
#define OBJECT_SCREEN_ELEMENT_USERGADGETS  (REGISTRY_SCREEN + 42)   /* RGB (NUMBER) */
#define OBJECT_SCREEN_ELEMENT_BACKGROUND   (REGISTRY_SCREEN + 43)   /* RGB (NUMBER) */
#define OBJECT_SCREEN_ELEMENT_MESSAGES     (REGISTRY_SCREEN + 44)   /* RGB (NUMBER) */
#define OBJECT_SCREEN_ELEMENT_MARKEDTEXT   (REGISTRY_SCREEN + 45)   /* RGB (NUMBER) */
#define OBJECT_SCREEN_ELEMENT_CURSOR       (REGISTRY_SCREEN + 46)   /* RGB (NUMBER) */
#define OBJECT_SCREEN_ELEMENT_CURSORBLOCK  (REGISTRY_SCREEN + 47)   /* RGB (NUMBER) */
#define OBJECT_SCREEN_ELEMENT_CURSORTXT    (REGISTRY_SCREEN + 48)   /* RGB (NUMBER) */
#define OBJECT_SCREEN_ELEMENT_CURSORTXTBLK (REGISTRY_SCREEN + 49)   /* RGB (NUMBER) */
#define OBJECT_SCREEN_ELEMENT_TOOLBAR      (REGISTRY_SCREEN + 50)   /* RGB (NUMBER) */
#define OBJECT_SCREEN_ELEMENT_SHADOWDARK   (REGISTRY_SCREEN + 86)   /* RGB (NUMBER) */
#define OBJECT_SCREEN_ELEMENT_SHADOWSHINE  (REGISTRY_SCREEN + 83)   /* RGB (NUMBER) */
#define OBJECT_SCREEN_ELEMENT_SELECTIONFG  (REGISTRY_SCREEN + 84)   /* RGB (NUMBER) */
#define OBJECT_SCREEN_ELEMENT_SELECTIONBG  (REGISTRY_SCREEN + 85)   /* RGB (NUMBER) */
#define OBJECT_SCREEN_ELEMENT_SLIDERBG     (REGISTRY_SCREEN + 76)   /* RGB (NUMBER) */
#define OBJECT_SCREEN_ELEMENT_SLIDERFG     (REGISTRY_SCREEN + 92)   /* RGB (NUMBER) */
#define OBJECT_SCREEN_ELEMENT_CHECKMARKS   (REGISTRY_SCREEN + 77)   /* RGB (NUMBER) */
#define OBJECT_SCREEN_ELEMENT_TEXTFIELD    (REGISTRY_SCREEN + 81)   /* RGB (NUMBER) */
#define OBJECT_SCREEN_ELEMENT_EMPHASIZED   (REGISTRY_SCREEN + 87)   /* RGB (NUMBER) */
#define OBJECT_SCREEN_ELEMENT_FOCUSSHADOW  (REGISTRY_SCREEN + 88)   /* RGB (NUMBER) */
#define OBJECT_SCREEN_ELEMENT_FOCUSSHINE   (REGISTRY_SCREEN + 89)   /* RGB (NUMBER) */
#define OBJECT_SCREEN_SHOWSTATUS           (REGISTRY_SCREEN + 51)   /* show status bar ? (BOOL) - not yet supported */
#define OBJECT_SCREEN_TITLE                (REGISTRY_SCREEN + 52)   /* screen title (STRING) - not yet supported */
#define OBJECT_SCREEN_STATUS               (REGISTRY_SCREEN + 53)   /* status line  (STRING) - not yet supported */
#define OBJECT_SCREEN_UNUSED               (REGISTRY_SCREEN + 54)   /* mark default gadget ? (BOOL) - not yet supported */
#define OBJECT_SCREEN_ARRANGETOP           (REGISTRY_SCREEN + 55)   /* arrange: top border (LONG) */
#define OBJECT_SCREEN_ARRANGEBOTTOM        (REGISTRY_SCREEN + 56)   /* arrange: bottom border (LONG) */
#define OBJECT_SCREEN_ARRANGELEFT          (REGISTRY_SCREEN + 57)   /* arrange: left border   (LONG) */
#define OBJECT_SCREEN_ARRANGERIGHT         (REGISTRY_SCREEN + 58)   /* arrange: right border  (LONG) */
#define OBJECT_SCREEN_ARRANGEWEIGHT        (REGISTRY_SCREEN + 59)   /* arrange: weight (LONG) */
#define OBJECT_SCREEN_AUTOARRANGE          (REGISTRY_SCREEN + 60)   /* AutoArrange windows ? (BOOL) */
#define OBJECT_SCREEN_CENTERWIN            (REGISTRY_SCREEN + 61)   /* center windows ? (BOOL) */
#define OBJECT_SCREEN_WINX                 (REGISTRY_SCREEN + 62)   /* window x position */
#define OBJECT_SCREEN_WINY                 (REGISTRY_SCREEN + 63)   /* window y position */
#define OBJECT_SCREEN_WINW                 (REGISTRY_SCREEN + 64)   /* window width */
#define OBJECT_SCREEN_WINH                 (REGISTRY_SCREEN + 65)   /* window height */
#define OBJECT_SCREEN_SCALEW               (REGISTRY_SCREEN + 79)   /* requester scale factor (LONG) */
#define OBJECT_SCREEN_SCALEH               (REGISTRY_SCREEN + 80)   /* requester scale factor (LONG) */
#define OBJECT_SCREEN_STATUSHEIGHT         (REGISTRY_SCREEN + 75)   /* status bar height (LONG) */
#define OBJECT_SCREEN_SHOWTABS             (REGISTRY_SCREEN + 68)   /* show tabs ? (BOOL) */
#define OBJECT_SCREEN_BUTTONWIDTH          (REGISTRY_SCREEN + 69)   /* toolbar button width */
#define OBJECT_SCREEN_BUTTONHEIGHT         (REGISTRY_SCREEN + 70)   /* toolbar button size */
#define OBJECT_SCREEN_SHAREPENS            (REGISTRY_SCREEN + 72)   /* share Intuition pens ? (BOOL) */
#define OBJECT_SCREEN_HIGHLIGHT            (REGISTRY_SCREEN + 78)   /* highlight selection in toolbar ? (BOOL) */
#define OBJECT_SCREEN_SCROLLERPOS          (REGISTRY_SCREEN + 90)   /* scroller position (UWORD) */
#define OBJECT_SCREEN_SHUFFLE              (REGISTRY_SCREEN + 91)   /* scroller position (UWORD) */

#define OBJECT_SCREEN_PENS                 (REGISTRY_SCREEN + 28)   /* obsolete */
#define OBJECT_SCREEN_ELEMENT_GREY         (REGISTRY_SCREEN + 73)   /* obsolete */
#define OBJECT_SCREEN_SCALEX               (REGISTRY_SCREEN + 66)   /* obsolete */
#define OBJECT_SCREEN_SCALEY               (REGISTRY_SCREEN + 67)   /* obsolete */
#define OBJECT_SCREEN_SLIDERWIDTH          (REGISTRY_SCREEN + 11)   /* obsolete */

/* /// */
/* /// "printer" */

#define REGISTRY_PRINTER 400

#define OBJECT_PRINTER_BASE                (REGISTRY_PRINTER + 0 )  /* preset name (NAME), preset data (LIST) */
#define OBJECT_PRINTER_PRTFEED             (REGISTRY_PRINTER + 1 )  /* lpi (LONG) */
#define OBJECT_PRINTER_PRTRESET            (REGISTRY_PRINTER + 2 )  /* send reset ? (BOOL) */
#define OBJECT_PRINTER_PRTITALICS          (REGISTRY_PRINTER + 3 )  /* italics ? (BOOL) */
#define OBJECT_PRINTER_PRTBOLD             (REGISTRY_PRINTER + 4 )  /* bold ? (BOOL) */
#define OBJECT_PRINTER_PRTDOUBLE           (REGISTRY_PRINTER + 5 )  /* doublestrike ? (BOOL) - not supported */
#define OBJECT_PRINTER_PRTLQ               (REGISTRY_PRINTER + 6 )  /* LQ ? (BOOL) */
#define OBJECT_PRINTER_PRTPROP             (REGISTRY_PRINTER + 7 )  /* proportional ? (BOOL) */
#define OBJECT_PRINTER_PRTINIT             (REGISTRY_PRINTER + 8 )  /* init string (STRING) */
#define OBJECT_PRINTER_PRTNUMBER           (REGISTRY_PRINTER + 9 )  /* number lines ? (BOOL) */
#define OBJECT_PRINTER_PRTSPOOL            (REGISTRY_PRINTER + 10)  /* asynchronous printing ? (BOOL) */
#define OBJECT_PRINTER_FORMFEED            (REGISTRY_PRINTER + 11)  /* form feed after job ? (BOOL) */
#define OBJECT_PRINTER_PRTSPACING          (REGISTRY_PRINTER + 12)  /* x spacing (LONG) */
#define OBJECT_PRINTER_LINES               (REGISTRY_PRINTER + 13)  /* lines/page (LONG) - not yet supported */
#define OBJECT_PRINTER_HEADER              (REGISTRY_PRINTER + 14)  /* header string (STRING) - not yet supported */
#define OBJECT_PRINTER_FOOTER              (REGISTRY_PRINTER + 15)  /* footer string (STRING) - not yet supported */

/* /// */
/* /// "hunter" */

#define REGISTRY_HUNTER 450

#define OBJECT_HUNTER_BASE                 (REGISTRY_HUNTER + 0)    /* preset name (NAME), preset data (LIST) */
#define OBJECT_HUNTER_RECURSIVE            (REGISTRY_HUNTER + 1)    /* scan sub-dirs ? (BOOL) */
#define OBJECT_HUNTER_SOURCES              (REGISTRY_HUNTER + 2)    /* source files (LIST) */

/* /// */
/* /// "tab" */

#define REGISTRY_TAB 500

#define OBJECT_TAB_BASE                    (REGISTRY_TAB + 0 )      /* preset name (NAME), preset data (LIST) */
#define OBJECT_TAB_MODE                    (REGISTRY_TAB + 2 )      /* tab mode (LONG) */
#define OBJECT_TAB_DISTANCE                (REGISTRY_TAB + 3 )      /* regular tab distance (LONG) */
#define OBJECT_TAB_STDSIZE                 (REGISTRY_TAB + 4 )      /* standard tab size (LONG) */
#define OBJECT_TAB_TABS                    (REGISTRY_TAB + 5 )      /* tabs (LIST) */
#define OBJECT_TAB_SHIFTTABS               (REGISTRY_TAB + 7 )      /* line/block shift uses tabs ? (BOOL) - not yet supported */
#define OBJECT_TAB_CONVERTLOAD             (REGISTRY_TAB + 8 )      /* tab conversion mode (LONG) */
#define OBJECT_TAB_CONVERTSAVE             (REGISTRY_TAB + 9 )      /* tab conversion mode (LONG) */
#define OBJECT_TAB_CONVERTPRINT            (REGISTRY_TAB + 10)      /* tab conversion mode (LONG) */
#define OBJECT_TAB_INDENTWITHTABS          (REGISTRY_TAB + 11)      /* indent with tabs ? (BOOL) */

#define OBJECT_TAB_TABTYPE                 (REGISTRY_TAB + 1 )      /* obsolete */
#define OBJECT_TAB_DYNAMIC                 (REGISTRY_TAB + 6 )      /* obsolete */

/* /// */
/* /// "syntax" */

#define REGISTRY_SYNTAX 550

#define OBJECT_SYNTAX_BASE                 (REGISTRY_SYNTAX + 0 )   /* preset name (NAME), preset data (LIST) */
#define OBJECT_SYNTAX_PARSER               (REGISTRY_SYNTAX + 2 )   /* syntax parser (STRING), Comment (NAME) */
#define OBJECT_SYNTAX_PREPARSE             (REGISTRY_SYNTAX + 3 )   /* preparse ? (BOOL) */
#define OBJECT_SYNTAX_ACTIVE               (REGISTRY_SYNTAX + 4 )   /* active ? (BOOL) */
#define OBJECT_SYNTAX_ARGUMENTS            (REGISTRY_SYNTAX + 7 )   /* arguments (STRING) */
#define OBJECT_SYNTAX_ELEMENTS             (REGISTRY_SYNTAX + 8 )   /* syntax elements (LIST) */
#define OBJECT_SYNTAX_ELEMENT              (REGISTRY_SYNTAX + 9 )   /* element name (NAME), style (LIST) */
#define OBJECT_SYNTAX_FGCOLOR              (REGISTRY_SYNTAX + 10)   /* foreground color (LONG: 00bbggrr) */
#define OBJECT_SYNTAX_BGCOLOR              (REGISTRY_SYNTAX + 11)   /* background color (LONG: 00bbggrr) */
#define OBJECT_SYNTAX_COLORS               (REGISTRY_SYNTAX + 12)   /* colors (LIST) */
#define OBJECT_SYNTAX_TRANSPARENT          (REGISTRY_SYNTAX + 13)   /* transparent backround ? (BOOL) */

#define OBJECT_SYNTAX_SETUP                (REGISTRY_SYNTAX + 14)   /* setup (LIST) */
#define OBJECT_SYNTAX_PROPERTIES           (REGISTRY_SYNTAX + 15)   /* parser properties (LONG) */

#define OBJECT_SYNTAX_DICTIONARY           (REGISTRY_SYNTAX + 16)   /* dictionary (LIST) */
#define OBJECT_SYNTAX_CATEGORY             (REGISTRY_SYNTAX + 17)   /* dictionary category (NAME), entries (LIST) */
#define OBJECT_SYNTAX_ENTRY                (REGISTRY_SYNTAX + 18)   /* dictionary entries (NAME) */
#define OBJECT_SYNTAX_INCLUDE              (REGISTRY_SYNTAX + 19)   /* dictionary include (NAME) */

#define OBJECT_SYNTAX_CACHE                (REGISTRY_SYNTAX + 20)   /* dictionary cache (DATA) */
#define OBJECT_SYNTAX_CASESENSITIVE        (REGISTRY_SYNTAX + 21)   /* case sensitive dictionary ? (BOOL) */
#define OBJECT_SYNTAX_COMMENTSTART         (REGISTRY_SYNTAX + 22)   /* comment delimiter (STRING) */
#define OBJECT_SYNTAX_COMMENTEND           (REGISTRY_SYNTAX + 23)   /* comment delimiter (STRING) */
#define OBJECT_SYNTAX_COMMENTLINE          (REGISTRY_SYNTAX + 24)   /* comment delimiter (STRING) */
#define OBJECT_SYNTAX_COMMENTNESTING       (REGISTRY_SYNTAX + 25)   /* comment nesting ? */
#define OBJECT_SYNTAX_BLOCKSTART           (REGISTRY_SYNTAX + 26)   /* block delimiter (STRING) */
#define OBJECT_SYNTAX_BLOCKEND             (REGISTRY_SYNTAX + 27)   /* block delimiter (STRING) */
#define OBJECT_SYNTAX_BLOCKNESTING         (REGISTRY_SYNTAX + 28)   /* block nesting ? (BOOL) */
#define OBJECT_SYNTAX_WHITESPACE           (REGISTRY_SYNTAX + 29)   /* white space definition (BOOL) */
#define OBJECT_SYNTAX_PREFIXBIN            (REGISTRY_SYNTAX + 30)   /* number prefix (STRING) */
#define OBJECT_SYNTAX_PREFIXOCT            (REGISTRY_SYNTAX + 31)   /* number prefix (STRING) */
#define OBJECT_SYNTAX_PREFIXHEX            (REGISTRY_SYNTAX + 32)   /* number prefix (STRING) */
#define OBJECT_SYNTAX_STRING               (REGISTRY_SYNTAX + 33)   /* string delimiter (STRING) */
#define OBJECT_SYNTAX_STRINGESC            (REGISTRY_SYNTAX + 34)   /* string ESC sequence (STRING) */
#define OBJECT_SYNTAX_LITERAL              (REGISTRY_SYNTAX + 35)   /* literal delimiter (STRING) */
#define OBJECT_SYNTAX_LITERALESC           (REGISTRY_SYNTAX + 36)   /* literal ESC sequence (STRING) */

#define OBJECT_SYNTAX_PENS                 (REGISTRY_SYNTAX + 5 )   /* obsolete */
#define OBJECT_SYNTAX_PEN                  (REGISTRY_SYNTAX + 6 )   /* obsolete */

/* /// */
/* /// "templates" */

#define REGISTRY_TEMPLATE 600

#define OBJECT_TEMPLATE_BASE               (REGISTRY_TEMPLATE +  0) /* preset name (NAME), preset data (LIST) */
#define OBJECT_TEMPLATE_ACTIVE             (REGISTRY_TEMPLATE +  1) /* templates active ? (BOOL) */
#define OBJECT_TEMPLATE_TEMPLATES          (REGISTRY_TEMPLATE +  2) /* templates (LIST) */

/* /// */
/* /// "menu" */

#define REGISTRY_MENU 650

#define OBJECT_MENU_BASE                   (REGISTRY_MENU + 0 )     /* preset name (NAME), preset data (LIST) */
#define OBJECT_MENU_BARLABEL               (REGISTRY_MENU + 2 )     /* show separator lines ? (BOOL) */
#define OBJECT_MENU_GUIDE                  (REGISTRY_MENU + 4 )     /* guide file (STRING) */
#define OBJECT_MENU_MENULIST               (REGISTRY_MENU + 10)     /* menu root (NAME), menu data (LIST) */
#define OBJECT_MENU_MENU                   (REGISTRY_MENU + 6 )     /* menu name (NAME), menu data (LIST) */
#define OBJECT_MENU_SUBMENU                (REGISTRY_MENU + 9 )     /* menu name (NAME), menu data (LIST) */
#define OBJECT_MENU_FILELIST               (REGISTRY_MENU + 7 )     /* placeholder for file list (NUMBER; unused) */
#define OBJECT_MENU_SPACER                 (REGISTRY_MENU + 11)     /* placeholder for separator (NUMBER, unused) */

#define OBJECT_MENU_MENUS                  (REGISTRY_MENU + 5 )     /* obsolete */
#define OBJECT_MENU_ITEMS                  (REGISTRY_MENU + 8 )     /* obsolete */
#define OBJECT_MENU_CASESENSITIVE          (REGISTRY_MENU + 3 )     /* obsolete */

/* /// */
/* /// "event" */

#define REGISTRY_EVENT 700

#define OBJECT_EVENT_EVENT                 (REGISTRY_EVENT + 0 )    /* item/subitem/... (NAME), event data (LIST) */
#define OBJECT_EVENT_VARIABLE              (REGISTRY_EVENT + 1 )    /* attached internal variable (STRING) */
#define OBJECT_EVENT_SHANGHAITIME          (REGISTRY_EVENT + 3 )    /* shanghai time [sec] (LONG) */
#define OBJECT_EVENT_KEYCODE               (REGISTRY_EVENT + 4 )    /* keycode (LONG); bit 0-7: ASCII, bit 8: RAWKEY flag, bit 9-12: qualifier */
#define OBJECT_EVENT_SHORTCUT              (REGISTRY_EVENT + 6 )    /* shortcut (STRING) */
#define OBJECT_EVENT_OUTPUT                (REGISTRY_EVENT + 7 )    /* output (STRING) */
#define OBJECT_EVENT_HYPERNODE             (REGISTRY_EVENT + 8 )    /* guide node (STRING) */
#define OBJECT_EVENT_COMMANDS              (REGISTRY_EVENT + 10)    /* command list (LIST) */
#define OBJECT_EVENT_COMMAND               (REGISTRY_EVENT + 11)    /* command string (NAME), command type (LONG) */

#define OBJECT_EVENT_DIRECTORY             (REGISTRY_EVENT + 9 )    /* obsolete */
#define OBJECT_EVENT_MORE                  (REGISTRY_EVENT + 12)    /* obsolete */
#define OBJECT_EVENT_ASYNC                 (REGISTRY_EVENT + 2 )    /* obsolete */

/* /// */
/* /// "complete" */

#define REGISTRY_COMPLETE 750

#define OBJECT_COMPLETE_BASE               (REGISTRY_COMPLETE + 0 ) /* preset name (NAME), preset data (LIST) */
#define OBJECT_COMPLETE_AUTOCASE           (REGISTRY_COMPLETE + 1 ) /* AutoCase ? (BOOL) */
#define OBJECT_COMPLETE_IGNORECOMMENT      (REGISTRY_COMPLETE + 2 ) /* AutoCase disabled within comments ? (BOOL) */
#define OBJECT_COMPLETE_IGNORESTRING       (REGISTRY_COMPLETE + 3 ) /* AutoCase disabled within strings  ? (BOOL) */
#define OBJECT_COMPLETE_WORDS              (REGISTRY_COMPLETE + 4 ) /* known words (LIST) */

/* /// */
/* /// "layout" */

#define REGISTRY_LAYOUT 800

#define OBJECT_LAYOUT_BASE                 (REGISTRY_LAYOUT + 0 )   /* preset name (NAME), preset data (LIST) */
#define OBJECT_LAYOUT_FORMATLEFT           (REGISTRY_LAYOUT + 1 )   /* left border (LONG) */
#define OBJECT_LAYOUT_FORMATRIGHT          (REGISTRY_LAYOUT + 2 )   /* right border (LONG) */
#define OBJECT_LAYOUT_WORDWRAP             (REGISTRY_LAYOUT + 3 )   /* wordwrap enabled ? (BOOL) */
#define OBJECT_LAYOUT_AUTOLEFT             (REGISTRY_LAYOUT + 4 )   /* automatic left border ? (BOOL) */
#define OBJECT_LAYOUT_REFORMAT             (REGISTRY_LAYOUT + 5 )   /* reformat during wordwrap ? (BOOL) */
#define OBJECT_LAYOUT_REFORMATHYPHEN       (REGISTRY_LAYOUT + 6 )   /* reformat hyphen ? (BOOL) */
#define OBJECT_LAYOUT_SMARTINDENT          (REGISTRY_LAYOUT + 7 )   /* smart formatting of parapgraph's first line ? (BOOL) - not yet supported */
#define OBJECT_LAYOUT_STYLE                (REGISTRY_LAYOUT + 8 )   /* formatting style (ULONG) */
#define OBJECT_LAYOUT_SCOPE                (REGISTRY_LAYOUT + 9 )   /* formatting scope (ULONG) */

/* /// */
/* /// "session" */

#define REGISTRY_SESSION 850

#define OBJECT_SESSION_BASE                (REGISTRY_SESSION + 0 )  /* preset name (NAME), preset data (LIST) */
#define OBJECT_SESSION_BUFFER              (REGISTRY_SESSION + 2 )  /* file name (NAME), properties (LIST) */
#define OBJECT_SESSION_X                   (REGISTRY_SESSION + 3 )  /* x (LONG) */
#define OBJECT_SESSION_Y                   (REGISTRY_SESSION + 4 )  /* y (LONG) */
#define OBJECT_SESSION_W                   (REGISTRY_SESSION + 5 )  /* width  (LONG) */
#define OBJECT_SESSION_H                   (REGISTRY_SESSION + 6 )  /* height (LONG) */
#define OBJECT_SESSION_FROZEN              (REGISTRY_SESSION + 7 )  /* frozen ? (BOOL) */
#define OBJECT_SESSION_COLUMN              (REGISTRY_SESSION + 8 )  /* current column (LONG) */
#define OBJECT_SESSION_LINE                (REGISTRY_SESSION + 9 )  /* current line (LONG) */
#define OBJECT_SESSION_FILETYPE            (REGISTRY_SESSION + 10)  /* file type (STRING) */

/* /// */
/* /// "project" */

#define REGISTRY_PROJECT 900

#define OBJECT_PROJECT_BASE                (REGISTRY_PROJECT + 0 )  /* preset name (NAME), preset data (LIST) */
#define OBJECT_PROJECT_PROJECTS            (REGISTRY_PROJECT + 2 )  /* projects (LIST) */
#define OBJECT_PROJECT_PROJECT             (REGISTRY_PROJECT + 3 )  /* project (NAME), project categories (LIST) */
#define OBJECT_PROJECT_CATEGORY            (REGISTRY_PROJECT + 1 )  /* project category (NAME), categorie files (LIST) */
#define OBJECT_PROJECT_MACRO               (REGISTRY_PROJECT + 4 )  /* make macro (STRING) */

/* /// */
/* /// "macro" */

#define REGISTRY_MACRO 950

/* Note: All objects listed in this file may be part of a macro object tree ! */

#define OBJECT_MACRO_BASE                  (REGISTRY_MACRO + 0 )    /* preset name (NAME), preset data (LIST) */
#define OBJECT_MACRO_HIDEREQUESTER         (REGISTRY_MACRO + 8 )    /* hide requesters ? (BOOL) */
#define OBJECT_MACRO_EVENTS                (REGISTRY_MACRO + 9 )    /* event list (LIST) */

#define OBJECT_MACRO_EVENT                 (REGISTRY_MACRO + 3 )    /* recorded event     (LIST) */
#define OBJECT_MACRO_KEY                   (REGISTRY_MACRO + 4 )    /* recorded keycode   (NUMBER) */
#define OBJECT_MACRO_SELECTION             (REGISTRY_MACRO + 5 )    /* recorded selection (STRING): text menu selection */
#define OBJECT_MACRO_OBJECT                (REGISTRY_MACRO + 6 )    /* recorded selection (LIST) */
#define OBJECT_MACRO_COMMANDLINE           (REGISTRY_MACRO + 7 )    /* recorded command   (STRING) */

/* /// */
/* /// "gui" */

#define REGISTRY_GUI 1000

#define OBJECT_GUI_BASE                    (REGISTRY_GUI + 0 )      /* preset name (NAME), preset data (LIST) */
#define OBJECT_GUI_SCROLLBORDERX           (REGISTRY_GUI + 1 )      /* x scroll border (LONG) */
#define OBJECT_GUI_SCROLLBORDERY           (REGISTRY_GUI + 2 )      /* y scroll border (LONG) */
#define OBJECT_GUI_WHITESPACE              (REGISTRY_GUI + 3 )      /* white space definition (STRING) */
#define OBJECT_GUI_EOLWRAP                 (REGISTRY_GUI + 6 )      /* end-of-line wrap ? (BOOL) */
#define OBJECT_GUI_FASTSCROLL              (REGISTRY_GUI + 9 )      /* FastScroll ? (BOOL) */
#define OBJECT_GUI_EXCLUDECURSOR           (REGISTRY_GUI + 10)      /* exclude cursor while marking ? (BOOL) */
#define OBJECT_GUI_PARENTHESIS             (REGISTRY_GUI + 11)      /* online parenthesis checks ? (BOOL) */
#define OBJECT_GUI_DRAGDROP                (REGISTRY_GUI + 12)      /* drag and drop support ? (BOOL) */
#define OBJECT_GUI_CURSORTYPE              (REGISTRY_GUI + 13)      /* cursor type (LONG) - not yet supported */
#define OBJECT_GUI_CURSORBLINK             (REGISTRY_GUI + 14)      /* cursor blinking (LONG) - not yet supported */
#define OBJECT_GUI_STRIPSPC                (REGISTRY_GUI + 15)      /* strip spaces ? (BOOL) - not yet supported */
#define OBJECT_GUI_SHOWTAB                 (REGISTRY_GUI + 16)      /* show tabs ? (BOOL) - not yet supported */
#define OBJECT_GUI_SHOWSPC                 (REGISTRY_GUI + 17)      /* show spaces ? (BOOL) - not yet supported */
#define OBJECT_GUI_SHOWEOL                 (REGISTRY_GUI + 18)      /* show eol ? (BOOL) - not yet supported */
#define OBJECT_GUI_SHOWEOF                 (REGISTRY_GUI + 19)      /* show eof ? (BOOL) - not yet supported */
#define OBJECT_GUI_IGNOREEOL               (REGISTRY_GUI + 20)      /* allow positioning beyond eol ? (BOOL) - not yet supported */
#define OBJECT_GUI_REPLACE                 (REGISTRY_GUI + 21)      /* input replaces block ? (BOOL) */
#define OBJECT_GUI_INDENTION               (REGISTRY_GUI + 22)      /* maintain indention ? (BOOL) */

#define OBJECT_GUI_OUTPUT                  (REGISTRY_GUI + 5 )      /* obsolete */

/* /// */
/* /// "mouse" */

#define REGISTRY_MOUSE 1050

#define OBJECT_MOUSE_BASE                  (REGISTRY_MOUSE + 0 )    /* preset name (NAME), preset data (LIST) */
#define OBJECT_MOUSE_BUTTONLIST            (REGISTRY_MOUSE + 14)    /* buttons */
#define OBJECT_MOUSE_LEFT                  (REGISTRY_MOUSE + 7 )    /* mouse button category (LIST) */
#define OBJECT_MOUSE_MIDDLE                (REGISTRY_MOUSE + 8 )    /* mouse button category (LIST) */
#define OBJECT_MOUSE_RIGHT                 (REGISTRY_MOUSE + 9 )    /* mouse button category (LIST) */
#define OBJECT_MOUSE_WHEEL                 (REGISTRY_MOUSE + 13)    /* mouse button category (LIST) */
#define OBJECT_MOUSE_CONTEXTLIST           (REGISTRY_MOUSE + 10)    /* context root (LIST) */
#define OBJECT_MOUSE_CONTEXT               (REGISTRY_MOUSE + 3 )    /* menu items (LIST) */
#define OBJECT_MOUSE_SUBMENU               (REGISTRY_MOUSE + 11)    /* submenu (LIST) */
#define OBJECT_MOUSE_SPACER                (REGISTRY_MOUSE + 12)    /* placeholder for separator (NUMBER, unused) */
#define OBJECT_MOUSE_TRAP                  (REGISTRY_MOUSE + 5 )    /* trap right mouse button ? (BOOL) */

#define OBJECT_MOUSE_MOUSELIST             (REGISTRY_MOUSE + 6 )    /* obsolete */
#define OBJECT_MOUSE_CONTEXTS              (REGISTRY_MOUSE + 2 )    /* obsolete */
#define OBJECT_MOUSE_ITEMS                 (REGISTRY_MOUSE + 4 )    /* obsolete */
#define OBJECT_MOUSE_BUTTONS               (REGISTRY_MOUSE + 1 )    /* obsolete */

/* /// */
/* /// "api" */

#define REGISTRY_API 1100

#define OBJECT_API_BASE                    (REGISTRY_API + 0 )      /* preset name (NAME), preset data (LIST) */
#define OBJECT_API_CLIENTS                 (REGISTRY_API + 1 )      /* clients (LIST) */
#define OBJECT_API_CLIENT                  (REGISTRY_API + 2 )      /* client (NAME), argument (STRING) */
#define OBJECT_API_SHOW                    (REGISTRY_API + 5 )      /* show containers ? (BOOL) */
#define OBJECT_API_CONTAINERS              (REGISTRY_API + 3 )      /* list of containers */
#define OBJECT_API_DIMENSIONS              (REGISTRY_API + 4 )      /* container (NAME, NUMBER): alignment (bit 0-1), width (bit 2-13), height (bit 14-25), iconified (bit 26) */

/* /// */
/* /// "context" */

#define REGISTRY_CONTEXT 1150

#define OBJECT_CONTEXT_BASE                (REGISTRY_CONTEXT + 0 )  /* preet name (NAME), preset data (LIST) */
#define OBJECT_CONTEXT_WORDS               (REGISTRY_CONTEXT + 3 )  /* known keywords (LIST) */

#define OBJECT_CONTEXT_AUTOINDENT          (REGISTRY_CONTEXT + 1 )  /* obsolete */
#define OBJECT_CONTEXT_SMARTINDENT         (REGISTRY_CONTEXT + 2 )  /* obsolete */

/* /// */
/* /// "standard" */

#define REGISTRY_STANDARD 1200

#define OBJECT_STANDARD_LIST               (REGISTRY_STANDARD + 0)  /* a list (LIST) */
#define OBJECT_STANDARD_NAME               (REGISTRY_STANDARD + 1)  /* a name (NAME), (NUMBER) */
#define OBJECT_STANDARD_SEGLIST            (REGISTRY_STANDARD + 2)  /* a seglist (NUMBER), file name (NAME) */
#define OBJECT_STANDARD_STRING             (REGISTRY_STANDARD + 3)  /* a string (STRING) */
#define OBJECT_STANDARD_DATA               (REGISTRY_STANDARD + 4)  /* a data block (DATA) */

/* predefined typeless standard objects */

#define OBJECT_STANDARD_LABEL              (REGISTRY_STANDARD + 5)  /* label */
#define OBJECT_STANDARD_BUFFER             (REGISTRY_STANDARD + 6)  /* buffer */
#define OBJECT_STANDARD_FILENAME           (REGISTRY_STANDARD + 7)  /* file name */
#define OBJECT_STANDARD_PATHNAME           (REGISTRY_STANDARD + 8)  /* directory */
#define OBJECT_STANDARD_FIND               (REGISTRY_STANDARD + 9)  /* pattern */
#define OBJECT_STANDARD_COMMAND            (REGISTRY_STANDARD + 10) /* command */
#define OBJECT_STANDARD_PLUGIN             (REGISTRY_STANDARD + 11) /* plugin */
#define OBJECT_STANDARD_WARNING            (REGISTRY_STANDARD + 12) /* warning */
#define OBJECT_STANDARD_SELECTION          (REGISTRY_STANDARD + 13) /* selection */
#define OBJECT_STANDARD_VARIABLE           (REGISTRY_STANDARD + 14) /* variable */
#define OBJECT_STANDARD_KEY                (REGISTRY_STANDARD + 15) /* key */
#define OBJECT_STANDARD_INCLUDE            (REGISTRY_STANDARD + 16) /* include file */

/* /// */
/* /// "buffer" */

#define REGISTRY_BUFFER 1250

#define OBJECT_BUFFER_COMMENT              (REGISTRY_BUFFER + 0)    /* file comment (STRING) */
#define OBJECT_BUFFER_READ                 (REGISTRY_BUFFER + 1)    /* protection bit: read   (NUMBER) */
#define OBJECT_BUFFER_WRITE                (REGISTRY_BUFFER + 2)    /* protection bit: write  (NUMBER) */
#define OBJECT_BUFFER_DELETE               (REGISTRY_BUFFER + 3)    /* protection bit: delete (NUMBER) */
#define OBJECT_BUFFER_SCRIPT               (REGISTRY_BUFFER + 4)    /* protection bit: script (NUMBER) */
#define OBJECT_BUFFER_DOCUMENT             (REGISTRY_BUFFER + 5)    /* title (STRING) */
#define OBJECT_BUFFER_FILETYPE             (REGISTRY_BUFFER + 6)    /* filetype (STRING) */
#define OBJECT_BUFFER_CRLF                 (REGISTRY_BUFFER + 7)    /* save CR/LF codes ? (BOOL) */

/* /// */
/* /// "statistics" */

#define REGISTRY_STAT 1300

#define OBJECT_STAT_BYTES                  (REGISTRY_STAT + 0 )     /* result (STRING) */
#define OBJECT_STAT_WORDS                  (REGISTRY_STAT + 1 )     /* result (STRING) */
#define OBJECT_STAT_LINES                  (REGISTRY_STAT + 2 )     /* result (STRING) */
#define OBJECT_STAT_FOLDS                  (REGISTRY_STAT + 3 )     /* result (STRING) */
#define OBJECT_STAT_NOBBS                  (REGISTRY_STAT + 4 )     /* result (STRING) */
#define OBJECT_STAT_WIDTH                  (REGISTRY_STAT + 5 )     /* result (STRING) */
#define OBJECT_STAT_LONGEST                (REGISTRY_STAT + 6 )     /* result (STRING) */
#define OBJECT_STAT_ESC                    (REGISTRY_STAT + 7 )     /* result (STRING) */
#define OBJECT_STAT_FF                     (REGISTRY_STAT + 8 )     /* result (STRING) */
#define OBJECT_STAT_AVERAGE                (REGISTRY_STAT + 9 )     /* result (STRING) */
#define OBJECT_STAT_AVERAGEWORD            (REGISTRY_STAT + 10)     /* result (STRING) */
#define OBJECT_STAT_UNDOSTEPS              (REGISTRY_STAT + 11)     /* result (STRING) */
#define OBJECT_STAT_UNDOBYTES              (REGISTRY_STAT + 12)     /* result (STRING) */

/* /// */
/* /// "buttons" */

#define REGISTRY_BUTTONS 1350

#define OBJECT_BUTTONS_BASE                (REGISTRY_BUTTONS + 0 )  /* preset name (NAME), preset data (LIST) */
#define OBJECT_BUTTONS_ENABLED             (REGISTRY_BUTTONS + 1 )  /* toolbars enabled ? (BOOL) */
#define OBJECT_BUTTONS_STYLE               (REGISTRY_BUTTONS + 2 )  /* button style (LONG) - not yet supported */
#define OBJECT_BUTTONS_SPACING             (REGISTRY_BUTTONS + 5 )  /* button spacing (LONG) - not yet supported */
#define OBJECT_BUTTONS_BUTTONLIST          (REGISTRY_BUTTONS + 16)  /* buttons (LIST) */
#define OBJECT_BUTTONS_DOCKLIST            (REGISTRY_BUTTONS + 18)  /* toolbars (LIST) */
#define OBJECT_BUTTONS_DOCK                (REGISTRY_BUTTONS + 11)  /* toolbar (LIST), toolbar name (NAME) */
#define OBJECT_BUTTONS_EVENTS              (REGISTRY_BUTTONS + 15)  /* images (LIST) */
#define OBJECT_BUTTONS_SPACER              (REGISTRY_BUTTONS + 19)  /* placeholder for separator (NUMBER, unused) */
#define OBJECT_BUTTONS_PROPERTIES          (REGISTRY_BUTTONS + 17)  /* properties (LIST) */
#define OBJECT_BUTTONS_VISIBLE             (REGISTRY_BUTTONS + 14)  /* visible ? (BOOL) */
#define OBJECT_BUTTONS_MENUBAR             (REGISTRY_BUTTONS + 20)  /* render as menu bar ? (BOOL) */
#define OBJECT_BUTTONS_POSITIONS           (REGISTRY_BUTTONS + 19)  /* position list (LIST) */
#define OBJECT_BUTTONS_POSITION            (REGISTRY_BUTTONS + 6 )  /* dock position (NUMBER) */
#define OBJECT_BUTTONS_TRAY                (REGISTRY_BUTTONS + 21)  /* dock for iconified containers (LIST) */
#define OBJECT_BUTTONS_CONTAINER           (REGISTRY_BUTTONS + 22)  /* container handle of iconified plug-in (LONG) */
#define OBJECT_BUTTONS_MENU                (REGISTRY_BUTTONS + 23)  /* menu (LIST), menu label (NAME) */

#define OBJECT_BUTTONS_DOCKS               (REGISTRY_BUTTONS + 10)  /* obsolete */
#define OBJECT_BUTTONS_BUTTONS             (REGISTRY_BUTTONS + 7 )  /* obsolete */
#define OBJECT_BUTTONS_TOOLBARS            (REGISTRY_BUTTONS + 9 )  /* obsolete */
#define OBJECT_BUTTONS_IMAGES              (REGISTRY_BUTTONS + 8 )  /* obsolete */
#define OBJECT_BUTTONS_WIDTH               (REGISTRY_BUTTONS + 3 )  /* obsolete */
#define OBJECT_BUTTONS_HEIGHT              (REGISTRY_BUTTONS + 4 )  /* obsolete */
#define OBJECT_BUTTONS_X                   (REGISTRY_BUTTONS + 12)  /* obsolete */
#define OBJECT_BUTTONS_Y                   (REGISTRY_BUTTONS + 13)  /* obsolete */

/* /// */

#endif
