ZKSeekBar.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. /*
  2. * ZKSeekBar.h
  3. *
  4. * Created on: Jun 26, 2017
  5. * Author: guoxs
  6. */
  7. #ifndef _CONTROL_ZKSEEKBAR_H_
  8. #define _CONTROL_ZKSEEKBAR_H_
  9. #include "ZKBase.h"
  10. class ZKSeekBarPrivate;
  11. /**
  12. * @brief 滑动条控件
  13. */
  14. class ZKSeekBar : public ZKBase {
  15. ZK_DECLARE_PRIVATE(ZKSeekBar)
  16. public:
  17. ZKSeekBar(ZKBase *pParent);
  18. virtual ~ZKSeekBar();
  19. /**
  20. * @brief 设置最大进度值
  21. */
  22. void setMax(int max);
  23. /**
  24. * @brief 获取最大进度值
  25. */
  26. int getMax() const;
  27. /**
  28. * @brief 设置当前进度值
  29. */
  30. void setProgress(int progress);
  31. /**
  32. * @brief 获取当前进度值
  33. */
  34. int getProgress() const;
  35. public:
  36. class ISeekBarChangeListener {
  37. public:
  38. virtual ~ISeekBarChangeListener() { }
  39. virtual void onProgressChanged(ZKSeekBar *pSeekBar, int progress) = 0;
  40. virtual void onStartTrackingTouch(ZKSeekBar *pSeekBar) { }
  41. virtual void onStopTrackingTouch(ZKSeekBar *pSeekBar) { }
  42. };
  43. void setSeekBarChangeListener(ISeekBarChangeListener *pListener);
  44. protected:
  45. ZKSeekBar(ZKBase *pParent, ZKBasePrivate *pBP);
  46. virtual void onBeforeCreateWindow(const Json::Value &json);
  47. virtual const char* getClassName() const { return ZK_SEEKBAR; }
  48. virtual void onDraw(ZKCanvas *pCanvas);
  49. virtual bool onTouchEvent(const MotionEvent &ev);
  50. private:
  51. void parseSeekBarAttributeFromJson(const Json::Value &json);
  52. };
  53. #endif /* _CONTROL_ZKSEEKBAR_H_ */