#pragma once

#include <UIMLView.h>

#include "RecipieGroup.h"

class CraftingRecipiesElement : public Framework::UIMLElement
{
public:
    CraftingRecipiesElement();
    //! pr�ft, ob dieses UIML Element f�r ein bestimmtes xml Element zust�ndig
    //! ist
    bool isApplicableFor(Framework::XML::Element& element) override;
    //! erstellt eine neue Zeichnung zu einem gegebenen xml Element
    Framework::Zeichnung* parseElement(Framework::XML::Element& element,
        Framework::UIMLContainer& generalFactory) override;
    bool updateElement(Framework::XML::Element& element,
        Framework::Zeichnung& z,
        Framework::UIMLContainer& generalFactory) override;
    //! wendet die layout parameter zu einer Zeichnung an
    void layout(Framework::XML::Element& element,
        Framework::Zeichnung& z,
        int pWidth,
        int pHeight,
        Framework::UIMLContainer& generalLayouter) override;
};

class CraftingRecipies : public Framework::ZeichnungHintergrund
{
private:
    Framework::RCArray<RecipieGroup> recipieGroups;
    Framework::Knopf* previousPage;
    Framework::Knopf* nextPage;

public:
    CraftingRecipies();

    void addRecipieGroup(RecipieGroup* recipieGroup);

    bool tick(double tickVal) override;
    void render(Framework::Bild& rObj) override;
    void doMausEreignis(Framework::MausEreignis& me, bool userRet) override;
};