Rahmen.cpp 2.7 KB

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