VideoChat.cpp 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. #include "VideoChat.h"
  2. #include <Rahmen.h>
  3. #include <MausEreignis.h>
  4. #include <TastaturEreignis.h>
  5. #include <Text.h>
  6. #include <Schrift.h>
  7. #include <Punkt.h>
  8. #include <Bild.h>
  9. // Inhalt der VideoChat Klasse aus VideoChat.h
  10. // Konstruktor
  11. VideoChat::VideoChat( Schrift *zSchrift )
  12. {
  13. verlauf = new TextFeld();
  14. verlauf->setStyle( TextFeld::Style::TextGebiet & ~TextFeld::Style::Erlaubt );
  15. verlauf->setRahmenFarbe( 0xFF909090 );
  16. verlauf->setRahmenBreite( 1 );
  17. verlauf->setText( "" );
  18. verlauf->setSchriftFarbe( 0xFFFFFFFF );
  19. verlauf->setSchriftSize( 12 );
  20. verlauf->setPosition( 20, BildschirmGröße().y - 210 );
  21. verlauf->setSize( 450, 200 );
  22. verlauf->setSchriftZ( zSchrift->getThis() );
  23. ref = 1;
  24. }
  25. // Destruktor
  26. VideoChat::~VideoChat()
  27. {
  28. verlauf->release();
  29. }
  30. // nicht constant
  31. void VideoChat::addNachricht( char *nachricht )
  32. {
  33. verlauf->addZeile( nachricht, 0xFFFFFFFF );
  34. verlauf->updateVScroll();
  35. }
  36. void VideoChat::addNachricht( char *nachricht, int farbe )
  37. {
  38. verlauf->addZeile( nachricht, farbe );
  39. verlauf->updateVScroll();
  40. }
  41. void VideoChat::removeNachricht( char *nachricht )
  42. {
  43. Text *txt = new Text( nachricht );
  44. txt->append( "\n" );
  45. TextRenderer *textRd = verlauf->zTextRenderer();
  46. if( textRd )
  47. {
  48. textRd->setSchriftSize( 12 );
  49. textRd->textFormatieren( txt, verlauf->getBreite() - 15 - 2 );
  50. }
  51. int n = txt->anzahlVon( '\n' );
  52. int n2 = verlauf->zText()->anzahlVon( '\n' );
  53. if( n2 > n )
  54. verlauf->zText()->remove( verlauf->zText()->positionVon( '\n', n2 - n - 1 ) + 1 );
  55. else
  56. verlauf->setText( "" );
  57. verlauf->updateVScroll();
  58. }
  59. void VideoChat::doMausEreignis( MausEreignis &me )
  60. {
  61. bool vera = me.verarbeitet;
  62. verlauf->doMausEreignis( me );
  63. if( !vera && me.verarbeitet )
  64. {
  65. verlauf->setRahmenFarbe( 0xFFFFFFFF );
  66. verlauf->setVertikalScrollFarbe( 0xFF808080, 0 );
  67. }
  68. else
  69. {
  70. verlauf->setRahmenFarbe( 0xFF909090 );
  71. verlauf->setVertikalScrollFarbe( 0xFF404040, 0 );
  72. }
  73. }
  74. void VideoChat::tick( double z )
  75. {
  76. verlauf->tick( z );
  77. }
  78. void VideoChat::render( Bild &zRObj )
  79. {
  80. verlauf->render( zRObj );
  81. }
  82. // constant
  83. // Reference Counting
  84. VideoChat *VideoChat::getThis()
  85. {
  86. ref++;
  87. return this;
  88. }
  89. VideoChat *VideoChat::relese()
  90. {
  91. ref--;
  92. if( !ref )
  93. delete this;
  94. return 0;
  95. }