Slider.cpp 1.3 KB

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