home *** CD-ROM | disk | FTP | other *** search
/ Amiga Elysian Archive / AmigaElysianArchive.iso / emulate / resgrep0.lha / ResGrep03b / source / export.h < prev    next >
C/C++ Source or Header  |  1992-05-10  |  3KB  |  122 lines

  1. #ifndef CC_EXPORT_H
  2. #define CC_EXPORT_H
  3. //
  4. // export.h
  5. //
  6. // The classdefinitions for the export of data from ResGrep.
  7. //
  8. // 23.03.1992 Andre    written.
  9. //
  10.  
  11. extern "C" {
  12. #include <stdio.h>
  13. #include "list.h"
  14. };
  15.  
  16. #ifndef FALSE
  17. #define FALSE 0
  18. #endif
  19. #ifndef TRUE
  20. #define TRUE (~FALSE)
  21. #endif
  22.  
  23. typedef enum boolean
  24. {
  25.    false=FALSE, true=TRUE
  26. } bool;
  27.  
  28. enum send
  29. {
  30.    Clipboard, File
  31. };
  32.  
  33. class convert;
  34.  
  35. typedef int (convert::*exportfunc)(FILE *, unsigned long);
  36.  
  37. class convert :  public node
  38. {
  39.    // The type is placed in node::pack, the conversion name in node::name.
  40.    char  *command;   // The command (or the ARexx skript) to be executed.
  41.    bool   isARexx;   // True is Command is an ARexx skript. (The skript is
  42.              // directly send to the ARexx-Host.)
  43.    send   sendto;
  44.    char  *filename;  // The filename the data is written to. (Only set if
  45.              // 'sendto' is equal 'File'.)
  46.    bool   builtin;   // True if function is builtin (can't be removed).
  47.    int      funcnum;   // Number of Function
  48.  public:
  49.    convert(unsigned long theType,
  50.        int thefuncnum,
  51.        char *theName="raw data",
  52.        char *theCommand=NULL, bool theIsARexx=true,
  53.        send theSendTo=Clipboard, char *theFilename=NULL,
  54.        bool thebuiltin=true);
  55.    ~convert(void);
  56.  
  57.    // exportfunc export;
  58.    void docommand(void);
  59.    void ReadText(void);
  60.  
  61.    int getfuncnum(void);
  62.  
  63.    // 'export()' is one of:
  64.  
  65.                              // Number
  66.    int rawdata(FILE *fp, unsigned long DataOffset);      // 0
  67.    int text2ascii(FILE *fp, unsigned long DataOffset);   // 1
  68.    int text2ftxt(FILE *fp, unsigned long DataOffset);    // 2
  69.    int snd28svx(FILE *fp, unsigned long DataOffset);     // 3
  70.    int ICNd2ilbm(FILE *fp, unsigned long DataOffset);    // 4
  71.    int icl42ilbm(FILE *fp, unsigned long DataOffset);    // 5
  72.    int icl82ilbm(FILE *fp, unsigned long DataOffset);    // 6
  73.    int icsd2ilbm(FILE *fp, unsigned long DataOffset);    // 7
  74.    int ics42ilbm(FILE *fp, unsigned long DataOffset);    // 8
  75.    int ics82ilbm(FILE *fp, unsigned long DataOffset);    // 9
  76.  
  77.    // Hilfsfunktionen
  78.  
  79.    int icons2ilbm(FILE *fp, unsigned long DataOffset,
  80.             unsigned long x, unsigned long y,
  81.             unsigned long ftiefe);
  82.  
  83.  
  84.  
  85.    friend void editconv(void);
  86.    friend void UpdateWindow(node *,int );
  87.    friend void savesettings(void);
  88.    friend int exportres(unsigned long theType, FILE *fp, unsigned long DataOffset);
  89. };
  90.  
  91. void initexport(void);
  92. void editconv(void);
  93.  
  94. #define NUM_EXPORTFUNC    4
  95. extern exportfunc exportfunctions[];
  96.  
  97. // Funktionen aus settings.cc
  98. void savesettings(void);
  99. void savesettingsas(void);
  100. void loadsettings(void);
  101. void freeconvert(list *c);
  102.  
  103. // Funktionen aus Output.cc
  104. void ResError(char *text);
  105. void ResWarning(char *text);
  106. void ResMessage(char *text);
  107. int  ResAsk(char *text, char *wahl);
  108.  
  109.  
  110. // Errors from export functions
  111. #define ERR_NO              0
  112. #define ERR_NO_CONVERS          1
  113. #define ERR_FILE_CORRUPTED    2
  114. #define ERR_NO_MEMORY          3
  115. #define ERR_FILE_OPEN          4
  116. #define ERR_WRITE          5
  117. #define ERR_NO_CLIPBOARD      6
  118. #define ERR_NO_FILE          7
  119. #define ERR_OPENIFF          8
  120.  
  121. #endif
  122.