123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- #include "Interface.h"
- #include "../../Initialisierung/Initialisierung.h"
- #include "RightTools\SpielerOptionen\SpielerOptionen.h"
- #include "RightTools\TeamOptionen\TeamOptionen.h"
- #include <MausEreignis.h>
- using namespace Editor;
- // Inhalt der Interface Klasse aus Interface.h
- // Konstruktor
- // zS: Ein Zeiger auf die zu verwendende Schrift
- Interface::Interface( Schrift *zS, Punkt maxSize )
- {
- beenden = initKnopf( 10, 10, 100, 20, zS, Knopf::Style::Normal, "beenden" );
- right = new RightTools( zS, maxSize );
- verlassen = 0;
- schrift = zS->getThis();
- daten = 0;
- ref = 1;
- }
- // Destruktor
- Interface::~Interface()
- {
- if( daten )
- daten->release();
- schrift->release();
- beenden->release();
- right->release();
- }
- void Interface::setDaten( KarteDaten * daten )
- {
- if( this->daten )
- this->daten->release();
- this->daten = daten;
- right->addTool( new SpielerTool( schrift, (KarteDaten *)daten->getThis() ), "Spieler" );
- right->addTool( new TeamTool( schrift, (KarteDaten *)daten->getThis() ), "Teams" );
- }
- // Verarbeitet eine Mausnachricht
- // me: Die Nachricht die verarbeitet werden soll
- void Interface::doMausEreignis( MausEreignis & me )
- {
- bool vera = me.verarbeitet;
- beenden->doMausEreignis( me );
- if( me.verarbeitet && !vera && me.id == ME_RLinks )
- {
- verlassen = 1;
- }
- right->doMausEreignis( me );
- }
- // Verarbeitet eine Tastaturnachricht
- // te: Die Nachricht die verarbeitet werden soll
- void Interface::doTastaturEreignis( TastaturEreignis & te )
- {
- right->doTastaturEreignis( te );
- }
- bool Interface::tick( double time )
- {
- rend |= beenden->tick( time );
- rend |= right->tick( time );
- return __super::tick( time );
- }
- // Zeichnet das Interface nach uRObj
- // zRObj: Das Bild in das gezeichnet werden soll
- void Interface::render( Bild & zRObj )
- {
- beenden->render( zRObj );
- right->render( zRObj );
- }
- // Setzt das Interface in den Initialisierungszustand zurück
- void Interface::reset()
- {
- verlassen = 0;
- }
- // Gibt zurück, ob der Benutzer den Editor verlassen möchte
- bool Interface::hatVerlassen() const
- {
- return verlassen;
- }
- // erhöht den Reference Counter
- // return: this
- Interface *Interface::getThis()
- {
- ref++;
- return this;
- }
- // verringert den Reference Counter und löscht das Objekt wenn es nicht mehr gebraucht wird.
- // return: 0
- Interface *Interface::release()
- {
- if( !--ref )
- delete this;
- return 0;
- }
|