#ifndef AlphaFeld_H
#define AlphaFeld_H

#include "Zeichnung.h"

namespace Framework
{
    class Bild;      //! Bild.h
    class AlphaFeld; //! Aus dieser Datei

    //! Eine Zeichnung des 2D GUI Frameworks, die einen Farbübergang zu einem
    //! Rechteck darstellt
    class AlphaFeld : public Zeichnung
    {
    private:
        int strength;
        int farbe;

    public:
        //! Konstruktor
        DLLEXPORT AlphaFeld();
        // Destruktor
        DLLEXPORT virtual ~AlphaFeld();
        //! Setzt die Stärke des Übergangs. Dies ist der Wert um den der Alpha
        //! Wert der Farbe für jeden Pixel nach innen abnimmt \param st Die
        //! Stärke
        DLLEXPORT void setStrength(int st);
        //! Setzt die Farbe des Alpha Feldes
        //! \param f Die Farbe im A8R8G8B8 Format
        DLLEXPORT void setFarbe(int f);
        //! Zeichnet die Zeihnung in ein bestimmtes Bild
        //! \param zRObj Das Bild, in das gezeichnet werden soll
        DLLEXPORT void render(Bild& zRObj) override;
        //! Gibt die Stärke des Alpha Feldes zurück
        DLLEXPORT int getStrength() const;
        //! gibt die Farbe des Alpha Feldes im A8R8G8B8 Format zurück
        DLLEXPORT int getFarbe() const;
        //! Kopiert das Alpha Feld, so dass es ohne auswirkungen auf das
        //! Original verwendet werden kann
        DLLEXPORT Zeichnung* dublizieren() const override;
    };
} // namespace Framework

#endif