Interface.cpp 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. #include "Interface.h"
  2. #include "../../Initialisierung/Initialisierung.h"
  3. #include "RightTools\SpielerOptionen\SpielerOptionen.h"
  4. #include "RightTools\TeamOptionen\TeamOptionen.h"
  5. #include "RightTools/ObjektOptionen/ObjektOptionen.h"
  6. #include <MausEreignis.h>
  7. using namespace Editor;
  8. // Inhalt der Interface Klasse aus Interface.h
  9. // Konstruktor
  10. // zS: Ein Zeiger auf die zu verwendende Schrift
  11. Interface::Interface( UIInit &uiFactory, Punkt maxSize )
  12. : ReferenceCounter()
  13. {
  14. beenden = initKnopf( 10, 10, 100, 20, uiFactory, Knopf::Style::Normal, "beenden" );
  15. right = new RightTools( uiFactory, maxSize );
  16. verlassen = 0;
  17. this->uiFactory = uiFactory;
  18. daten = 0;
  19. }
  20. // Destruktor
  21. Interface::~Interface()
  22. {
  23. if( daten )
  24. daten->release();
  25. beenden->release();
  26. right->release();
  27. }
  28. void Interface::setDaten( KarteDaten *daten )
  29. {
  30. if( this->daten )
  31. this->daten->release();
  32. this->daten = daten;
  33. right->addTool( new SpielerTool( uiFactory, dynamic_cast<KarteDaten *>( daten->getThis() ) ), "Spieler" );
  34. right->addTool( new TeamTool( uiFactory, dynamic_cast<KarteDaten *>( daten->getThis() ) ), "Teams" );
  35. right->addTool( new ObjektTool( uiFactory, dynamic_cast<KarteDaten *>( daten->getThis() ) ), "Objekte" );
  36. }
  37. // Verarbeitet eine Mausnachricht
  38. // me: Die Nachricht die verarbeitet werden soll
  39. void Interface::doPublicMausEreignis( MausEreignis &me )
  40. {
  41. bool vera = me.verarbeitet;
  42. beenden->doPublicMausEreignis( me );
  43. if( me.verarbeitet && !vera && me.id == ME_RLinks )
  44. {
  45. verlassen = 1;
  46. }
  47. right->doPublicMausEreignis( me );
  48. }
  49. // Verarbeitet eine Tastaturnachricht
  50. // te: Die Nachricht die verarbeitet werden soll
  51. void Interface::doTastaturEreignis( TastaturEreignis &te )
  52. {
  53. right->doTastaturEreignis( te );
  54. }
  55. bool Interface::tick( double time )
  56. {
  57. rend |= beenden->tick( time );
  58. rend |= right->tick( time );
  59. return __super::tick( time );
  60. }
  61. // Zeichnet das Interface nach uRObj
  62. // zRObj: Das Bild in das gezeichnet werden soll
  63. void Interface::render( Bild &zRObj )
  64. {
  65. beenden->render( zRObj );
  66. right->render( zRObj );
  67. }
  68. // Setzt das Interface in den Initialisierungszustand zurück
  69. void Interface::reset()
  70. {
  71. verlassen = 0;
  72. }
  73. // Gibt zurück, ob der Benutzer den Editor verlassen möchte
  74. bool Interface::hatVerlassen() const
  75. {
  76. return verlassen;
  77. }