image_group.h 901 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /*
  2. * File : image_group.h
  3. * COPYRIGHT (C) 2012-2017, Shanghai Real-Thread Technology Co., Ltd
  4. *
  5. * Change Logs:
  6. * Date Author Notes
  7. * 2017-11-05 realthread the first version
  8. */
  9. #pragma once
  10. #include <pm_container.h>
  11. #include <sigslot.h>
  12. #include <pm_image.h>
  13. namespace Persimmon
  14. {
  15. class ImageItem;
  16. class ImageGroup : public Container
  17. {
  18. public:
  19. ImageGroup(const Rect &rect);
  20. virtual ~ImageGroup()
  21. {
  22. items.clear();
  23. }
  24. Signal<int> clicked;
  25. void addItem(Image *itemImage, int value, const Rect rect);
  26. void select(int value);
  27. void clearSelect(void);
  28. int getSelected(void)
  29. {
  30. return selectedItem;
  31. }
  32. virtual bool handleGestureEvent(struct rtgui_event_gesture *, const struct rtgui_gesture *);
  33. private:
  34. ImageItem *getItem(int value);
  35. int selectedItem;
  36. std::vector<ImageItem *> items;
  37. };
  38. }