Rahmen.cpp 2.4 KB

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