home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Amiga 13 / MA_Cover_13.bin / source / c / db3.6-beta-src / dbparser.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-11-26  |  3.0 KB  |  95 lines

  1.  
  2. #include "db.h"
  3. #include <intuition/intuition.h>
  4.  
  5.  
  6. enum RFFTAG { UNKNOWN, RFF, TYPE, FLEN, LNAM, NAME,
  7.  SIZE, OFFS, NEXT, TABSIZE, RXFILE, RXSTRING, AUTORXFILE, AUTORXSTRING,
  8.  NEWRECORDRXFILE, NEWRECORDRXSTRING, FTYP, CENT, SFMT, RXPORTNAME, PLACE, ROWS, XPOS, YPOS };
  9.  
  10. typedef enum { N_A, PRO_GLOBAL, PRO_LOCAL, VIEW_GLOBAL, VIEW_LOCAL } Where;
  11.  
  12. /* RFF tag names */
  13.  
  14. #define STR_RFF                         "@RFF"
  15. #define STR_TYPE                        "TYPE"
  16. #define STR_FLEN                        "FLEN"
  17. #define STR_LNAM                        "LNAM"
  18. #define STR_NAME                        "NAME"
  19. #define STR_SIZE                        "SIZE"
  20. #define STR_OFFS                        "OFFS"
  21. #define STR_NEXT                        "NEXT"
  22. #define STR_TABSIZE                  "TABSIZE"
  23. #define STR_RXFILE                    "RXFILE"
  24. #define STR_RXSTRING                "RXSTRING"
  25. #define STR_AUTORXFILE            "AUTORXFILE"
  26. #define STR_AUTORXSTRING        "AUTORXSTRING"
  27. #define STR_FTYP                        "FTYP"
  28. #define STR_CENT                        "CENT"
  29. #define STR_SFMT                        "SFMT"
  30. #define STR_PLACE                      "PLACE"
  31. #define STR_ROWS                        "ROWS"
  32. #define STR_XPOS                        "XPOS"
  33. #define STR_YPOS                        "YPOS"
  34.  
  35.  
  36. /* RFF tag values */
  37. #define STR_INTERNAL "internal"
  38. #define STR_FORM "form"
  39. #define STR_RXMENU "rxmenu"
  40. #define STR_SPACE "space"
  41. #define STR_TAB "tab"
  42. #define STR_PARA "para"
  43. #define STR_CHECKBOX "checkbox"
  44. #define STR_CYCLE "cycle"
  45. #define STR_TEXTFIELD "textfield"
  46. #define STR_TEXT "text"
  47.  
  48. #define _STRING    0
  49. #define _TEXT      1
  50. #define _TEXTFIELD 2
  51. #define _CYCLE     3
  52. #define _CHECKBOX  4
  53.  
  54. struct RFFTag
  55. {
  56.         struct MinNode mln;
  57.         short  int ID;
  58.         char   *Name;
  59.         char   *Data;
  60. };
  61.  
  62. struct RFFLine
  63. {                /* Holds unknown RFF lines */
  64.         struct MinNode mln;
  65.         char   *Line;
  66. };
  67.  
  68.  
  69. /* Functions you may call */
  70.  
  71. extern int RFFParse(struct Pro *, BPTR);
  72. extern BOOL RFFOut(struct Pro *, BPTR);
  73.  
  74. struct RFFTag *NewTag(const char *name, int nlen, const char *data, int dlen);
  75. struct RFFTag *FindTag(struct MinList *list, short int id);
  76. struct RFFTag *UpdateTag(struct MinList *list, short int id, char *newdata);
  77. struct RFFTag *CreateAndAddTag(struct MinList *list, short int id, char *newdata);
  78. void DeleteTag(struct RFFTag *ot);
  79. struct RFFTag *SearchTags(struct Pro *Pr, struct VisFldInfo *vf, Where *where, short tag1ID, short tag2ID);
  80. struct RFFTag *SearchTag(struct Pro *Pr, struct VisFldInfo *vf, Where *where, short tagID);
  81.  
  82. struct VisFldInfo *GetVisFldInfo(struct Layout *Lay, struct Gadget *g);
  83. struct VisFldInfo *NewVisFldInfo(void);
  84. struct VisFldInfo *CopyVisFldInfo(struct VisFldInfo *vf);
  85. void DeleteVisFldInfo(struct VisFldInfo *vf);
  86.  
  87. int ReadVisTags(struct Pro *Pr, struct VisFldInfo *vf);
  88. void WriteVisTags(struct VisFldInfo *vf);
  89.  
  90. struct FldInfo *GetFldInfo(struct Pro *, short);
  91. void DeleteRFFLine(struct RFFLine *ol);
  92.  
  93. struct FldInfo *NewFldInfo(void);
  94. BOOL DoASCIIParsing(struct Pro *Pr);
  95.