123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- #include "Beenden.h"
- #include <TextFeld.h>
- #include <Schrift.h>
- #include <Punkt.h>
- // Inhalt der Beenden Klasse aus Beenden.h
- // Konstruktor
- Beenden::Beenden( Schrift *s, Bildschirm *b )
- : Abschnitt( b )
- {
- f = new Fenster();
- f->setStyle( Fenster::Style::Sichtbar | Fenster::Style::Erlaubt | Fenster::Style::Titel | Fenster::Style::Rahmen | Fenster::Style::TitelBuffered );
- f->setRFarbe( 0xFFFFFFFF );
- f->setRBreite( 1 );
- f->setTitel( "Beenden" );
- f->setTAfFarbe( 0x1000FF00 );
- f->setTAfStrength( -15 );
- f->setTRBreite( 1 );
- f->setTRFarbe( 0xFFFFFFFF );
- f->zTTextFeld()->addStyle( TextFeld::Style::Sichtbar | TextFeld::Style::Center | TextFeld::Style::Rahmen );
- f->zTTextFeld()->setSize( 0, 20 );
- f->setTSchriftZ( s->getThis() );
- f->setTSFarbe( 0xFFFFFFFF );
- f->setSize( 300, 150 );
- text = new TextFeld();
- text->setStyle( TextFeld::Style::Sichtbar | TextFeld::Style::Mehrzeilig );
- text->setText( "Möchtest du das SMP wirklich beenden?" );
- text->setPosition( 10, 10 );
- text->setSize( 280, 70 );
- text->setSchriftZ( s->getThis() );
- text->setSchriftSize( 12 );
- text->setSchriftFarbe( 0xFFFFFFFF );
- f->addMember( text->getThis() );
- beenden = new Knopf( );
- beenden->setStyle( Knopf::Style::Normal );
- beenden->setText( "Beenden" );
- beenden->setSchriftZ( s->getThis() );
- beenden->setSize( 100, 20 );
- beenden->setPosition( 190, 100 );
- beenden->setMausEreignisParameter( this );
- beenden->setMausEreignis( beendenBeendenMausEreignis );
- f->addMember( beenden->getThis() );
- fenster = 0;
- ref = 1;
- s->release();
- }
- // Destruktor
- Beenden::~Beenden()
- {
- f->release();
- text->release();
- beenden->release();
- if( fenster )
- fenster->release();
- }
- // nicht constant
- void Beenden::setFenster( Fenster *f )
- {
- if( fenster )
- fenster->release();
- this->f->setPosition( f->getBreite() / 2 - 150, f->getHeight() / 2 - 75 );
- fenster = f;
- }
- void Beenden::setSichtbar( bool s )
- {
- sichtbar = s;
- if( !fenster )
- return;
- if( s )
- fenster->addMember( f->getThis() );
- else
- fenster->removeMember( f );
- }
- bool Beenden::beendenMausEreignis( void *obj, MausEreignis me )
- {
- if( me.id == ME_RLinks )
- PostQuitMessage( 0 );
- return 1;
- }
- // constant
- // Reference Counting
- Abschnitt *Beenden::getThis()
- {
- ref++;
- return this;
- }
- Abschnitt *Beenden::release()
- {
- ref--;
- if( !ref )
- delete this;
- return 0;
- }
- // Ereignisse
- bool beendenBeendenMausEreignis( void *p, void *obj, MausEreignis me )
- {
- if( !p )
- return 0;
- return ( (Beenden*)p )->beendenMausEreignis( obj, me );
- }
|