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

  1. #ifndef CPP_BOOPSI_DECORGADGETS_H
  2. #define CPP_BOOPSI_DECORGADGETS_H
  3.  
  4. // Einige Schmuckelemente für die Oberfläche als BOOPSI Gadget Klassen
  5. //
  6. // BevelboxClass : ein Rahmen mit einem (optionalen) Titel
  7. // BevellineClass : eine senkrechte oder waagrechte Line mit Titel
  8. //
  9. // Autor: Jochen Becher
  10. //
  11. // Historie:
  12. // Version 1.0 am 26. Februar 94
  13.  
  14. #ifndef CPP_BOOPSI_BOOPSICLASS_H
  15. #include <classes/boopsi/boopsiclass.h>
  16. #endif
  17.  
  18. #ifndef CPP_BOOPSI_GADGETCLASS_H
  19. #include <classes/boopsi/gadgetclass.h>
  20. #endif
  21.  
  22. #ifndef CPP_BOOPSI_IMAGECLASS_H
  23. #include <classes/boopsi/imageclass.h>
  24. #endif
  25.  
  26. #ifndef CPP_BOOPSI_IMAGES_H
  27. #include <classes/boopsi/images.h>
  28. #endif
  29.  
  30. #define BB_LabelAbove  0
  31. #define BB_LabelLine   1
  32.  
  33. #define BBA_Font               (TAG_USER+ 1)  // (ISG), struct TextAttr *
  34. #define BBA_Highlighted        (TAG_USER+ 2)  // (I.G), BOOL
  35. #define BBA_TopBorder          (TAG_USER+ 3)  // (..G), LONG
  36. #define BBA_LeftBorder         (TAG_USER+ 4)  // (..G), LONG
  37. #define BBA_RightBorder        (TAG_USER+ 5)  // (..G), LONG
  38. #define BBA_BottomBorder       (TAG_USER+ 6)  // (..G), LONG
  39. #define BBA_InnerTopBorder     (TAG_USER+ 7)  // (..G), LONG
  40. #define BBA_InnerLeftBorder    (TAG_USER+ 8)  // (..G), LONG
  41. #define BBA_InnerRightBorder   (TAG_USER+ 9)  // (..G), LONG
  42. #define BBA_InnerBottomBorder  (TAG_USER+10)  // (..G), LONG
  43. #define BBA_LabelPlace         (TAG_USER+11)  // (I.G), ULONG
  44. #define BBA_Pattern            (TAG_USER+12)  // (I.G), Object *
  45. #define BBA_Frame              (TAG_USER+13)  // (I.G), BOOL
  46.  
  47. class BevelboxClass : public BoopsiClass {
  48. public:
  49.     BevelboxClass();
  50. private:
  51.     static ULONG dispatcher(Class *cl, Object *o, Msg msg);
  52.     static ULONG renderBevelbox(Class *cl, struct Gadget *g,
  53.         struct gpRender *msg, struct BevelboxData *);
  54.     static VOID calcBorders(Class *cl, struct Gadget *g,
  55.         struct BevelboxData *);
  56. };
  57.  
  58. class BBevelboxC : public BGadgetC {
  59. public:
  60.     BBevelboxC(WindowC &w, Tag tag1type, ...)
  61.         : BGadgetC(NULL,bbgc.boopsiclass(),NULL,w,(struct TagItem *) &tag1type) { };
  62.     BBevelboxC(WindowC &w, struct TagItem *tags)
  63.         : BGadgetC(NULL,bbgc.boopsiclass(),NULL,w,tags) { };
  64.     VOID erase(WindowC *);
  65.     WORD leftBorder() const { return getAttr(BBA_LeftBorder); };
  66.     WORD topBorder() const { return getAttr(BBA_TopBorder); };
  67.     WORD rightBorder() const { return getAttr(BBA_RightBorder); };
  68.     WORD bottomBorder() const { return getAttr(BBA_BottomBorder); };
  69.     VOID setTextAttr(const TextAttrC *f) { setAttrs(BBA_Font,f,TAG_END); };
  70.     TextAttrC *textAttr() const { return (TextAttrC *) getAttr(BBA_Font); };
  71. protected:
  72.     BBevelboxC(GadgetEventC *ev, struct IClass *c, STRPTR pubclass,
  73.         WindowC &w, struct TagItem *tags)
  74.         : BGadgetC(ev,NULL,pubclass,w,tags) { };
  75. private:
  76.     static BevelboxClass bbgc;
  77. };
  78.  
  79. // *************************************************************
  80.  
  81. #define BL_LabelAbove  0
  82. #define BL_LabelLine   1
  83.  
  84. #define BLA_Font          (TAG_USER+ 1)  // (ISG), struct TextAttr *
  85. #define BLA_Highlighted   (TAG_USER+ 2)  // (I.G), BOOL
  86. #define BLA_Vertical      (TAG_USER+ 3)  // (I.G), BOOL
  87. #define BLA_TopBorder     (TAG_USER+ 4)  // (..G)
  88. #define BLA_LeftBorder    (TAG_USER+ 5)  // (..G)
  89. #define BLA_RightBorder   (TAG_USER+ 6)  // (..G)
  90. #define BLA_BottomBorder  (TAG_USER+ 7)  // (..G)
  91. #define BLA_LabelPlace    (TAG_USER+ 8)  // (I.G), ULONG
  92.  
  93. class BevellineClass : public BoopsiClass {
  94. public:
  95.     BevellineClass();
  96. private:
  97.     static ULONG dispatcher(Class *cl, Object *o, Msg msg);
  98.     static ULONG renderBevelline(Class *cl, struct Gadget *g,
  99.         struct gpRender *msg, struct BevellineData *);
  100.     static VOID calcBorders(Class *cl, struct Gadget *g,
  101.         struct BevellineData *);
  102. };
  103.  
  104. class BBevellineC : public BGadgetC {
  105. public:
  106.     BBevellineC(WindowC &w, Tag tag1type, ...)
  107.         : BGadgetC(NULL,blgc.boopsiclass(),NULL,w,(struct TagItem *) &tag1type) { };
  108.     BBevellineC(WindowC &w, struct TagItem *tags)
  109.         : BGadgetC(NULL,blgc.boopsiclass(),NULL,w,tags) { };
  110.     VOID erase(WindowC *);
  111.     WORD leftBorder() const { return getAttr(BLA_LeftBorder); };
  112.     WORD topBorder() const { return getAttr(BLA_TopBorder); };
  113.     WORD rightBorder() const { return getAttr(BLA_RightBorder); };
  114.     WORD bottomBorder() const { return getAttr(BLA_BottomBorder); };
  115.     VOID setTextAttr(const TextAttrC *f) { setAttrs(BLA_Font,f,TAG_END); };
  116.     TextAttrC *textAttr() const { return (TextAttrC *) getAttr(BLA_Font); };
  117. protected:
  118.     BBevellineC(GadgetEventC *ev, struct IClass *c, STRPTR pubclass,
  119.         WindowC &w, struct TagItem *tags)
  120.         : BGadgetC(ev,NULL,pubclass,w,tags) { };
  121. private:
  122.     static BevellineClass blgc;
  123. };
  124.  
  125. #endif
  126.