slider.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /*
  2. * File : slider.h
  3. * This file is part of RT-Thread RTOS
  4. * COPYRIGHT (C) 2006 - 2009, RT-Thread Development Team
  5. *
  6. * The license and distribution terms for this file may be
  7. * found in the file LICENSE in this distribution or at
  8. * http://www.rt-thread.org/license/LICENSE
  9. *
  10. * Change Logs:
  11. * Date Author Notes
  12. * 2009-10-16 Bernard first version
  13. */
  14. #ifndef __RTGUI_SLIDER_H__
  15. #define __RTGUI_SLIDER_H__
  16. #include <rtgui/rtgui.h>
  17. #include <rtgui/widgets/widget.h>
  18. DECLARE_CLASS_TYPE(slider);
  19. /** Gets the type of a slider */
  20. #define RTGUI_SLIDER_TYPE (RTGUI_TYPE(slider))
  21. /** Casts the object to an rtgui_slider */
  22. #define RTGUI_SLIDER(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_SLIDER_TYPE, rtgui_slider_t))
  23. /** Checks if the object is an rtgui_slider */
  24. #define RTGUI_IS_SLIDER(obj) (RTGUI_OBJECT_CHECK_TYPE((obj), RTGUI_SLIDER_TYPE))
  25. struct rtgui_slider
  26. {
  27. struct rtgui_widget parent;
  28. /* widget private data */
  29. rt_size_t min, max, value, ticks;
  30. rt_size_t thumb_width;
  31. int orient;
  32. void (*on_changed)(struct rtgui_widget* widget, struct rtgui_event *event);
  33. };
  34. typedef struct rtgui_slider rtgui_slider_t;
  35. struct rtgui_slider* rtgui_slider_create(rt_size_t min, rt_size_t max, int orient);
  36. void rtgui_slider_destroy(struct rtgui_slider* slider);
  37. rt_bool_t rtgui_slider_event_handler(struct rtgui_widget* widget, struct rtgui_event* event);
  38. void rtgui_slider_set_range(struct rtgui_slider* slider, rt_size_t min, rt_size_t max);
  39. void rtgui_slider_set_value(struct rtgui_slider* slider, rt_size_t value);
  40. void rtgui_slider_set_orientation(struct rtgui_slider* slider, int orientation);
  41. rt_size_t rtgui_slider_get_value(struct rtgui_slider* slider);
  42. #endif