#include "Nachricht.h" #include #include #include #include #include #include "../../../Initialisierung/Initialisierung.h" // Inhalt der Fehler Klasse aus Fehler.h // Konstruktor // tr: Die zu verwendende Schrift // nachricht: Der Fehler, der angezeigt werden soll // maxSize: Die Bildschirmgröße in Pixeln Nachricht::Nachricht( TextRenderer *tr, char *nachricht, Punkt maxSize, std::function< void() > onClose ) : Dialog( tr ) { Text *tmp = new Text( nachricht ); tr->setSchriftSize( 12 ); tr->textFormatieren( tmp, 300 ); int br = tr->getTextBreite( tmp->getText() ); int hö = tr->getTextHeight( tmp->getText() ); setSize( br + 12, hö + 63 ); setPosition( maxSize / 2 - getSize() / 2 ); this->text = initTextFeld( 5, 5, br, hö, tr->zSchrift(), TextFeld::Style::Text, tmp->getText() ); addMember( text ); tmp->release(); ok = initKnopf( br - 94, hö + 12, 100, 20, tr->zSchrift(), Knopf::Style::Normal, "Ok" ); addMember( ok ); bool *verl = &verlassen; auto me = [ verl, onClose ]( void *param, void *obj, MausEreignis me ) -> bool { if( me.id == ME_RLinks && !me.verarbeitet ) { *verl = 1; if( onClose ) onClose(); } return 1; }; ok->setMausEreignis( me ); setClosingMe( me ); } // Destruktor Nachricht::~Nachricht() { text->release(); ok->release(); }