#ifndef EDITOR_REGISTRY_H
#define EDITOR_REGISTRY_H
/*
**      $Filename: registry.h
**      $Release:  6.1.2
**
**      Registry definitions.
**
**      (C) Copyright 1997-1999 Dietmar Eilert
**          All Rights Reserved
**
**      object ID range: 0 - 2047 (11 bit)
*/

/// "defines"

// object types (bit 0-2)

#define OBJECT_TYPE_NUMBER     1                     // stores numbers
#define OBJECT_TYPE_STRING     2                     // stores strings
#define OBJECT_TYPE_LIST       3                     // stores object lists
#define OBJECT_TYPE_DATA       4                     // stores memory blocks

// additional type flag bits (bit 3-4, bit 5-15 are not saved)

#define OBJECT_TYPE_NAMED      8                     // indicates named object

///
/// "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_SLIDERWIDTH          (REGISTRY_SCREEN + 11)   // slider size (LONG)
#define OBJECT_SCREEN_SLIDERHEIGHT         (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

///
/// "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_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"

// Note: All objects may be part of a      macro object tree

#define REGISTRY_MACRO 950

#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
