home *** CD-ROM | disk | FTP | other *** search
/ Otherware / Otherware_1_SB_Development.iso / amiga / programm / utility / resgrep0.lzh / ResGrep / src / resources.h < prev    next >
C/C++ Source or Header  |  1992-03-29  |  3KB  |  86 lines

  1. #ifndef CC_RESOURCES_H
  2. #define CC_RESOURCES_H
  3. //
  4. // Das Headerfile fⁿr den ResGrep
  5. //
  6.  
  7. #include <stdio.h>
  8. #include "res.h"
  9. #include "list.h"
  10.  
  11. class ResID : public node
  12. {
  13.                // in node->name steht der Name der RESOURCE, in
  14.                // node->pack der gepackte Typ und in node->pri
  15.                // die ID.
  16.    unsigned char  Attrs;      // Die Attribute der Resource.
  17.    unsigned long  DataOffset; // Beginn der Daten im File.
  18.  public:
  19.    ResID(MacResID *mri, unsigned long theResType,
  20.      void *theMacResNameList, unsigned long FileDataOffset);
  21.    ~ResID(void);
  22.  
  23.    int export(void);   // Exportiert die Daten
  24. };
  25.  
  26. class ResType : public node
  27. {
  28.                // in node->name steht der Name der Datei und in
  29.                // node->pack der gepackte Typ.
  30.    list theResID;      // Die Liste mit den ID-EintrΣgen.
  31.    short NumberOfResIDs; // Die Anzahl der abhΣngigen IDs.
  32.  public:
  33.    ResType(MacResType *mrt, MacResID *mri, void *theMacResNameList,
  34.        unsigned long FileDataOffset, char *name=NULL, long pri=0);
  35.    ~ResType(void);
  36.                // Und noch die gleichen (selben???) Methoden wie
  37.                // bei einem ResFile.
  38.  
  39.    void hidewin(struct IntuiMessage *msg); // Versteckt  das Listenfenster
  40.    void revealwin(struct IntuiMessage *msg); // Macht das Fenster sichtbar.
  41.    void closewin(struct IntuiMessage *msg);
  42.    void displaywin(struct MsgPort *msg, struct Menu *men);
  43.  
  44.    node *check(struct IntuiMessage *msg);
  45. };
  46.  
  47.  
  48. class ResFile : public node
  49. {
  50.                // in node::name steht der Filename der Datei
  51.                // (OHNE Pfad!)
  52.    list  theResType;   // Die Liste aller ResourceTypen dieses Files.
  53.    char *fullname;     // VollstΣndiger Name der Datei.
  54.    FILE *fp;           // Der Filepointer fⁿr 'fread()' und 'fwrite()'.
  55.    short NumberOfResTypes; // Anzahl der ResourceTypen in diesem File.
  56.    unsigned long  DataOffset; // Anfang der Daten im File.
  57.    unsigned short Attrs;   // Die Fileattribute.
  58.  public:
  59.    ResFile(void);
  60.    ~ResFile(void);     // Schlie▀t das File und gibt alle abhΣngigen Listen
  61.                // frei.
  62.  
  63.    int open(char *name=NULL); // ╓ffnet ein ResourceFile, gibt das vorherige
  64.                // wieder frei (falls es schon eins gab.)
  65.    void close(void);   // Schlie▀t ein File.
  66.  
  67.    FILE *getfp(void);
  68.  
  69.    // Dann noch die Funktionen, die die ResType-Liste betreffen:
  70.    void hidewin(struct IntuiMessage *msg); // Versteckt das Listenfenster
  71.    void hidechild(struct IntuiMessage *msg); // Versteckt dieses und
  72.                // ALLE von ihm abhΣngige Fenster
  73.    void revealwin(struct IntuiMessage *msg); // Macht das Fenster sichtbar.
  74.    void revealchild(struct IntuiMessage *msg); // Macht dieses
  75.                // und ALLE abhΣngigen sichtbar.
  76.    void closewin(struct IntuiMessage *msg);
  77.    void closechild(struct IntuiMessage *msg);
  78.    void displaywin(struct MsgPort *msg, struct Menu *);
  79.  
  80.    node *check(struct IntuiMessage *msg);
  81. };
  82.  
  83. extern list ResFileList;
  84. #endif
  85.  
  86.