#pragma once

#include <Fenster.h>
#include <Thread.h>
#include <Animation.h>
#include <DateiDialog.h>
#include "KEBEditor.h"
#include "KEBVorschau.h"

using namespace Framework;

class KEBeschreibung : private Thread
{
private:
    Fenster *fenster;
    Animation2D *laden;
    Schrift *schrift;
    DateiDialogTh *importDialog;
    Text *importPfad;
    KEBEditor *editor;
    KEBVorschau *vorschau;
    int jetzt;
    int aktion;
    bool animation;
    double tickVal;
    bool sichtbar;
    bool rechts;
    int xStart;
    int breite;
    int karte;
    unsigned char alpha;
    int ref;

public:
    // Konstruktor
    KEBeschreibung( int karte, Schrift *zSchrift );
    // Destruktor
    ~KEBeschreibung();
    // nicht constant
    void setSichtbar( bool s, bool vr );
    void thread() override;
    void knopfPress( Knopf *k, MausEreignis *me );
    void doMausEreignis( MausEreignis &me );
    void doTastaturEreignis( TastaturEreignis &te );
    bool tick( double z );
    void render( Bild &zRObj );
    // constant
    bool istSichtbar() const;
    // Reference Counting
    KEBeschreibung *getThis();
    KEBeschreibung *release();
};