Ende.cpp 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. #include "Ende.h"
  2. #include <TextFeld.h>
  3. #include <Bild.h>
  4. #include <MausEreignis.h>
  5. #include <Rahmen.h>
  6. #include <Schrift.h>
  7. // Inhalt der Ende Klasse aus Ende.h
  8. // Konstruktor
  9. Ende::Ende( UIInit &uiFactory )
  10. : ReferenceCounter()
  11. {
  12. rahmen = new LRahmen();
  13. rahmen->setSize( 200, 100 );
  14. rahmen->setRamenBreite( 2 );
  15. rahmen->setFarbe( 0xFFFFFFFF );
  16. text = uiFactory.createTextFeld( uiFactory.initParam );
  17. text->setStyle( TextFeld::Style::Text | TextFeld::Style::Center );
  18. text->setText( "" );
  19. text->setSize( 200, 50 );
  20. warten = uiFactory.createTextFeld( uiFactory.initParam );
  21. warten->setStyle( ( TextFeld::Style::Text | TextFeld::Style::Center ) & ~TextFeld::Style::Sichtbar );
  22. warten->setText( "Bitte warten..." );
  23. warten->setSize( 200, 50 );
  24. ok = uiFactory.createKnopf( uiFactory.initParam );
  25. ok->setStyle( Knopf::Style::Normal );
  26. ok->setSize( 100, 20 );
  27. ok->setText( "Weiter" );
  28. weiter = 0;
  29. }
  30. // Destruktor
  31. Ende::~Ende()
  32. {
  33. rahmen->release();
  34. text->release();
  35. warten->release();
  36. ok->release();
  37. }
  38. // nicht constant
  39. void Ende::setGewonnen( char gewonnen )
  40. {
  41. if( gewonnen == 1 )
  42. {
  43. text->setText( "Du hast gewonnen." );
  44. text->setSchriftFarbe( 0xFF00FF00 );
  45. }
  46. else if( !gewonnen )
  47. {
  48. text->setText( "Du hast verloren." );
  49. text->setSchriftFarbe( 0xFFFF0000 );
  50. }
  51. else
  52. {
  53. text->setText( "Unentschieden." );
  54. text->setSchriftFarbe( 0xFFFFFFFF );
  55. }
  56. }
  57. void Ende::doTastaturEreignis( TastaturEreignis &te )
  58. {
  59. if( te.taste == T_Enter && te.id == TE_Release )
  60. {
  61. ok->removeStyle( Knopf::Style::Sichtbar );
  62. warten->addStyle( TextFeld::Style::Sichtbar );
  63. weiter = 1;
  64. }
  65. }
  66. void Ende::doPublicMausEreignis( MausEreignis &me )
  67. {
  68. bool vera = me.verarbeitet;
  69. ok->doPublicMausEreignis( me );
  70. if( !vera && me.verarbeitet && me.id == ME_RLinks )
  71. {
  72. ok->removeStyle( Knopf::Style::Sichtbar );
  73. warten->addStyle( TextFeld::Style::Sichtbar );
  74. weiter = 1;
  75. }
  76. me.verarbeitet = 1;
  77. }
  78. void Ende::render( Bild &zRObj )
  79. {
  80. rahmen->setPosition( zRObj.getBreite() / 2 - rahmen->getBreite() / 2, zRObj.getHeight() / 2 - rahmen->getHeight() / 2 );
  81. zRObj.alphaRegion( rahmen->getX(), rahmen->getY(), rahmen->getBreite(), rahmen->getHeight(), 0xA0000000 );
  82. rahmen->render( zRObj );
  83. text->setPosition( rahmen->getX(), rahmen->getY() );
  84. text->render( zRObj );
  85. warten->setPosition( rahmen->getX(), rahmen->getY() + 50 );
  86. warten->render( zRObj );
  87. ok->setPosition( rahmen->getX() + rahmen->getBreite() / 2 - ok->getBreite() / 2, rahmen->getY() + 65 );
  88. ok->render( zRObj );
  89. }
  90. // constant
  91. bool Ende::getWeiter() const
  92. {
  93. return weiter;
  94. }