Slider.cpp 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #include "Slider.h"
  2. #include "Bild.h"
  3. #include "Globals.h"
  4. using namespace Framework;
  5. Slider::Slider()
  6. : ZeichnungHintergrund()
  7. {
  8. value = 50;
  9. }
  10. Slider::~Slider()
  11. {}
  12. void Slider::setValue( float value )
  13. {
  14. this->value = value;
  15. rend |= 1;
  16. }
  17. float Slider::getValue() const
  18. {
  19. return value;
  20. }
  21. // Verarbeitet ein Maus Ereignis. Wird vom Framework automatisch aufgerufen.
  22. // me: Das Ereignis
  23. void Slider::doMausEreignis( MausEreignis &me, bool userRet )
  24. {
  25. if( gr.x && ( me.id == ME_PLinks || ( me.id == ME_Bewegung && getMausStand( M_Links ) ) ) )
  26. {
  27. value = ( 1 - ( (gr.x - 10) - me.mx ) / (gr.x - 20.0f) ) * 100;
  28. if( value < 0 )
  29. value = 0;
  30. if( value > 100 )
  31. value = 100;
  32. rend |= 1;
  33. }
  34. ZeichnungHintergrund::doMausEreignis( me, userRet );
  35. }
  36. // Zeichnet die Zeihnung in ein bestimmtes Bild
  37. // zRObj: Das Bild, in das gezeichnet werden soll
  38. void Slider::render( Bild &zRObj )
  39. {
  40. if( hatStyle( Style::Sichtbar ) )
  41. {
  42. ZeichnungHintergrund::render( zRObj );
  43. if( zRObj.setDrawOptions( pos, gr ) )
  44. {
  45. zRObj.drawLinieH( 10, gr.y / 2, gr.x - 20, 0xFFFFFFFF );
  46. zRObj.fillRegion( (int)( gr.x / 100 * value - 10 ), 0, 20, gr.y, 0xFFFFFFFF );
  47. zRObj.releaseDrawOptions();
  48. }
  49. }
  50. }