home *** CD-ROM | disk | FTP | other *** search
- #ifndef CPP_WORKBENCH_ICON_H
- #define CPP_WORKBENCH_ICON_H TRUE
-
- // Klasseninterface für Icons
- //
- // Autor: Jochen Becher
- //
- // Historie:
- // Version 1.0 am 25. September 93
-
- #ifndef WORKBENCH_WORKBENCH_H
- #include <workbench/workbench.h>
- #endif
-
- #ifndef LIBRARIES_DOS_H
- #include <libraries/dos.h>
- #endif
-
- class DiskObjectC {
- friend class DiskObjectNewC;
- friend class NewDiskObjectC;
- public:
- DiskObjectC(STRPTR name, BPTR lock = NULL);
- ~DiskObjectC();
- virtual BOOL get();
- virtual BOOL remove();
- UBYTE type();
- STRPTR *toolTypes();
- STRPTR defaultTool();
- LONG stackSize();
- LONG currentX();
- LONG currentY();
- STRPTR findToolType(STRPTR type);
- BOOL matchToolType(STRPTR type, STRPTR value);
- BOOL matchToolValue(STRPTR tooltype, STRPTR value);
- protected:
- struct DiskObject *icon;
- private:
- STRPTR objectname;
- BPTR objectlock;
- };
-
- class ToolTypeCursorC {
- public:
- ToolTypeCursorC(DiskObjectC &);
- VOID first();
- VOID next();
- BOOL isDone();
- STRPTR item();
- private:
- DiskObjectC *object;
- STRPTR *pos;
- };
-
- class DiskObjectNewC : public DiskObjectC {
- public:
- DiskObjectNewC(STRPTR name, BPTR lock = NULL)
- : DiskObjectC(name,lock) { };
- BOOL get();
- };
-
- class DefDiskObjectC : public DiskObjectC {
- public:
- DefDiskObjectC(LONG type);
- ~DefDiskObjectC();
- BOOL get();
- // Löschen von default icons macht keinen Sinn.
- BOOL remove() { return FALSE; };
- private:
- LONG objecttype;
- };
-
- class NewDiskObjectC {
- public:
- NewDiskObjectC(UBYTE type);
- NewDiskObjectC(DiskObjectC &);
- ~NewDiskObjectC();
- BOOL put(STRPTR name);
- VOID setDefaultTool(STRPTR name);
- VOID clearToolTypes();
- VOID addToolType(STRPTR name);
- VOID setCurrentX(LONG x = NO_ICON_POSITION);
- VOID setCurrentY(LONG y = NO_ICON_POSITION);
- VOID setStackSize(LONG stack = 4096);
- VOID setImage(struct Image *);
- VOID setSelectedImage(struct Image *);
- private:
- struct DiskObject object;
- struct DrawerData drawer;
- DiskObjectC *source;
- };
-
- class NewDefDiskObjectC : public NewDiskObjectC {
- public:
- NewDefDiskObjectC(UBYTE type);
- NewDefDiskObjectC(DiskObjectC &);
- ~NewDefDiskObjectC();
- BOOL put();
- };
-
- #endif
-