home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 5 / FreshFish_July-August1994.bin / bbs / dev / dropbox-1.1.lha / DropBox / src / DropBox.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-07-31  |  6.1 KB  |  261 lines

  1. /** DoRev Header ** Do not edit! **
  2. *
  3. * Name             :  DropBox.h
  4. * Copyright        :  Copyright 1993 Steve Anichini. All Rights Reserved.
  5. * Creation date    :  11-Jun-93
  6. * Translator       :  SAS/C 5.1b
  7. *
  8. * Date       Rev  Author               Comment
  9. * ---------  ---  -------------------  ----------------------------------------
  10. * 21-Jun-93    3  Steve Anichini       Added support for underscore in gadgets.
  11. * 21-Jun-93    2  Steve Anichini       First Release.
  12. * 12-Jun-93    1  Steve Anichini       Beta Release 1.0
  13. * 11-Jun-93    0  Steve Anichini       None.
  14. *
  15. *** DoRev End **/
  16.  
  17.  
  18. #ifndef DROPBOX
  19. #define DROPBOX
  20.  
  21. /* Defines */
  22.  
  23. /* Lowest Revision supported */
  24. #define DEF_LOWEST_REV 37
  25.  
  26. /* Used for AppEvents */
  27. #define APPICON 0
  28. #define APPMENU 1
  29.  
  30. /* Strings */
  31. #define NAME string[0]
  32. #define TITLE string[1]
  33. #define DESC  string[2]
  34.  
  35. #define ABOUT string[3]
  36. #define TEXTFORMAT string[4]
  37. #define GADGETFORMAT string[5]
  38.  
  39. #define NEW    string[6]
  40. #define NEWTEXTFORMAT string[7]
  41. #define NEWGADGETFORMAT string[8]
  42.  
  43. #define SAFE string[9]
  44. #define SAFETEXTFORMAT string[10]
  45. #define SAFEGADGETFORMAT string[11]
  46.  
  47. #define ENTRY string[12]
  48. #define ENTRYTEXTFORMAT string[13]
  49. #define ENTRYGADGETFORMAT string[14]
  50.  
  51. #define FILEHAIL string[15]
  52. #define FILEPREF string[16]
  53. #define DIRPREF  string[17]
  54. #define PATPREF  string[18]
  55.  
  56. /* Stuff for commodities */
  57. #define THEHOTKEY string[19]
  58. #define EVT_HOTKEY 0x01
  59.  
  60. /* Stuff for parsing the commands */
  61. #define COM    string[20]
  62. #define SOURCE string[21]
  63. #define DEST1    string[22]
  64. #define SOURCEDIR    string[23]
  65. #define SOURCEFILE    string[24]
  66.  
  67. #define IOTITLE    string[25]
  68.  
  69. /* Node types */
  70. #define NT_DBNODE    256
  71. #define NT_PATNODE 257
  72.  
  73. /* Number of gadgets with key shortcuts */
  74. #define GLU_NUM 2
  75.  
  76. /* Error Codes */
  77. #define NO_ERROR             0x0000
  78. #define NO_ICONLIB            0x0001
  79. #define NO_WORKLIB            0x0002
  80. #define NO_GFXLIB            0x0003
  81. #define NO_INTUILIB        0x0004
  82. #define NO_ICON            0x0005
  83. #define NO_PORT            0x0006
  84. #define NO_APPICON            0x0007
  85. #define NO_APPITEM            0x0008
  86. #define NO_CXLIB            0x0009
  87. #define NO_BROKER            0x000A
  88. #define NO_FILTER            0x000B
  89. #define NO_SENDER             0x000C
  90. #define NO_GADLIB            0x000D
  91. #define NO_UTILLIB            0x000E
  92. #define NO_DATABASE        0x000F
  93. #define NO_WINDOW            0x0010
  94. #define NO_IFFLIB            0x0011
  95. #define NO_FILE            0x0012
  96. #define NO_DIR                0x0013
  97. #define NO_FILEREQ            0x0014
  98. #define NO_ASLLIB            0x0015
  99. #define NO_MEM                0x0016
  100. #define STAGS_FAIL            0x0017
  101. #define NO_MEMFILE            0x0018
  102. #define PT_BADTOKEN        0x0019
  103. #define PT_COMUNKNOWN        0x001a
  104. #define NO_CREATEDIR        0x001b
  105.  
  106. /* Special Errors (Non Fatal) */
  107. #define ASLCANCEL                -1
  108.  
  109.  
  110. /* Database Flags */
  111. #define DFLG_NOFLAG            0x0000
  112. #define DFLG_SUPINPUT            0x0001
  113. #define DFLG_SUPOUTPUT            0x0002
  114. #define DFLG_CREATE            0x0004
  115.  
  116. /* Pattern Flags */
  117. #define PFLG_NOFLAG            0x0000
  118.  
  119. /* General Preferences flags */
  120. #define GPRF_VERSION 1
  121.  
  122. #define GFLG_NONE       0x0000
  123. #define GFLG_SAVEICON     0x0001
  124. #define GFLG_CHECKCOM    0x0002
  125. #define GFLG_SELECTWIN 0x0004
  126.  
  127. /* String Lengths */
  128. #define DEFLEN 256
  129. #define PATLEN 10
  130. #define DESTLEN 128
  131. #define COMLEN 128
  132. #define TEMPLEN 128
  133.  
  134. struct DBNode
  135. {
  136.     struct Node db_Nd;
  137.     char db_Name[30],
  138.             db_Pat[PATLEN],/* Ignored */
  139.             db_Dest[DESTLEN],
  140.             db_Com[COMLEN],
  141.             db_Template[TEMPLEN];
  142.     ULONG db_Flags;
  143.     struct List *db_Pats;
  144. };
  145.  
  146. struct PatNode
  147. {
  148.     struct Node pat_Nd;
  149.     char pat_Str[PATLEN];
  150.     ULONG pat_Flags;
  151.     ULONG pat_Reserved;
  152. };
  153.  
  154. struct AlertMessage 
  155. {
  156.     WORD LeftEdge;
  157.     BYTE TopEdge;
  158.     char AlertText[60];
  159.     BYTE Flag;
  160. };
  161.  
  162. struct GadLookUp
  163. {
  164.     UBYTE *gl_Key;
  165.     UWORD gl_Gad;
  166. };
  167.  
  168. struct GenPref
  169. {
  170.     ULONG gp_Version;
  171.     ULONG gp_Nodes; /* ignored in version 1 of file */
  172.     ULONG gp_Flags;
  173.     WORD gp_IOLeft, gp_IOTop;
  174.     WORD gp_IOWidth, gp_IOHeight;
  175.     ULONG reserved[3];
  176. };
  177.  
  178. extern struct List *DataBase;
  179. extern struct Library *SysBase;
  180. extern char *error[];
  181. extern char *string[];
  182. extern struct Image logoimage;
  183. extern struct GadLookUp glu[];
  184. extern struct DBNode *curnode;
  185. extern struct DBNode *Clip;
  186. extern BOOL FirstSave, end_flag, modified;
  187. extern ULONG winsigflag;
  188. extern struct GenPref MainPrefs;
  189.  
  190. /* External Functions */
  191. extern void leave(ULONG );
  192.  
  193. extern void InitDB();
  194.  
  195. /* Macro for now */
  196. #define CleanDB() (CleanList(DataBase))
  197.  
  198. extern struct List *MyNewList(ULONG);
  199. extern void CleanList(struct List *);
  200. extern struct Node *NewNode(ULONG);
  201. extern void FreeNode(struct Node *);
  202.  
  203. /* A Macro for now */
  204. #define AddNode(x,l)  (AddTail((l),(x)))
  205.  
  206. extern void InsertNode(struct Node *, struct Node *,struct List *);
  207. extern struct Node *RemoveNode(struct Node *, struct List *);
  208. extern void FillDBNode(struct DBNode *, char *, char *, char *, 
  209.                 char *, ULONG,struct List *);
  210. extern void FillPatNode(struct PatNode *, char *, ULONG);
  211. extern struct List *FindDBNode(char *);
  212. extern ULONG CreateCommand(struct DBNode *, struct WBArg *, char *);
  213. extern struct Node *OrdToPtr(UWORD,struct List *);
  214. extern UWORD PtrToOrd(struct Node *, struct List *);
  215. extern ULONG CountNodes(struct List *);
  216. extern ULONG Sort(struct List **);
  217.  
  218. extern ULONG SavePrefs(char *);
  219. extern ULONG LoadPrefs(char *);
  220. extern ULONG FileRequest(char *, char *, char *, BOOL, BOOL);
  221. extern void PrefIO(BOOL);
  222. extern ULONG JustSave();
  223. extern ULONG JustLoad();
  224. extern void InitIO(char *, char *, char *);
  225. extern void GetDest(char *);
  226. extern void GetCom(char *);
  227.  
  228. extern void DisplayErr(ULONG);
  229. extern void UpdateGadgets();
  230. extern void UpdateDB();
  231. extern int  ShowWindow();
  232. extern void HideWindow();
  233. extern void Select(struct DBNode *);
  234. extern void HandleIntuiMsg();
  235. extern void CleanWindow(struct Window *);
  236. extern BOOL Safe(struct Window *);
  237.  
  238. extern struct MenuItem *GetItem(struct Menu *, UWORD, UWORD);
  239.  
  240. /* Macros */
  241. #define IsEmpty(x) (((x)->lh_TailPred) == ((struct Node *)(x)))
  242.  
  243. #define FindGad(gad) (DropBoxGadgets[(gad)])
  244.  
  245. /* For CHECKIT menuitems */
  246. #define IsChecked(item) (((item)->Flags) & CHECKED)
  247.  
  248. /* For any type of toggled flag */
  249. #define ToggleFlag(flag, which) ((flag)&(which))?((flag)&(~(which))):((flag)|(which))
  250.  
  251. /* For getting the status of CHECKIT menuitems */
  252. /* Returns the correct state of flag */
  253. #define StatusCheck(item, oflag, flag) (IsChecked((item))?((oflag)|(flag)):((oflag)&(~(flag))))
  254.  
  255. /* Max and Min */
  256. #define max(a,b) (((a)>(b))?(a):(b))
  257. #define min(a,b) (((a)<(b))?(a):(b))
  258.  
  259. #endif
  260.  
  261.