123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198 |
- #include "Rahmen.h"
- #include "Punkt.h"
- #include "Bild.h"
- #include "Scroll.h"
- #include "ToolTip.h"
- #include "Text.h"
- using namespace Framework;
- // Inhalt der Rahmen Klasse aus Rahmen.h
- // Konstruktor
- Rahmen::Rahmen()
- : Zeichnung(),
- br( 1 ),
- farbe( 0xFF000000 ),
- alpha( 0 ),
- ref( 1 )
- {}
- // Destruktor
- Rahmen::~Rahmen()
- {}
- // nicht constant
- void Rahmen::setRamenBreite( int br ) // setzt die Breite des Rahmens
- {
- this->br = br;
- rend = 1;
- }
- void Rahmen::setAlpha( bool a ) // Legt fest, ob der Alphawert der Farbe berücksichtigt werden soll
- {
- alpha = a;
- rend = 1;
- }
- void Rahmen::setFarbe( int f ) // Legt die Farbe des Rahmens fest
- {
- farbe = f;
- rend = 1;
- }
- int Rahmen::getFarbe() const // Gibt die Farbe des Ramens zurück
- {
- return farbe;
- }
- bool Rahmen::hatAlpha() const // Gibt zurück, ob der Alphawert der Farbe beachtet wird
- {
- return alpha;
- }
- int Rahmen::getRBreite() const // Gibt die Breite des Rahmens zurück
- {
- return br;
- }
- // Reference Counting
- Rahmen *Rahmen::getThis()
- {
- ++ref;
- return this;
- }
- // Inhalt der LRahmen Klasse aus Rahmen.h
- // Konstruktor
- LRahmen::LRahmen()
- : Rahmen()
- {}
- // Destruktor
- LRahmen::~LRahmen()
- {}
- void LRahmen::render( Bild &Obj ) // Zeichnet den Rahmen in das RenderZeichnung
- {
- Zeichnung::render( Obj );
- int x = pos.x;
- int y = pos.y;
- int b = x + gr.x - 1;
- int h = y + gr.y - 1;
- if( alpha )
- {
- for( int i = 0; i < br; ++i )
- {
- Obj.drawLinieHAlpha( x + i + 1, y + i, gr.x - i * 2 - 1, farbe );
- Obj.drawLinieVAlpha( b - i, y + i + 1, gr.y - i * 2 - 2, farbe );
- Obj.drawLinieHAlpha( x + i + 1, h - i, gr.x - i * 2 - 1, farbe );
- Obj.drawLinieVAlpha( x + i, y + i, gr.y - i * 2, farbe );
- }
- }
- else
- {
- for( int i = 0; i < br; ++i )
- {
- Obj.drawLinieH( x + i + 1, y + i, gr.x - i * 2 - 1, farbe );
- Obj.drawLinieV( b - i, y + i + 1, gr.y - i * 2 - 2, farbe );
- Obj.drawLinieH( x + i + 1, h - i, gr.x - i * 2 - 1, farbe );
- Obj.drawLinieV( x + i, y + i, gr.y - i * 2, farbe );
- }
- }
- }
- Zeichnung *LRahmen::dublizieren() const // Kopiert das Zeichnung
- {
- Rahmen *obj = new LRahmen();
- obj->setPosition( pos );
- obj->setSize( gr );
- obj->setMausEreignisParameter( makParam );
- obj->setTastaturEreignisParameter( takParam );
- obj->setMausEreignis( mak );
- obj->setTastaturEreignis( tak );
- if( toolTip )
- obj->setToolTipText( toolTip->zText()->getText(), toolTip->zBildschirm() );
- obj->setAlpha( alpha );
- obj->setFarbe( farbe );
- obj->setRamenBreite( br );
- return obj;
- }
- Rahmen *LRahmen::release()
- {
- --ref;
- if( ref == 0 )
- delete this;
- return 0;
- }
- // Inhalt der Rahmen3D Klasse aus Rahmen.h
- // Konstruktor
- Rahmen3D::Rahmen3D()
- : Rahmen()
- {
- alpha = 1;
- farbe = 0x70FFFFFF;
- br = 5;
- }
- // Destruktor
- Rahmen3D::~Rahmen3D()
- {}
- void Rahmen3D::render( Bild &Obj ) // Zeichnet den Rahmen in das RenderZeichnung
- {
- Zeichnung::render( Obj );
- int x = pos.x;
- int y = pos.y;
- int b = x + gr.x - 1;
- int h = y + gr.y - 1;
- int fcomp = ( farbe & 0xFF000000 ) | ( ~farbe & 0x00FFFFFF );
- if( alpha )
- {
- for( int i = 0; i < br; ++i )
- {
- Obj.drawLinieHAlpha( x + i + 1, y + i, gr.x - i * 2 - 1, farbe );
- Obj.drawLinieVAlpha( b - i, y + i + 1, gr.y - i * 2 - 2, farbe );
- Obj.drawLinieHAlpha( x + i + 1, h - i, gr.x - i * 2 - 1, fcomp );
- Obj.drawLinieVAlpha( x + i, y + i, gr.y - i * 2, fcomp );
- }
- }
- else
- {
- for( int i = 0; i < br; ++i )
- {
- Obj.drawLinieH( x + i + 1, y + i, gr.x - i * 2 - 1, farbe );
- Obj.drawLinieV( b - i, y + i + 1, gr.y - i * 2 - 2, farbe );
- Obj.drawLinieH( x + i + 1, h - i, gr.x - i * 2 - 1, fcomp );
- Obj.drawLinieV( x + i, y + i, gr.y - i * 2, fcomp );
- }
- }
- }
- Zeichnung *Rahmen3D::dublizieren() const // Kopiert das Zeichnung
- {
- Rahmen *obj = new LRahmen();
- obj->setPosition( pos );
- obj->setSize( gr );
- obj->setMausEreignisParameter( makParam );
- obj->setTastaturEreignisParameter( takParam );
- obj->setMausEreignis( mak );
- obj->setTastaturEreignis( tak );
- if( toolTip )
- obj->setToolTipText( toolTip->zText()->getText(), toolTip->zBildschirm() );
- obj->setAlpha( alpha );
- obj->setFarbe( farbe );
- obj->setRamenBreite( br );
- return obj;
- }
- Rahmen *Rahmen3D::release()
- {
- --ref;
- if( ref == 0 )
- delete this;
- return 0;
- }
|