#ifndef Initialisierung_H
#define Initialisierung_H

#include <AuswahlBox.h>
#include <Bild.h>
#include <Diagramm.h>
#include <Fortschritt.h>
#include <initializer_list>
#include <Knopf.h>
#include <Tabelle.h>
#include <UIInitialization.h>

using namespace Framework;

struct OBJTabelleSpalteIni
{
    char* name;
    int breite;
    int minBreite;
    int maxBreite;
};

Knopf* createKnopf(const Framework::UIInitParam& params);
TextFeld* createTextFeld(const Framework::UIInitParam& params);
KontrollKnopf* createKontrollKnopf(const Framework::UIInitParam& params);
ObjTabelle* createObjTabelle(const Framework::UIInitParam& params);

Knopf* initKnopf(int x, int y, int br, int hö, __int64 style, char* titel);
KontrollKnopf* initKontrollKnopf(
    int x, int y, int br, int hö, __int64 style, char* txt);
TextFeld* initTextFeld(int x, int y, int br, int hö, __int64 style, const char* txt);
BildZ* initBildZ(int x, int y, int br, int hö, __int64 style, Bild* b);
AuswahlBox* initAuswahlBox(int x,
    int y,
    int br,
    int hö,
    __int64 style,
    std::initializer_list<char*> values);
ObjTabelle* initObjTabelle(int x,
    int y,
    int br,
    int hö,
    __int64 style,
    std::initializer_list<OBJTabelleSpalteIni> spalten,
    int überschriftHöhe);
LDiag* initLinienDiagramm(
    int x, int y, int br, int hö, __int64 style, DiagDaten* data);
FBalken* initFBalken(int x, int y, int br, int hö, __int64 style);

#endif