#pragma once

#include <Fenster.h>
#include <Thread.h>
#include <Animation.h>
#include <Liste.h>
#include <Knopf.h>
#include <Bild.h>
#include "KEDEditor.h"
#include <Fortschritt.h>

using namespace Framework;

class KEDateien : private Thread
{
private:
    Fenster *fenster;
    Animation2D *laden;
    Schrift *schrift;
    KEDEditor *editor;
    FBalken *fort;
    int aktion;
    bool animation;
    double tickVal;
    bool sichtbar;
    bool rechts;
    int xStart;
    int breite;
    int karte;
    unsigned char alpha;
    int ref;

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