123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- #include "RightTools.h"
- #include "../../../Initialisierung/Initialisierung.h"
- RightTool::RightTool()
- : Zeichnung()
- {
- ref = 1;
- }
- RightTool::~RightTool()
- {}
- RightTool *RightTool::getThis()
- {
- ref++;
- return this;
- }
- RightTool *RightTool::release()
- {
- if( !--ref )
- delete this;
- return 0;
- }
- RightTools::RightTools( Schrift *zSchrift, Punkt maxSize )
- : ZeichnungHintergrund()
- {
- ref = 1;
- this->maxSize = maxSize;
- toolAuswahl = initAuswahlBox( 5, 5, 290, 20, zSchrift, AuswahlBox::Style::Normal, {} );
- toolAuswahl->setEventAktion( [ this ]( void *, AuswahlBox *, int, int neu )
- {
- this->selectTool( neu );
- } );
- tools = new RCArray< RightTool >();
- setSize( 300, maxSize.y );
- setPosition( maxSize.x - 300, 0 );
- setStyle( ZeichnungHintergrund::Style::Sichtbar | ZeichnungHintergrund::Style::Rahmen |
- ZeichnungHintergrund::Style::Hintergrund );
- setHintergrundFarbe( 0xFF000000 );
- setRahmenBreite( 1 );
- setRahmenFarbe( 0xFFFFFFFF );
- }
- RightTools::~RightTools()
- {
- tools->release();
- toolAuswahl->release();
- }
- void RightTools::addTool( RightTool *tool, char *name )
- {
- if( !toolAuswahl->getEintragAnzahl() )
- tool->addStyle( Zeichnung::Style::Sichtbar );
- toolAuswahl->addEintrag( name );
- tools->add( tool );
- tool->setPosition( 5, 30 );
- tool->setSize( 290, maxSize.y - 35 );
- }
- void RightTools::doMausEreignis( MausEreignis &me )
- {
- me.mx -= pos.x, me.my -= pos.y;
- toolAuswahl->doMausEreignis( me );
- int anz = tools->getEintragAnzahl();
- for( int i = 0; i < anz; i++ )
- {
- tools->z( i )->doMausEreignis( me );
- }
- me.mx += pos.x, me.my += pos.y;
- }
- void RightTools::doTastaturEreignis( TastaturEreignis &te )
- {
- toolAuswahl->doTastaturEreignis( te );
- int anz = tools->getEintragAnzahl();
- for( int i = 0; i < anz; i++ )
- {
- tools->z( i )->doTastaturEreignis( te );
- }
- }
- bool RightTools::tick( double tickVal )
- {
- bool ret = __super::tick( tickVal );
- ret |= toolAuswahl->tick( tickVal );
- int anz = tools->getEintragAnzahl();
- for( int i = 0; i < anz; i++ )
- {
- ret |= tools->z( i )->tick( tickVal );
- }
- return ret;
- }
- void RightTools::render( Bild &rObj )
- {
- __super::render( rObj );
- if( rObj.setDrawOptions( pos, gr ) )
- {
- toolAuswahl->render( rObj );
- int anz = tools->getEintragAnzahl();
- for( int i = 0; i < anz; i++ )
- {
- tools->z( i )->render( rObj );
- }
- rObj.releaseDrawOptions();
- }
- }
- void RightTools::selectTool( int index )
- {
- int i = 0;
- for( auto e = tools->getIterator(); e; e++ )
- e->setStyle( Zeichnung::Style::Sichtbar, i++ == index );
- }
- RightTools *RightTools::getThis()
- {
- ref++;
- return this;
- }
- RightTools *RightTools::release()
- {
- if( !--ref )
- delete this;
- return 0;
- }
|