Rahmen.cpp 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  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. {}
  16. // Destruktor
  17. Rahmen::~Rahmen()
  18. {}
  19. // nicht constant
  20. void Rahmen::setRamenBreite( int br ) // setzt die Breite des Rahmens
  21. {
  22. this->br = br;
  23. rend = 1;
  24. }
  25. void Rahmen::setAlpha( bool a ) // Legt fest, ob der Alphawert der Farbe berücksichtigt werden soll
  26. {
  27. alpha = a;
  28. rend = 1;
  29. }
  30. void Rahmen::setFarbe( int f ) // Legt die Farbe des Rahmens fest
  31. {
  32. farbe = f;
  33. rend = 1;
  34. }
  35. int Rahmen::getFarbe() const // Gibt die Farbe des Ramens zurück
  36. {
  37. return farbe;
  38. }
  39. bool Rahmen::hatAlpha() const // Gibt zurück, ob der Alphawert der Farbe beachtet wird
  40. {
  41. return alpha;
  42. }
  43. int Rahmen::getRBreite() const // Gibt die Breite des Rahmens zurück
  44. {
  45. return br;
  46. }
  47. // Inhalt der LRahmen Klasse aus Rahmen.h
  48. // Konstruktor
  49. LRahmen::LRahmen()
  50. : Rahmen()
  51. {}
  52. // Destruktor
  53. LRahmen::~LRahmen()
  54. {}
  55. void LRahmen::render( Bild &Obj ) // Zeichnet den Rahmen in das RenderZeichnung
  56. {
  57. Zeichnung::render( Obj );
  58. int x = pos.x;
  59. int y = pos.y;
  60. int b = x + gr.x - 1;
  61. int h = y + gr.y - 1;
  62. if( alpha )
  63. {
  64. for( int i = 0; i < br; ++i )
  65. {
  66. Obj.drawLinieHAlpha( x + i + 1, y + i, gr.x - i * 2 - 1, farbe );
  67. Obj.drawLinieVAlpha( b - i, y + i + 1, gr.y - i * 2 - 2, farbe );
  68. Obj.drawLinieHAlpha( x + i + 1, h - i, gr.x - i * 2 - 1, farbe );
  69. Obj.drawLinieVAlpha( x + i, y + i, gr.y - i * 2, farbe );
  70. }
  71. }
  72. else
  73. {
  74. for( int i = 0; i < br; ++i )
  75. {
  76. Obj.drawLinieH( x + i + 1, y + i, gr.x - i * 2 - 1, farbe );
  77. Obj.drawLinieV( b - i, y + i + 1, gr.y - i * 2 - 2, farbe );
  78. Obj.drawLinieH( x + i + 1, h - i, gr.x - i * 2 - 1, farbe );
  79. Obj.drawLinieV( x + i, y + i, gr.y - i * 2, farbe );
  80. }
  81. }
  82. }
  83. Zeichnung *LRahmen::dublizieren() const // Kopiert das Zeichnung
  84. {
  85. Rahmen *obj = new LRahmen();
  86. obj->setPosition( pos );
  87. obj->setSize( gr );
  88. obj->setMausEreignisParameter( makParam );
  89. obj->setTastaturEreignisParameter( takParam );
  90. obj->setMausEreignis( mak );
  91. obj->setTastaturEreignis( tak );
  92. if( toolTip )
  93. obj->setToolTipText( toolTip->zText()->getText(), toolTip->zBildschirm() );
  94. obj->setAlpha( alpha );
  95. obj->setFarbe( farbe );
  96. obj->setRamenBreite( br );
  97. return obj;
  98. }
  99. // Inhalt der Rahmen3D Klasse aus Rahmen.h
  100. // Konstruktor
  101. Rahmen3D::Rahmen3D()
  102. : Rahmen()
  103. {
  104. alpha = 1;
  105. farbe = 0x70FFFFFF;
  106. br = 5;
  107. }
  108. // Destruktor
  109. Rahmen3D::~Rahmen3D()
  110. {}
  111. void Rahmen3D::render( Bild &Obj ) // Zeichnet den Rahmen in das RenderZeichnung
  112. {
  113. Zeichnung::render( Obj );
  114. int x = pos.x;
  115. int y = pos.y;
  116. int b = x + gr.x - 1;
  117. int h = y + gr.y - 1;
  118. int fcomp = ( farbe & 0xFF000000 ) | ( ~farbe & 0x00FFFFFF );
  119. if( alpha )
  120. {
  121. for( int i = 0; i < br; ++i )
  122. {
  123. Obj.drawLinieHAlpha( x + i + 1, y + i, gr.x - i * 2 - 1, farbe );
  124. Obj.drawLinieVAlpha( b - i, y + i + 1, gr.y - i * 2 - 2, farbe );
  125. Obj.drawLinieHAlpha( x + i + 1, h - i, gr.x - i * 2 - 1, fcomp );
  126. Obj.drawLinieVAlpha( x + i, y + i, gr.y - i * 2, fcomp );
  127. }
  128. }
  129. else
  130. {
  131. for( int i = 0; i < br; ++i )
  132. {
  133. Obj.drawLinieH( x + i + 1, y + i, gr.x - i * 2 - 1, farbe );
  134. Obj.drawLinieV( b - i, y + i + 1, gr.y - i * 2 - 2, farbe );
  135. Obj.drawLinieH( x + i + 1, h - i, gr.x - i * 2 - 1, fcomp );
  136. Obj.drawLinieV( x + i, y + i, gr.y - i * 2, fcomp );
  137. }
  138. }
  139. }
  140. Zeichnung *Rahmen3D::dublizieren() const // Kopiert das Zeichnung
  141. {
  142. Rahmen *obj = new LRahmen();
  143. obj->setPosition( pos );
  144. obj->setSize( gr );
  145. obj->setMausEreignisParameter( makParam );
  146. obj->setTastaturEreignisParameter( takParam );
  147. obj->setMausEreignis( mak );
  148. obj->setTastaturEreignis( tak );
  149. if( toolTip )
  150. obj->setToolTipText( toolTip->zText()->getText(), toolTip->zBildschirm() );
  151. obj->setAlpha( alpha );
  152. obj->setFarbe( farbe );
  153. obj->setRamenBreite( br );
  154. return obj;
  155. }