123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- #include "VideoChat.h"
- #include <Rahmen.h>
- #include <MausEreignis.h>
- #include <TastaturEreignis.h>
- #include <Text.h>
- #include <Schrift.h>
- #include <Punkt.h>
- #include <Bild.h>
- // Inhalt der VideoChat Klasse aus VideoChat.h
- // Konstruktor
- VideoChat::VideoChat( Schrift *zSchrift )
- {
- verlauf = new TextFeld();
- verlauf->setStyle( TextFeld::Style::TextGebiet & ~TextFeld::Style::Erlaubt );
- verlauf->setRahmenFarbe( 0xFF909090 );
- verlauf->setRahmenBreite( 1 );
- verlauf->setText( "" );
- verlauf->setSchriftFarbe( 0xFFFFFFFF );
- verlauf->setSchriftSize( 12 );
- verlauf->setPosition( 20, BildschirmGröße().y - 210 );
- verlauf->setSize( 450, 200 );
- verlauf->setSchriftZ( zSchrift->getThis() );
- ref = 1;
- }
- // Destruktor
- VideoChat::~VideoChat()
- {
- verlauf->release();
- }
- // nicht constant
- void VideoChat::addNachricht( char *nachricht )
- {
- verlauf->addZeile( nachricht, 0xFFFFFFFF );
- verlauf->updateVScroll();
- }
- void VideoChat::addNachricht( char *nachricht, int farbe )
- {
- verlauf->addZeile( nachricht, farbe );
- verlauf->updateVScroll();
- }
- void VideoChat::removeNachricht( char *nachricht )
- {
- Text *txt = new Text( nachricht );
- txt->append( "\n" );
- TextRenderer *textRd = verlauf->zTextRenderer();
- if( textRd )
- {
- textRd->setSchriftSize( 12 );
- textRd->textFormatieren( txt, verlauf->getBreite() - 15 - 2 );
- }
- int n = txt->anzahlVon( '\n' );
- int n2 = verlauf->zText()->anzahlVon( '\n' );
- if( n2 > n )
- verlauf->zText()->remove( verlauf->zText()->positionVon( '\n', n2 - n - 1 ) + 1 );
- else
- verlauf->setText( "" );
- verlauf->updateVScroll();
- }
- void VideoChat::doPublicMausEreignis( MausEreignis &me )
- {
- bool vera = me.verarbeitet;
- verlauf->doPublicMausEreignis( me );
- if( !vera && me.verarbeitet )
- {
- verlauf->setRahmenFarbe( 0xFFFFFFFF );
- verlauf->setVertikalScrollFarbe( 0xFF808080, 0 );
- }
- else
- {
- verlauf->setRahmenFarbe( 0xFF909090 );
- verlauf->setVertikalScrollFarbe( 0xFF404040, 0 );
- }
- }
- void VideoChat::tick( double z )
- {
- verlauf->tick( z );
- }
- void VideoChat::render( Bild &zRObj )
- {
- verlauf->render( zRObj );
- }
- // constant
- // Reference Counting
- VideoChat *VideoChat::getThis()
- {
- ref++;
- return this;
- }
- VideoChat *VideoChat::relese()
- {
- ref--;
- if( !ref )
- delete this;
- return 0;
- }
|