#include "Nachricht.h" #include #include #include #include #include #include "../../../Initialisierung/Initialisierung.h" // Inhalt der Fehler Klasse aus Fehler.h // Konstruktor // zS: Die zu verwendende Schrift // nachricht: Der Fehler, der angezeigt werden soll // maxSize: Die Bildschirmgröße in Pixeln Nachricht::Nachricht( Schrift *zS, char *nachricht, Punkt maxSize, std::function< void() > onClose ) : Dialog( zS ) { Text *tmp = new Text( nachricht ); zS->lock(); zS->setSchriftSize( 12 ); zS->textFormatieren( tmp, 300, 12 ); int br = zS->getTextBreite( tmp ); int hö = zS->getTextHeight( tmp ); zS->unlock(); setSize( br + 12, hö + 63 ); setPosition( maxSize / 2 - getSize() / 2 ); this->text = initTextFeld( 5, 5, br, hö, zS, TextFeld::Style::Text, tmp->getText() ); addMember( text ); tmp->release(); ok = initKnopf( br - 94, hö + 12, 100, 20, zS, 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(); }