ZKCircleBar.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. /*
  2. * ZKCircleBar.h
  3. *
  4. * Created on: Sep 5, 2017
  5. * Author: guoxs
  6. */
  7. #ifndef _CONTROL_ZKCIRCLEBAR_H_
  8. #define _CONTROL_ZKCIRCLEBAR_H_
  9. #include "ZKBase.h"
  10. class ZKCircleBarPrivate;
  11. /**
  12. * @brief 圆形进度条控件
  13. */
  14. class ZKCircleBar : public ZKBase {
  15. ZK_DECLARE_PRIVATE(ZKCircleBar)
  16. public:
  17. ZKCircleBar(ZKBase *pParent);
  18. virtual ~ZKCircleBar();
  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. /**
  36. * @brief 设置起始角度
  37. */
  38. void setStartAngle(int angle);
  39. public:
  40. class ICircleBarChangeListener {
  41. public:
  42. virtual ~ICircleBarChangeListener() { }
  43. virtual void onProgressChanged(ZKCircleBar *pCircleBar, int progress) = 0;
  44. virtual void onStartTrackingTouch(ZKCircleBar *pCircleBar) { }
  45. virtual void onStopTrackingTouch(ZKCircleBar *pCircleBar) { }
  46. };
  47. void setCircleBarChangeListener(ICircleBarChangeListener *pListener);
  48. protected:
  49. ZKCircleBar(ZKBase *pParent, ZKBasePrivate *pBP);
  50. virtual void onBeforeCreateWindow(const Json::Value &json);
  51. virtual const char* getClassName() const { return ZK_CIRCLEBAR; }
  52. virtual void onDraw(ZKCanvas *pCanvas);
  53. virtual bool onTouchEvent(const MotionEvent &ev);
  54. private:
  55. void parseCircleBarAttributeFromJson(const Json::Value &json);
  56. };
  57. #endif /* _CONTROL_ZKCIRCLEBAR_H_ */