Rahmen.cpp 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. #include "Rahmen.h"
  2. #include "Punkt.h"
  3. #include "Bild.h"
  4. #include "Scroll.h"
  5. #include "ToolTip.h"
  6. #include "Text.h"
  7. using namespace Framework;
  8. // Inhalt der LRahmen Klasse aus Rahmen.h
  9. // Konstruktor
  10. LRahmen::LRahmen()
  11. : Zeichnung(),
  12. br( 1 ),
  13. farbe( 0xFF000000 ),
  14. alpha( 0 ),
  15. ref( 1 )
  16. {}
  17. // nicht constant
  18. void LRahmen::setRamenBreite( int br ) // setzt die Breite des Rahmens
  19. {
  20. this->br = br;
  21. rend = 1;
  22. }
  23. void LRahmen::setAlpha( bool a ) // Legt fest, ob der Alphawert der Farbe berücksichtigt werden soll
  24. {
  25. alpha = a;
  26. rend = 1;
  27. }
  28. void LRahmen::setFarbe( int f ) // Legt die Farbe des Rahmens fest
  29. {
  30. farbe = f;
  31. rend = 1;
  32. }
  33. void LRahmen::render( Bild &Obj ) // Zeichnet den Rahmen in das RenderZeichnung
  34. {
  35. __super::render( Obj );
  36. int x = pos.x;
  37. int y = pos.y;
  38. int b = x + gr.x - 1;
  39. int h = y + gr.y - 1;
  40. if( alpha )
  41. {
  42. for( int i = 0; i < br; ++i )
  43. {
  44. Obj.drawLinieHAlpha( x + i + 1, y + i, gr.x - i * 2 - 1, farbe );
  45. Obj.drawLinieVAlpha( b - i, y + i + 1, gr.y - i * 2 - 2, farbe );
  46. Obj.drawLinieHAlpha( x + i + 1, h - i, gr.x - i * 2 - 1, farbe );
  47. Obj.drawLinieVAlpha( x + i, y + i, gr.y - i * 2, farbe );
  48. }
  49. }
  50. else
  51. {
  52. for( int i = 0; i < br; ++i )
  53. {
  54. Obj.drawLinieH( x + i + 1, y + i, gr.x - i * 2 - 1, farbe );
  55. Obj.drawLinieV( b - i, y + i + 1, gr.y - i * 2 - 2, farbe );
  56. Obj.drawLinieH( x + i + 1, h - i, gr.x - i * 2 - 1, farbe );
  57. Obj.drawLinieV( x + i, y + i, gr.y - i * 2, farbe );
  58. }
  59. }
  60. }
  61. // constant
  62. int LRahmen::getRBreite() const // Gibt die Breite des Rahmens zurück
  63. {
  64. return br;
  65. }
  66. int LRahmen::getFarbe() const // Gibt die Farbe des Ramens zurück
  67. {
  68. return farbe;
  69. }
  70. bool LRahmen::hatAlpha() const // Gibt zurück, ob der Alphawert der Farbe beachtet wird
  71. {
  72. return alpha;
  73. }
  74. Zeichnung *LRahmen::dublizieren() const // Kopiert das Zeichnung
  75. {
  76. LRahmen *obj = new LRahmen();
  77. obj->setPosition( pos );
  78. obj->setGröße( gr );
  79. obj->setMausEreignisParameter( makParam );
  80. obj->setTastaturEreignisParameter( takParam );
  81. obj->setMausEreignis( Mak );
  82. obj->setTastaturEreignis( Tak );
  83. if( toolTip )
  84. obj->setToolTipText( toolTip->zText()->getText(), toolTip->zBildschirm() );
  85. obj->setAlpha( alpha );
  86. obj->setFarbe( farbe );
  87. obj->setRamenBreite( br );
  88. return obj;
  89. }
  90. // Reference Counting
  91. LRahmen *LRahmen::getThis()
  92. {
  93. ++ref;
  94. return this;
  95. }
  96. LRahmen *LRahmen::release()
  97. {
  98. --ref;
  99. if( ref == 0 )
  100. delete this;
  101. return 0;
  102. }