home *** CD-ROM | disk | FTP | other *** search
/ Enigma Amiga Life 106 / EnigmaAmiga106CD.iso / software / on-line / cmanager / docs / developer / cmanager.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-09-25  |  4.1 KB  |  157 lines

  1. #ifndef CMANAGER_H
  2. #define CMANAGER_H
  3.  
  4. /*
  5.     $VER: CManager.h 1.4 (30.5.98) © Simone Tellini
  6. */
  7.  
  8. #ifndef MAKE_ID
  9. #define MAKE_ID(a,b,c,d)    ((ULONG) (a)<<24 | (ULONG) (b)<<16 | (ULONG) (c)<<8 | (ULONG) (d))
  10. #endif
  11.  
  12.  
  13. #define CME_GROUP   0
  14. #define CME_USER    1
  15. #define CME_WWW     2
  16. #define CME_FTP     3
  17. #define CME_CHAT    4
  18.  
  19. #define CME_LIST    253
  20. #define CME_IMAGE   254
  21. #define CME_SECTION 255
  22.  
  23. struct CMGroup {
  24.         struct CMGroup *Succ;
  25.         struct CMGroup *Prec;
  26.         UBYTE           Type;
  27.         UBYTE           Flags;
  28.         TEXT            Name[80];
  29.         struct MinList  Entries;
  30.         struct MinList  SubGroups;
  31. };
  32.  
  33. #define GRPF_BOLD       (1 << 0)
  34. #define GRPF_OPEN       (1 << 1)
  35.  
  36. struct CMUser {
  37.         struct CMUser  *Succ;
  38.         struct CMUser  *Prec;
  39.         UBYTE           Type;
  40.         UBYTE           Flags;
  41.         TEXT            Name[80];       //  FirstName
  42.         TEXT            Address[128];
  43.         TEXT            City[128];
  44.         TEXT            Country[80];
  45.         TEXT            ZIP[20];
  46.         TEXT            Comment[512];
  47.         TEXT            Alias[40];
  48.         TEXT            Phone[40];
  49.         TEXT            Fax[40];
  50.         TEXT            EMail[128];
  51.         TEXT            WWW[256];
  52.         TEXT            FTP[256];
  53.         TEXT            LastName[80];
  54.         TEXT            Mobile[40];
  55.         TEXT            ICQ[20];
  56.         TEXT            Company[40];    //  Business data
  57.         TEXT            BAddress[128];
  58.         TEXT            BCity[128];
  59.         TEXT            BCountry[80];
  60.         TEXT            BZIP[20];
  61.         TEXT            BPhone[40];
  62.         TEXT            BFax[40];
  63.         TEXT            BEMail[128];
  64.         TEXT            BJobTitle[20];
  65.         TEXT            BDepartment[40];
  66.         TEXT            BOffice[40];
  67.         struct CMImage *Image;
  68. };
  69.  
  70. struct CMWWW {
  71.         struct CMWWW   *Succ;
  72.         struct CMWWW   *Prec;
  73.         UBYTE           Type;
  74.         UBYTE           Flags;
  75.         TEXT            Name[80];
  76.         TEXT            WWW[256];
  77.         TEXT            Comment[512];
  78.         TEXT            WebMaster[80];
  79.         TEXT            EMail[128];
  80. };
  81.  
  82. struct CMFTP {
  83.         struct CMFTP   *Succ;
  84.         struct CMFTP   *Prec;
  85.         UBYTE           Type;
  86.         UBYTE           Flags;
  87.         TEXT            Name[80];
  88.         TEXT            FTP[256];
  89.         TEXT            Comment[512];
  90.         TEXT            Username[60];
  91.         TEXT            Password[60];
  92.         ULONG           Port;
  93.         ULONG           Retries;
  94.         TEXT            Local[256];
  95. };
  96.  
  97. #define FTPF_ADVANCED   (1 << 0)
  98. #define FTPF_QUIET      (1 << 1)
  99. #define FTPF_COMPRESS   (1 << 2)
  100. #define FTPF_ADT        (1 << 3)
  101. #define FTPF_ANONYMOUS  (1 << 4)
  102. #define FTPF_LOCAL      (1 << 5)
  103.  
  104. struct CMChat {
  105.         struct CMChat  *Succ;
  106.         struct CMChat  *Prec;
  107.         UBYTE           Type;
  108.         UBYTE           Flags;
  109.         TEXT            Channel[128];
  110.         TEXT            Server[128];
  111.         TEXT            Maintainer[80];
  112.         TEXT            Nick[20];
  113.         TEXT            WWW[256];
  114.         TEXT            Comment[512];
  115.         TEXT            Password[60];
  116. };
  117.  
  118.  
  119. struct CMImage {
  120.         struct CMImage *Succ;
  121.         struct CMImage *Prec;
  122.         UBYTE           Type;
  123.         UBYTE           Flags;
  124.         struct BitMap  *BitMap;
  125.         APTR            Colors;
  126. };
  127.  
  128.  
  129. /*
  130.  *          Structure to be passed to CM_LoadData(), CM_SaveData(), CM_FreeData()
  131.  */
  132.  
  133. struct CMData {
  134.         struct CMGroup *Users;
  135.         struct CMGroup *WWWs;
  136.         struct CMGroup *FTPs;
  137.         struct CMGroup *Chat;
  138.         TEXT            CurrentUser[60];    // set by CM_LoadCurrentUserData()
  139.         TEXT            Path[256];          // set by CM_LoadCurrentUserData()
  140.         BOOL            FreeMe;             // if TRUE, CM_FreeData() frees the structure as well
  141. };
  142.  
  143. /*
  144.  *          Flags for CM_GetEntry()
  145.  */
  146.  
  147. #define CMGE_USER           (1 << 0)
  148. #define CMGE_WWW            (1 << 1)
  149. #define CMGE_FTP            (1 << 2)
  150. #define CMGE_CHAT           (1 << 3)
  151. #define CMGE_MULTISELECT    (1 << 4)    //  CM_GetEntry returns a struct MinList *
  152.  
  153.  
  154.  
  155.  
  156. #endif /* CMANAGER_H */
  157.