#include "Beenden.h" #include #include #include // 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( dynamic_cast( s->getThis() ) ); f->setTSFarbe( 0xFFFFFFFF ); f->setSize( 300, 150 ); TextFeld *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( dynamic_cast( s->getThis() ) ); text->setSchriftSize( 12 ); text->setSchriftFarbe( 0xFFFFFFFF ); f->addMember( text ); Knopf *beenden = new Knopf(); beenden->setStyle( Knopf::Style::Normal ); beenden->setText( "Beenden" ); beenden->setSchriftZ( dynamic_cast( s->getThis() ) ); beenden->setSize( 100, 20 ); beenden->setPosition( 190, 100 ); beenden->setMausEreignisParameter( this ); beenden->setMausEreignis( beendenBeendenMausEreignis ); f->addMember( beenden ); fenster = 0; s->release(); } // Destruktor Beenden::~Beenden() { f->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( dynamic_cast( f->getThis() ) ); else fenster->removeMember( f ); } bool Beenden::beendenMausEreignis( void *obj, MausEreignis me ) { if( me.id == ME_RLinks ) PostQuitMessage( 0 ); return 1; } // Ereignisse bool beendenBeendenMausEreignis( void *p, void *obj, MausEreignis me ) { if( !p ) return 0; return ( (Beenden *)p )->beendenMausEreignis( obj, me ); }