home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / C / OTL-MC7.DMS / in.adf / classes.lha / Classes / Workbench / icon.h next >
Encoding:
C/C++ Source or Header  |  1995-01-31  |  2.0 KB  |  102 lines

  1. #ifndef CPP_WORKBENCH_ICON_H
  2. #define CPP_WORKBENCH_ICON_H TRUE
  3.  
  4. // Klasseninterface für Icons
  5. //
  6. // Autor: Jochen Becher
  7. //
  8. // Historie:
  9. // Version 1.0 am 25. September 93
  10.  
  11. #ifndef WORKBENCH_WORKBENCH_H
  12. #include <workbench/workbench.h>
  13. #endif
  14.  
  15. #ifndef LIBRARIES_DOS_H
  16. #include <libraries/dos.h>
  17. #endif
  18.  
  19. class DiskObjectC {
  20.     friend class DiskObjectNewC;
  21.     friend class NewDiskObjectC;
  22. public:
  23.     DiskObjectC(STRPTR name, BPTR lock = NULL);
  24.     ~DiskObjectC();
  25.     virtual BOOL get();
  26.     virtual BOOL remove();
  27.     UBYTE type();
  28.     STRPTR *toolTypes();
  29.     STRPTR defaultTool();
  30.     LONG stackSize();
  31.     LONG currentX();
  32.     LONG currentY();
  33.     STRPTR findToolType(STRPTR type);
  34.     BOOL matchToolType(STRPTR type, STRPTR value);
  35.     BOOL matchToolValue(STRPTR tooltype, STRPTR value);
  36. protected:
  37.     struct DiskObject *icon;
  38. private:
  39.     STRPTR objectname;
  40.     BPTR objectlock;
  41. };
  42.  
  43. class ToolTypeCursorC {
  44. public:
  45.     ToolTypeCursorC(DiskObjectC &);
  46.     VOID first();
  47.     VOID next();
  48.     BOOL isDone();
  49.     STRPTR item();
  50. private:
  51.     DiskObjectC *object;
  52.     STRPTR *pos;
  53. };
  54.  
  55. class DiskObjectNewC : public DiskObjectC {
  56. public:
  57.     DiskObjectNewC(STRPTR name, BPTR lock = NULL)
  58.         : DiskObjectC(name,lock) { };
  59.     BOOL get();
  60. };
  61.  
  62. class DefDiskObjectC : public DiskObjectC {
  63. public:
  64.     DefDiskObjectC(LONG type);
  65.     ~DefDiskObjectC();
  66.     BOOL get();
  67.     // Löschen von default icons macht keinen Sinn.
  68.     BOOL remove() { return FALSE; };
  69. private:
  70.     LONG objecttype;
  71. };
  72.  
  73. class NewDiskObjectC {
  74. public:
  75.     NewDiskObjectC(UBYTE type);
  76.     NewDiskObjectC(DiskObjectC &);
  77.     ~NewDiskObjectC();
  78.     BOOL put(STRPTR name);
  79.     VOID setDefaultTool(STRPTR name);
  80.     VOID clearToolTypes();
  81.     VOID addToolType(STRPTR name);
  82.     VOID setCurrentX(LONG x = NO_ICON_POSITION);
  83.     VOID setCurrentY(LONG y = NO_ICON_POSITION);
  84.     VOID setStackSize(LONG stack = 4096);
  85.     VOID setImage(struct Image *);
  86.     VOID setSelectedImage(struct Image *);
  87. private:
  88.     struct DiskObject object;
  89.     struct DrawerData drawer;
  90.     DiskObjectC *source;
  91. };
  92.  
  93. class NewDefDiskObjectC : public NewDiskObjectC {
  94. public:
  95.     NewDefDiskObjectC(UBYTE type);
  96.     NewDefDiskObjectC(DiskObjectC &);
  97.     ~NewDefDiskObjectC();
  98.     BOOL put();
  99. };
  100.  
  101. #endif
  102.