RightTools.cpp 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. #include "RightTools.h"
  2. #include "../../../Initialisierung/Initialisierung.h"
  3. RightTool::RightTool()
  4. : Zeichnung()
  5. {
  6. ref = 1;
  7. }
  8. RightTool::~RightTool()
  9. {}
  10. RightTool *RightTool::getThis()
  11. {
  12. ref++;
  13. return this;
  14. }
  15. RightTool *RightTool::release()
  16. {
  17. if( !--ref )
  18. delete this;
  19. return 0;
  20. }
  21. RightTools::RightTools( Schrift *zSchrift, Punkt maxSize )
  22. : ZeichnungHintergrund()
  23. {
  24. ref = 1;
  25. this->maxSize = maxSize;
  26. toolAuswahl = initAuswahlBox( 5, 5, 290, 20, zSchrift, AuswahlBox::Style::Normal, {} );
  27. tools = new RCArray< RightTool >();
  28. setSize( 300, maxSize.y );
  29. setPosition( maxSize.x - 300, 0 );
  30. setStyle( ZeichnungHintergrund::Style::Sichtbar | ZeichnungHintergrund::Style::Rahmen |
  31. ZeichnungHintergrund::Style::Hintergrund );
  32. setHintergrundFarbe( 0xFF000000 );
  33. setLinienRahmenBreite( 1 );
  34. setLinienRahmenFarbe( 0xFFFFFFFF );
  35. }
  36. RightTools::~RightTools()
  37. {
  38. tools->release();
  39. toolAuswahl->release();
  40. }
  41. void RightTools::addTool( RightTool *tool, char *name )
  42. {
  43. toolAuswahl->addEintrag( name );
  44. tools->add( tool );
  45. tool->setPosition( 5, 30 );
  46. tool->setSize( 290, maxSize.y - 35 );
  47. }
  48. void RightTools::doMausEreignis( MausEreignis &me )
  49. {
  50. me.mx -= pos.x, me.my -= pos.y;
  51. toolAuswahl->doMausEreignis( me );
  52. int anz = tools->getEintragAnzahl();
  53. for( int i = 0; i < anz; i++ )
  54. {
  55. tools->z( i )->doMausEreignis( me );
  56. }
  57. me.mx += pos.x, me.my += pos.y;
  58. }
  59. void RightTools::doTastaturEreignis( TastaturEreignis &te )
  60. {
  61. toolAuswahl->doTastaturEreignis( te );
  62. int anz = tools->getEintragAnzahl();
  63. for( int i = 0; i < anz; i++ )
  64. {
  65. tools->z( i )->doTastaturEreignis( te );
  66. }
  67. }
  68. bool RightTools::tick( double tickVal )
  69. {
  70. bool ret = __super::tick( tickVal );
  71. ret |= toolAuswahl->tick( tickVal );
  72. int anz = tools->getEintragAnzahl();
  73. for( int i = 0; i < anz; i++ )
  74. {
  75. ret |= tools->z( i )->tick( tickVal );
  76. }
  77. return ret;
  78. }
  79. void RightTools::render( Bild &rObj )
  80. {
  81. __super::render( rObj );
  82. if( rObj.setDrawOptions( pos, gr ) )
  83. {
  84. toolAuswahl->render( rObj );
  85. int anz = tools->getEintragAnzahl();
  86. for( int i = 0; i < anz; i++ )
  87. {
  88. tools->z( i )->render( rObj );
  89. }
  90. rObj.releaseDrawOptions();
  91. }
  92. }
  93. RightTools *RightTools::getThis()
  94. {
  95. ref++;
  96. return this;
  97. }
  98. RightTools *RightTools::release()
  99. {
  100. if( !--ref )
  101. delete this;
  102. return 0;
  103. }