#include "Einstellungen.h"
#include <MausEreignis.h>
#include "../../Global/Initialisierung.h"

// Inhalt der Einstellungen Klasse aus Einstellungen.h
// Konstruktor
Einstellungen::Einstellungen( Schrift *zSchrift, Fenster *zF )
{
	f = initFenster( zF->getBreite() / 2 - 250, zF->getHöhe() / 2 - 250, 500, 500, zSchrift, 
					 Fenster::Style::normal | Fenster::Style::KörperHAlpha | Fenster::Style::KörperHintergrund | 
					 Fenster::Style::TitelHintergrund | Fenster::Style::TitelHAlpha, "Einstellungen" );
	f->löscheStyle( Fenster::Style::Sichtbar );
	f->setKBgFarbe( 0xe0000000 );
	f->setTBgFarbe( 0xe0000000 );
	f->setSBgFarbe( 0xF0000000 );
	f->setSchließenMeParam( this );
	f->setSchließenMe( einstellungenSchließenME );
	ok = initKnopf( 390, 450, 100, 20, zSchrift, Knopf::Style::Sichtbar, "Ok" );
	ok->setMausEreignisParameter( this );
	ok->setMausEreignis( einstellungenOkME );
	f->addMember( ok );
	zF->addMember( f );
	ref = 1;
}

// Destruktor
Einstellungen::~Einstellungen()
{
	f->release();
	ok->release();
}

// nicht constant
void Einstellungen::setSichtbar()
{
	//-------------------
	f->setStyle( Fenster::Style::Sichtbar, f->hatStyleNicht( Fenster::Style::Sichtbar ) );
}

bool Einstellungen::schließenME( MausEreignis &me )
{
	if( me.id == ME_RLinks )
		f->löscheStyle( Fenster::Style::Sichtbar );
	return 1;
}

bool Einstellungen::okME( MausEreignis &me )
{
	if( me.id == ME_RLinks )
	{
		f->löscheStyle( Fenster::Style::Sichtbar );
		//-----------------------------
	}
	return 1;
}

// Reference Counting
Einstellungen *Einstellungen::getThis()
{
	ref++;
	return this;
}

Einstellungen *Einstellungen::release()
{
	ref--;
	if( !ref )
		delete this;
	return 0;
}


// Ereignisse
bool einstellungenSchließenME( void *p, void *obj, MausEreignis me )
{
	if( !p )
		return 1;
	return ( (Einstellungen*)p )->schließenME( me );
}

bool einstellungenOkME( void *p, void *obj, MausEreignis me )
{
	if( !p )
		return 1;
	return ( (Einstellungen*)p )->okME( me );
}