home *** CD-ROM | disk | FTP | other *** search
/ World of A1200 / World_Of_A1200.iso / programs / monitors / rsys / source.lha / src / RSys.h < prev    next >
C/C++ Source or Header  |  1995-01-09  |  13KB  |  512 lines

  1. /*
  2. ***************************************************************************
  3. *
  4. * Datei:
  5. *    RSys.h
  6. *
  7. * Inhalt:
  8. *
  9. * Bemerkungen:
  10. *    Die Haupt-Include-Datei von RSys mit allen globalen Vereinbarungen.
  11. *    (Wird vorkompiliert zu einem preinclude file!)
  12. * Erstellungsdatum:
  13. *    07-Jul-93    Rolf Böhme
  14. *
  15. * Änderungen:
  16. *    07-Jul-93    Rolf Böhme    Erstellung
  17. *    01-Jul-93    Einige Umstellung der EntryAttr-Struktur und
  18. *                 Einführung sogenannter Fields, Standard-Einträge
  19. *                 von RSys
  20. *
  21. ***************************************************************************
  22. */
  23.  
  24. #include <clib/icon_protos.h>
  25. #include <clib/alib_protos.h>
  26. #include <clib/exec_protos.h>
  27. #include <clib/gadtools_protos.h>
  28. #include <clib/graphics_protos.h>
  29. #include <clib/intuition_protos.h>
  30. #include <clib/dos_protos.h>
  31. #include <clib/expansion_protos.h>
  32. #include <clib/asl_protos.h>
  33. #include <clib/commodities_protos.h>
  34. #include <clib/wb_protos.h>
  35. #include <clib/diskfont_protos.h>
  36. #include <clib/utility_protos.h>
  37. #include <clib/translator_protos.h>
  38. #include <clib/iffparse_protos.h>
  39. #include <clib/macros.h>
  40.  
  41. #include <pragmas/icon_lib.h>
  42. #include <pragmas/exec_lib.h>
  43. #include <pragmas/gadtools_lib.h>
  44. #include <pragmas/graphics_lib.h>
  45. #include <pragmas/intuition_lib.h>
  46. #include <pragmas/dos_lib.h>
  47. #include <pragmas/expansion_lib.h>
  48. #include <pragmas/asl_lib.h>
  49. #include <pragmas/commodities_lib.h>
  50. #include <pragmas/wb_lib.h>
  51. #include <pragmas/diskfont_lib.h>
  52. #include <pragmas/utility_lib.h>
  53. #include <pragmas/translator_lib.h>
  54.  
  55. #include <devices/audio.h>
  56. #include <devices/input.h>
  57. #include <devices/inputevent.h>
  58. #include <devices/timer.h>
  59. #include <devices/trackdisk.h>
  60. #include <devices/narrator.h>
  61. #include <devices/prtbase.h>
  62. #include <devices/printer.h>
  63.  
  64. #include <dos/exall.h>
  65. #include <dos/rdargs.h>
  66. #include <dos/dostags.h>
  67. #include <dos/filehandler.h>
  68.  
  69. #include <exec/alerts.h>
  70. #include <exec/devices.h>
  71. #include <exec/execbase.h>
  72. #include <exec/interrupts.h>
  73. #include <exec/io.h>
  74. #include <exec/memory.h>
  75. #include <exec/types.h>
  76.  
  77. #include <graphics/displayinfo.h>
  78. #include <graphics/gfx.h>
  79. #include <graphics/gfxbase.h>
  80. #include <graphics/gfxmacros.h>
  81. #include <graphics/text.h>
  82.  
  83. #include <hardware/cia.h>
  84. #include <hardware/intbits.h>
  85. #include <hardware/custom.h>
  86.  
  87. #include <intuition/classes.h>
  88. #include <intuition/classusr.h>
  89. #include <intuition/gadgetclass.h>
  90. #include <intuition/imageclass.h>
  91. #include <intuition/intuition.h>
  92. #include <intuition/intuitionbase.h>
  93. #include <intuition/preferences.h>
  94.  
  95. #include <libraries/dos.h>
  96. #include <libraries/dosextens.h>
  97. #include <libraries/expansionbase.h>
  98. #include <libraries/gadtools.h>
  99. #include <libraries/asl.h>
  100. #include <libraries/commodities.h>
  101. #include <libraries/diskfont.h>
  102. #include <libraries/translator.h>
  103. #include <libraries/iffparse.h>
  104.  
  105. #include <workbench/startup.h>
  106. #include <workbench/workbench.h>
  107.  
  108. #include <limits.h>
  109. #include <fcntl.h>
  110. #include <stdio.h>
  111. #include <stdlib.h>
  112. #include <string.h>
  113. #include <time.h>
  114. #include <stdarg.h>
  115. #include <ctype.h>
  116.  
  117. #include <libraries/amigaguide.h>
  118. #include <clib/amigaguide_protos.h>
  119. #include <pragmas/amigaguide_pragma.h>
  120.  
  121. #define NAME      "RSys"
  122. #define VERSION   "1.21"
  123. #define DATE      __DATE__
  124. #define TIME      __TIME__
  125. #define COPYRIGHT "(c) by Rolf Boehme (GiftWare and PD)"
  126.  
  127. #define UNSETLVPOS            -1
  128. #define NO_CASE               0
  129. #define CASE                  1
  130. #define HOTKEYS               7
  131. #define MAXSHOW               10
  132. #define SYSTEMINFO            12
  133. #define TITLELEN              15
  134. #define PWDLEN                20
  135. #define ENVLEN                20
  136. #define PARTSIZE              20
  137. #define MAXSTRLEN             30
  138. #define BUFSIZE               47
  139. #define PATTERNLEN            50
  140. #define SEC                   50
  141. #define HELPLINESIZE          50
  142. #define PATHPARTWIDTH         80
  143. #define PARSEPATLEN           102
  144. #define MAXFULLNAME           108
  145. #define MAXLINESIZE           150
  146. #define MAXWRITESIZE          200
  147. #define CRCTABSIZE            256
  148. #define MAXLARGEMEM           512
  149. #define FRAC                  8192
  150. #define FULL                  65536
  151.  
  152. #define NOSCREENTITLECHANGE   ((UBYTE *)(-1))
  153.  
  154. #define R13                   TRUE
  155. #define CRY                   FALSE
  156.  
  157. #define ESC                   '\33'
  158.  
  159. #define ACTION_TOKEN          "#"
  160.  
  161. #define COUNT_FLAGS           (GD_HandlerInpGad+1)
  162. #define KEY_RELEASE           0x80
  163. #define KEY_HELP              0x5F
  164. #define KEY_q                 0x10
  165. #define KEY_ESC               0x45
  166.  
  167. #define custom                (*(struct Custom *)0xDFF000)
  168.  
  169. #define EVT_HOTKEY            1L
  170.  
  171. #define CNTMASK               LDF_DEVICES
  172. #define MASK                  (CNTMASK|LDF_READ)
  173. #define B2C(x)                ((VOID *)(((LONG)(x))<<2))
  174.  
  175. #define ID_PORT_NAME          (UBYTE *)"RSys-ID-Port"
  176.  
  177. #define STRINGEND             '\0'
  178.  
  179. #define KILL                  TRUE
  180. #define NO_KILL               FALSE
  181.  
  182. #define YES                   TRUE
  183. #define NO                    FALSE
  184.  
  185. #define SORT                  TRUE
  186. #define NO_SORT               FALSE
  187.  
  188. #define SPEAK                 TRUE
  189. #define NO_SPEAK              FALSE
  190.  
  191. #define ErrorHandle(nr1,nr2,kill) ErrorHandleFull(nr1,nr2,kill,__FILE__,__FUNC__,__LINE__)
  192.  
  193. enum {
  194.    GD_TasksGad,            /*  0  */
  195.    GD_LibrariesGad,        /*  1  */
  196.    GD_MemoryGad,           /*  2  */
  197.    GD_PortsGad,            /*  3  */
  198.    GD_VolumesGad,          /*  4  */
  199.    GD_AssignsGad,          /*  5  */
  200.    GD_FontsGad,            /*  6  */
  201.    GD_ResourcesGad,        /*  7  */
  202.    GD_InterruptsGad,       /*  8  */
  203.    GD_WindowsGad,          /*  9  */
  204.    GD_ScreensGad,          /*  10 */
  205.    GD_HandlerInpGad,       /*  11 */
  206.    GD_SystemGad,           /*  12 */
  207.    GD_HardwareGad,         /*  13 */
  208.    GD_SaveListGad,         /*  14 */
  209.    GD_JumpGad,             /*  15 */
  210.    GD_ListeLV,             /*  16 */
  211.    GD_TextHeader,          /*  17 */
  212.    GD_InfoMsgGad           /*  18 */
  213. };
  214.  
  215. enum {
  216.    GD_FileTypeTGad,        /*  0  */
  217.    GD_ActionLV,            /*  1  */
  218.    GD_FInfo,               /*  2  */
  219.    GD_NextEntryGad         /*  3  */
  220. };
  221.  
  222. enum {
  223.    TYPE_DIR,               /*  0  */
  224.    TYPE_FILE,              /*  1  */
  225.    TYPE_ICON,              /*  2  */
  226.    TYPE_TEXT,              /*  3  */
  227.    TYPE_C,                 /*  4  */
  228.    TYPE_H,                 /*  5  */
  229.    TYPE_ASM,               /*  6  */
  230.    TYPE_I,                 /*  7  */
  231.    TYPE_MOD,               /*  8  */
  232.    TYPE_REXX,              /*  9  */
  233.    TYPE_BASIC,             /*  10 */
  234.    TYPE_TEX,               /*  11 */
  235.    TYPE_METAFONT,          /*  12 */
  236.    TYPE_GF,                /*  13 */
  237.    TYPE_TEXFONT,           /*  14 */
  238.    TYPE_TEXDVI,            /*  15 */
  239.    TYPE_FLIB,              /*  16 */
  240.    TYPE_OLDMANX,           /*  17 */
  241.    TYPE_NEWMANX,           /*  18 */
  242.    TYPE_OLDMANXLIB,        /*  19 */
  243.    TYPE_NEWMANXLIB,        /*  20 */
  244.    TYPE_OBJECT,            /*  21 */
  245.    TYPE_LIB,               /*  22 */
  246.    TYPE_EXECUTABLE,        /*  23 */
  247.    TYPE_LIBRARY,           /*  24 */
  248.    TYPE_DEVICE,            /*  25 */
  249.    TYPE_FILESYS,           /*  26 */
  250.    TYPE_HANDLER,           /*  27 */
  251.    TYPE_GIF,               /*  28 */
  252.    TYPE_ILBM,              /*  29 */
  253.    TYPE_ANIM,              /*  30 */
  254.    TYPE_8SVX,              /*  31 */
  255.    TYPE_SMUS,              /*  32 */
  256.    TYPE_FTXT,              /*  33 */
  257.    TYPE_PREFS,             /*  34 */
  258.    TYPE_TERM,              /*  35 */
  259.    TYPE_IMPLODER,          /*  36 */
  260.    TYPE_POWERPACKER,       /*  37 */
  261.    TYPE_ARC,               /*  38 */
  262.    TYPE_LHARC,             /*  39 */
  263.    TYPE_ZOO,               /*  30 */
  264.    TYPE_ZIP,               /*  41 */
  265.    TYPE_DMS,               /*  42 */
  266.    TYPE_WARP,              /*  43 */
  267.    TYPE_ZOOM,              /*  44 */
  268.    TYPE_WORDPERFECT        /*  45 */
  269. };
  270.  
  271. enum ListTypes {
  272.    TASKS,                  /*  0  */
  273.    LIBRARIES,              /*  1  */
  274.    MEMORY,                 /*  2  */
  275.    PORTS,                  /*  3  */
  276.    VOLUMES,                /*  4  */
  277.    ASSIGNS,                /*  5  */
  278.    FONTS,                  /*  6  */
  279.    RESOURCES,              /*  7  */
  280.    INTERRUPTS,             /*  8  */
  281.    WINDOWS,                /*  9  */
  282.    SCREENS,                /*  10 */
  283.    INPUTHDL,               /*  11 */
  284.    SYSINFO,                /*  12 */
  285.    HARDWARE,               /*  13 */
  286.    HELP,                   /*  14 */
  287.    PREFS,                  /*  15 */
  288.    DEVS,                   /*  16 */
  289.    ALLFONTS,               /*  17 */
  290.    ENVVARS,                /*  18 */
  291.    CLI,                    /*  19 */
  292.    RESIDENTS,              /*  20 */
  293.    SEMAPHORES,             /*  21 */
  294.    SYSVECTORS,             /*  22 */
  295.    SYSSOFTDEV,             /*  23 */
  296.    SYSPUBSCR,              /*  24 */
  297.    BLITTERWAIT,            /*  25 */
  298.    TOFWAIT,                /*  26 */
  299.    COMMODITIES,            /*  27 */
  300.    PRINTERDATA,            /*  28 */
  301.    LIBRARYOFFS,            /*  29 */
  302.    DISPLAYMODES,           /*  30 */
  303.    VOLLOCKS,               /*  31 */
  304.    AGUIDEXREF,             /*  32 */
  305.    ALLGADGETS              /*  33 */
  306. };
  307.  
  308. enum err_objects {
  309.    BROKER_ERR,
  310.    PORT_ERR,
  311.    FILE_ERR,
  312.    SCREEN_ERR,
  313.    WINDOW_ERR,
  314.    LIBRARY_ERR,
  315.    DEVICE_ERR,
  316.    ICON_ERR,
  317.    GADGET_MENU_ERR,
  318.    ENV_ERR,
  319.    DOS_EXALL_ERR,
  320.    FONT_ERR,
  321.    LIST_NODE_ERR,
  322.    MEMORY_ERR,
  323.    TASK_ERR,
  324.    CLIPBOARD_ERR,
  325.    MISC_ERR
  326. };
  327.  
  328. enum err_actions {
  329.    DUPLICATE_FAIL,
  330.    CREATE_FAIL,
  331.    FIND_FAIL,
  332.    KILL_FAIL,
  333.    OPEN_FAIL,
  334.    READ_FAIL,
  335.    WRITE_FAIL,
  336.    EXALL_FAIL,
  337.    SIZE_FAIL,
  338.    SAVED_FAIL,
  339.    WRONG_FAIL,
  340.    INFO_FAIL,
  341.    EXIST_FAIL,
  342.    TYPE_FAIL,
  343.    ALLOC_FAIL
  344. };
  345.  
  346. enum _field {
  347.    NO_FIELD,
  348.    NO_LIB_ID,
  349.    NO_FLAGS,
  350.    NO_TASK,
  351.    NO_NODE,
  352.    WRONG_TYPE_FMT,
  353.    NO_TYPE,
  354.    NO_TITLE,
  355.    NO_BAUD,
  356.    NO_PARITY,
  357.    NO_HANDSHK,
  358.    NO_HANDLER,
  359.    NO_FILE,
  360.    NO_LOCK,
  361.    BLANK_FIELD
  362. };
  363.  
  364. extern char *str_err_objects[], *str_err_actions[];
  365.  
  366. extern int wb_start;
  367.  
  368. extern struct Screen        *Scr;
  369. extern APTR                  VisualInfo;
  370. extern struct Window        *SysWnd;
  371. extern struct Gadget        *SysGList;
  372. extern struct Menu          *SysMenus;
  373. extern UWORD                 SysZoom[];
  374. extern struct Gadget        *SysGadgets[];
  375. extern UWORD                 SysLeft;
  376. extern UWORD                 SysTop;
  377. extern UWORD                 SysWidth;
  378. extern UWORD                 SysHeight;
  379. extern UBYTE                *SysWdt;
  380. extern struct TextAttr      *Font;
  381. extern UWORD                 FontX, FontY;
  382. extern UWORD                 OffX, OffY;
  383. extern struct TextAttr       Topaz80;
  384. extern struct NewMenu        SysNewMenu[];
  385. extern struct List           ListeLVList;
  386.  
  387. /*
  388. typedef struct {
  389.    char ea_type[BUFSIZE];
  390.    char ea_header[BUFSIZE];
  391.    char ea_dataformat[BUFSIZE];
  392.    void (*ea_func)(void);
  393.    unsigned ea_counted : 1;
  394. } EntryAttribute;
  395. */
  396.  
  397. typedef struct {
  398.    char *ea_type;
  399.    char *ea_header;
  400.    char *ea_dataformat;
  401.    void (*ea_func)(void);
  402.    unsigned ea_counted : 1;
  403. } EntryAttribute;
  404.  
  405. extern EntryAttribute EntryAttr[];
  406.  
  407. struct objectid {
  408.    char fullname[MAXFULLNAME];
  409.    APTR address;
  410. };
  411.  
  412. typedef struct SE {
  413.    struct Node       se_Node;
  414.    char              se_Entry[BUFSIZE];
  415.    struct objectid   se_obj_id;
  416. } ScrollEntry;
  417.  
  418. typedef struct SysMessage {
  419.    struct Message sm_message;
  420.    int            sm_newtype;
  421. } SysMsg;
  422.  
  423. extern struct MsgPort *SysIdPort;
  424.  
  425. extern ScrollEntry *Entries;
  426.  
  427. extern struct Library *AslBase;
  428. extern struct Library *GadToolsBase;
  429. extern struct IntuitionBase *IntuitionBase;
  430. extern struct GfxBase *GfxBase;
  431. extern struct ExecBase *SysBase;
  432. extern struct ExpansionBase    *ExpansionBase;
  433. extern struct Library *CxBase;
  434. extern struct WorkbenchBase *WorkbenchBase;
  435. extern struct Library *DiskfontBase;
  436. extern struct Library *UtilityBase;
  437. extern struct Library *IFFParseBase;
  438. extern struct AmigaGuideBase *AmigaGuideBase;
  439.  
  440. extern UBYTE   namebuffer[];
  441. extern int topentry,countentries;
  442. extern int quit_flag;
  443. extern int LastID;
  444. extern char *mess[];
  445. extern const char *field[];
  446.  
  447. extern struct AppIcon *appicon;
  448. extern  UWORD AppIcon1IData[];
  449. extern struct Image    AppIconI1;
  450. extern UWORD AppIconI2Data[];
  451. extern struct Image    AppIconI2;
  452.  
  453. extern struct MsgPort *broker_mp;
  454. extern CxObj *broker;
  455. extern struct NewBroker newbroker;
  456.  
  457. struct _acts {
  458.    struct Node act_Node;
  459.    int         act_filetype;
  460.    char        act_listviewheader[20];
  461.    char        act_name[30];
  462.    char        act_command[255];
  463. };
  464.  
  465. extern struct _acts *Actions;
  466.  
  467. struct _flags {
  468.    unsigned fastmode    : 1;
  469.    unsigned sortmode    : 1;
  470.    unsigned workingbar  : 1;
  471.    unsigned speakmode   : 1;
  472.    unsigned autofront   : 1;
  473.    unsigned mousewindow : 1;
  474.    unsigned sysfont     : 1;
  475.    unsigned saveasking  : 1;
  476.    unsigned appicon     : 1;
  477.  
  478. /* RSys private */
  479.    unsigned wb_start    : 1;
  480.    unsigned quit_clip   : 1;
  481.    unsigned quit_sw     : 1;
  482.    unsigned quit_crc    : 1;
  483.    unsigned quit_flag   : 1;
  484.    unsigned quit_cp     : 1;
  485.    unsigned quit_action_flag     : 1;
  486.    unsigned quit_cr     : 1;
  487.    unsigned quit_ff     : 1;
  488.    unsigned quit_fd     : 1;
  489.    unsigned quit_tree   : 1;
  490.    unsigned quit_hunk   : 1;
  491.    unsigned quit_iconify: 1;
  492. };
  493.  
  494. extern struct _flags Flags;
  495.  
  496. extern char hotkey[][];
  497. extern char *RSysName;
  498.  
  499. extern char _fullpath[];
  500.  
  501. /*
  502. struct _funcproc
  503. {
  504.    struct MinNode    fp_node;
  505.    struct Process   *fp_process;
  506.    char              fp_name[MAXSTRLEN];
  507. };
  508.  
  509. extern struct _funcproc *funcproc;
  510. extern struct MinList proclist;
  511. */
  512.