#include "Slider.h"
#include "Bild.h"
#include "Globals.h"

using namespace Framework;

Slider::Slider()
    : ZeichnungHintergrund()
{
    value = 50;
}

Slider::~Slider()
{}

void Slider::setValue( float value )
{
    this->value = value;
    rend |= 1;
}

float Slider::getValue() const
{
    return value;
}

// Verarbeitet ein Maus Ereignis. Wird vom Framework automatisch aufgerufen.
//  me: Das Ereignis
void Slider::doMausEreignis( MausEreignis &me, bool userRet )
{
    if( gr.x && ( me.id == ME_PLinks || ( me.id == ME_Bewegung && getMausStand( M_Links ) ) ) )
    {
        value = ( 1 - ( (gr.x - 10) - me.mx ) / (gr.x - 20.0f) ) * 100;
        if( value < 0 )
            value = 0;
        if( value > 100 )
            value = 100;
        rend |= 1;
    }
    ZeichnungHintergrund::doMausEreignis( me, userRet );
}

// Zeichnet die Zeihnung in ein bestimmtes Bild
//  zRObj: Das Bild, in das gezeichnet werden soll
void Slider::render( Bild &zRObj )
{
    if( hatStyle( Style::Sichtbar ) )
    {
        ZeichnungHintergrund::render( zRObj );
        if( zRObj.setDrawOptions( pos, gr ) )
        {
            zRObj.drawLinieH( 10, gr.y / 2, gr.x - 20, 0xFFFFFFFF );
            zRObj.fillRegion( (int)( gr.x / 100 * value - 10 ), 0, 20, gr.y, 0xFFFFFFFF );
            zRObj.releaseDrawOptions();
        }
    }
}