VideoChat.cpp 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  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(UIInit& uiFactory)
  12. : ReferenceCounter()
  13. {
  14. verlauf = uiFactory.createTextFeld(uiFactory.initParam);
  15. verlauf->setStyle(TextFeld::Style::TextGebiet & ~TextFeld::Style::Erlaubt);
  16. verlauf->setRahmenFarbe(0xFF909090);
  17. verlauf->setText("");
  18. verlauf->setPosition(20, BildschirmGröße().y - 210);
  19. verlauf->setSize(450, 200);
  20. }
  21. // Destruktor
  22. VideoChat::~VideoChat()
  23. {
  24. verlauf->release();
  25. }
  26. // nicht constant
  27. void VideoChat::addNachricht(const char* nachricht)
  28. {
  29. verlauf->addZeile(nachricht, 0xFFFFFFFF);
  30. verlauf->updateVScroll();
  31. }
  32. void VideoChat::addNachricht(const char* nachricht, int farbe)
  33. {
  34. verlauf->addZeile(nachricht, farbe);
  35. verlauf->updateVScroll();
  36. }
  37. void VideoChat::removeNachricht(const char* nachricht)
  38. {
  39. Text* txt = new Text(nachricht);
  40. txt->append("\n");
  41. TextRenderer* textRd = verlauf->zTextRenderer();
  42. if (textRd)
  43. {
  44. textRd->setSchriftSize(12);
  45. textRd->textFormatieren(txt, verlauf->getBreite() - 15 - 2);
  46. }
  47. int n = txt->anzahlVon('\n');
  48. int n2 = verlauf->zText()->anzahlVon('\n');
  49. if (n2 > n)
  50. verlauf->zText()->remove(verlauf->zText()->positionVon('\n', n2 - n - 1) + 1);
  51. else
  52. verlauf->setText("");
  53. verlauf->updateVScroll();
  54. }
  55. void VideoChat::doPublicMausEreignis(MausEreignis& me)
  56. {
  57. bool vera = me.verarbeitet;
  58. verlauf->doPublicMausEreignis(me);
  59. if (!vera && me.verarbeitet)
  60. {
  61. verlauf->setRahmenFarbe(0xFFFFFFFF);
  62. verlauf->setVertikalScrollFarbe(0xFF808080, 0);
  63. }
  64. else
  65. {
  66. verlauf->setRahmenFarbe(0xFF909090);
  67. verlauf->setVertikalScrollFarbe(0xFF404040, 0);
  68. }
  69. }
  70. void VideoChat::tick(double z)
  71. {
  72. verlauf->tick(z);
  73. }
  74. void VideoChat::render(Bild& zRObj)
  75. {
  76. verlauf->render(zRObj);
  77. }