#ifndef GOLDED_REGISTRY_H
#define GOLDED_REGISTRY_H
/*
**      $Filename: fd/registry.h
**      $Release: 1.0
**
**      GoldED registry definitions.
**
**      (C) Copyright 1996 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_PROFILE          (REGISTRY_GLOBAL + 23)   // serial code checksum (LONG)
#define OBJECT_GLOBAL_GOTOLINE         (REGISTRY_GLOBAL + 28)   // goto line (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_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)   // modes (LIST)
#define OBJECT_GLOBAL_MODE             (REGISTRY_GLOBAL + 42)   // mode suffix (NAME), properties (LIST)
#define OBJECT_GLOBAL_PROPERTY         (REGISTRY_GLOBAL + 43)   // preset file (NAME, NUMBER: preset type)
#define OBJECT_GLOBAL_POOL             (REGISTRY_GLOBAL + 44)   // list of presets (LIST)

#define OBJECT_GLOBAL_GLOBALS          (REGISTRY_GLOBAL + 45)   // globals page (LIST)
#define OBJECT_GLOBAL_RESIDENT         (REGISTRY_GLOBAL + 46)   // hotkey activation ? (BOOL)
#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_BACKUPTIME       (REGISTRY_GLOBAL + 50)   // backup time [seconds] (LONG)
#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) - not yet supported
#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_TABFILE          (REGISTRY_GLOBAL + 64)   // file tab size (LONG)
#define OBJECT_GLOBAL_DUPLICATES       (REGISTRY_GLOBAL + 65)   // allow multiple loading of a file ? (BOOL)

#define OBJECT_GLOBAL_GUI              (REGISTRY_GLOBAL + 66)   // globals page (LIST)
#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_CONFIRMERRORS    (REGISTRY_GLOBAL + 70)   // confirm error messages ? (BOOL)
#define OBJECT_GLOBAL_CONFIRMBAK       (REGISTRY_GLOBAL + 71)   // confirm autobackup event ? (BOOL)
#define OBJECT_GLOBAL_DATESTYLE        (REGISTRY_GLOBAL + 72)   // date style (STRING)
#define OBJECT_GLOBAL_WINDOWTITLE      (REGISTRY_GLOBAL + 73)   // window title (STRING)

///
/// "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_SAVETABS           (REGISTRY_MISC + 12)     // convert spaces to tabs while saving ? (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_CREATEBAK          (REGISTRY_MISC + 18)     // create *.bak files ? (BOOL)
#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_COPIES             (REGISTRY_MISC + 22)     // number backups (maximum number) ? (LONG) - not yet supported

///
/// "key"

#define REGISTRY_KEY 200

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

///
/// "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)
#define OBJECT_SCREEN_SHOWICONS        (REGISTRY_SCREEN + 3 )   // use icons within requesters ? (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_CHUNKYPIXEL      (REGISTRY_SCREEN + 10)   // chunky pixel mode ? (BOOL)
#define OBJECT_SCREEN_SLIDERRIGHT      (REGISTRY_SCREEN + 11)   // slider size (LONG)
#define OBJECT_SCREEN_SLIDERBOTTOM     (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 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 (LONG): r (bit 0-7), g (bit 8-15), b (bit 16-23)
#define OBJECT_SCREEN_PENS             (REGISTRY_SCREEN + 28)   // pen list (LIST)
#define OBJECT_SCREEN_PEN_BRIGHTEDGES  (REGISTRY_SCREEN + 29)   // pen ID
#define OBJECT_SCREEN_PEN_DARKEDGES    (REGISTRY_SCREEN + 30)   // pen ID
#define OBJECT_SCREEN_PEN_WINDOWTITLE  (REGISTRY_SCREEN + 31)   // pen ID
#define OBJECT_SCREEN_PEN_WINDOWTEXT   (REGISTRY_SCREEN + 32)   // pen ID
#define OBJECT_SCREEN_PEN_MENUFILL     (REGISTRY_SCREEN + 33)   // pen ID
#define OBJECT_SCREEN_PEN_MENUTEXT     (REGISTRY_SCREEN + 34)   // pen ID
#define OBJECT_SCREEN_PEN_MENUBORDER   (REGISTRY_SCREEN + 35)   // pen ID
#define OBJECT_SCREEN_PEN_TRIMPEN      (REGISTRY_SCREEN + 36)   // pen ID
#define OBJECT_SCREEN_PEN_MARKER       (REGISTRY_SCREEN + 37)   // pen ID
#define OBJECT_SCREEN_PEN_FOLDS        (REGISTRY_SCREEN + 38)   // pen ID
#define OBJECT_SCREEN_PEN_GADGETFILL   (REGISTRY_SCREEN + 39)   // pen ID
#define OBJECT_SCREEN_PEN_STATUSBAR    (REGISTRY_SCREEN + 40)   // pen ID
#define OBJECT_SCREEN_PEN_STATUSTEXT   (REGISTRY_SCREEN + 41)   // pen ID
#define OBJECT_SCREEN_PEN_USERGADGETS  (REGISTRY_SCREEN + 42)   // pen ID
#define OBJECT_SCREEN_PEN_BACKGROUND   (REGISTRY_SCREEN + 43)   // pen ID
#define OBJECT_SCREEN_PEN_MESSAGES     (REGISTRY_SCREEN + 44)   // pen ID
#define OBJECT_SCREEN_PEN_MARKEDTEXT   (REGISTRY_SCREEN + 45)   // pen ID
#define OBJECT_SCREEN_PEN_CURSOR       (REGISTRY_SCREEN + 46)   // pen ID
#define OBJECT_SCREEN_PEN_CURSORBLOCK  (REGISTRY_SCREEN + 47)   // pen ID
#define OBJECT_SCREEN_PEN_CURSORTXT    (REGISTRY_SCREEN + 48)   // pen ID
#define OBJECT_SCREEN_PEN_CURSORTXTBLK (REGISTRY_SCREEN + 49)   // pen ID
#define OBJECT_SCREEN_PEN_TOOLBAR      (REGISTRY_SCREEN + 50)   // pen ID
#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

///
/// "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)
#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_TABTYPE             (REGISTRY_TAB + 1 )      // tab mode (LONG)
#define OBJECT_TAB_SOLIDTABS           (REGISTRY_TAB + 2 )      // solid tabs ? (BOOL)
#define OBJECT_TAB_TABKEY              (REGISTRY_TAB + 3 )      // keyboard tab size (LONG)
#define OBJECT_TAB_TABS                (REGISTRY_TAB + 5 )      // tabs (LIST)
#define OBJECT_TAB_TRUETABS            (REGISTRY_TAB + 6 )      // use TRUE tabs ? (BOOL) - not yet supported
#define OBJECT_TAB_SHIFTTABS           (REGISTRY_TAB + 7 )      // line/block shift uses tabs ? (BOOL) - not yet supported

///
/// "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_PENS             (REGISTRY_SYNTAX + 5 )   // syntax levels (LIST)
#define OBJECT_SYNTAX_PEN              (REGISTRY_SYNTAX + 6 )   // name (NAME), pen data (LONG): FG (bit 0-15), BG (bit 16-31)

///
/// "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 )     // use barlabels ? (BOOL)
#define OBJECT_MENU_CASESENSITIVE      (REGISTRY_MENU + 3 )     // ignore shortcut case ? (BOOL)
#define OBJECT_MENU_GUIDE              (REGISTRY_MENU + 4 )     // guide file (STRING)
#define OBJECT_MENU_MENUS              (REGISTRY_MENU + 5 )     // menu root (LIST)
#define OBJECT_MENU_MENU               (REGISTRY_MENU + 6 )     // menu name (NAME), menu data (LIST)
#define OBJECT_MENU_FILELIST           (REGISTRY_MENU + 7 )     // attach file list to menu ? (BOOL)
#define OBJECT_MENU_ITEMS              (REGISTRY_MENU + 8 )     // items (LIST)

///
/// "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_ASYNC             (REGISTRY_EVENT + 2 )    // asynchronous DOS command execution ? (BOOL)
#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_DIRECTORY         (REGISTRY_EVENT + 9 )    // default directory (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_MORE              (REGISTRY_EVENT + 12)    // subevents (LIST)

///
/// "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) - not yet supported

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

///
/// "project"

#define REGISTRY_PROJECT 900

#define OBJECT_PROJECT_BASE            (REGISTRY_PROJECT + 0 )  // preset name (NAME), preset data (LIST)
#define OBJECT_PROJECT_FILES           (REGISTRY_PROJECT + 1 )  // files (LIST)

///
/// "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_STRING            (REGISTRY_MACRO + 1 )    // recorded value     (STRING)
#define OBJECT_MACRO_NUMBER            (REGISTRY_MACRO + 2 )    // recorded value     (NUMBER)
#define OBJECT_MACRO_COMMAND           (REGISTRY_MACRO + 3 )    // recorded command   (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)

///
/// "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_OUTPUT              (REGISTRY_GUI + 5 )      // default output (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_DRAGANDDROP         (REGISTRY_GUI + 12)      // drag and drop support ? (BOOL) - not yet supported
#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

///
/// "mouse"

#define REGISTRY_MOUSE 1050

#define OBJECT_MOUSE_BASE              (REGISTRY_MOUSE + 0 )    // preset name (NAME), preset data (LIST)
#define OBJECT_MOUSE_BUTTONS           (REGISTRY_MOUSE + 1 )    // list of buttons (LIST)

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

///
/// "indention"

#define REGISTRY_INDENT 1150

#define OBJECT_INDENT_BASE             (REGISTRY_INDENT + 0 )   // preet name (NAME), preset data (LIST)
#define OBJECT_INDENT_AUTOINDENT       (REGISTRY_INDENT + 1 )   // AutoIndention ? (BOOL)
#define OBJECT_INDENT_SMARTINDENT      (REGISTRY_INDENT + 2 )   // SmartIndention ? (BOOL)
#define OBJECT_INDENT_WORDS            (REGISTRY_INDENT + 3 )   // known keywords (LIST)

///
/// "standard"

#define REGISTRY_STANDARD 1200

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

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

///
/// "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 )  // toolbar enabled ? (BOOL)
#define OBJECT_BUTTONS_STYLE           (REGISTRY_BUTTONS + 2 )  // button style (LONG) - not yet supported
#define OBJECT_BUTTONS_WIDTH           (REGISTRY_BUTTONS + 3 )  // button size (LONG)
#define OBJECT_BUTTONS_HEIGHT          (REGISTRY_BUTTONS + 4 )  // button size (LONG)
#define OBJECT_BUTTONS_SPACING         (REGISTRY_BUTTONS + 5 )  // button spacing (LONG) - not yet supported
#define OBJECT_BUTTONS_POSITION        (REGISTRY_BUTTONS + 6 )  // tool bar position (LONG) - not yet supported
#define OBJECT_BUTTONS_BUTTONS         (REGISTRY_BUTTONS + 7 )  // text  buttons (LIST)
#define OBJECT_BUTTONS_TOOLBARS        (REGISTRY_BUTTONS + 9 )  // toolbars (LIST)
#define OBJECT_BUTTONS_IMAGES          (REGISTRY_BUTTONS + 8 )  // toolbar (NAME), images (LIST)

///

#endif
