home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 15 / AACD15.ISO / AACD / Programming / MultiDesktop / desk / multidesktop.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-03-27  |  3.5 KB  |  136 lines

  1. #ifndef MULTIDESKTOP_MULTIDESKTOP_H
  2. #define MULTIDESKTOP_MULTIDESKTOP_H
  3. #ifndef EXEC_TYPES_H
  4. #include <exec/types.h>
  5. #endif
  6. #ifndef EXEC_LIBRARIES_H
  7. #include <exec/libraries.h>
  8. #endif
  9.  
  10. #define MERR_NoError      0
  11. #define MERR_NoMemory     1
  12. #define MERR_GadgetError  2
  13.  
  14. #define STARTUP_TRAPHANDLER      (1L<<0)
  15. #define STARTUP_ALERTHANDLER     (1L<<1)
  16. #define STARTUP_BREAKHANDLER_ON  (1L<<2)
  17. #define STARTUP_BREAKHANDLER_OFF (1L<<3)
  18. #define STARTUP_BREAKHANDLER_C   (1L<<4)
  19. #define STARTUP_BREAKHANDLER_D   (1L<<5)
  20. #define STARTUP_BREAKHANDLER_E   (1L<<6)
  21. #define STARTUP_BREAKHANDLER_F   (1L<<7)
  22.  
  23. #define SORT_ASCENDING  1
  24. #define SORT_DESCENDING 2
  25.  
  26. struct MultiRememberEntry
  27. {
  28.  struct MultiRememberEntry *PrevRemember;
  29.  struct MultiRememberEntry *NextRemember;
  30.  ULONG                      MemorySize;
  31. };
  32.  
  33. struct MultiRemember
  34. {
  35.  struct MultiRememberEntry *FirstRemember;
  36.  struct MultiRememberEntry *LastRemember;
  37. };
  38.  
  39. struct MultiTime
  40. {
  41.  UBYTE Day;
  42.  UBYTE Month;
  43.  UWORD Year;
  44.  UBYTE WDay;
  45.  UBYTE Hour;
  46.  UBYTE Minute;
  47.  UBYTE Second;
  48.  
  49.  ULONG SecondsSince1978;
  50.  ULONG StarDate[2];
  51.  /*
  52.     StarDate-Format:
  53.     StarDate[0] : Ganze Einheiten
  54.     StarDate[1] : Nachkommaeinheiten mit 1000 multipliziert
  55.  
  56.     1.0000 StarDate-Einheiten = 32400 Sekunden = 9 Stunden
  57.  */
  58. };
  59.  
  60. struct MultiDesktopUser
  61. {
  62.  /* --- Verwaltung ------------------ */
  63.  ULONG                MagicID;             /*  0 */ /* MultiDesktop-Kennung */
  64.  UWORD                UserCount;           /*  4 */
  65.  struct MultiRemember Remember;            /*  6 */
  66.  
  67.  /* --- Startup, Traps, Break ------- */
  68.  struct WBStartup    *WBStartup;           /* 14 */
  69.  ULONG                LastError;           /* 18 */
  70.  ULONG                LastGuru;            /* 22 */
  71.  APTR                 OldTrapHandler;      /* 26 */
  72.  APTR                 OldExceptHandler;    /* 30 */
  73.  UWORD                BreakControl;        /* 34 */
  74.  UWORD                AlertControl;        /* 36 */
  75.  VOID               (*TermProcedure)();    /* 38 */
  76.  VOID               (*SysTermProcedure)(); /* 42 */
  77.  
  78.  /* --- Timer-Device ---------------- */
  79.  struct MsgPort      *TimerPort;
  80.  struct timerequest  *TimerReq;
  81.  LONG                 TimerDev;
  82.  
  83.  /* --- zur freien Verfügung -------- */
  84.  APTR                 MDUUserData[4];
  85.  
  86.  /* --- MultiDesktop-Libraries ------ */
  87.  APTR                 MultiWindows;
  88.  APTR                 MultiDisk;
  89.  APTR                 MultiTransfer;
  90.  APTR                 MultiSCSI;
  91. };
  92.  
  93. #define MAGIC_ID 0x29091976
  94.  
  95. struct MultiDesktopBase
  96. {
  97.  /* --- Verwaltung ------------------ */
  98.  struct Library        Library;
  99.  
  100.  /* --- Libraries ------------------- */
  101.  struct ExecBase      *SysLib;
  102.  struct DOSBase       *DosLib;
  103.  struct IntuitionBase *IntLib;
  104.  struct GfxBase       *GfxLib;
  105.  struct Library       *DiskfontLib;
  106.  struct Library       *GadToolsLib;
  107.  struct Library       *IconLib;
  108.  struct Library       *LayersLib;
  109.  struct Library       *WorkbenchLib;
  110.  struct Library       *UtilityLib;
  111.  struct Library       *ExpansionLib;
  112.  struct Library       *VersionLib;
  113.  struct Library       *KeymapLib;
  114.  struct Library       *TimerLib;
  115.  struct Library       *ConsoleLib;
  116.  struct Library       *InputLib;
  117.  struct Library       *BattClockLib;
  118.  
  119.  ULONG                 pad01;
  120.  
  121.  /* --- Locale ---------------------- */
  122.  struct Library       *LocaleLib;
  123.  struct Locale        *Locale;
  124.  struct Catalog       *Catalog;
  125.  
  126.  /* --- Verwaltung ------------------ */
  127.  APTR                  SegList;
  128.  UBYTE                 Flags;
  129.  UBYTE                 pad;
  130. };
  131.  
  132. #define SIGBREAK (SIGBREAKF_CTRL_C|SIGBREAKF_CTRL_D|SIGBREAKF_CTRL_E|SIGBREAKF_CTRL_F)
  133. #define MULTI_SIZE 100
  134. #endif
  135.  
  136.