diff options
| author | Bernard Xiong <[email protected]> | 2013-02-21 13:11:10 +0800 |
|---|---|---|
| committer | Bernard Xiong <[email protected]> | 2013-02-21 13:11:10 +0800 |
| commit | 385f682d7bfce81ba281faaffb0a250ab94985b8 (patch) | |
| tree | 94fca413db98390d21dc18938067a7a90e470a6f /components/rtgui/include | |
| parent | c4bd0023f8da136c5788f47f9a0170a77f627be9 (diff) | |
remove RT-Thread GUI from RT-Thread temporary
Diffstat (limited to 'components/rtgui/include')
62 files changed, 0 insertions, 5678 deletions
diff --git a/components/rtgui/include/rtgui/blit.h b/components/rtgui/include/rtgui/blit.h deleted file mode 100644 index 7d1559d517..0000000000 --- a/components/rtgui/include/rtgui/blit.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef __RTGUI_BLIT_H__ -#define __RTGUI_BLIT_H__ - -#include <rtgui/rtgui.h> - -typedef void (*rtgui_blit_line_func)(rt_uint8_t *dst, rt_uint8_t *src, int line); -rtgui_blit_line_func rtgui_blit_line_get(int dst_bpp, int src_bpp); -rtgui_blit_line_func rtgui_blit_line_get_inv(int dst_bpp, int src_bpp); - -#endif diff --git a/components/rtgui/include/rtgui/color.h b/components/rtgui/include/rtgui/color.h deleted file mode 100644 index e45db77f9f..0000000000 --- a/components/rtgui/include/rtgui/color.h +++ /dev/null @@ -1,139 +0,0 @@ -/* - * File : color.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2009, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE - * - * Change Logs: - * Date Author Notes - * 2009-10-16 Bernard first version - * 2012-01-24 onelife add mono color support - */ -#ifndef __RTGUI_COLOR_H__ -#define __RTGUI_COLOR_H__ - -#include <rtgui/rtgui.h> - -#define RTGUI_ARGB(a, r, g, b) \ - ((rtgui_color_t)(((rt_uint8_t)(r)|\ - (((unsigned)(rt_uint8_t)(g))<<8))|\ - (((unsigned long)(rt_uint8_t)(b))<<16)|\ - (((unsigned long)(rt_uint8_t)(a))<<24))) -#define RTGUI_RGB(r, g, b) RTGUI_ARGB(255, (r), (g), (b)) - -#define RTGUI_RGB_R(c) ((c) & 0xff) -#define RTGUI_RGB_G(c) (((c) >> 8) & 0xff) -#define RTGUI_RGB_B(c) (((c) >> 16) & 0xff) -#define RTGUI_RGB_A(c) (((c) >> 24) & 0xff) - -extern const rtgui_color_t default_foreground; -extern const rtgui_color_t default_background; - -extern const rtgui_color_t red; -extern const rtgui_color_t green; -extern const rtgui_color_t blue; -extern const rtgui_color_t black; -extern const rtgui_color_t white; -extern const rtgui_color_t high_light; -extern const rtgui_color_t dark_grey; -extern const rtgui_color_t light_grey; - -/* - * RTGUI default color format - * BBBB BBBB GGGG GGGG RRRR RRRR - */ - -/* convert rtgui color to mono */ -rt_inline rt_uint8_t rtgui_color_to_mono(rtgui_color_t c) -{ - rt_uint8_t pixel; - - pixel = (RTGUI_RGB_R(c) | RTGUI_RGB_G(c) | RTGUI_RGB_B(c)) ? 0x01 : 0x00; - return pixel; -} - -rt_inline rtgui_color_t rtgui_color_from_mono(rt_uint8_t pixel) -{ - rtgui_color_t color; - - if (pixel) - { - color = white; - } - else - { - color = black; - } - return color; -} - -/* convert rtgui color to BBBBBGGGGGGRRRRR */ -rt_inline rt_uint16_t rtgui_color_to_565(rtgui_color_t c) -{ - rt_uint16_t pixel; - - pixel = (rt_uint16_t)(((RTGUI_RGB_B(c) >> 3) << 11) | ((RTGUI_RGB_G(c) >> 2) << 5) | (RTGUI_RGB_R(c) >> 3)); - - return pixel; -} - -rt_inline rtgui_color_t rtgui_color_from_565(rt_uint16_t pixel) -{ - rt_uint16_t r, g, b; - rtgui_color_t color; - - r = pixel & 0x1f; - g = (pixel >> 5) & 0x3f; - b = (pixel >> 11) & 0x1f; - - color = r * 255 / 31 + ((g * 255 / 63) << 8) + ((b * 255 / 31) << 16); - - return color; -} - -/* convert rtgui color to RRRRRGGGGGGBBBBB */ -rt_inline rt_uint16_t rtgui_color_to_565p(rtgui_color_t c) -{ - rt_uint16_t pixel; - - pixel = (rt_uint16_t)(((RTGUI_RGB_R(c) >> 3) << 11) | ((RTGUI_RGB_G(c) >> 2) << 5) | (RTGUI_RGB_B(c) >> 3)); - return pixel; -} - -rt_inline rtgui_color_t rtgui_color_from_565p(rt_uint16_t pixel) -{ - rt_uint8_t r, g, b; - rtgui_color_t color; - - r = (pixel >> 11) & 0x1f; - g = (pixel >> 5) & 0x3f; - b = pixel & 0x1f; - - color = r * 255 / 31 + ((g * 255 / 63) << 8) + ((b * 255 / 31) << 16); - - return color; -} - -/* convert rtgui color to RGB */ -rt_inline rt_uint32_t rtgui_color_to_888(rtgui_color_t c) -{ - rt_uint32_t pixel; - - pixel = RTGUI_RGB_R(c) << 16 | RTGUI_RGB_G(c) << 8 | RTGUI_RGB_B(c); - return pixel; -} - -rt_inline rtgui_color_t rtgui_color_from_888(rt_uint32_t pixel) -{ - rtgui_color_t color; - - color = RTGUI_RGB(((pixel >> 16) & 0xff), ((pixel >> 8) & 0xff), pixel & 0xff); - - return color; -} - -#endif - diff --git a/components/rtgui/include/rtgui/dc.h b/components/rtgui/include/rtgui/dc.h deleted file mode 100644 index 4a36465e89..0000000000 --- a/components/rtgui/include/rtgui/dc.h +++ /dev/null @@ -1,206 +0,0 @@ -/* - * File : dc.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2009, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE - * - * Change Logs: - * Date Author Notes - * 2009-10-16 Bernard first version - */ -#ifndef __RTGUI_DC_H__ -#define __RTGUI_DC_H__ - -#include <rtgui/rtgui.h> -#include <rtgui/font.h> -#include <rtgui/driver.h> -#include <rtgui/widgets/widget.h> - -enum rtgui_dc_type -{ - RTGUI_DC_HW, - RTGUI_DC_CLIENT, - RTGUI_DC_BUFFER, -}; - -struct rtgui_dc_engine -{ - /* interface */ - void (*draw_point)(struct rtgui_dc *dc, int x, int y); - void (*draw_color_point)(struct rtgui_dc *dc, int x, int y, rtgui_color_t color); - void (*draw_vline)(struct rtgui_dc *dc, int x, int y1, int y2); - void (*draw_hline)(struct rtgui_dc *dc, int x1, int x2, int y); - void (*fill_rect)(struct rtgui_dc *dc, rtgui_rect_t *rect); - void (*blit_line)(struct rtgui_dc *dc, int x1, int x2, int y, rt_uint8_t *line_data); - void (*blit)(struct rtgui_dc *dc, struct rtgui_point *dc_point, struct rtgui_dc *dest, rtgui_rect_t *rect); - - /* set and get graphic context */ - void (*set_gc)(struct rtgui_dc *dc, struct rtgui_gc *gc); - struct rtgui_gc *(*get_gc)(struct rtgui_dc *dc); - - /* get dc visible */ - rt_bool_t (*get_visible)(struct rtgui_dc *dc); - - /* get dc rect */ - void (*get_rect)(struct rtgui_dc *dc, rtgui_rect_t *rect); - - rt_bool_t (*fini)(struct rtgui_dc *dc); -}; - -/* the abstract device context */ -struct rtgui_dc -{ - /* type of device context */ - rt_uint32_t type; - - /* dc engine */ - const struct rtgui_dc_engine *engine; -}; - -/* hardware device context */ -struct rtgui_dc_hw -{ - struct rtgui_dc parent; - rtgui_widget_t *owner; - const struct rtgui_graphic_driver *hw_driver; -}; - -#define RTGUI_DC_FC(dc) (rtgui_dc_get_gc(dc)->foreground) -#define RTGUI_DC_BC(dc) (rtgui_dc_get_gc(dc)->background) -#define RTGUI_DC_FONT(dc) (rtgui_dc_get_gc(dc)->font) -#define RTGUI_DC_TEXTALIGN(dc) (rtgui_dc_get_gc(dc)->textalign) - -/* create a buffer dc */ -struct rtgui_dc *rtgui_dc_buffer_create(int width, int height); -rt_uint8_t *rtgui_dc_buffer_get_pixel(struct rtgui_dc *dc); - -/* begin and end a drawing */ -struct rtgui_dc *rtgui_dc_begin_drawing(rtgui_widget_t *owner); -void rtgui_dc_end_drawing(struct rtgui_dc *dc); - -/* destroy a dc */ -void rtgui_dc_destory(struct rtgui_dc *dc); - -void rtgui_dc_draw_line(struct rtgui_dc *dc, int x1, int y1, int x2, int y2); -void rtgui_dc_draw_rect(struct rtgui_dc *dc, struct rtgui_rect *rect); -void rtgui_dc_fill_rect_forecolor(struct rtgui_dc *dc, struct rtgui_rect *rect); -void rtgui_dc_draw_round_rect(struct rtgui_dc *dc, struct rtgui_rect *rect, int r); -void rtgui_dc_fill_round_rect(struct rtgui_dc *dc, struct rtgui_rect *rect, int r); -void rtgui_dc_draw_annulus(struct rtgui_dc *dc, rt_int16_t x, rt_int16_t y, rt_int16_t r1, rt_int16_t r2, rt_int16_t start, rt_int16_t end); -void rtgui_dc_draw_sector(struct rtgui_dc *dc, rt_int16_t x, rt_int16_t y, rt_int16_t r, rt_int16_t start, rt_int16_t end); -void rtgui_dc_fill_sector(struct rtgui_dc *dc, rt_int16_t x, rt_int16_t y, rt_int16_t r, rt_int16_t start, rt_int16_t end); - -void rtgui_dc_draw_text(struct rtgui_dc *dc, const char *text, struct rtgui_rect *rect); -void rtgui_dc_draw_text_stroke(struct rtgui_dc *dc, const char *text, struct rtgui_rect *rect, - rtgui_color_t color_stroke, rtgui_color_t color_core); - -void rtgui_dc_draw_mono_bmp(struct rtgui_dc *dc, int x, int y, int w, int h, const rt_uint8_t *data); -void rtgui_dc_draw_byte(struct rtgui_dc *dc, int x, int y, int h, const rt_uint8_t *data); -void rtgui_dc_draw_word(struct rtgui_dc *dc, int x, int y, int h, const rt_uint8_t *data); - -void rtgui_dc_draw_border(struct rtgui_dc *dc, rtgui_rect_t *rect, int flag); -void rtgui_dc_draw_horizontal_line(struct rtgui_dc *dc, int x1, int x2, int y); -void rtgui_dc_draw_vertical_line(struct rtgui_dc *dc, int x, int y1, int y2); -void rtgui_dc_draw_focus_rect(struct rtgui_dc *dc, rtgui_rect_t *rect); - -void rtgui_dc_draw_polygon(struct rtgui_dc *dc, const int *vx, const int *vy, int count); -void rtgui_dc_fill_polygon(struct rtgui_dc *dc, const int *vx, const int *vy, int count); - -void rtgui_dc_draw_circle(struct rtgui_dc *dc, int x, int y, int r); -void rtgui_dc_fill_circle(struct rtgui_dc *dc, rt_int16_t x, rt_int16_t y, rt_int16_t r); -void rtgui_dc_draw_arc(struct rtgui_dc *dc, rt_int16_t x, rt_int16_t y, rt_int16_t r, rt_int16_t start, rt_int16_t end); - -void rtgui_dc_draw_ellipse(struct rtgui_dc *dc, rt_int16_t x, rt_int16_t y, rt_int16_t rx, rt_int16_t ry); -void rtgui_dc_fill_ellipse(struct rtgui_dc *dc, rt_int16_t x, rt_int16_t y, rt_int16_t rx, rt_int16_t ry); - -/* - * dc inline function - * - * Note: - * In order to improve drawing speed, put most of common function of dc to inline - */ - -/* - * draw a point on dc - */ -rt_inline void rtgui_dc_draw_point(struct rtgui_dc *dc, int x, int y) -{ - dc->engine->draw_point(dc, x, y); -} - -/* - * draw a color point on dc - */ -rt_inline void rtgui_dc_draw_color_point(struct rtgui_dc *dc, int x, int y, rtgui_color_t color) -{ - dc->engine->draw_color_point(dc, x, y, color); -} - -/* - * draw a vertical line on dc - */ -rt_inline void rtgui_dc_draw_vline(struct rtgui_dc *dc, int x, int y1, int y2) -{ - dc->engine->draw_vline(dc, x, y1, y2); -} - -/* - * draw a horizontal line on dc - */ -rt_inline void rtgui_dc_draw_hline(struct rtgui_dc *dc, int x1, int x2, int y) -{ - dc->engine->draw_hline(dc, x1, x2, y); -} - -/* - * fill a rect with background color - */ -rt_inline void rtgui_dc_fill_rect(struct rtgui_dc *dc, struct rtgui_rect *rect) -{ - dc->engine->fill_rect(dc, rect); -} - -/* - * blit a dc on hardware dc - */ -rt_inline void rtgui_dc_blit(struct rtgui_dc *dc, struct rtgui_point *dc_point, struct rtgui_dc *dest, rtgui_rect_t *rect) -{ - dc->engine->blit(dc, dc_point, dest, rect); -} - -/* - * set gc of dc - */ -rt_inline void rtgui_dc_set_gc(struct rtgui_dc *dc, rtgui_gc_t *gc) -{ - dc->engine->set_gc(dc, gc); -} - -/* - * get gc of dc - */ -rt_inline rtgui_gc_t *rtgui_dc_get_gc(struct rtgui_dc *dc) -{ - return dc->engine->get_gc(dc); -} - -/* - * get visible status of dc - */ -rt_inline rt_bool_t rtgui_dc_get_visible(struct rtgui_dc *dc) -{ - return dc->engine->get_visible(dc); -} - -/* - * get rect of dc - */ -rt_inline void rtgui_dc_get_rect(struct rtgui_dc *dc, rtgui_rect_t *rect) -{ - dc->engine->get_rect(dc, rect); -} - -#endif diff --git a/components/rtgui/include/rtgui/dc_client.h b/components/rtgui/include/rtgui/dc_client.h deleted file mode 100644 index e277654f04..0000000000 --- a/components/rtgui/include/rtgui/dc_client.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - * File : dc_buffer.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2010, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE - * - * Change Logs: - * Date Author Notes - * 2010-04-10 Bernard first version - * 2010-06-14 Bernard embedded hardware dc to each widget - * 2010-08-09 Bernard rename hardware dc to client dc - */ - -#ifndef __RTGUI_DC_CLIENT_H__ -#define __RTGUI_DC_CLIENT_H__ - -#include <rtgui/dc.h> - -/* create a hardware dc */ -struct rtgui_dc *rtgui_dc_client_create(rtgui_widget_t *owner); -void rtgui_dc_client_init(rtgui_widget_t *owner); - -#endif - diff --git a/components/rtgui/include/rtgui/dc_hw.h b/components/rtgui/include/rtgui/dc_hw.h deleted file mode 100644 index 0dadd7686e..0000000000 --- a/components/rtgui/include/rtgui/dc_hw.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * File : dc_buffer.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2010, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE - * - * Change Logs: - * Date Author Notes - * 2010-04-10 Bernard first version - * 2010-06-14 Bernard embedded hardware dc to each widget - */ -#ifndef __RTGUI_DC_HW_H__ -#define __RTGUI_DC_HW_H__ - -#include <rtgui/dc.h> - -/* create a hardware dc */ -struct rtgui_dc *rtgui_dc_hw_create(rtgui_widget_t *owner); - -#endif - diff --git a/components/rtgui/include/rtgui/dlist.h b/components/rtgui/include/rtgui/dlist.h deleted file mode 100644 index 0b8f490bea..0000000000 --- a/components/rtgui/include/rtgui/dlist.h +++ /dev/null @@ -1,119 +0,0 @@ -/* - * File : dlist.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2011, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE - * - * Change Logs: - * Date Author Notes - * 2006-03-16 Bernard the first version - * 2006-09-07 Bernard move the kservice APIs to rtthread.h - * 2007-06-27 Bernard fix the rt_list_remove bug - * 2012-02-25 Grissiom move to rtgui/include/rtgui and some misc changes - */ - -#ifndef __RTGUI_DLIST_H__ -#define __RTGUI_DLIST_H__ - -/* This file is copied from kservice.h in RTT kernel. There are some differences: - * 1, naming. Use rtgui_dlist_ prefix instead of rt_list. - * 2, add rtgui_dlist_foreach for convenience. - * 3, move the definition of list node into this file. - * - * Please keep both of the files synchronized when fixing bugs. - */ - -#ifdef __cplusplus -extern "C" { -#endif - - struct rtgui_dlist_node - { - struct rtgui_dlist_node *next; /* point to next node. */ - struct rtgui_dlist_node *prev; /* point to prev node. */ - }; - - /** - * @brief initialize a list - * - * @param l list to be initialized - */ - rt_inline void rtgui_dlist_init(struct rtgui_dlist_node *l) - { - l->next = l->prev = l; - } - - /** - * @brief insert a node after a list - * - * @param l list to insert it - * @param n new node to be inserted - */ - rt_inline void rtgui_dlist_insert_after(struct rtgui_dlist_node *l, struct rtgui_dlist_node *n) - { - l->next->prev = n; - n->next = l->next; - - l->next = n; - n->prev = l; - } - - /** - * @brief insert a node before a list - * - * @param n new node to be inserted - * @param l list to insert it - */ - rt_inline void rtgui_dlist_insert_before(struct rtgui_dlist_node *l, struct rtgui_dlist_node *n) - { - l->prev->next = n; - n->prev = l->prev; - - l->prev = n; - n->next = l; - } - - /** - * @brief remove node from list. - * @param n the node to remove from the list. - */ - rt_inline void rtgui_dlist_remove(struct rtgui_dlist_node *n) - { - n->next->prev = n->prev; - n->prev->next = n->next; - - rtgui_dlist_init(n); - } - - /** - * @brief tests whether a list is empty - * @param l the list to test. - */ - rt_inline int rtgui_dlist_isempty(const struct rtgui_dlist_node *l) - { - return l->next == l; - } - - /** - * @brief get the struct for this entry - * @param node the entry point - * @param type the type of structure - * @param member the name of list in structure - */ -#define rtgui_dlist_entry(node, type, member) \ - ((type *)((char *)(node) - (unsigned long)(&((type *)0)->member))) - - /* the direction can only be next or prev. If you want to iterate the list in - * normal order, use next. If you want to iterate the list with reverse order, - * use prev.*/ -#define rtgui_dlist_foreach(node, list, direction) \ - for ((node) = (list)->direction; (node) != list; (node) = (node)->direction) - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/components/rtgui/include/rtgui/driver.h b/components/rtgui/include/rtgui/driver.h deleted file mode 100644 index 2259853448..0000000000 --- a/components/rtgui/include/rtgui/driver.h +++ /dev/null @@ -1,99 +0,0 @@ -/* - * File : driver.h - * This file is part of RTGUI in RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2009, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE - * - * Change Logs: - * Date Author Notes - * 2009-10-04 Bernard first version - */ -#ifndef __RTGUI_DRIVER_H__ -#define __RTGUI_DRIVER_H__ - -#include <rtgui/list.h> -#include <rtgui/color.h> - -/* graphic driver operations */ -struct rtgui_graphic_driver_ops -{ - /* set and get pixel in (x, y) */ - void (*set_pixel)(rtgui_color_t *c, int x, int y); - void (*get_pixel)(rtgui_color_t *c, int x, int y); - - void (*draw_hline)(rtgui_color_t *c, int x1, int x2, int y); - void (*draw_vline)(rtgui_color_t *c, int x , int y1, int y2); - - /* draw raw hline */ - void (*draw_raw_hline)(rt_uint8_t *pixels, int x1, int x2, int y); -}; - -/* graphic extension operations */ -struct rtgui_graphic_ext_ops -{ - /* some 2D operations */ - void (*draw_line)(rtgui_color_t *c, int x1, int y1, int x2, int y2); - - void (*draw_rect)(rtgui_color_t *c, int x1, int y1, int x2, int y2); - void (*fill_rect)(rtgui_color_t *c, int x1, int y1, int x2, int y2); - - void (*draw_circle)(rtgui_color_t *c, int x, int y, int r); - void (*fill_circle)(rtgui_color_t *c, int x, int y, int r); - - void (*draw_ellipse)(rtgui_color_t *c, int x, int y, int rx, int ry); - void (*fill_ellipse)(rtgui_color_t *c, int x, int y, int rx, int ry); -}; - -struct rtgui_graphic_driver -{ - /* pixel format and byte per pixel */ - rt_uint8_t pixel_format; - rt_uint8_t bits_per_pixel; - rt_uint16_t pitch; - - /* screen width and height */ - rt_uint16_t width; - rt_uint16_t height; - - /* framebuffer address and ops */ - volatile rt_uint8_t *framebuffer; - struct rt_device* device; - - const struct rtgui_graphic_driver_ops *ops; - const struct rtgui_graphic_ext_ops *ext_ops; -}; - -struct rtgui_graphic_driver *rtgui_graphic_driver_get_default(void); - -void rtgui_graphic_driver_get_rect(const struct rtgui_graphic_driver *driver, rtgui_rect_t *rect); -void rtgui_graphic_driver_screen_update(const struct rtgui_graphic_driver *driver, rtgui_rect_t *rect); -rt_uint8_t *rtgui_graphic_driver_get_framebuffer(const struct rtgui_graphic_driver *driver); -rt_uint8_t *rtgui_graphic_driver_get_default_framebuffer(void); - -rt_err_t rtgui_graphic_set_device(rt_device_t device); - -rt_inline struct rtgui_graphic_driver *rtgui_graphic_get_device() -{ - extern struct rtgui_graphic_driver _driver; - return &_driver; -} - -#ifdef RTGUI_USING_HW_CURSOR -/* - * hardware cursor - */ -enum rtgui_cursor_type -{ - RTGUI_CURSOR_ARROW, - RTGUI_CURSOR_HAND, -}; - -void rtgui_cursor_set_device(const char* device_name); -void rtgui_cursor_set_position(rt_uint16_t x, rt_uint16_t y); -void rtgui_cursor_set_image(enum rtgui_cursor_type type); -#endif - -#endif diff --git a/components/rtgui/include/rtgui/event.h b/components/rtgui/include/rtgui/event.h deleted file mode 100644 index cb83fdb85b..0000000000 --- a/components/rtgui/include/rtgui/event.h +++ /dev/null @@ -1,466 +0,0 @@ -/* - * File : event.h - * This file is part of RTGUI in RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2009, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE - * - * Change Logs: - * Date Author Notes - * 2009-10-04 Bernard first version - */ -#ifndef __RTGUI_EVENT_H__ -#define __RTGUI_EVENT_H__ - -#include <rtgui/rtgui.h> -#include <rtgui/kbddef.h> - -/* NOTE: if you create a new event type, remember to add it into the union - * rtgui_event_generic */ -enum _rtgui_event_type -{ - /* applications event */ - RTGUI_EVENT_APP_CREATE, /* create an application */ - RTGUI_EVENT_APP_DESTROY, /* destroy an application */ - RTGUI_EVENT_APP_ACTIVATE, /* activate an application */ - - /* window event */ - RTGUI_EVENT_WIN_CREATE, /* create a window */ - RTGUI_EVENT_WIN_DESTROY, /* destroy a window */ - RTGUI_EVENT_WIN_SHOW, /* show a window */ - RTGUI_EVENT_WIN_HIDE, /* hide a window */ - RTGUI_EVENT_WIN_ACTIVATE, /* activate a window */ - RTGUI_EVENT_WIN_DEACTIVATE, /* deactivate a window */ - RTGUI_EVENT_WIN_CLOSE, /* close a window */ - RTGUI_EVENT_WIN_MOVE, /* move a window */ - RTGUI_EVENT_WIN_RESIZE, /* resize a window */ - RTGUI_EVENT_WIN_MODAL_ENTER, /* the window is entering modal mode. - This event should be sent after the - window got setup and before the - application got setup. */ - - /* WM event */ - RTGUI_EVENT_SET_WM, /* set window manager */ - - RTGUI_EVENT_UPDATE_BEGIN, /* update a rect */ - RTGUI_EVENT_UPDATE_END, /* update a rect */ - RTGUI_EVENT_MONITOR_ADD, /* add a monitor rect */ - RTGUI_EVENT_MONITOR_REMOVE, /* remove a monitor rect */ - RTGUI_EVENT_SHOW, /* the widget is going to be shown */ - RTGUI_EVENT_HIDE, /* the widget is going to be hidden */ - RTGUI_EVENT_PAINT, /* paint on screen */ - RTGUI_EVENT_TIMER, /* timer */ - RTGUI_EVENT_UPDATE_TOPLVL, /* update the toplevel */ - - /* clip rect information */ - RTGUI_EVENT_CLIP_INFO, /* clip rect info */ - - /* mouse and keyboard event */ - RTGUI_EVENT_MOUSE_MOTION, /* mouse motion */ - RTGUI_EVENT_MOUSE_BUTTON, /* mouse button info */ - RTGUI_EVENT_KBD, /* keyboard info */ - - /* widget event */ - RTGUI_EVENT_FOCUSED, /* widget focused */ - RTGUI_EVENT_SCROLLED, /* scroll bar scrolled */ - RTGUI_EVENT_RESIZE, /* widget resize */ - RTGUI_EVENT_SELECTED, /* widget selected */ - RTGUI_EVENT_UNSELECTED, /* widget un-selected */ - RTGUI_EVENT_MV_MODEL, /* data of a model has been changed */ - - /* user command event. It should always be the last command type. */ - RTGUI_EVENT_COMMAND = 0x0100, /* user command */ -}; -typedef enum _rtgui_event_type rtgui_event_type; - -enum -{ - RTGUI_STATUS_OK = 0, /* status ok */ - RTGUI_STATUS_ERROR, /* generic error */ - RTGUI_STATUS_NRC, /* no resource */ -}; - -struct rtgui_event -{ - /* the event type */ - enum _rtgui_event_type type; - /* user field of event */ - rt_uint16_t user; - - /* the event sender */ - struct rtgui_app *sender; - - /* mailbox to acknowledge request */ - rt_mailbox_t ack; -}; -typedef struct rtgui_event rtgui_event_t; -#define RTGUI_EVENT(e) ((struct rtgui_event*)(e)) - -extern struct rtgui_app* rtgui_app_self(void); - -#define RTGUI_EVENT_INIT(e, t) do \ -{ \ - (e)->type = (t); \ - (e)->user = 0; \ - (e)->sender = rtgui_app_self(); \ - (e)->ack = RT_NULL; \ -} while (0) - -/* - * RTGUI Application Event - */ -struct rtgui_event_application -{ - struct rtgui_event parent; - - struct rtgui_app *app; -}; - -/* gui application init */ -#define RTGUI_EVENT_APP_CREATE_INIT(e) RTGUI_EVENT_INIT(&((e)->parent), RTGUI_EVENT_APP_CREATE) -#define RTGUI_EVENT_APP_DESTROY_INIT(e) RTGUI_EVENT_INIT(&((e)->parent), RTGUI_EVENT_APP_DESTROY) -#define RTGUI_EVENT_APP_ACTIVATE_INIT(e) RTGUI_EVENT_INIT(&((e)->parent), RTGUI_EVENT_APP_ACTIVATE) - -/* - * RTGUI Window Event - */ -#define _RTGUI_EVENT_WIN_ELEMENTS \ - struct rtgui_event parent; \ - struct rtgui_win *wid; - -/* - * RTGUI Window Event - */ -struct rtgui_event_win -{ - _RTGUI_EVENT_WIN_ELEMENTS -}; - -struct rtgui_event_win_create -{ - _RTGUI_EVENT_WIN_ELEMENTS - struct rtgui_win *parent_window; -#ifndef RTGUI_USING_SMALL_SIZE - /* the window title */ - rt_uint8_t title[RTGUI_NAME_MAX]; - /* the window extent */ - struct rtgui_rect extent; -#endif -}; - -struct rtgui_event_win_move -{ - _RTGUI_EVENT_WIN_ELEMENTS - rt_int16_t x, y; -}; - -struct rtgui_event_win_resize -{ - _RTGUI_EVENT_WIN_ELEMENTS - - rtgui_rect_t rect; -}; - -#define rtgui_event_win_destroy rtgui_event_win -#define rtgui_event_win_show rtgui_event_win -#define rtgui_event_win_hide rtgui_event_win -#define rtgui_event_win_activate rtgui_event_win -#define rtgui_event_win_deactivate rtgui_event_win -#define rtgui_event_win_close rtgui_event_win -#define rtgui_event_win_modal_enter rtgui_event_win - -/* window event init */ -#define RTGUI_EVENT_WIN_CREATE_INIT(e) RTGUI_EVENT_INIT(&((e)->parent), RTGUI_EVENT_WIN_CREATE) -#define RTGUI_EVENT_WIN_DESTROY_INIT(e) RTGUI_EVENT_INIT(&((e)->parent), RTGUI_EVENT_WIN_DESTROY) -#define RTGUI_EVENT_WIN_SHOW_INIT(e) RTGUI_EVENT_INIT(&((e)->parent), RTGUI_EVENT_WIN_SHOW) -#define RTGUI_EVENT_WIN_HIDE_INIT(e) RTGUI_EVENT_INIT(&((e)->parent), RTGUI_EVENT_WIN_HIDE) -#define RTGUI_EVENT_WIN_ACTIVATE_INIT(e) RTGUI_EVENT_INIT(&((e)->parent), RTGUI_EVENT_WIN_ACTIVATE) -#define RTGUI_EVENT_WIN_DEACTIVATE_INIT(e) RTGUI_EVENT_INIT(&((e)->parent), RTGUI_EVENT_WIN_DEACTIVATE) -#define RTGUI_EVENT_WIN_CLOSE_INIT(e) RTGUI_EVENT_INIT(&((e)->parent), RTGUI_EVENT_WIN_CLOSE) -#define RTGUI_EVENT_WIN_MOVE_INIT(e) RTGUI_EVENT_INIT(&((e)->parent), RTGUI_EVENT_WIN_MOVE) -#define RTGUI_EVENT_WIN_RESIZE_INIT(e) RTGUI_EVENT_INIT(&((e)->parent), RTGUI_EVENT_WIN_RESIZE) -#define RTGUI_EVENT_WIN_MODAL_ENTER_INIT(e) RTGUI_EVENT_INIT(&((e)->parent), RTGUI_EVENT_WIN_MODAL_ENTER) - -/* - * RTGUI set window manager - */ -struct rtgui_event_set_wm -{ - struct rtgui_event parent; - struct rtgui_app *app; -}; -#define RTGUI_EVENT_SET_WM_INIT(e) RTGUI_EVENT_INIT(&((e)->parent), RTGUI_EVENT_SET_WM); - -/* - * RTGUI Other Event - */ -struct rtgui_event_update_begin -{ - struct rtgui_event parent; - - /* the update rect */ - rtgui_rect_t rect; -}; - -struct rtgui_event_update_end -{ - struct rtgui_event parent; - - /* the update rect */ - rtgui_rect_t rect; -}; - -struct rtgui_event_monitor -{ - _RTGUI_EVENT_WIN_ELEMENTS - - /* the monitor rect */ - rtgui_rect_t rect; -}; - -struct rtgui_event_paint -{ - _RTGUI_EVENT_WIN_ELEMENTS - - rtgui_rect_t rect; /* rect to be updated */ -}; - -struct rtgui_timer; -struct rtgui_event_timer -{ - struct rtgui_event parent; - - struct rtgui_timer *timer; -}; -typedef struct rtgui_event_timer rtgui_event_timer_t; - - -struct rtgui_event_clip_info -{ - _RTGUI_EVENT_WIN_ELEMENTS - - /* the number of rects */ - //rt_uint32_t num_rect; - - /* rtgui_rect_t *rects */ -}; -#define RTGUI_EVENT_GET_RECT(e, i) &(((rtgui_rect_t*)(e + 1))[i]) - -#define RTGUI_EVENT_UPDATE_BEGIN_INIT(e) RTGUI_EVENT_INIT(&((e)->parent), RTGUI_EVENT_UPDATE_BEGIN) -#define RTGUI_EVENT_UPDATE_END_INIT(e) RTGUI_EVENT_INIT(&((e)->parent), RTGUI_EVENT_UPDATE_END) -#define RTGUI_EVENT_MONITOR_ADD_INIT(e) RTGUI_EVENT_INIT(&((e)->parent), RTGUI_EVENT_MONITOR_ADD) -#define RTGUI_EVENT_MONITOR_REMOVE_INIT(e) RTGUI_EVENT_INIT(&((e)->parent), RTGUI_EVENT_MONITOR_REMOVE) -#define RTGUI_EVENT_CLIP_INFO_INIT(e) RTGUI_EVENT_INIT(&((e)->parent), RTGUI_EVENT_CLIP_INFO) -#define RTGUI_EVENT_PAINT_INIT(e) RTGUI_EVENT_INIT(&((e)->parent), RTGUI_EVENT_PAINT) -#define RTGUI_EVENT_TIMER_INIT(e) RTGUI_EVENT_INIT(&((e)->parent), RTGUI_EVENT_TIMER) - -#define rtgui_event_show rtgui_event -#define rtgui_event_hide rtgui_event - -#define RTGUI_EVENT_SHOW_INIT(e) RTGUI_EVENT_INIT((e), RTGUI_EVENT_SHOW) -#define RTGUI_EVENT_HIDE_INIT(e) RTGUI_EVENT_INIT((e), RTGUI_EVENT_HIDE) - -struct rtgui_event_update_toplvl -{ - struct rtgui_event parent; - struct rtgui_win *toplvl; -}; - -#define RTGUI_EVENT_UPDATE_TOPLVL_INIT(e) \ - do { \ - RTGUI_EVENT_INIT(&((e)->parent), RTGUI_EVENT_UPDATE_TOPLVL); \ - (e)->toplvl = RT_NULL; \ - } while (0) - -/* - * RTGUI Mouse and Keyboard Event - */ -struct rtgui_event_mouse -{ - _RTGUI_EVENT_WIN_ELEMENTS - - rt_uint16_t x, y; - rt_uint16_t button; -}; -#define RTGUI_MOUSE_BUTTON_LEFT 0x01 -#define RTGUI_MOUSE_BUTTON_RIGHT 0x02 -#define RTGUI_MOUSE_BUTTON_MIDDLE 0x03 -#define RTGUI_MOUSE_BUTTON_WHEELUP 0x04 -#define RTGUI_MOUSE_BUTTON_WHEELDOWN 0x08 - -#define RTGUI_MOUSE_BUTTON_DOWN 0x10 -#define RTGUI_MOUSE_BUTTON_UP 0x20 - -struct rtgui_event_kbd -{ - _RTGUI_EVENT_WIN_ELEMENTS - - rt_uint16_t type; /* key down or up */ - rt_uint16_t key; /* current key */ - rt_uint16_t mod; /* current key modifiers */ - rt_uint16_t unicode; /* translated character */ -}; -#define RTGUI_KBD_IS_SET_CTRL(e) ((e)->mod & (RTGUI_KMOD_LCTRL | RTGUI_KMOD_RCTRL))) -#define RTGUI_KBD_IS_SET_ALT(e) ((e)->mod & (RTGUI_KMOD_LALT | RTGUI_KMOD_RALT)) -#define RTGUI_KBD_IS_SET_SHIFT(e) ((e)->mod & (RTGUI_KMOD_LSHIFT| RTGUI_KMOD_RSHIFT)) -#define RTGUI_KBD_IS_UP(e) ((e)->type == RTGUI_KEYUP) -#define RTGUI_KBD_IS_DOWN(e) ((e)->type == RTGUI_KEYDOWN) - -#define RTGUI_EVENT_MOUSE_MOTION_INIT(e) RTGUI_EVENT_INIT(&((e)->parent), RTGUI_EVENT_MOUSE_MOTION) -#define RTGUI_EVENT_MOUSE_BUTTON_INIT(e) RTGUI_EVENT_INIT(&((e)->parent), RTGUI_EVENT_MOUSE_BUTTON) -#define RTGUI_EVENT_KBD_INIT(e) RTGUI_EVENT_INIT(&((e)->parent), RTGUI_EVENT_KBD) - -struct rtgui_event_command -{ - _RTGUI_EVENT_WIN_ELEMENTS - - /* command type */ - rt_int32_t type; - - /* command id */ - rt_int32_t command_id; - - /* command string */ - char command_string[RTGUI_NAME_MAX]; -}; -#define RTGUI_EVENT_COMMAND_INIT(e) RTGUI_EVENT_INIT(&((e)->parent), RTGUI_EVENT_COMMAND) - -#define RTGUI_CMD_UNKNOWN 0x00 -#define RTGUI_CMD_WM_CLOSE 0x10 - -#define RTGUI_CMD_USER_INT 0x20 -#define RTGUI_CMD_USER_STRING 0x21 - -/************************************************************************/ -/* Widget Event */ -/************************************************************************/ -#define RTGUI_WIDGET_EVENT_INIT(e, t) do \ -{ \ - (e)->type = (t); \ - (e)->sender = RT_NULL; \ - (e)->ack = RT_NULL; \ -} while (0) - -/* - * RTGUI Scrollbar Event - */ -struct rtgui_event_scrollbar -{ - struct rtgui_event parent; - - rt_uint8_t event; -}; -#define RTGUI_SCROLL_LINEUP 0x01 -#define RTGUI_SCROLL_LINEDOWN 0x02 -#define RTGUI_SCROLL_PAGEUP 0x03 -#define RTGUI_SCROLL_PAGEDOWN 0x04 -#define RTGUI_EVENT_SCROLLED_INIT(e) RTGUI_EVENT_INIT(&((e)->parent), RTGUI_EVENT_SCROLLED) - -/* - * RTGUI Widget Focused Event - */ -struct rtgui_event_focused -{ - struct rtgui_event parent; - - struct rtgui_widget *widget; -}; -#define RTGUI_EVENT_FOCUSED_INIT(e) RTGUI_EVENT_INIT(&((e)->parent), RTGUI_EVENT_FOCUSED) - -/* - * RTGUI Widget Resize Event - */ -struct rtgui_event_resize -{ - struct rtgui_event parent; - rt_int16_t x, y; - rt_int16_t w, h; -}; -#define RTGUI_EVENT_RESIZE_INIT(e) RTGUI_EVENT_INIT(&((e)->parent), RTGUI_EVENT_RESIZE) - -/* - * RTGUI Model/View Event - */ -enum rtgui_event_model_mode -{ - RTGUI_MV_DATA_ADDED, - RTGUI_MV_DATA_CHANGED, - RTGUI_MV_DATA_DELETED, -}; - -struct rtgui_event_mv_model -{ - struct rtgui_event parent; - struct rtgui_mv_model *model; - struct rtgui_mv_view *view; - rt_size_t first_data_changed_idx; - rt_size_t last_data_changed_idx; -}; - -#define _RTGUI_EVENT_MV_INIT_TYPE(T) \ -rt_inline void RTGUI_EVENT_MV_MODEL_##T##_INIT(struct rtgui_event_mv_model *e) \ -{ \ - RTGUI_EVENT_INIT(&((e)->parent), RTGUI_EVENT_MV_MODEL); \ - (e)->parent.user = RTGUI_MV_DATA_##T; \ -} \ -/* useless struct to allow trailing semicolon */ \ -struct dummy - -_RTGUI_EVENT_MV_INIT_TYPE(ADDED); -_RTGUI_EVENT_MV_INIT_TYPE(CHANGED); -_RTGUI_EVENT_MV_INIT_TYPE(DELETED); -#undef _RTGUI_EVENT_MV_INIT_TYPE - -#define _RTGUI_EVENT_MV_IS_TYPE(T) \ -rt_inline rt_bool_t RTGUI_EVENT_MV_MODEL_IS_##T(struct rtgui_event_mv_model *e) \ -{ \ - return e->parent.user == RTGUI_MV_DATA_##T; \ -} \ -/* useless struct to allow trailing semicolon */ \ -struct dummy - -_RTGUI_EVENT_MV_IS_TYPE(ADDED); -_RTGUI_EVENT_MV_IS_TYPE(CHANGED); -_RTGUI_EVENT_MV_IS_TYPE(DELETED); -#undef _RTGUI_EVENT_MV_IS_TYPE - -#undef _RTGUI_EVENT_WIN_ELEMENTS - -union rtgui_event_generic -{ - struct rtgui_event base; - - struct rtgui_event_application app_create; - struct rtgui_event_application app_destroy; - struct rtgui_event_application app_activate; - - struct rtgui_event_set_wm set_wm; - struct rtgui_event_win win_base; - struct rtgui_event_win_create win_create; - struct rtgui_event_win_move win_move; - struct rtgui_event_win_resize win_resize; - struct rtgui_event_win_destroy win_destroy; - struct rtgui_event_win_show win_show; - struct rtgui_event_win_hide win_hide; - struct rtgui_event_win_activate win_activate; - struct rtgui_event_win_deactivate win_deactivate; - struct rtgui_event_win_close win_close; - struct rtgui_event_win_modal_enter win_modal_enter; - struct rtgui_event_update_begin update_begin; - struct rtgui_event_update_end update_end; - struct rtgui_event_monitor monitor; - struct rtgui_event_paint paint; - struct rtgui_event_timer timer; - struct rtgui_event_update_toplvl update_toplvl; - struct rtgui_event_clip_info clip_info; - struct rtgui_event_mouse mouse; - struct rtgui_event_kbd kbd; - struct rtgui_event_scrollbar scrollbar; - struct rtgui_event_focused focused; - struct rtgui_event_resize resize; - struct rtgui_event_mv_model model; - struct rtgui_event_command command; -}; -#endif diff --git a/components/rtgui/include/rtgui/filerw.h b/components/rtgui/include/rtgui/filerw.h deleted file mode 100644 index e32f40d22f..0000000000 --- a/components/rtgui/include/rtgui/filerw.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - * File : filerw.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2009, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE - * - * Change Logs: - * Date Author Notes - * 2009-10-16 Bernard first version - */ -#ifndef __RTGUI_FILERW_H__ -#define __RTGUI_FILERW_H__ - -#ifdef RTGUI_USING_DFS_FILERW -#ifdef _WIN32_NATIVE -#pragma warning(disable: 4996) -#include <fcntl.h> -#include <sys/types.h> -#include <sys/stat.h> -#include <io.h> -#else -#include <dfs_posix.h> -#endif -#endif - -#include <rtgui/rtgui.h> - -#define RTGUI_FILE_SEEK_SET 0 -#define RTGUI_FILE_SEEK_CUR 1 -#define RTGUI_FILE_SEEK_END 2 - -struct rtgui_filerw -{ - int (*seek)(struct rtgui_filerw *context, rt_off_t offset, int whence); - int (*read)(struct rtgui_filerw *context, void *buffer, rt_size_t size, rt_size_t count); - int (*write)(struct rtgui_filerw *context, const void *buffer, rt_size_t size, rt_size_t count); - int (*tell)(struct rtgui_filerw *context); - int (*eof)(struct rtgui_filerw *context); - int (*close)(struct rtgui_filerw *context); -}; -typedef struct rtgui_filerw rtgui_filerw_t; - -struct rtgui_filerw *rtgui_filerw_create_file(const char *filename, const char *mode); -struct rtgui_filerw *rtgui_filerw_create_mem(const rt_uint8_t *mem, rt_size_t size); - -int rtgui_filerw_seek(struct rtgui_filerw *context, rt_off_t offset, int whence); -int rtgui_filerw_read(struct rtgui_filerw *context, void *buffer, rt_size_t size, rt_size_t count); -int rtgui_filerw_write(struct rtgui_filerw *context, const void *buffer, rt_size_t size, rt_size_t count); -int rtgui_filerw_tell(struct rtgui_filerw *context); -int rtgui_filerw_eof(struct rtgui_filerw *context); -int rtgui_filerw_close(struct rtgui_filerw *context); -int rtgui_filerw_unlink(const char *filename); - -/* get memory data from filerw memory object */ -const rt_uint8_t *rtgui_filerw_mem_getdata(struct rtgui_filerw *context); - -#endif diff --git a/components/rtgui/include/rtgui/font.h b/components/rtgui/include/rtgui/font.h deleted file mode 100644 index d24165203b..0000000000 --- a/components/rtgui/include/rtgui/font.h +++ /dev/null @@ -1,118 +0,0 @@ -/* - * File : font.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2009, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE - * - * Change Logs: - * Date Author Notes - * 2009-10-16 Bernard first version - */ -#ifndef __RTGUI_FONT_H__ -#define __RTGUI_FONT_H__ - -#include <rtgui/rtgui.h> -#include <rtgui/list.h> - -struct rtgui_font; -struct rtgui_dc; -struct rtgui_rect; - -struct rtgui_font_engine -{ - /* font engine function */ - void (*font_init)(struct rtgui_font *font); - void (*font_load)(struct rtgui_font *font); - - void (*font_draw_text)(struct rtgui_font *font, struct rtgui_dc *dc, const char *text, - rt_ubase_t len, struct rtgui_rect *rect); - void (*font_get_metrics)(struct rtgui_font *font, const char *text, struct rtgui_rect *rect); -}; - -/* - * bitmap font engine - */ -struct rtgui_font_bitmap -{ - const rt_uint8_t *bmp; /* bitmap font data */ - const rt_uint8_t *char_width; /* each character width, NULL for fixed font */ - const rt_uint32_t *offset; /* offset for each character */ - - rt_uint16_t width; /* font width */ - rt_uint16_t height; /* font height */ - - rt_uint8_t first_char; - rt_uint8_t last_char; -}; -extern const struct rtgui_font_engine bmp_font_engine; - -#include <rtgui/tree.h> -SPLAY_HEAD(cache_tree, hz_cache); -struct hz_cache -{ - SPLAY_ENTRY(hz_cache) hz_node; - - rt_uint16_t hz_id; -}; - -struct rtgui_hz_file_font -{ - struct cache_tree cache_root; - rt_uint16_t cache_size; - - /* font size */ - rt_uint16_t font_size; - rt_uint16_t font_data_size; - - /* file descriptor */ - int fd; - - /* font file name */ - const char *font_fn; -}; -extern const struct rtgui_font_engine rtgui_hz_file_font_engine; - -struct rtgui_font -{ - /* font name */ - char *family; - - /* font height */ - rt_uint16_t height; - - /* refer count */ - rt_uint32_t refer_count; - - /* font engine */ - const struct rtgui_font_engine *engine; - - /* font private data */ - void *data; - - /* the font list */ - rtgui_list_t list; -}; -typedef struct rtgui_font rtgui_font_t; - -void rtgui_font_system_init(void); -void rtgui_font_system_add_font(struct rtgui_font *font); -void rtgui_font_system_remove_font(struct rtgui_font *font); -struct rtgui_font *rtgui_font_default(void); -void rtgui_font_set_defaut(struct rtgui_font *font); - -struct rtgui_font *rtgui_font_refer(const char *family, rt_uint16_t height); -void rtgui_font_derefer(struct rtgui_font *font); - -/* draw a text */ -void rtgui_font_draw(struct rtgui_font *font, struct rtgui_dc *dc, const char *text, rt_ubase_t len, struct rtgui_rect *rect); -int rtgui_font_get_string_width(struct rtgui_font *font, const char *text); -void rtgui_font_get_metrics(struct rtgui_font *font, const char *text, struct rtgui_rect *rect); - -/* used by stract font */ -#define FONT_BMP_DATA_BEGIN -#define FONT_BMP_DATA_END - -#endif diff --git a/components/rtgui/include/rtgui/font_freetype.h b/components/rtgui/include/rtgui/font_freetype.h deleted file mode 100644 index bd54d308f1..0000000000 --- a/components/rtgui/include/rtgui/font_freetype.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef __RTGUI_FONT_TTF_H__ -#define __RTGUI_FONT_TTF_H__ - -#include <rtgui/dc.h> -#include <rtgui/font.h> - -rtgui_font_t *rtgui_freetype_font_create(const char *filename, int bold, int italic, rt_size_t size); -void rtgui_freetype_font_destroy(rtgui_font_t *font); - -#endif diff --git a/components/rtgui/include/rtgui/image.h b/components/rtgui/include/rtgui/image.h deleted file mode 100644 index b664833a6d..0000000000 --- a/components/rtgui/include/rtgui/image.h +++ /dev/null @@ -1,91 +0,0 @@ -/* - * File : image.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2009, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE - * - * Change Logs: - * Date Author Notes - * 2009-10-16 Bernard first version - */ -#ifndef __RTGUI_IMAGE_H__ -#define __RTGUI_IMAGE_H__ - -#include <rtgui/dc.h> -#include <rtgui/filerw.h> -#include <rtgui/region.h> - -enum rtgui_img_zoom -{ - RTGUI_IMG_ZOOM_NEAREST, - RTGUI_IMG_ZOOM_BILINEAR -}; - -struct rtgui_image; -struct rtgui_image_engine -{ - const char *name; - struct rtgui_list_node list; - - /* image engine function */ - rt_bool_t (*image_check)(struct rtgui_filerw *file); - - rt_bool_t (*image_load)(struct rtgui_image *image, struct rtgui_filerw *file, rt_bool_t load); - void (*image_unload)(struct rtgui_image *image); - - void (*image_blit)(struct rtgui_image *image, struct rtgui_dc *dc, struct rtgui_rect *rect); - struct rtgui_image *(*image_zoom)(struct rtgui_image *image, float scalew, float scaleh, rt_uint32_t mode); - struct rtgui_image *(*image_rotate)(struct rtgui_image *image, float angle); -}; - -struct rtgui_image_palette -{ - rtgui_color_t *colors; - rt_uint32_t ncolors; -}; -typedef struct rtgui_image_palette rtgui_image_palette_t; - -struct rtgui_image -{ - /* image metrics */ - rt_uint16_t w, h; - - /* image engine */ - const struct rtgui_image_engine *engine; - - /* image palette */ - rtgui_image_palette_t *palette; - - /* image private data */ - void *data; -}; -typedef struct rtgui_image rtgui_image_t; - -/* init rtgui image system */ -void rtgui_system_image_init(void); - -#if defined(RTGUI_USING_DFS_FILERW) -struct rtgui_image_engine *rtgui_image_get_engine_by_filename(const char *fn); -struct rtgui_image *rtgui_image_create_from_file(const char *type, const char *filename, rt_bool_t load); -struct rtgui_image *rtgui_image_create(const char *filename, rt_bool_t load); -#endif -struct rtgui_image *rtgui_image_create_from_mem(const char *type, const rt_uint8_t *data, rt_size_t length, rt_bool_t load); -void rtgui_image_destroy(struct rtgui_image *image); - -/* get image's rect */ -void rtgui_image_get_rect(struct rtgui_image *image, struct rtgui_rect *rect); - -/* register an image engine */ -void rtgui_image_register_engine(struct rtgui_image_engine *engine); - -/* blit an image on DC */ -void rtgui_image_blit(struct rtgui_image *image, struct rtgui_dc *dc, struct rtgui_rect *rect); -struct rtgui_image_palette *rtgui_image_palette_create(rt_uint32_t ncolors); -rtgui_image_t *rtgui_image_zoom(rtgui_image_t *image, float scalew, float scaleh, rt_uint32_t mode); -rtgui_image_t *rtgui_image_rotate(rtgui_image_t *image, float angle); - -#endif - diff --git a/components/rtgui/include/rtgui/image_bmp.h b/components/rtgui/include/rtgui/image_bmp.h deleted file mode 100644 index 7e5fbdc58c..0000000000 --- a/components/rtgui/include/rtgui/image_bmp.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * File : image_bmp.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2009, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE - * - * Change Logs: - * Date Author Notes - * 2010-08-10 Bernard first version - */ -#ifndef __RTGUI_IMAGE_BMP_H__ -#define __RTGUI_IMAGE_BMP_H__ - -#pragma pack(2) - -struct rtgui_image_bmp_header -{ - /* The Win32 BMP file header (14 bytes) */ - rt_uint16_t bfType; - rt_uint32_t bfSize; - rt_uint16_t bfReserved1; - rt_uint16_t bfReserved2; - rt_uint32_t bfOffBits; - - /* The Win32 BITMAPINFOHEADER struct (40 bytes) */ - rt_uint32_t biSize; - rt_int32_t biWidth; - rt_int32_t biHeight; - rt_uint16_t biPlanes; - rt_uint16_t biBitCount; - rt_uint32_t biCompression; - rt_uint32_t biSizeImage; - rt_int32_t biXPelsPerMeter; - rt_int32_t biYPelsPerMeter; - rt_uint32_t biClrUsed; - rt_uint32_t biClrImportant; -}; -#ifdef _WIN32_NATIVE -#pragma warning(disable : 4103) -#endif -void rtgui_image_bmp_init(void); - -#endif diff --git a/components/rtgui/include/rtgui/image_container.h b/components/rtgui/include/rtgui/image_container.h deleted file mode 100644 index 4fb3616cea..0000000000 --- a/components/rtgui/include/rtgui/image_container.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef __RTGUI_IMAGE_CONTAINER_H__ -#define __RTGUI_IMAGE_CONTAINER_H__ - -#include <rtgui/rtgui.h> -#include <rtgui/image.h> - -#ifdef RTGUI_IMAGE_CONTAINER -/* image item in image container */ -struct rtgui_image_item -{ - rtgui_image_t *image; - char *filename; - - rt_uint32_t refcount; -}; -typedef struct rtgui_image_item rtgui_image_item_t; - -void rtgui_system_image_container_init(rt_bool_t load); -#ifdef RTGUI_USING_DFS_FILERW -rtgui_image_item_t *rtgui_image_container_get(const char *filename); -#endif -rtgui_image_item_t *rtgui_image_container_get_from_mem(const rt_uint8_t *mem, const char *type, rt_uint32_t len); - -void rtgui_image_container_put(rtgui_image_item_t *item); -#endif - -#endif diff --git a/components/rtgui/include/rtgui/image_hdc.h b/components/rtgui/include/rtgui/image_hdc.h deleted file mode 100644 index 3ec1e7b1ef..0000000000 --- a/components/rtgui/include/rtgui/image_hdc.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * File : image_xpm.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2009, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE - * - * Change Logs: - * Date Author Notes - * 2009-10-16 Bernard first version - */ -#ifndef __RTGUI_IMAGE_HDC_H__ -#define __RTGUI_IMAGE_HDC_H__ - -#include <rtgui/image.h> - -struct rtgui_image_hdcmm -{ - struct rtgui_image parent; - - /* hdc image information */ - rt_uint16_t byte_per_pixel; - rt_uint16_t pitch; - - rt_uint8_t *pixels; -}; - -void rtgui_image_hdc_init(void); -extern const struct rtgui_image_engine rtgui_image_hdcmm_engine; - -#define HDC_HEADER_SIZE (5 * 4) -#define RTGUI_IMAGE_HDC_DEF(bpp, w, h, pixels) \ - {{w, h, &rtgui_image_hdcmm_engine, RT_NULL}, bpp, (bpp * w), ((rt_uint8_t*)pixels + HDC_HEADER_SIZE)} - -#endif diff --git a/components/rtgui/include/rtgui/image_jpeg.h b/components/rtgui/include/rtgui/image_jpeg.h deleted file mode 100644 index 9a22a68805..0000000000 --- a/components/rtgui/include/rtgui/image_jpeg.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef __RTGUI_IMAGE_JPEG_H__ -#define __RTGUI_IMAGE_JPEG_H__ - -#include <rtgui/image.h> - -void rtgui_image_jpeg_init(void); - -#endif diff --git a/components/rtgui/include/rtgui/image_png.h b/components/rtgui/include/rtgui/image_png.h deleted file mode 100644 index f2a6d2311d..0000000000 --- a/components/rtgui/include/rtgui/image_png.h +++ /dev/null @@ -1,21 +0,0 @@ -/* - * File : image_png.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2009, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE - * - * Change Logs: - * Date Author Notes - * 2009-10-16 Bernard first version - */ -#ifndef __RTGUI_IMAGE_PNG_H__ -#define __RTGUI_IMAGE_PNG_H__ - -#include <rtgui/image.h> - -void rtgui_image_png_init(void); - -#endif diff --git a/components/rtgui/include/rtgui/image_xpm.h b/components/rtgui/include/rtgui/image_xpm.h deleted file mode 100644 index 5c6af21313..0000000000 --- a/components/rtgui/include/rtgui/image_xpm.h +++ /dev/null @@ -1,21 +0,0 @@ -/* - * File : image_xpm.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2009, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE - * - * Change Logs: - * Date Author Notes - * 2009-10-16 Bernard first version - */ -#ifndef __RTGUI_IMAGE_XPM_H__ -#define __RTGUI_IMAGE_XPM_H__ - -#include <rtgui/image.h> - -void rtgui_image_xpm_init(void); - -#endif diff --git a/components/rtgui/include/rtgui/kbddef.h b/components/rtgui/include/rtgui/kbddef.h deleted file mode 100644 index d510445f0a..0000000000 --- a/components/rtgui/include/rtgui/kbddef.h +++ /dev/null @@ -1,295 +0,0 @@ -/* - * File : kbddef.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2009, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE - * - * Change Logs: - * Date Author Notes - * 2009-10-16 Bernard first version - */ -#ifndef __KBD_DEF_H__ -#define __KBD_DEF_H__ - -/* The keyboard key have been cleverly chosen to map to ASCII */ -typedef enum -{ - RTGUIK_UNKNOWN = 0, - RTGUIK_FIRST = 0, - RTGUIK_BACKSPACE = 8, - RTGUIK_TAB = 9, - RTGUIK_CLEAR = 12, - RTGUIK_RETURN = 13, - RTGUIK_PAUSE = 19, - RTGUIK_ESCAPE = 27, - RTGUIK_SPACE = 32, - RTGUIK_EXCLAIM = 33, - RTGUIK_QUOTEDBL = 34, - RTGUIK_HASH = 35, - RTGUIK_DOLLAR = 36, - RTGUIK_AMPERSAND = 38, - RTGUIK_QUOTE = 39, - RTGUIK_LEFTPAREN = 40, - RTGUIK_RIGHTPAREN = 41, - RTGUIK_ASTERISK = 42, - RTGUIK_PLUS = 43, - RTGUIK_COMMA = 44, - RTGUIK_MINUS = 45, - RTGUIK_PERIOD = 46, - RTGUIK_SLASH = 47, - RTGUIK_0 = 48, - RTGUIK_1 = 49, - RTGUIK_2 = 50, - RTGUIK_3 = 51, - RTGUIK_4 = 52, - RTGUIK_5 = 53, - RTGUIK_6 = 54, - RTGUIK_7 = 55, - RTGUIK_8 = 56, - RTGUIK_9 = 57, - RTGUIK_COLON = 58, - RTGUIK_SEMICOLON = 59, - RTGUIK_LESS = 60, - RTGUIK_EQUALS = 61, - RTGUIK_GREATER = 62, - RTGUIK_QUESTION = 63, - RTGUIK_AT = 64, - - /* - Skip uppercase letters - */ - RTGUIK_LEFTBRACKET = 91, - RTGUIK_BACKSLASH = 92, - RTGUIK_RIGHTBRACKET = 93, - RTGUIK_CARET = 94, - RTGUIK_UNDERSCORE = 95, - RTGUIK_BACKQUOTE = 96, - RTGUIK_a = 97, - RTGUIK_b = 98, - RTGUIK_c = 99, - RTGUIK_d = 100, - RTGUIK_e = 101, - RTGUIK_f = 102, - RTGUIK_g = 103, - RTGUIK_h = 104, - RTGUIK_i = 105, - RTGUIK_j = 106, - RTGUIK_k = 107, - RTGUIK_l = 108, - RTGUIK_m = 109, - RTGUIK_n = 110, - RTGUIK_o = 111, - RTGUIK_p = 112, - RTGUIK_q = 113, - RTGUIK_r = 114, - RTGUIK_s = 115, - RTGUIK_t = 116, - RTGUIK_u = 117, - RTGUIK_v = 118, - RTGUIK_w = 119, - RTGUIK_x = 120, - RTGUIK_y = 121, - RTGUIK_z = 122, - RTGUIK_DELETE = 127, - - /* International keyboard */ - RTGUIK_WORLD_0 = 160, /* 0xA0 */ - RTGUIK_WORLD_1 = 161, - RTGUIK_WORLD_2 = 162, - RTGUIK_WORLD_3 = 163, - RTGUIK_WORLD_4 = 164, - RTGUIK_WORLD_5 = 165, - RTGUIK_WORLD_6 = 166, - RTGUIK_WORLD_7 = 167, - RTGUIK_WORLD_8 = 168, - RTGUIK_WORLD_9 = 169, - RTGUIK_WORLD_10 = 170, - RTGUIK_WORLD_11 = 171, - RTGUIK_WORLD_12 = 172, - RTGUIK_WORLD_13 = 173, - RTGUIK_WORLD_14 = 174, - RTGUIK_WORLD_15 = 175, - RTGUIK_WORLD_16 = 176, - RTGUIK_WORLD_17 = 177, - RTGUIK_WORLD_18 = 178, - RTGUIK_WORLD_19 = 179, - RTGUIK_WORLD_20 = 180, - RTGUIK_WORLD_21 = 181, - RTGUIK_WORLD_22 = 182, - RTGUIK_WORLD_23 = 183, - RTGUIK_WORLD_24 = 184, - RTGUIK_WORLD_25 = 185, - RTGUIK_WORLD_26 = 186, - RTGUIK_WORLD_27 = 187, - RTGUIK_WORLD_28 = 188, - RTGUIK_WORLD_29 = 189, - RTGUIK_WORLD_30 = 190, - RTGUIK_WORLD_31 = 191, - RTGUIK_WORLD_32 = 192, - RTGUIK_WORLD_33 = 193, - RTGUIK_WORLD_34 = 194, - RTGUIK_WORLD_35 = 195, - RTGUIK_WORLD_36 = 196, - RTGUIK_WORLD_37 = 197, - RTGUIK_WORLD_38 = 198, - RTGUIK_WORLD_39 = 199, - RTGUIK_WORLD_40 = 200, - RTGUIK_WORLD_41 = 201, - RTGUIK_WORLD_42 = 202, - RTGUIK_WORLD_43 = 203, - RTGUIK_WORLD_44 = 204, - RTGUIK_WORLD_45 = 205, - RTGUIK_WORLD_46 = 206, - RTGUIK_WORLD_47 = 207, - RTGUIK_WORLD_48 = 208, - RTGUIK_WORLD_49 = 209, - RTGUIK_WORLD_50 = 210, - RTGUIK_WORLD_51 = 211, - RTGUIK_WORLD_52 = 212, - RTGUIK_WORLD_53 = 213, - RTGUIK_WORLD_54 = 214, - RTGUIK_WORLD_55 = 215, - RTGUIK_WORLD_56 = 216, - RTGUIK_WORLD_57 = 217, - RTGUIK_WORLD_58 = 218, - RTGUIK_WORLD_59 = 219, - RTGUIK_WORLD_60 = 220, - RTGUIK_WORLD_61 = 221, - RTGUIK_WORLD_62 = 222, - RTGUIK_WORLD_63 = 223, - RTGUIK_WORLD_64 = 224, - RTGUIK_WORLD_65 = 225, - RTGUIK_WORLD_66 = 226, - RTGUIK_WORLD_67 = 227, - RTGUIK_WORLD_68 = 228, - RTGUIK_WORLD_69 = 229, - RTGUIK_WORLD_70 = 230, - RTGUIK_WORLD_71 = 231, - RTGUIK_WORLD_72 = 232, - RTGUIK_WORLD_73 = 233, - RTGUIK_WORLD_74 = 234, - RTGUIK_WORLD_75 = 235, - RTGUIK_WORLD_76 = 236, - RTGUIK_WORLD_77 = 237, - RTGUIK_WORLD_78 = 238, - RTGUIK_WORLD_79 = 239, - RTGUIK_WORLD_80 = 240, - RTGUIK_WORLD_81 = 241, - RTGUIK_WORLD_82 = 242, - RTGUIK_WORLD_83 = 243, - RTGUIK_WORLD_84 = 244, - RTGUIK_WORLD_85 = 245, - RTGUIK_WORLD_86 = 246, - RTGUIK_WORLD_87 = 247, - RTGUIK_WORLD_88 = 248, - RTGUIK_WORLD_89 = 249, - RTGUIK_WORLD_90 = 250, - RTGUIK_WORLD_91 = 251, - RTGUIK_WORLD_92 = 252, - RTGUIK_WORLD_93 = 253, - RTGUIK_WORLD_94 = 254, - RTGUIK_WORLD_95 = 255, /* 0xFF */ - - /* Numeric keypad */ - RTGUIK_KP0 = 256, - RTGUIK_KP1 = 257, - RTGUIK_KP2 = 258, - RTGUIK_KP3 = 259, - RTGUIK_KP4 = 260, - RTGUIK_KP5 = 261, - RTGUIK_KP6 = 262, - RTGUIK_KP7 = 263, - RTGUIK_KP8 = 264, - RTGUIK_KP9 = 265, - RTGUIK_KP_PERIOD = 266, - RTGUIK_KP_DIVIDE = 267, - RTGUIK_KP_MULTIPLY = 268, - RTGUIK_KP_MINUS = 269, - RTGUIK_KP_PLUS = 270, - RTGUIK_KP_ENTER = 271, - RTGUIK_KP_EQUALS = 272, - - /* Arrows + Home/End pad */ - RTGUIK_UP = 273, - RTGUIK_DOWN = 274, - RTGUIK_RIGHT = 275, - RTGUIK_LEFT = 276, - RTGUIK_INSERT = 277, - RTGUIK_HOME = 278, - RTGUIK_END = 279, - RTGUIK_PAGEUP = 280, - RTGUIK_PAGEDOWN = 281, - - /* Function keys */ - RTGUIK_F1 = 282, - RTGUIK_F2 = 283, - RTGUIK_F3 = 284, - RTGUIK_F4 = 285, - RTGUIK_F5 = 286, - RTGUIK_F6 = 287, - RTGUIK_F7 = 288, - RTGUIK_F8 = 289, - RTGUIK_F9 = 290, - RTGUIK_F10 = 291, - RTGUIK_F11 = 292, - RTGUIK_F12 = 293, - RTGUIK_F13 = 294, - RTGUIK_F14 = 295, - RTGUIK_F15 = 296, - - /* Key state modifier keys */ - RTGUIK_NUMLOCK = 300, - RTGUIK_CAPSLOCK = 301, - RTGUIK_SCROLLOCK = 302, - RTGUIK_RSHIFT = 303, - RTGUIK_LSHIFT = 304, - RTGUIK_RCTRL = 305, - RTGUIK_LCTRL = 306, - RTGUIK_RALT = 307, - RTGUIK_LALT = 308, - RTGUIK_RMETA = 309, - RTGUIK_LMETA = 310, - RTGUIK_LSUPER = 311, /* Left "Windows" key */ - RTGUIK_RSUPER = 312, /* Right "Windows" key */ - RTGUIK_MODE = 313, /* "Alt Gr" key */ - RTGUIK_COMPOSE = 314, /* Multi-key compose key */ - - /* Miscellaneous function keys */ - RTGUIK_HELP = 315, - RTGUIK_PRINT = 316, - RTGUIK_SYSREQ = 317, - RTGUIK_BREAK = 318, - RTGUIK_MENU = 319, - RTGUIK_POWER = 320, /* Power key */ - - RTGUIK_LAST -} RTGUI_KBD_KEY; - -/* Enumeration of valid key mods (possibly OR'd together) */ -typedef enum -{ - RTGUI_KMOD_NONE = 0x0000, - RTGUI_KMOD_LSHIFT = 0x0001, - RTGUI_KMOD_RSHIFT = 0x0002, - RTGUI_KMOD_LCTRL = 0x0040, - RTGUI_KMOD_RCTRL = 0x0080, - RTGUI_KMOD_LALT = 0x0100, - RTGUI_KMOD_RALT = 0x0200, - RTGUI_KMOD_LMETA = 0x0400, - RTGUI_KMOD_RMETA = 0x0800, - RTGUI_KMOD_NUM = 0x1000, - RTGUI_KMOD_CAPS = 0x2000, - RTGUI_KMOD_MODE = 0x4000, - RTGUI_KMOD_RESERVED = 0x8000 -} RTGUI_KBD_MOD; - -typedef enum -{ - RTGUI_KEYDOWN, /* Keys pressed */ - RTGUI_KEYUP, /* Keys released */ -} RTGUI_KBD_TYPE; - -#endif diff --git a/components/rtgui/include/rtgui/list.h b/components/rtgui/include/rtgui/list.h deleted file mode 100644 index 20b3957181..0000000000 --- a/components/rtgui/include/rtgui/list.h +++ /dev/null @@ -1,66 +0,0 @@ -/* - * File : list.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2009, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE - * - * Change Logs: - * Date Author Notes - * 2009-10-16 Bernard first version - */ -#ifndef __RTGUI_LIST_H__ -#define __RTGUI_LIST_H__ - -#include <rtgui/rtgui.h> - -struct rtgui_list_node -{ - struct rtgui_list_node *next; -}; -typedef struct rtgui_list_node rtgui_list_t; - -rt_inline void rtgui_list_init(rtgui_list_t *l) -{ - l->next = (struct rtgui_list_node *)0; -} - -rt_inline void rtgui_list_append(rtgui_list_t *l, rtgui_list_t *n) -{ - struct rtgui_list_node *node; - - node = l; - while (node->next) node = node->next; - - /* append the node to the tail */ - node->next = n; - n->next = (struct rtgui_list_node *) 0; -} - -rt_inline void rtgui_list_insert(rtgui_list_t *l, rtgui_list_t *n) -{ - n->next = l->next; - l->next = n; -} - -rt_inline rtgui_list_t *rtgui_list_remove(rtgui_list_t *l, rtgui_list_t *n) -{ - /* remove slist head */ - struct rtgui_list_node *node = l; - while (node->next && node->next != n) node = node->next; - - /* remove node */ - if (node->next != (rtgui_list_t *)0) node->next = node->next->next; - - return l; -} - -#define rtgui_list_entry(node, type, member) \ - ((type *)((char*)(node)-(unsigned long)(&((type *)0)->member))) - -#define rtgui_list_foreach(node, list) \ - for ((node) = (list)->next; (node) != RT_NULL; (node) = (node)->next) - -#endif diff --git a/components/rtgui/include/rtgui/region.h b/components/rtgui/include/rtgui/region.h deleted file mode 100644 index ab36acccfb..0000000000 --- a/components/rtgui/include/rtgui/region.h +++ /dev/null @@ -1,104 +0,0 @@ -/* - * File : region.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2009, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE - * - * Change Logs: - * Date Author Notes - * 2009-10-16 Bernard first version - */ -#ifndef __RTGUI_REGION_H__ -#define __RTGUI_REGION_H__ - -#include <rtgui/rtgui.h> - -#if defined(__cplusplus) || defined(c_plusplus) -extern "C" { -#endif - -typedef struct rtgui_region_data rtgui_region_data_t; - -struct rtgui_region_data -{ - rt_uint32_t size; - rt_uint32_t numRects; - /* XXX: And why, exactly, do we have this bogus struct definition? */ - /* rtgui_rect_t rects[size]; in memory but not explicitly declared */ -}; - -typedef struct rtgui_region -{ - rtgui_rect_t extents; - rtgui_region_data_t *data; -} rtgui_region_t; - -typedef enum -{ - RTGUI_REGION_STATUS_FAILURE, - RTGUI_REGION_STATUS_SUCCESS -} rtgui_region_status_t; - -/* creation/destruction */ - -void rtgui_region_init(rtgui_region_t *region); -void rtgui_region_init_rect(rtgui_region_t *region, - int x, int y, unsigned int width, unsigned int height); -void rtgui_region_init_with_extents(rtgui_region_t *region, const rtgui_rect_t *extents); -void rtgui_region_fini(rtgui_region_t *region); - -void rtgui_region_translate(rtgui_region_t *region, int x, int y); - -rtgui_region_status_t rtgui_region_copy(rtgui_region_t *dest, rtgui_region_t *source); - -rtgui_region_status_t rtgui_region_intersect(rtgui_region_t *newReg, rtgui_region_t *reg1, rtgui_region_t *reg2); -rtgui_region_status_t rtgui_region_intersect_rect(rtgui_region_t *newReg, rtgui_region_t *reg1, rtgui_rect_t *rect); -rtgui_region_status_t rtgui_region_union(rtgui_region_t *newReg, rtgui_region_t *reg1, rtgui_region_t *reg2); -rtgui_region_status_t rtgui_region_union_rect(rtgui_region_t *dest, rtgui_region_t *source, rtgui_rect_t *rect); -rtgui_region_status_t rtgui_region_subtract(rtgui_region_t *regD, rtgui_region_t *regM, rtgui_region_t *regS); -rtgui_region_status_t rtgui_region_subtract_rect(rtgui_region_t *regD, rtgui_region_t *regM, rtgui_rect_t *rect); -rtgui_region_status_t rtgui_region_inverse(rtgui_region_t *newReg, rtgui_region_t *reg1, rtgui_rect_t *invRect); - -int rtgui_region_num_rects(rtgui_region_t *region); - -rtgui_rect_t *rtgui_region_rects(rtgui_region_t *region); - -#define RTGUI_REGION_OUT 0 -#define RTGUI_REGION_IN 1 -#define RTGUI_REGION_PART 2 - -int rtgui_region_contains_point(rtgui_region_t *region, int x, int y, rtgui_rect_t *box); -int rtgui_region_contains_rectangle(rtgui_region_t *rtgui_region_t, rtgui_rect_t *prect); - -int rtgui_region_not_empty(rtgui_region_t *region); -rtgui_rect_t *rtgui_region_extents(rtgui_region_t *region); - -rtgui_region_status_t rtgui_region_append(rtgui_region_t *dest, rtgui_region_t *region); -rtgui_region_status_t rtgui_region_validate(rtgui_region_t *badreg, int *pOverlap); - -void rtgui_region_reset(rtgui_region_t *region, rtgui_rect_t *rect); -void rtgui_region_empty(rtgui_region_t *region); -void rtgui_region_dump(rtgui_region_t *region); -int rtgui_region_is_flat(rtgui_region_t *region); - -/* rect functions */ -extern rtgui_rect_t rtgui_empty_rect; - -void rtgui_rect_moveto(rtgui_rect_t *rect, int x, int y); -void rtgui_rect_moveto_align(rtgui_rect_t *rect, rtgui_rect_t *to, int align); -void rtgui_rect_inflate(rtgui_rect_t *rect, int d); -void rtgui_rect_intersect(rtgui_rect_t *src, rtgui_rect_t *dest); -int rtgui_rect_contains_point(const rtgui_rect_t *rect, int x, int y); -int rtgui_rect_is_intersect(const rtgui_rect_t *rect1, const rtgui_rect_t *rect2); -int rtgui_rect_is_equal(const rtgui_rect_t *rect1, const rtgui_rect_t *rect2); -rtgui_rect_t *rtgui_rect_set(rtgui_rect_t *rect, int x, int y, int w, int h); -rt_bool_t rtgui_rect_is_empty(const rtgui_rect_t *rect); - -#if defined(__cplusplus) || defined(c_plusplus) -} -#endif - -#endif /* _PIXMAN_H_ */ diff --git a/components/rtgui/include/rtgui/rtgui.h b/components/rtgui/include/rtgui/rtgui.h deleted file mode 100644 index fc00d4559f..0000000000 --- a/components/rtgui/include/rtgui/rtgui.h +++ /dev/null @@ -1,150 +0,0 @@ -/* - * File : rtgui.h - * This file is part of RTGUI in RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2009, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE - * - * Change Logs: - * Date Author Notes - * 2009-10-04 Bernard first version - */ -#ifndef __RT_GUI_H__ -#define __RT_GUI_H__ - -#include <rtthread.h> -#include <rtgui/rtgui_config.h> - -#define RTGUI_VERSION 0L /**< major version number */ -#define RTGUI_SUBVERSION 6L /**< minor version number */ -#define RTGUI_REVISION 0L /**< revise version number */ -#define RTGUI_CODENAME "Newton" /**< code name */ - -#define RT_INT16_MAX 32767 -#define RT_INT16_MIN (-RT_INT16_MAX-1) -#define RTGUI_NOT_FOUND (-1) - -struct rtgui_event; - -struct rtgui_object; -struct rtgui_widget; -struct rtgui_win; -struct rtgui_font; - -typedef struct rtgui_win rtgui_win_t; -typedef rt_bool_t (*rtgui_event_handler_ptr)(struct rtgui_object *object, struct rtgui_event *event); -typedef void (*rtgui_onbutton_func_t)(struct rtgui_object *object, struct rtgui_event *event); - -/** - * Coordinate point - */ -struct rtgui_point -{ - rt_int16_t x, y; -}; -typedef struct rtgui_point rtgui_point_t; -extern rtgui_point_t rtgui_empty_point; - -/** - * Rectangle structure - */ -struct rtgui_rect -{ - rt_int16_t x1, y1, x2, y2; -}; -typedef struct rtgui_rect rtgui_rect_t; -#define rtgui_rect_width(r) ((r).x2 - (r).x1) -#define rtgui_rect_height(r) ((r).y2 - (r).y1) - -typedef unsigned long rtgui_color_t; - -/** - * Graphic context - */ -struct rtgui_gc -{ - /* foreground and background color */ - rtgui_color_t foreground, background; - - /* text style */ - rt_uint16_t textstyle; - /* text align */ - rt_uint16_t textalign; - - /* font */ - struct rtgui_font *font; -}; -typedef struct rtgui_gc rtgui_gc_t; - -enum RTGUI_MARGIN_STYLE -{ - RTGUI_MARGIN_LEFT = 0x01, - RTGUI_MARGIN_RIGHT = 0x02, - RTGUI_MARGIN_TOP = 0x04, - RTGUI_MARGIN_BOTTOM = 0x08, - RTGUI_MARGIN_ALL = RTGUI_MARGIN_LEFT | RTGUI_MARGIN_RIGHT | RTGUI_MARGIN_TOP | RTGUI_MARGIN_BOTTOM -}; - -/** - * Border style - */ -enum RTGUI_BORDER_STYLE -{ - RTGUI_BORDER_NONE = 0, - RTGUI_BORDER_SIMPLE, - RTGUI_BORDER_RAISE, - RTGUI_BORDER_SUNKEN, - RTGUI_BORDER_BOX, - RTGUI_BORDER_STATIC, - RTGUI_BORDER_EXTRA, - RTGUI_BORDER_UP, - RTGUI_BORDER_DOWN -}; -#define RTGUI_BORDER_DEFAULT_WIDTH 2 -#define RTGUI_WIDGET_DEFAULT_MARGIN 3 - -/** - * Orientation - */ -enum RTGUI_ORIENTATION -{ - RTGUI_HORIZONTAL = 0x01, - RTGUI_VERTICAL = 0x02, - RTGUI_ORIENTATION_BOTH = RTGUI_HORIZONTAL | RTGUI_VERTICAL -}; - -enum RTGUI_ALIGN -{ - RTGUI_ALIGN_NOT = 0x00, - RTGUI_ALIGN_CENTER_HORIZONTAL = 0x01, - RTGUI_ALIGN_LEFT = RTGUI_ALIGN_NOT, - RTGUI_ALIGN_TOP = RTGUI_ALIGN_NOT, - RTGUI_ALIGN_RIGHT = 0x02, - RTGUI_ALIGN_BOTTOM = 0x04, - RTGUI_ALIGN_CENTER_VERTICAL = 0x08, - RTGUI_ALIGN_CENTER = RTGUI_ALIGN_CENTER_HORIZONTAL | RTGUI_ALIGN_CENTER_VERTICAL, - RTGUI_ALIGN_EXPAND = 0x10, - RTGUI_ALIGN_STRETCH = 0x20, -}; - -enum RTGUI_TEXTSTYLE -{ - RTGUI_TEXTSTYLE_NORMAL = 0x00, - RTGUI_TEXTSTYLE_DRAW_BACKGROUND = 0x01, - RTGUI_TEXTSTYLE_SHADOW = 0x02, - RTGUI_TEXTSTYLE_OUTLINE = 0x04, -}; - -enum RTGUI_MODAL_CODE -{ - RTGUI_MODAL_OK, - RTGUI_MODAL_CANCEL -}; -typedef enum RTGUI_MODAL_CODE rtgui_modal_code_t; - -#include <rtgui/rtgui_object.h> - -#endif - diff --git a/components/rtgui/include/rtgui/rtgui_app.h b/components/rtgui/include/rtgui/rtgui_app.h deleted file mode 100644 index 67f5e0ae4c..0000000000 --- a/components/rtgui/include/rtgui/rtgui_app.h +++ /dev/null @@ -1,96 +0,0 @@ -/* - * File : rtgui_app.h - * This file is part of RTGUI in RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2012, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE - * - * Change Logs: - * Date Author Notes - * 2012-01-13 Grissiom first version - */ - -#ifndef __RTGUI_APP_H__ -#define __RTGUI_APP_H__ - -#include <rtthread.h> -#include <rtgui/rtgui.h> -#include <rtgui/event.h> -#include <rtgui/rtgui_system.h> - -DECLARE_CLASS_TYPE(application); - -/** Gets the type of a application */ -#define RTGUI_APP_TYPE (RTGUI_TYPE(application)) -/** Casts the object to an rtgui_workbench */ -#define RTGUI_APP(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_APP_TYPE, struct rtgui_app)) -/** Checks if the object is an rtgui_workbench */ -#define RTGUI_IS_APP(obj) (RTGUI_OBJECT_CHECK_TYPE((obj), RTGUI_APP_TYPE)) - -enum rtgui_app_flag -{ - RTGUI_APP_FLAG_EXITED = 0x04, - RTGUI_APP_FLAG_SHOWN = 0x08 -}; - -typedef void (*rtgui_idle_func_t)(struct rtgui_object *obj, struct rtgui_event *event); - -struct rtgui_app -{ - struct rtgui_object parent; - - /* application name */ - unsigned char *name; - struct rtgui_image *icon; - - enum rtgui_app_flag state_flag; - - rt_uint16_t ref_count; - rt_uint16_t exit_code; - - /* the thread id */ - rt_thread_t tid; - /* the message queue of thread */ - rt_mq_t mq; - /* event buffer */ - rt_uint8_t event_buffer[sizeof(union rtgui_event_generic)]; - - /* if not RT_NULL, the application is in modal state by modal_object. If is - * RT_NULL, nothing modal windows. */ - struct rtgui_object *modal_object; - struct rtgui_object *main_object; - - /* on idle event handler */ - rtgui_idle_func_t on_idle; -}; - -/** - * create an application named @myname on current thread. - * - * @param name the name of the application - * - * @return a pointer to struct rtgui_app on success. RT_NULL on failure. - */ -struct rtgui_app *rtgui_app_create(const char *name); -void rtgui_app_destroy(struct rtgui_app *app); -rt_bool_t rtgui_app_event_handler(struct rtgui_object *obj, rtgui_event_t *event); - -rt_base_t rtgui_app_run(struct rtgui_app *app); -void rtgui_app_exit(struct rtgui_app *app, rt_uint16_t code); -void rtgui_app_activate(struct rtgui_app *app); -void rtgui_app_close(struct rtgui_app *app); - -void rtgui_app_set_onidle(struct rtgui_app *app, rtgui_idle_func_t onidle); -rtgui_idle_func_t rtgui_app_get_onidle(struct rtgui_app *app); - -/** - * return the rtgui_app struct on current thread - */ -struct rtgui_app *rtgui_app_self(void); - -rt_err_t rtgui_app_set_as_wm(struct rtgui_app *app); -void rtgui_app_set_main_win(struct rtgui_app *app, struct rtgui_win *win); - -#endif /* end of include guard: __RTGUI_APP_H__ */ diff --git a/components/rtgui/include/rtgui/rtgui_config.h b/components/rtgui/include/rtgui/rtgui_config.h deleted file mode 100644 index 514e94b04c..0000000000 --- a/components/rtgui/include/rtgui/rtgui_config.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * File : rtgui_config.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2009, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE - * - * Change Logs: - * Date Author Notes - * 2009-10-16 Bernard first version - * 2010-02-08 Bernard move some RTGUI options to bsp - */ - -#ifndef __RTGUI_CONFIG_H__ -#define __RTGUI_CONFIG_H__ - -/* RTGUI options */ - -#ifndef RT_USING_DFS -#undef RTGUI_USING_DFS_FILERW -#undef RTGUI_USING_HZ_FILE -#endif - -#if RTGUI_DEFAULT_FONT_SIZE == 0 -#define RTGUI_DEFAULT_FONT_SIZE 12 -#endif - -#define RTGUI_SVR_THREAD_PRIORITY 15 -#define RTGUI_SVR_THREAD_TIMESLICE 5 -#ifdef RTGUI_USING_SMALL_SIZE -#define RTGUI_SVR_THREAD_STACK_SIZE 1024 -#else -#define RTGUI_SVR_THREAD_STACK_SIZE 2048 -#endif - -#define RTGUI_APP_THREAD_PRIORITY 25 -#define RTGUI_APP_THREAD_TIMESLICE 5 -#ifdef RTGUI_USING_SMALL_SIZE -#define RTGUI_APP_THREAD_STACK_SIZE 1024 -#else -#define RTGUI_APP_THREAD_STACK_SIZE 2048 -#endif - -#define RTGUI_USING_CAST_CHECK - -//#define RTGUI_USING_DESKTOP_WINDOW -//#undef RTGUI_USING_SMALL_SIZE - -#endif diff --git a/components/rtgui/include/rtgui/rtgui_mv_model.h b/components/rtgui/include/rtgui/rtgui_mv_model.h deleted file mode 100644 index 072fad7c12..0000000000 --- a/components/rtgui/include/rtgui/rtgui_mv_model.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * File : rtgui_mv_model.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2012, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE - * - * Change Logs: - * Date Author Notes - * 2012-09-15 Grissiom first version - */ -#ifndef __RTGUI_MV_MODEL_H__ -#define __RTGUI_MV_MODEL_H__ - -#include <rtgui/rtgui.h> -#include <rtgui/widgets/mv_view.h> - -DECLARE_CLASS_TYPE(mv_model); - -/** Gets the type of a mv_model */ -#define RTGUI_MV_MODEL_TYPE (RTGUI_TYPE(mv_model)) -/** Casts the object to an mv_model */ -#define RTGUI_MV_MODEL(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_MV_MODEL_TYPE, struct rtgui_mv_model)) -/** Checks if the object is an mv_model */ -#define RTGUI_IS_MV_MODEL(obj) (RTGUI_OBJECT_CHECK_TYPE((obj), RTGUI_MV_MODEL_TYPE)) - -struct rtgui_mv_model -{ - struct rtgui_object parent; - - rt_uint16_t dimension; - rt_uint16_t view_number; - /* the length of data */ - rt_uint16_t length; - /* if the dimension is 1, the data is the pointer to the data. If the - * dimension is more than 1, data is a pointer to a array of pointers to - * data. */ - void *data; - /* the content of view is like the content of data. If a model has more - * then one view, view is pointed to an array of pointers to views. */ - void *view; -}; - -struct rtgui_mv_model *rtgui_mv_model_create(rt_uint16_t dimension); -void rtgui_mv_model_destroy(struct rtgui_mv_model *model); - -rt_err_t rtgui_mv_model_set_dimension(struct rtgui_mv_model *model, rt_uint16_t dimension); -rt_err_t rtgui_mv_model_add_view(struct rtgui_mv_model *, struct rtgui_mv_view *); -void rtgui_mv_model_remove_view(struct rtgui_mv_model *, struct rtgui_mv_view *); - -rt_bool_t rtgui_mv_model_has_view(struct rtgui_mv_model *model, struct rtgui_mv_view *view); -void rtgui_mv_model_set_data(struct rtgui_mv_model *model, rt_uint16_t dim, void *p); -void *rtgui_mv_model_get_data(struct rtgui_mv_model *model, rt_uint16_t dim); -void rtgui_mv_model_notify(struct rtgui_mv_model *model, struct rtgui_event_mv_model *em); - -#endif /* end of include guard: __RTGUI_MV_MODEL_H__ */ diff --git a/components/rtgui/include/rtgui/rtgui_object.h b/components/rtgui/include/rtgui/rtgui_object.h deleted file mode 100644 index 57fd47f0eb..0000000000 --- a/components/rtgui/include/rtgui/rtgui_object.h +++ /dev/null @@ -1,148 +0,0 @@ -/* - * File : rtgui_object.h - * This file is part of RTGUI in RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2009, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE - * - * Change Logs: - * Date Author Notes - * 2009-10-04 Bernard first version - */ -#ifndef __RTGUI_OBJECT_H__ -#define __RTGUI_OBJECT_H__ - - -#include <rtthread.h> -#include <rtgui/rtgui.h> - -#ifdef __cplusplus -extern "C" { -#endif - - /* rtgui object type */ -#define RTGUI_CONTAINER_OF(obj, type, member) \ - ((type *)((char *)(obj) - (unsigned long)(&((type *)0)->member))) - - /** Casts the function pointer to an rtgui_constructor */ -#define RTGUI_CONSTRUCTOR(constructor) ((rtgui_constructor_t)(constructor)) - /** Casts the function pointer to an rtgui_constructor */ -#define RTGUI_DESTRUCTOR(destructor) ((rtgui_destructor_t)(destructor)) - - /* pre-definition */ - struct rtgui_object; - typedef struct rtgui_object rtgui_object_t; - typedef void (*rtgui_constructor_t)(rtgui_object_t *object); - typedef void (*rtgui_destructor_t)(rtgui_object_t *object); - - /* rtgui type structure */ - struct rtgui_type - { - /* type name */ - char *name; - - /* parent type link */ - struct rtgui_type *parent; - - /* constructor and destructor */ - rtgui_constructor_t constructor; - rtgui_destructor_t destructor; - - /* size of type */ - int size; - }; - typedef struct rtgui_type rtgui_type_t; -#define RTGUI_TYPE(type) (struct rtgui_type*)&(_rtgui_##type) - -#define DECLARE_CLASS_TYPE(type) extern const struct rtgui_type _rtgui_##type -#define DEFINE_CLASS_TYPE(type, name, parent, constructor, destructor, size) \ - const struct rtgui_type _rtgui_##type = { \ - name, \ - parent, \ - RTGUI_CONSTRUCTOR(constructor), \ - RTGUI_DESTRUCTOR(destructor), \ - size } - - void rtgui_type_object_construct(const rtgui_type_t *type, rtgui_object_t *object); - void rtgui_type_destructors_call(const rtgui_type_t *type, rtgui_object_t *object); - rt_bool_t rtgui_type_inherits_from(const rtgui_type_t *type, const rtgui_type_t *parent); - const rtgui_type_t *rtgui_type_parent_type_get(const rtgui_type_t *type); - const char *rtgui_type_name_get(const rtgui_type_t *type); - const rtgui_type_t *rtgui_object_object_type_get(rtgui_object_t *object); - -#ifdef RTGUI_USING_CAST_CHECK -#define RTGUI_OBJECT_CAST(obj, obj_type, c_type) \ - ((c_type *)rtgui_object_check_cast((rtgui_object_t *)(obj), (obj_type), __FUNCTION__, __LINE__)) -#else -#define RTGUI_OBJECT_CAST(obj, obj_type, c_type) ((c_type *)(obj)) -#endif - -#define RTGUI_OBJECT_CHECK_TYPE(_obj, _type) \ - (rtgui_type_inherits_from(((rtgui_object_t *)(_obj))->type, (_type))) - - DECLARE_CLASS_TYPE(object); - /** Gets the type of an object */ -#define RTGUI_OBJECT_TYPE RTGUI_TYPE(object) - /** Casts the object to an rtgui_object_t */ -#define RTGUI_OBJECT(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_OBJECT_TYPE, struct rtgui_object)) - /** Checks if the object is an rtgui_Object */ -#define RTGUI_IS_OBJECT(obj) (RTGUI_OBJECT_CHECK_TYPE((obj), RTGUI_OBJECT_TYPE)) - - enum rtgui_object_flag - { - RTGUI_OBJECT_FLAG_NONE = 0x00, - RTGUI_OBJECT_FLAG_STATIC = 0x01, - RTGUI_OBJECT_FLAG_DISABLED = 0x02 - }; - - /* rtgui base object */ - struct rtgui_object - { - /* object type */ - const rtgui_type_t *type; - - /* the event handler */ - rtgui_event_handler_ptr event_handler; - - enum rtgui_object_flag flag; - }; - - rtgui_object_t *rtgui_object_create(rtgui_type_t *object_type); - void rtgui_object_destroy(rtgui_object_t *object); - - /* set the event handler of object */ - void rtgui_object_set_event_handler(struct rtgui_object *object, rtgui_event_handler_ptr handler); - /* object default event handler */ - rt_bool_t rtgui_object_event_handler(struct rtgui_object *object, struct rtgui_event *event); - /* helper micro. widget event handlers could use this. */ -#define RTGUI_WIDGET_EVENT_HANDLER_PREPARE \ - struct rtgui_widget *widget; \ - RT_ASSERT(object != RT_NULL); \ - RT_ASSERT(event != RT_NULL); \ - widget = RTGUI_WIDGET(object); \ - /* supress compiler warning */ \ - widget = widget; - - /** handle @param event on @param object's own event handler - * - * If the @param object does not have an event handler, which means the object - * does not interested in any event, it will return RT_FALSE. Otherwise, the - * return code of that handler is returned. - */ - rt_inline rt_bool_t rtgui_object_handle(struct rtgui_object *object, struct rtgui_event *event) - { - if (object->event_handler) - return object->event_handler(object, event); - return RT_FALSE; - } - - rtgui_object_t *rtgui_object_check_cast(rtgui_object_t *object, rtgui_type_t *type, const char *func, int line); - rtgui_type_t *rtk_object_object_type_get(rtgui_object_t *object); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/components/rtgui/include/rtgui/rtgui_server.h b/components/rtgui/include/rtgui/rtgui_server.h deleted file mode 100644 index de459bf29e..0000000000 --- a/components/rtgui/include/rtgui/rtgui_server.h +++ /dev/null @@ -1,86 +0,0 @@ -/* - * File : rtgui_server.h - * This file is part of RTGUI in RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2009, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE - * - * Change Logs: - * Date Author Notes - * 2009-10-04 Bernard first version - */ -#ifndef __RTGUI_SERVER_H__ -#define __RTGUI_SERVER_H__ - -#include <rtgui/list.h> -#include <rtgui/dlist.h> - -/* RTGUI server definitions */ - -/* top window definitions in server */ -enum rtgui_topwin_flag -{ - WINTITLE_NO = 0x01, - WINTITLE_BORDER = 0x02, - WINTITLE_ACTIVATE = 0x04, - WINTITLE_CLOSEBOX = 0x08, - WINTITLE_MOVE = 0x0C, - WINTITLE_CB_PRESSED = 0x10, - WINTITLE_NOFOCUS = 0x20, - /* window is hidden by default */ - WINTITLE_SHOWN = 0x40, - /* window is modaled by other window */ - WINTITLE_MODALED = 0x80, - /* window is modaling other window */ - WINTITLE_MODALING = 0x100, - WINTITLE_ONTOP = 0x200, - WINTITLE_ONBTM = 0x400, -}; - -#define WINTITLE_HEIGHT 20 -#define WINTITLE_CB_WIDTH 16 -#define WINTITLE_CB_HEIGHT 16 -#define WINTITLE_BORDER_SIZE 2 - -struct rtgui_topwin -{ - /* the window flag */ - enum rtgui_topwin_flag flag; - /* event mask */ - rt_uint32_t mask; - - struct rtgui_wintitle *title; - - /* the window id */ - struct rtgui_win *wid; - - /* which app I belong */ - struct rtgui_app *app; - - /* the extent information */ - rtgui_rect_t extent; - - struct rtgui_topwin *parent; - - /* we need to iterate the topwin list with usual order(get target window) - * or reversely(painting). So it's better to use a double linked list */ - struct rtgui_dlist_node list; - struct rtgui_dlist_node child_list; - - /* the monitor rect list */ - rtgui_list_t monitor_list; -}; -typedef struct rtgui_topwin rtgui_topwin_t; - -/* top win manager init */ -void rtgui_topwin_init(void); -void rtgui_server_init(void); - -/* post an event to server */ -void rtgui_server_post_event(struct rtgui_event *event, rt_size_t size); -rt_err_t rtgui_server_post_event_sync(struct rtgui_event *event, rt_size_t size); - -#endif - diff --git a/components/rtgui/include/rtgui/rtgui_system.h b/components/rtgui/include/rtgui/rtgui_system.h deleted file mode 100644 index 8f8edaaacc..0000000000 --- a/components/rtgui/include/rtgui/rtgui_system.h +++ /dev/null @@ -1,78 +0,0 @@ -/* - * File : rtgui_system.h - * This file is part of RTGUI in RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2009, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE - * - * Change Logs: - * Date Author Notes - * 2009-10-04 Bernard first version - */ -#ifndef __RTGUI_SYSTEM_H__ -#define __RTGUI_SYSTEM_H__ - -#include <rtthread.h> -#include <rtgui/rtgui.h> - -struct rtgui_dc; -struct rtgui_event; -struct rtgui_widget; - -struct rtgui_timer; -typedef void (*rtgui_timeout_func)(struct rtgui_timer *timer, void *parameter); - -struct rtgui_timer -{ - /* the rtgui application it runs on */ - struct rtgui_app* app; - /* rt timer */ - struct rt_timer timer; - - /* timeout function and user data */ - rtgui_timeout_func timeout; - void *user_data; -}; -typedef struct rtgui_timer rtgui_timer_t; - -rtgui_timer_t *rtgui_timer_create(rt_int32_t time, rt_base_t flag, rtgui_timeout_func timeout, void *parameter); -void rtgui_timer_destory(rtgui_timer_t *timer); - -void rtgui_timer_start(rtgui_timer_t *timer); -void rtgui_timer_stop(rtgui_timer_t *timer); - -/* rtgui system initialization function */ -void rtgui_system_server_init(void); - -void *rtgui_malloc(rt_size_t size); -void rtgui_free(void *ptr); -void *rtgui_realloc(void *ptr, rt_size_t size); - -#ifdef _WIN32_NATIVE -#define rtgui_enter_critical() -#define rtgui_exit_critical() -#else -#define rtgui_enter_critical rt_enter_critical -#define rtgui_exit_critical rt_exit_critical -#endif - -struct rtgui_app* rtgui_get_server(void); -void rtgui_set_mainwin_rect(struct rtgui_rect *rect); -void rtgui_get_mainwin_rect(struct rtgui_rect *rect); -void rtgui_get_screen_rect(struct rtgui_rect *rect); - -void rtgui_screen_lock(rt_int32_t timeout); -void rtgui_screen_unlock(void); - -struct rtgui_event; -rt_err_t rtgui_send(struct rtgui_app* app, struct rtgui_event *event, rt_size_t event_size); -rt_err_t rtgui_send_urgent(struct rtgui_app* app, struct rtgui_event *event, rt_size_t event_size); -rt_err_t rtgui_send_sync(struct rtgui_app* app, struct rtgui_event *event, rt_size_t event_size); -rt_err_t rtgui_ack(struct rtgui_event *event, rt_int32_t status); -rt_err_t rtgui_recv(struct rtgui_event *event, rt_size_t event_size); -rt_err_t rtgui_recv_nosuspend(struct rtgui_event *event, rt_size_t event_size); -rt_err_t rtgui_recv_filter(rt_uint32_t type, struct rtgui_event *event, rt_size_t event_size); - -#endif diff --git a/components/rtgui/include/rtgui/rtgui_theme.h b/components/rtgui/include/rtgui/rtgui_theme.h deleted file mode 100644 index 8f70277ec9..0000000000 --- a/components/rtgui/include/rtgui/rtgui_theme.h +++ /dev/null @@ -1,66 +0,0 @@ -/* - * File : rtgui_theme.h - * This file is part of RTGUI in RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2009, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE - * - * Change Logs: - * Date Author Notes - * 2009-10-04 Bernard first version - */ -#ifndef __RTGUI_THEME_H__ -#define __RTGUI_THEME_H__ - -#include <rtgui/rtgui.h> -#include <rtgui/rtgui_server.h> - -#define CHECK_BOX_W 13 -#define CHECK_BOX_H 13 - -#define RADIO_BOX_W 12 -#define RADIO_BOX_H 12 - -#include <rtgui/widgets/label.h> -#include <rtgui/widgets/button.h> -#include <rtgui/widgets/textbox.h> -#include <rtgui/widgets/iconbox.h> -#include <rtgui/widgets/checkbox.h> -#include <rtgui/widgets/radiobox.h> -#include <rtgui/widgets/slider.h> -#include <rtgui/widgets/scrollbar.h> -#include <rtgui/widgets/progressbar.h> -#include <rtgui/widgets/staticline.h> - -#ifdef __cplusplus -extern "C" { -#endif - - void rtgui_system_theme_init(void); - - void rtgui_theme_draw_win(struct rtgui_topwin *win); - void rtgui_theme_draw_button(rtgui_button_t *btn); - void rtgui_theme_draw_label(rtgui_label_t *label); - void rtgui_theme_draw_textbox(rtgui_textbox_t *box); - void rtgui_theme_draw_iconbox(rtgui_iconbox_t *iconbox); - void rtgui_theme_draw_checkbox(rtgui_checkbox_t *checkbox); - void rtgui_theme_draw_radiobutton(struct rtgui_radiobox *radiobox, rt_uint16_t item); - - void rtgui_theme_draw_radiobox(struct rtgui_radiobox *radiobox); - void rtgui_theme_draw_slider(struct rtgui_slider *slider); - void rtgui_theme_draw_progressbar(struct rtgui_progressbar *bar); - void rtgui_theme_draw_staticline(struct rtgui_staticline *staticline); - - rt_uint16_t rtgui_theme_get_selected_height(void); - void rtgui_theme_draw_selected(struct rtgui_dc *dc, rtgui_rect_t *rect); - - rtgui_color_t rtgui_theme_default_bc(void); - rtgui_color_t rtgui_theme_default_fc(void); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/components/rtgui/include/rtgui/rtgui_xml.h b/components/rtgui/include/rtgui/rtgui_xml.h deleted file mode 100644 index 977f7967d1..0000000000 --- a/components/rtgui/include/rtgui/rtgui_xml.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef __RTGUI_XML_H__ -#define __RTGUI_XML_H__ - -#include <rtgui/rtgui.h> - -/* Types of events: start element, end element, text, attr name, attr - val and start/end document. Other events can be ignored! */ -enum -{ - EVENT_START = 0, /* Start tag */ - EVENT_END, /* End tag */ - EVENT_TEXT, /* Text */ - EVENT_NAME, /* Attribute name */ - EVENT_VAL, /* Attribute value */ - EVENT_END_DOC, /* End of document */ - EVENT_COPY, /* Internal only; copies to internal buffer */ - EVENT_NONE /* Internal only; should never see this event */ -}; - -/* xml structure typedef */ -typedef struct rtgui_xml rtgui_xml_t; -typedef int (*rtgui_xml_event_handler_t)(rt_uint8_t event, const char *text, rt_size_t len, void *user); - -/* create a xml parser context */ -rtgui_xml_t *rtgui_xml_create(rt_size_t buffer_size, rtgui_xml_event_handler_t handler, void *user); -/* destroy a xml parser context */ -void rtgui_xml_destroy(rtgui_xml_t *rtgui_xml); - -/* parse xml buffer */ -int rtgui_xml_parse(rtgui_xml_t *rtgui_xml, const char *buf, rt_size_t len); - -/* event string */ -const char *rtgui_xml_event_str(rt_uint8_t event); - -#endif diff --git a/components/rtgui/include/rtgui/tree.h b/components/rtgui/include/rtgui/tree.h deleted file mode 100644 index 58653fb00d..0000000000 --- a/components/rtgui/include/rtgui/tree.h +++ /dev/null @@ -1,748 +0,0 @@ -/* $NetBSD: tree.h,v 1.8 2004/03/28 19:38:30 provos Exp $ */ -/* $OpenBSD: tree.h,v 1.7 2002/10/17 21:51:54 art Exp $ */ -/* $FreeBSD$ */ - -/*- - * Copyright 2002 Niels Provos <[email protected]> - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef _SYS_TREE_H_ -#define _SYS_TREE_H_ - -#ifndef NULL -#define NULL RT_NULL -#endif -// #include <sys/cdefs.h> - -/* - * This file defines data structures for different types of trees: - * splay trees and red-black trees. - * - * A splay tree is a self-organizing data structure. Every operation - * on the tree causes a splay to happen. The splay moves the requested - * node to the root of the tree and partly rebalances it. - * - * This has the benefit that request locality causes faster lookups as - * the requested nodes move to the top of the tree. On the other hand, - * every lookup causes memory writes. - * - * The Balance Theorem bounds the total access time for m operations - * and n inserts on an initially empty tree as O((m + n)lg n). The - * amortized cost for a sequence of m accesses to a splay tree is O(lg n); - * - * A red-black tree is a binary search tree with the node color as an - * extra attribute. It fulfills a set of conditions: - * - every search path from the root to a leaf consists of the - * same number of black nodes, - * - each red node (except for the root) has a black parent, - * - each leaf node is black. - * - * Every operation on a red-black tree is bounded as O(lg n). - * The maximum height of a red-black tree is 2lg (n+1). - */ - -#define SPLAY_HEAD(name, type) \ -struct name { \ - struct type *sph_root; /* root of the tree */ \ -} - -#define SPLAY_INITIALIZER(root) \ - { NULL } - -#define SPLAY_INIT(root) do { \ - (root)->sph_root = NULL; \ -} while (/*CONSTCOND*/ 0) - -#define SPLAY_ENTRY(type) \ -struct { \ - struct type *spe_left; /* left element */ \ - struct type *spe_right; /* right element */ \ -} - -#define SPLAY_LEFT(elm, field) (elm)->field.spe_left -#define SPLAY_RIGHT(elm, field) (elm)->field.spe_right -#define SPLAY_ROOT(head) (head)->sph_root -#define SPLAY_EMPTY(head) (SPLAY_ROOT(head) == NULL) - -/* SPLAY_ROTATE_{LEFT,RIGHT} expect that tmp hold SPLAY_{RIGHT,LEFT} */ -#define SPLAY_ROTATE_RIGHT(head, tmp, field) do { \ - SPLAY_LEFT((head)->sph_root, field) = SPLAY_RIGHT(tmp, field); \ - SPLAY_RIGHT(tmp, field) = (head)->sph_root; \ - (head)->sph_root = tmp; \ -} while (/*CONSTCOND*/ 0) - -#define SPLAY_ROTATE_LEFT(head, tmp, field) do { \ - SPLAY_RIGHT((head)->sph_root, field) = SPLAY_LEFT(tmp, field); \ - SPLAY_LEFT(tmp, field) = (head)->sph_root; \ - (head)->sph_root = tmp; \ -} while (/*CONSTCOND*/ 0) - -#define SPLAY_LINKLEFT(head, tmp, field) do { \ - SPLAY_LEFT(tmp, field) = (head)->sph_root; \ - tmp = (head)->sph_root; \ - (head)->sph_root = SPLAY_LEFT((head)->sph_root, field); \ -} while (/*CONSTCOND*/ 0) - -#define SPLAY_LINKRIGHT(head, tmp, field) do { \ - SPLAY_RIGHT(tmp, field) = (head)->sph_root; \ - tmp = (head)->sph_root; \ - (head)->sph_root = SPLAY_RIGHT((head)->sph_root, field); \ -} while (/*CONSTCOND*/ 0) - -#define SPLAY_ASSEMBLE(head, node, left, right, field) do { \ - SPLAY_RIGHT(left, field) = SPLAY_LEFT((head)->sph_root, field); \ - SPLAY_LEFT(right, field) = SPLAY_RIGHT((head)->sph_root, field);\ - SPLAY_LEFT((head)->sph_root, field) = SPLAY_RIGHT(node, field); \ - SPLAY_RIGHT((head)->sph_root, field) = SPLAY_LEFT(node, field); \ -} while (/*CONSTCOND*/ 0) - -/* Generates prototypes and inline functions */ - -#define SPLAY_PROTOTYPE(name, type, field, cmp) \ -void name##_SPLAY(struct name *, struct type *); \ -void name##_SPLAY_MINMAX(struct name *, int); \ -struct type *name##_SPLAY_INSERT(struct name *, struct type *); \ -struct type *name##_SPLAY_REMOVE(struct name *, struct type *); \ - \ -/* Finds the node with the same key as elm */ \ -rt_inline struct type * \ -name##_SPLAY_FIND(struct name *head, struct type *elm) \ -{ \ - if (SPLAY_EMPTY(head)) \ - return(NULL); \ - name##_SPLAY(head, elm); \ - if ((cmp)(elm, (head)->sph_root) == 0) \ - return (head->sph_root); \ - return (NULL); \ -} \ - \ -rt_inline struct type * \ -name##_SPLAY_NEXT(struct name *head, struct type *elm) \ -{ \ - name##_SPLAY(head, elm); \ - if (SPLAY_RIGHT(elm, field) != NULL) { \ - elm = SPLAY_RIGHT(elm, field); \ - while (SPLAY_LEFT(elm, field) != NULL) { \ - elm = SPLAY_LEFT(elm, field); \ - } \ - } else \ - elm = NULL; \ - return (elm); \ -} \ - \ -rt_inline struct type * \ -name##_SPLAY_MIN_MAX(struct name *head, int val) \ -{ \ - name##_SPLAY_MINMAX(head, val); \ - return (SPLAY_ROOT(head)); \ -} - -/* Main splay operation. - * Moves node close to the key of elm to top - */ -#define SPLAY_GENERATE(name, type, field, cmp) \ -struct type * \ -name##_SPLAY_INSERT(struct name *head, struct type *elm) \ -{ \ - if (SPLAY_EMPTY(head)) { \ - SPLAY_LEFT(elm, field) = SPLAY_RIGHT(elm, field) = NULL; \ - } else { \ - int __comp; \ - name##_SPLAY(head, elm); \ - __comp = (cmp)(elm, (head)->sph_root); \ - if(__comp < 0) { \ - SPLAY_LEFT(elm, field) = SPLAY_LEFT((head)->sph_root, field);\ - SPLAY_RIGHT(elm, field) = (head)->sph_root; \ - SPLAY_LEFT((head)->sph_root, field) = NULL; \ - } else if (__comp > 0) { \ - SPLAY_RIGHT(elm, field) = SPLAY_RIGHT((head)->sph_root, field);\ - SPLAY_LEFT(elm, field) = (head)->sph_root; \ - SPLAY_RIGHT((head)->sph_root, field) = NULL; \ - } else \ - return ((head)->sph_root); \ - } \ - (head)->sph_root = (elm); \ - return (NULL); \ -} \ - \ -struct type * \ -name##_SPLAY_REMOVE(struct name *head, struct type *elm) \ -{ \ - struct type *__tmp; \ - if (SPLAY_EMPTY(head)) \ - return (NULL); \ - name##_SPLAY(head, elm); \ - if ((cmp)(elm, (head)->sph_root) == 0) { \ - if (SPLAY_LEFT((head)->sph_root, field) == NULL) { \ - (head)->sph_root = SPLAY_RIGHT((head)->sph_root, field);\ - } else { \ - __tmp = SPLAY_RIGHT((head)->sph_root, field); \ - (head)->sph_root = SPLAY_LEFT((head)->sph_root, field);\ - name##_SPLAY(head, elm); \ - SPLAY_RIGHT((head)->sph_root, field) = __tmp; \ - } \ - return (elm); \ - } \ - return (NULL); \ -} \ - \ -void \ -name##_SPLAY(struct name *head, struct type *elm) \ -{ \ - struct type __node, *__left, *__right, *__tmp; \ - int __comp; \ -\ - SPLAY_LEFT(&__node, field) = SPLAY_RIGHT(&__node, field) = NULL;\ - __left = __right = &__node; \ -\ - while ((__comp = (cmp)(elm, (head)->sph_root)) != 0) { \ - if (__comp < 0) { \ - __tmp = SPLAY_LEFT((head)->sph_root, field); \ - if (__tmp == NULL) \ - break; \ - if ((cmp)(elm, __tmp) < 0){ \ - SPLAY_ROTATE_RIGHT(head, __tmp, field); \ - if (SPLAY_LEFT((head)->sph_root, field) == NULL)\ - break; \ - } \ - SPLAY_LINKLEFT(head, __right, field); \ - } else if (__comp > 0) { \ - __tmp = SPLAY_RIGHT((head)->sph_root, field); \ - if (__tmp == NULL) \ - break; \ - if ((cmp)(elm, __tmp) > 0){ \ - SPLAY_ROTATE_LEFT(head, __tmp, field); \ - if (SPLAY_RIGHT((head)->sph_root, field) == NULL)\ - break; \ - } \ - SPLAY_LINKRIGHT(head, __left, field); \ - } \ - } \ - SPLAY_ASSEMBLE(head, &__node, __left, __right, field); \ -} \ - \ -/* Splay with either the minimum or the maximum element \ - * Used to find minimum or maximum element in tree. \ - */ \ -void name##_SPLAY_MINMAX(struct name *head, int __comp) \ -{ \ - struct type __node, *__left, *__right, *__tmp; \ -\ - SPLAY_LEFT(&__node, field) = SPLAY_RIGHT(&__node, field) = NULL;\ - __left = __right = &__node; \ -\ - while (1) { \ - if (__comp < 0) { \ - __tmp = SPLAY_LEFT((head)->sph_root, field); \ - if (__tmp == NULL) \ - break; \ - if (__comp < 0){ \ - SPLAY_ROTATE_RIGHT(head, __tmp, field); \ - if (SPLAY_LEFT((head)->sph_root, field) == NULL)\ - break; \ - } \ - SPLAY_LINKLEFT(head, __right, field); \ - } else if (__comp > 0) { \ - __tmp = SPLAY_RIGHT((head)->sph_root, field); \ - if (__tmp == NULL) \ - break; \ - if (__comp > 0) { \ - SPLAY_ROTATE_LEFT(head, __tmp, field); \ - if (SPLAY_RIGHT((head)->sph_root, field) == NULL)\ - break; \ - } \ - SPLAY_LINKRIGHT(head, __left, field); \ - } \ - } \ - SPLAY_ASSEMBLE(head, &__node, __left, __right, field); \ -} - -#define SPLAY_NEGINF -1 -#define SPLAY_INF 1 - -#define SPLAY_INSERT(name, x, y) name##_SPLAY_INSERT(x, y) -#define SPLAY_REMOVE(name, x, y) name##_SPLAY_REMOVE(x, y) -#define SPLAY_FIND(name, x, y) name##_SPLAY_FIND(x, y) -#define SPLAY_NEXT(name, x, y) name##_SPLAY_NEXT(x, y) -#define SPLAY_MIN(name, x) (SPLAY_EMPTY(x) ? NULL \ - : name##_SPLAY_MIN_MAX(x, SPLAY_NEGINF)) -#define SPLAY_MAX(name, x) (SPLAY_EMPTY(x) ? NULL \ - : name##_SPLAY_MIN_MAX(x, SPLAY_INF)) - -#define SPLAY_FOREACH(x, name, head) \ - for ((x) = SPLAY_MIN(name, head); \ - (x) != NULL; \ - (x) = SPLAY_NEXT(name, head, x)) - -/* Macros that define a red-black tree */ -#define RB_HEAD(name, type) \ -struct name { \ - struct type *rbh_root; /* root of the tree */ \ -} - -#define RB_INITIALIZER(root) \ - { NULL } - -#define RB_INIT(root) do { \ - (root)->rbh_root = NULL; \ -} while (/*CONSTCOND*/ 0) - -#define RB_BLACK 0 -#define RB_RED 1 -#define RB_ENTRY(type) \ -struct { \ - struct type *rbe_left; /* left element */ \ - struct type *rbe_right; /* right element */ \ - struct type *rbe_parent; /* parent element */ \ - int rbe_color; /* node color */ \ -} - -#define RB_LEFT(elm, field) (elm)->field.rbe_left -#define RB_RIGHT(elm, field) (elm)->field.rbe_right -#define RB_PARENT(elm, field) (elm)->field.rbe_parent -#define RB_COLOR(elm, field) (elm)->field.rbe_color -#define RB_ROOT(head) (head)->rbh_root -#define RB_EMPTY(head) (RB_ROOT(head) == NULL) - -#define RB_SET(elm, parent, field) do { \ - RB_PARENT(elm, field) = parent; \ - RB_LEFT(elm, field) = RB_RIGHT(elm, field) = NULL; \ - RB_COLOR(elm, field) = RB_RED; \ -} while (/*CONSTCOND*/ 0) - -#define RB_SET_BLACKRED(black, red, field) do { \ - RB_COLOR(black, field) = RB_BLACK; \ - RB_COLOR(red, field) = RB_RED; \ -} while (/*CONSTCOND*/ 0) - -#ifndef RB_AUGMENT -#define RB_AUGMENT(x) do {} while (0) -#endif - -#define RB_ROTATE_LEFT(head, elm, tmp, field) do { \ - (tmp) = RB_RIGHT(elm, field); \ - if ((RB_RIGHT(elm, field) = RB_LEFT(tmp, field)) != NULL) { \ - RB_PARENT(RB_LEFT(tmp, field), field) = (elm); \ - } \ - RB_AUGMENT(elm); \ - if ((RB_PARENT(tmp, field) = RB_PARENT(elm, field)) != NULL) { \ - if ((elm) == RB_LEFT(RB_PARENT(elm, field), field)) \ - RB_LEFT(RB_PARENT(elm, field), field) = (tmp); \ - else \ - RB_RIGHT(RB_PARENT(elm, field), field) = (tmp); \ - } else \ - (head)->rbh_root = (tmp); \ - RB_LEFT(tmp, field) = (elm); \ - RB_PARENT(elm, field) = (tmp); \ - RB_AUGMENT(tmp); \ - if ((RB_PARENT(tmp, field))) \ - RB_AUGMENT(RB_PARENT(tmp, field)); \ -} while (/*CONSTCOND*/ 0) - -#define RB_ROTATE_RIGHT(head, elm, tmp, field) do { \ - (tmp) = RB_LEFT(elm, field); \ - if ((RB_LEFT(elm, field) = RB_RIGHT(tmp, field)) != NULL) { \ - RB_PARENT(RB_RIGHT(tmp, field), field) = (elm); \ - } \ - RB_AUGMENT(elm); \ - if ((RB_PARENT(tmp, field) = RB_PARENT(elm, field)) != NULL) { \ - if ((elm) == RB_LEFT(RB_PARENT(elm, field), field)) \ - RB_LEFT(RB_PARENT(elm, field), field) = (tmp); \ - else \ - RB_RIGHT(RB_PARENT(elm, field), field) = (tmp); \ - } else \ - (head)->rbh_root = (tmp); \ - RB_RIGHT(tmp, field) = (elm); \ - RB_PARENT(elm, field) = (tmp); \ - RB_AUGMENT(tmp); \ - if ((RB_PARENT(tmp, field))) \ - RB_AUGMENT(RB_PARENT(tmp, field)); \ -} while (/*CONSTCOND*/ 0) - -/* Generates prototypes and inline functions */ -#define RB_PROTOTYPE(name, type, field, cmp) \ - RB_PROTOTYPE_INTERNAL(name, type, field, cmp,) -#define RB_PROTOTYPE_STATIC(name, type, field, cmp) \ - RB_PROTOTYPE_INTERNAL(name, type, field, cmp, __unused static) -#define RB_PROTOTYPE_INTERNAL(name, type, field, cmp, attr) \ -attr void name##_RB_INSERT_COLOR(struct name *, struct type *); \ -attr void name##_RB_REMOVE_COLOR(struct name *, struct type *, struct type *);\ -attr struct type *name##_RB_REMOVE(struct name *, struct type *); \ -attr struct type *name##_RB_INSERT(struct name *, struct type *); \ -attr struct type *name##_RB_FIND(struct name *, struct type *); \ -attr struct type *name##_RB_NFIND(struct name *, struct type *); \ -attr struct type *name##_RB_NEXT(struct type *); \ -attr struct type *name##_RB_PREV(struct type *); \ -attr struct type *name##_RB_MINMAX(struct name *, int); \ - \ - -/* Main rb operation. - * Moves node close to the key of elm to top - */ -#define RB_GENERATE(name, type, field, cmp) \ - RB_GENERATE_INTERNAL(name, type, field, cmp,) -#define RB_GENERATE_STATIC(name, type, field, cmp) \ - RB_GENERATE_INTERNAL(name, type, field, cmp, __unused static) -#define RB_GENERATE_INTERNAL(name, type, field, cmp, attr) \ -attr void \ -name##_RB_INSERT_COLOR(struct name *head, struct type *elm) \ -{ \ - struct type *parent, *gparent, *tmp; \ - while ((parent = RB_PARENT(elm, field)) != NULL && \ - RB_COLOR(parent, field) == RB_RED) { \ - gparent = RB_PARENT(parent, field); \ - if (parent == RB_LEFT(gparent, field)) { \ - tmp = RB_RIGHT(gparent, field); \ - if (tmp && RB_COLOR(tmp, field) == RB_RED) { \ - RB_COLOR(tmp, field) = RB_BLACK; \ - RB_SET_BLACKRED(parent, gparent, field);\ - elm = gparent; \ - continue; \ - } \ - if (RB_RIGHT(parent, field) == elm) { \ - RB_ROTATE_LEFT(head, parent, tmp, field);\ - tmp = parent; \ - parent = elm; \ - elm = tmp; \ - } \ - RB_SET_BLACKRED(parent, gparent, field); \ - RB_ROTATE_RIGHT(head, gparent, tmp, field); \ - } else { \ - tmp = RB_LEFT(gparent, field); \ - if (tmp && RB_COLOR(tmp, field) == RB_RED) { \ - RB_COLOR(tmp, field) = RB_BLACK; \ - RB_SET_BLACKRED(parent, gparent, field);\ - elm = gparent; \ - continue; \ - } \ - if (RB_LEFT(parent, field) == elm) { \ - RB_ROTATE_RIGHT(head, parent, tmp, field);\ - tmp = parent; \ - parent = elm; \ - elm = tmp; \ - } \ - RB_SET_BLACKRED(parent, gparent, field); \ - RB_ROTATE_LEFT(head, gparent, tmp, field); \ - } \ - } \ - RB_COLOR(head->rbh_root, field) = RB_BLACK; \ -} \ - \ -attr void \ -name##_RB_REMOVE_COLOR(struct name *head, struct type *parent, struct type *elm) \ -{ \ - struct type *tmp; \ - while ((elm == NULL || RB_COLOR(elm, field) == RB_BLACK) && \ - elm != RB_ROOT(head)) { \ - if (RB_LEFT(parent, field) == elm) { \ - tmp = RB_RIGHT(parent, field); \ - if (RB_COLOR(tmp, field) == RB_RED) { \ - RB_SET_BLACKRED(tmp, parent, field); \ - RB_ROTATE_LEFT(head, parent, tmp, field);\ - tmp = RB_RIGHT(parent, field); \ - } \ - if ((RB_LEFT(tmp, field) == NULL || \ - RB_COLOR(RB_LEFT(tmp, field), field) == RB_BLACK) &&\ - (RB_RIGHT(tmp, field) == NULL || \ - RB_COLOR(RB_RIGHT(tmp, field), field) == RB_BLACK)) {\ - RB_COLOR(tmp, field) = RB_RED; \ - elm = parent; \ - parent = RB_PARENT(elm, field); \ - } else { \ - if (RB_RIGHT(tmp, field) == NULL || \ - RB_COLOR(RB_RIGHT(tmp, field), field) == RB_BLACK) {\ - struct type *oleft; \ - if ((oleft = RB_LEFT(tmp, field)) \ - != NULL) \ - RB_COLOR(oleft, field) = RB_BLACK;\ - RB_COLOR(tmp, field) = RB_RED; \ - RB_ROTATE_RIGHT(head, tmp, oleft, field);\ - tmp = RB_RIGHT(parent, field); \ - } \ - RB_COLOR(tmp, field) = RB_COLOR(parent, field);\ - RB_COLOR(parent, field) = RB_BLACK; \ - if (RB_RIGHT(tmp, field)) \ - RB_COLOR(RB_RIGHT(tmp, field), field) = RB_BLACK;\ - RB_ROTATE_LEFT(head, parent, tmp, field);\ - elm = RB_ROOT(head); \ - break; \ - } \ - } else { \ - tmp = RB_LEFT(parent, field); \ - if (RB_COLOR(tmp, field) == RB_RED) { \ - RB_SET_BLACKRED(tmp, parent, field); \ - RB_ROTATE_RIGHT(head, parent, tmp, field);\ - tmp = RB_LEFT(parent, field); \ - } \ - if ((RB_LEFT(tmp, field) == NULL || \ - RB_COLOR(RB_LEFT(tmp, field), field) == RB_BLACK) &&\ - (RB_RIGHT(tmp, field) == NULL || \ - RB_COLOR(RB_RIGHT(tmp, field), field) == RB_BLACK)) {\ - RB_COLOR(tmp, field) = RB_RED; \ - elm = parent; \ - parent = RB_PARENT(elm, field); \ - } else { \ - if (RB_LEFT(tmp, field) == NULL || \ - RB_COLOR(RB_LEFT(tmp, field), field) == RB_BLACK) {\ - struct type *oright; \ - if ((oright = RB_RIGHT(tmp, field)) \ - != NULL) \ - RB_COLOR(oright, field) = RB_BLACK;\ - RB_COLOR(tmp, field) = RB_RED; \ - RB_ROTATE_LEFT(head, tmp, oright, field);\ - tmp = RB_LEFT(parent, field); \ - } \ - RB_COLOR(tmp, field) = RB_COLOR(parent, field);\ - RB_COLOR(parent, field) = RB_BLACK; \ - if (RB_LEFT(tmp, field)) \ - RB_COLOR(RB_LEFT(tmp, field), field) = RB_BLACK;\ - RB_ROTATE_RIGHT(head, parent, tmp, field);\ - elm = RB_ROOT(head); \ - break; \ - } \ - } \ - } \ - if (elm) \ - RB_COLOR(elm, field) = RB_BLACK; \ -} \ - \ -attr struct type * \ -name##_RB_REMOVE(struct name *head, struct type *elm) \ -{ \ - struct type *child, *parent, *old = elm; \ - int color; \ - if (RB_LEFT(elm, field) == NULL) \ - child = RB_RIGHT(elm, field); \ - else if (RB_RIGHT(elm, field) == NULL) \ - child = RB_LEFT(elm, field); \ - else { \ - struct type *left; \ - elm = RB_RIGHT(elm, field); \ - while ((left = RB_LEFT(elm, field)) != NULL) \ - elm = left; \ - child = RB_RIGHT(elm, field); \ - parent = RB_PARENT(elm, field); \ - color = RB_COLOR(elm, field); \ - if (child) \ - RB_PARENT(child, field) = parent; \ - if (parent) { \ - if (RB_LEFT(parent, field) == elm) \ - RB_LEFT(parent, field) = child; \ - else \ - RB_RIGHT(parent, field) = child; \ - RB_AUGMENT(parent); \ - } else \ - RB_ROOT(head) = child; \ - if (RB_PARENT(elm, field) == old) \ - parent = elm; \ - (elm)->field = (old)->field; \ - if (RB_PARENT(old, field)) { \ - if (RB_LEFT(RB_PARENT(old, field), field) == old)\ - RB_LEFT(RB_PARENT(old, field), field) = elm;\ - else \ - RB_RIGHT(RB_PARENT(old, field), field) = elm;\ - RB_AUGMENT(RB_PARENT(old, field)); \ - } else \ - RB_ROOT(head) = elm; \ - RB_PARENT(RB_LEFT(old, field), field) = elm; \ - if (RB_RIGHT(old, field)) \ - RB_PARENT(RB_RIGHT(old, field), field) = elm; \ - if (parent) { \ - left = parent; \ - do { \ - RB_AUGMENT(left); \ - } while ((left = RB_PARENT(left, field)) != NULL); \ - } \ - goto color; \ - } \ - parent = RB_PARENT(elm, field); \ - color = RB_COLOR(elm, field); \ - if (child) \ - RB_PARENT(child, field) = parent; \ - if (parent) { \ - if (RB_LEFT(parent, field) == elm) \ - RB_LEFT(parent, field) = child; \ - else \ - RB_RIGHT(parent, field) = child; \ - RB_AUGMENT(parent); \ - } else \ - RB_ROOT(head) = child; \ -color: \ - if (color == RB_BLACK) \ - name##_RB_REMOVE_COLOR(head, parent, child); \ - return (old); \ -} \ - \ -/* Inserts a node into the RB tree */ \ -attr struct type * \ -name##_RB_INSERT(struct name *head, struct type *elm) \ -{ \ - struct type *tmp; \ - struct type *parent = NULL; \ - int comp = 0; \ - tmp = RB_ROOT(head); \ - while (tmp) { \ - parent = tmp; \ - comp = (cmp)(elm, parent); \ - if (comp < 0) \ - tmp = RB_LEFT(tmp, field); \ - else if (comp > 0) \ - tmp = RB_RIGHT(tmp, field); \ - else \ - return (tmp); \ - } \ - RB_SET(elm, parent, field); \ - if (parent != NULL) { \ - if (comp < 0) \ - RB_LEFT(parent, field) = elm; \ - else \ - RB_RIGHT(parent, field) = elm; \ - RB_AUGMENT(parent); \ - } else \ - RB_ROOT(head) = elm; \ - name##_RB_INSERT_COLOR(head, elm); \ - return (NULL); \ -} \ - \ -/* Finds the node with the same key as elm */ \ -attr struct type * \ -name##_RB_FIND(struct name *head, struct type *elm) \ -{ \ - struct type *tmp = RB_ROOT(head); \ - int comp; \ - while (tmp) { \ - comp = cmp(elm, tmp); \ - if (comp < 0) \ - tmp = RB_LEFT(tmp, field); \ - else if (comp > 0) \ - tmp = RB_RIGHT(tmp, field); \ - else \ - return (tmp); \ - } \ - return (NULL); \ -} \ - \ -/* Finds the first node greater than or equal to the search key */ \ -attr struct type * \ -name##_RB_NFIND(struct name *head, struct type *elm) \ -{ \ - struct type *tmp = RB_ROOT(head); \ - struct type *res = NULL; \ - int comp; \ - while (tmp) { \ - comp = cmp(elm, tmp); \ - if (comp < 0) { \ - res = tmp; \ - tmp = RB_LEFT(tmp, field); \ - } \ - else if (comp > 0) \ - tmp = RB_RIGHT(tmp, field); \ - else \ - return (tmp); \ - } \ - return (res); \ -} \ - \ -/* ARGSUSED */ \ -attr struct type * \ -name##_RB_NEXT(struct type *elm) \ -{ \ - if (RB_RIGHT(elm, field)) { \ - elm = RB_RIGHT(elm, field); \ - while (RB_LEFT(elm, field)) \ - elm = RB_LEFT(elm, field); \ - } else { \ - if (RB_PARENT(elm, field) && \ - (elm == RB_LEFT(RB_PARENT(elm, field), field))) \ - elm = RB_PARENT(elm, field); \ - else { \ - while (RB_PARENT(elm, field) && \ - (elm == RB_RIGHT(RB_PARENT(elm, field), field)))\ - elm = RB_PARENT(elm, field); \ - elm = RB_PARENT(elm, field); \ - } \ - } \ - return (elm); \ -} \ - \ -/* ARGSUSED */ \ -attr struct type * \ -name##_RB_PREV(struct type *elm) \ -{ \ - if (RB_LEFT(elm, field)) { \ - elm = RB_LEFT(elm, field); \ - while (RB_RIGHT(elm, field)) \ - elm = RB_RIGHT(elm, field); \ - } else { \ - if (RB_PARENT(elm, field) && \ - (elm == RB_RIGHT(RB_PARENT(elm, field), field))) \ - elm = RB_PARENT(elm, field); \ - else { \ - while (RB_PARENT(elm, field) && \ - (elm == RB_LEFT(RB_PARENT(elm, field), field)))\ - elm = RB_PARENT(elm, field); \ - elm = RB_PARENT(elm, field); \ - } \ - } \ - return (elm); \ -} \ - \ -attr struct type * \ -name##_RB_MINMAX(struct name *head, int val) \ -{ \ - struct type *tmp = RB_ROOT(head); \ - struct type *parent = NULL; \ - while (tmp) { \ - parent = tmp; \ - if (val < 0) \ - tmp = RB_LEFT(tmp, field); \ - else \ - tmp = RB_RIGHT(tmp, field); \ - } \ - return (parent); \ -} - -#define RB_NEGINF -1 -#define RB_INF 1 - -#define RB_INSERT(name, x, y) name##_RB_INSERT(x, y) -#define RB_REMOVE(name, x, y) name##_RB_REMOVE(x, y) -#define RB_FIND(name, x, y) name##_RB_FIND(x, y) -#define RB_NFIND(name, x, y) name##_RB_NFIND(x, y) -#define RB_NEXT(name, x, y) name##_RB_NEXT(y) -#define RB_PREV(name, x, y) name##_RB_PREV(y) -#define RB_MIN(name, x) name##_RB_MINMAX(x, RB_NEGINF) -#define RB_MAX(name, x) name##_RB_MINMAX(x, RB_INF) - -#define RB_FOREACH(x, name, head) \ - for ((x) = RB_MIN(name, head); \ - (x) != NULL; \ - (x) = name##_RB_NEXT(x)) - -#define RB_FOREACH_REVERSE(x, name, head) \ - for ((x) = RB_MAX(name, head); \ - (x) != NULL; \ - (x) = name##_RB_PREV(x)) - -#endif /* _SYS_TREE_H_ */ diff --git a/components/rtgui/include/rtgui/widgets/box.h b/components/rtgui/include/rtgui/widgets/box.h deleted file mode 100644 index efe13c5f38..0000000000 --- a/components/rtgui/include/rtgui/widgets/box.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * File : box.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2009, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE - * - * Change Logs: - * Date Author Notes - * 2009-10-16 Bernard first version - */ -#ifndef __RTGUI_BOX_H__ -#define __RTGUI_BOX_H__ - -#include <rtgui/rtgui.h> -#include <rtgui/widgets/widget.h> -#include <rtgui/widgets/container.h> - -#ifdef __cplusplus -extern "C" { -#endif - - DECLARE_CLASS_TYPE(box); - - /** Gets the type of a box */ -#define RTGUI_BOX_TYPE (RTGUI_TYPE(box)) - /** Casts the object to an rtgui_box */ -#define RTGUI_BOX(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_BOX_TYPE, rtgui_box_t)) - /** Checks if the object is an rtgui_box */ -#define RTGUI_IS_BOX(obj) (RTGUI_OBJECT_CHECK_TYPE((obj), RTGUI_BOX_TYPE)) - - struct rtgui_box - { - struct rtgui_object parent; - - rt_uint16_t orient; - rt_uint16_t border_size; - - struct rtgui_container *container; - }; - typedef struct rtgui_box rtgui_box_t; - - struct rtgui_box *rtgui_box_create(int orientation, int border_size); - void rtgui_box_destroy(struct rtgui_box *box); - - void rtgui_box_layout(rtgui_box_t *box); - void rtgui_box_layout_rect(rtgui_box_t *box, struct rtgui_rect *rect); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/components/rtgui/include/rtgui/widgets/button.h b/components/rtgui/include/rtgui/widgets/button.h deleted file mode 100644 index b81c88281e..0000000000 --- a/components/rtgui/include/rtgui/widgets/button.h +++ /dev/null @@ -1,92 +0,0 @@ -/* - * File : button.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2009, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE - * - * Change Logs: - * Date Author Notes - * 2009-10-16 Bernard first version - */ -#ifndef __RTGUI_BUTTON_H__ -#define __RTGUI_BUTTON_H__ - -#include <rtgui/image.h> -#include <rtgui/widgets/widget.h> -#include <rtgui/widgets/label.h> - -#ifdef __cplusplus -extern "C" { -#endif - - /** - * @defgroup rtgui_button - * @{ - */ - - DECLARE_CLASS_TYPE(button); - - /** Gets the type of a button */ -#define RTGUI_BUTTON_TYPE (RTGUI_TYPE(button)) - /** Casts the object to an rtgui_button */ -#define RTGUI_BUTTON(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_BUTTON_TYPE, rtgui_button_t)) - /** Checks if the object is an rtgui_button */ -#define RTGUI_IS_BUTTON(obj) (RTGUI_OBJECT_CHECK_TYPE((obj), RTGUI_BUTTON_TYPE)) - -#define RTGUI_BUTTON_FLAG_PRESS 0x01 -#define RTGUI_BUTTON_FLAG_DEFAULT 0x02 - -#define RTGUI_BUTTON_TYPE_NORMAL 0x00 -#define RTGUI_BUTTON_TYPE_PUSH 0x10 - - /* - * the button widget - */ - struct rtgui_button - { - /* inherit from label */ - struct rtgui_label parent; - - /* button flag */ - rt_base_t flag; - - /* pressed and unpressed image */ - rtgui_image_t *pressed_image, *unpressed_image; - - /* click button event handler */ - rtgui_onbutton_func_t on_button; - }; - typedef struct rtgui_button rtgui_button_t; - - rtgui_button_t *rtgui_button_create(const char *text); - rtgui_button_t *rtgui_pushbutton_create(const char *text); - void rtgui_button_destroy(rtgui_button_t *btn); - - void rtgui_button_set_pressed_image(rtgui_button_t *btn, rtgui_image_t *image); - void rtgui_button_set_unpressed_image(rtgui_button_t *btn, rtgui_image_t *image); - - /** Set the callback function on button btn - * - * If the btn is a push button, the callback will be invoked every - * time the btn got "pushed", i.e., both pressed down @em and pressed - * up. If the button is a normal button, the callback will be invoked when - * the btn got "clicked", i.e., when pressed up @em after pressed - * down. - * - * @param btn the btn that the callback will be setted on. - * @param func the callback function. - */ - void rtgui_button_set_onbutton(rtgui_button_t *btn, rtgui_onbutton_func_t func); - - rt_bool_t rtgui_button_event_handler(struct rtgui_object *object, struct rtgui_event *event); - - /** @} */ - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/components/rtgui/include/rtgui/widgets/checkbox.h b/components/rtgui/include/rtgui/widgets/checkbox.h deleted file mode 100644 index d526d23d2f..0000000000 --- a/components/rtgui/include/rtgui/widgets/checkbox.h +++ /dev/null @@ -1,43 +0,0 @@ -#ifndef __RTGUI_CHECKBOX_H__ -#define __RTGUI_CHECKBOX_H__ - -#include <rtgui/rtgui.h> -#include <rtgui/widgets/widget.h> -#include <rtgui/widgets/label.h> - -DECLARE_CLASS_TYPE(checkbox); - -/** Gets the type of a checkbox */ -#define RTGUI_CHECKBOX_TYPE (RTGUI_TYPE(checkbox)) -/** Casts the object to an rtgui_button */ -#define RTGUI_CHECKBOX(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_CHECKBOX_TYPE, struct rtgui_checkbox)) -/** Checks if the object is an rtgui_button */ -#define RTGUI_IS_CHECKBOX(obj) (RTGUI_OBJECT_CHECK_TYPE((obj), RTGUI_CHECKBOX_TYPE)) - -#define RTGUI_CHECKBOX_STATUS_CHECKED 0 -#define RTGUI_CHECKBOX_STATUS_UNCHECKED 1 - -struct rtgui_checkbox -{ - /* inherit from label */ - struct rtgui_label parent; - - /* check box status */ - rt_uint8_t status_down; - - /* click button event handler */ - rtgui_onbutton_func_t on_button; -}; -typedef struct rtgui_checkbox rtgui_checkbox_t; - -rtgui_checkbox_t *rtgui_checkbox_create(const char *text, rt_bool_t checked); -void rtgui_checkbox_destroy(rtgui_checkbox_t *checkbox); - -void rtgui_checkbox_set_checked(rtgui_checkbox_t *checkbox, rt_bool_t checked); -rt_bool_t rtgui_checkbox_get_checked(rtgui_checkbox_t *checkbox); - -void rtgui_checkbox_set_onbutton(rtgui_checkbox_t *checkbox, rtgui_onbutton_func_t func); - -rt_bool_t rtgui_checkbox_event_handler(struct rtgui_object *object, struct rtgui_event *event); - -#endif diff --git a/components/rtgui/include/rtgui/widgets/combobox.h b/components/rtgui/include/rtgui/widgets/combobox.h deleted file mode 100644 index b10a3e93eb..0000000000 --- a/components/rtgui/include/rtgui/widgets/combobox.h +++ /dev/null @@ -1,49 +0,0 @@ -#ifndef __RTGUI_COMBOBOX_H__ -#define __RTGUI_COMBOBOX_H__ - -#include <rtgui/rtgui.h> -#include <rtgui/image.h> -#include <rtgui/widgets/window.h> -#include <rtgui/widgets/listbox.h> - -DECLARE_CLASS_TYPE(combobox); -/** Gets the type of a combobox */ -#define RTGUI_COMBOBOX_TYPE (RTGUI_TYPE(combobox)) -/** Casts the object to a rtgui_combobox */ -#define RTGUI_COMBOBOX(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_COMBOBOX_TYPE, rtgui_combobox_t)) -/** Checks if the object is a rtgui_combobox */ -#define RTGUI_IS_COMBOBOX(obj) (RTGUI_OBJECT_CHECK_TYPE((obj), RTGUI_COMBOBOX_TYPE)) - -#define RTGUI_COMBOBOX_WIDTH 75 -#define RTGUI_COMBOBOX_HEIGHT 20 -#define RTGUI_COMBOBOX_BUTTON_WIDTH 18 - -struct rtgui_combobox -{ - struct rtgui_widget parent; - - /* widget private data */ - - /* pull down window */ - struct rtgui_win *pd_win; - rt_bool_t pd_pressed; - - /* combobox items */ - struct rtgui_listbox_item *items; - rt_uint16_t items_count; - rt_uint16_t current_item; - - /* call back */ - rtgui_event_handler_ptr on_selected; -}; -typedef struct rtgui_combobox rtgui_combobox_t; - -rtgui_combobox_t *rtgui_combobox_create(struct rtgui_listbox_item *items, rt_uint16_t counter, struct rtgui_rect *rect); -void rtgui_combobox_destroy(rtgui_combobox_t *box); - -rt_bool_t rtgui_combobox_event_handler(struct rtgui_object *object, struct rtgui_event *event); -struct rtgui_listbox_item *rtgui_combox_get_select(struct rtgui_combobox *box); - -void rtgui_combobox_set_onselected(struct rtgui_combobox *box, rtgui_event_handler_ptr func); - -#endif diff --git a/components/rtgui/include/rtgui/widgets/container.h b/components/rtgui/include/rtgui/widgets/container.h deleted file mode 100644 index d7798b1b11..0000000000 --- a/components/rtgui/include/rtgui/widgets/container.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - * File : container.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2009, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE - * - * Change Logs: - * Date Author Notes - * 2009-10-16 Bernard first version - */ -#ifndef __RTGUI_CONTAINER_H__ -#define __RTGUI_CONTAINER_H__ - -#include <rtgui/widgets/widget.h> -#include <rtgui/widgets/box.h> - -#ifdef __cplusplus -extern "C" { -#endif - - DECLARE_CLASS_TYPE(container); - /** Gets the type of a container */ -#define RTGUI_CONTAINER_TYPE (RTGUI_TYPE(container)) - /** Casts the object to an rtgui_container */ -#define RTGUI_CONTAINER(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_CONTAINER_TYPE, rtgui_container_t)) - /** Checks if the object is an rtgui_container */ -#define RTGUI_IS_CONTAINER(obj) (RTGUI_OBJECT_CHECK_TYPE((obj), RTGUI_CONTAINER_TYPE)) - - /* - * the container widget - */ - struct rtgui_container - { - struct rtgui_widget parent; - - /* layout box */ - struct rtgui_box *layout_box; - - rtgui_list_t children; - }; - typedef struct rtgui_container rtgui_container_t; - - rtgui_container_t *rtgui_container_create(void); - void rtgui_container_destroy(rtgui_container_t *container); - - rt_bool_t rtgui_container_event_handler(struct rtgui_object *widget, struct rtgui_event *event); - - /* set layout box */ - void rtgui_container_set_box(struct rtgui_container *container, struct rtgui_box *box); - void rtgui_container_layout(struct rtgui_container *container); - - void rtgui_container_add_child(rtgui_container_t *container, rtgui_widget_t *child); - void rtgui_container_remove_child(rtgui_container_t *container, rtgui_widget_t *child); - void rtgui_container_destroy_children(rtgui_container_t *container); - rtgui_widget_t *rtgui_container_get_first_child(rtgui_container_t *container); - - rt_bool_t rtgui_container_event_handler(struct rtgui_object *widget, rtgui_event_t *event); - - rt_bool_t rtgui_container_dispatch_event(rtgui_container_t *container, rtgui_event_t *event); - rt_bool_t rtgui_container_dispatch_mouse_event(rtgui_container_t *container, struct rtgui_event_mouse *event); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/components/rtgui/include/rtgui/widgets/digfont.h b/components/rtgui/include/rtgui/widgets/digfont.h deleted file mode 100644 index 6765ed06c3..0000000000 --- a/components/rtgui/include/rtgui/widgets/digfont.h +++ /dev/null @@ -1,36 +0,0 @@ -#ifndef DIG_FONT_H -#define DIG_FONT_H - -struct rtgui_digitfont_data -{ - rt_uint16_t x; - rt_uint16_t y; - rt_uint16_t len; - rt_uint16_t type; //ˮƽ�ʹ�ֱ -}; - -struct rtgui_digitfont -{ - int seg1_len; - int seg1_hspace; - int seg1_vspace; - int seg1_nr; //9 - - int seg2_len; - - int seg3_len; - struct rtgui_digitfont_data *data; -}; - - -typedef struct rtgui_digitfont rtgui_digitfont_t; - -extern struct rtgui_digitfont digitfont_40; -extern const char digtube_code_table[]; - -int rtgui_digitfont_create(struct rtgui_digitfont *font); -int rtgui_dc_draw_digitfont(struct rtgui_dc *dc, struct rtgui_digitfont *font, rtgui_rect_t *rect); -int rtgui_get_digfont_metrics(struct rtgui_digitfont * font, rtgui_rect_t * rect); -int rtgui_dc_draw_digitfont_code(struct rtgui_dc *dc, struct rtgui_digitfont * font, rtgui_rect_t * rect, char code); - -#endif
\ No newline at end of file diff --git a/components/rtgui/include/rtgui/widgets/digtube.h b/components/rtgui/include/rtgui/widgets/digtube.h deleted file mode 100644 index c29a907f48..0000000000 --- a/components/rtgui/include/rtgui/widgets/digtube.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - * File : digfont.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2012, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE - * - * Change Logs: - * Date Author Notes - * 2012-12-21 pife first version - */ -#ifndef __RTGUI_DIGTUBE_H__ -#define __RTGUI_DIGTUBE_H__ - -#include <rtgui/rtgui.h> -#include <rtgui/rtgui_system.h> -#include <rtgui/widgets/widget.h> -#include <rtgui/widgets/digfont.h> - -DECLARE_CLASS_TYPE(digtube); - -/** Gets the type of a digit tubes */ -#define RTGUI_DIGTUBE_TYPE (RTGUI_TYPE(digtube)) -/** Casts the object to an rtgui_digtube */ -#define RTGUI_DIGTUBE(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_DIGTUBE_TYPE, rtgui_digtube_t)) -/** Checks if the object is an rtgui_digtube */ -#define RTGUI_IS_DIGTUBE(obj) (RTGUI_OBJECT_CHECK_TYPE((obj), RTGUI_DIGTUBE_TYPE)) - -/* - * the digit tube widget - */ -struct rtgui_digtube -{ - struct rtgui_widget parent; - - struct rtgui_digitfont digitfont; - - /* number of tubes */ - rt_uint8_t tube_count; - rt_uint8_t tube_style; - rt_uint8_t digit_hight; - rt_uint8_t digit_width; - rt_uint8_t digit_space; - rtgui_color_t digit_bc; - void * value; -}; -typedef struct rtgui_digtube rtgui_digtube_t; - -rtgui_digtube_t *rtgui_digtube_create( struct rtgui_digitfont * digitfont, int count, void * value, int style); -void rtgui_digtube_destroy(rtgui_digtube_t *digtube); - -rt_bool_t rtgui_digtube_event_handler(struct rtgui_object *object, struct rtgui_event *event); - -#define RTGUI_DIGTUBE_DEFAULT_BC RTGUI_RGB(0, 0, 0) -#define RTGUI_DIGTUBE_DEFAULT_FC RTGUI_RGB(0xFF, 0, 0) -#define RTGUI_DIGTUBE_DEFAULT_DIGIT_BC RTGUI_RGB(100, 100, 100) - -#define RTGUI_DIGTUBE_DEFAULT_SPACE 10 - -#define RTGUI_DIGTUBE_STYLE_NOBACKFONT 0x01 -#define RTGUI_DIGTUBE_STYLE_DISHEXNUM 0x02 -#define RTGUI_DIGTUBE_STYLE_DISCODES 0x04 - -//void rtgui_digtube_set_text(rtgui_digtube_t *digtube, const char *text); -//char *rtgui_digtube_get_text(rtgui_digtube_t *digtube); -#endif
\ No newline at end of file diff --git a/components/rtgui/include/rtgui/widgets/edit.h b/components/rtgui/include/rtgui/widgets/edit.h deleted file mode 100644 index ca2eb65295..0000000000 --- a/components/rtgui/include/rtgui/widgets/edit.h +++ /dev/null @@ -1,114 +0,0 @@ -/* - * File : edit.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2009, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE - * - * Change Logs: - * Date Author Notes - * 2012-06-04 amsl first version - */ -#ifndef __RTGUI_EDIT_H__ -#define __RTGUI_EDIT_H__ - -#include <rtgui/widgets/widget.h> -#include <rtgui/widgets/container.h> - -#ifdef __cplusplus -extern "C" { -#endif - - DECLARE_CLASS_TYPE(edit); - - /** Gets the type of a edit */ -#define RTGUI_EDIT_TYPE (RTGUI_TYPE(edit)) - /** Casts the object to a rtgui_edit */ -#define RTGUI_EDIT(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_EDIT_TYPE, struct rtgui_edit)) - /** Checks if the object is a rtgui_edit */ -#define RTGUI_IS_EDIT(obj) (RTGUI_OBJECT_CHECK_TYPE((obj), RTGUI_EDIT_TYPE)) - -#define RTGUI_EDIT_NONE 0x00 -#define RTGUI_EDIT_CARET 0x01 -#define RTGUI_EDIT_VSCROLL 0x02 -#define RTGUI_EDIT_HSCROLL 0x04 -#define RTGUI_EDIT_SHIFT 0x10 -#define RTGUI_EDIT_CTRL 0x20 -#define RTGUI_EDIT_ALT 0x40 -#define RTGUI_EDIT_CAPSLOCK 0x80 -#define RTGUI_EDIT_NUMLOCK 0x100 - - struct edit_update - { - /* rt_uint32_t type; */ /* update type */ - rtgui_point_t start, end; /* update area */ - }; - - struct edit_line - { - rt_int16_t zsize; /* zone size */ - rt_int16_t len; - struct edit_line *prev; - struct edit_line *next; - char *text; - }; - - struct rtgui_edit - { - /* inherit from container */ - rtgui_container_t parent; - - /* edit flag */ - rt_uint32_t flag; - rt_int16_t max_rows, max_cols; - rt_int16_t row_per_page, col_per_page; - rtgui_point_t upleft; - rtgui_point_t visual; - rt_uint8_t tabsize; - rt_uint8_t item_height; - rt_uint8_t font_width, font_height; - rt_uint8_t margin; - rt_int16_t bzsize; /* base zone size */ - - struct rtgui_timer *caret_timer; - rtgui_color_t *caret; - rtgui_rect_t caret_rect; - struct edit_update update; - char *update_buf; /* speed up renewal process */ - struct rtgui_dc *dbl_buf; - - struct edit_line *head; - struct edit_line *tail; - struct edit_line *first_line; -#ifdef RTGUI_EDIT_USING_SCROLL - struct rtgui_scrollbar *hscroll; - struct rtgui_scrollbar *vscroll; -#endif - }; - - rt_bool_t rtgui_edit_append_line(struct rtgui_edit *edit, const char *text); - rt_bool_t rtgui_edit_insert_line(struct rtgui_edit *edit, struct edit_line *p, char *text); - rt_bool_t rtgui_edit_delete_line(struct rtgui_edit *edit, struct edit_line *line); - rt_bool_t rtgui_edit_connect_line(struct rtgui_edit *edit, struct edit_line *line, struct edit_line *connect); - - void _rtgui_edit_constructor(struct rtgui_edit *box); - void _rtgui_edit_deconstructor(struct rtgui_edit *textbox); - - struct rtgui_edit *rtgui_edit_create(struct rtgui_container *container, int left, int top, int w, int h); - void rtgui_edit_destroy(struct rtgui_edit *edit); - void rtgui_edit_update(struct rtgui_edit *edit); - void rtgui_edit_ondraw(struct rtgui_edit *edit); - rt_bool_t rtgui_edit_event_handler(struct rtgui_object *object, rtgui_event_t *event); - void rtgui_edit_set_text(struct rtgui_edit *edit, const char *text); - rtgui_point_t rtgui_edit_get_current_point(struct rtgui_edit *edit); - rt_uint32_t rtgui_edit_get_mem_consume(struct rtgui_edit *edit); - rt_bool_t rtgui_edit_readin_file(struct rtgui_edit *edit, const char *filename); - rt_bool_t rtgui_edit_saveas_file(struct rtgui_edit *edit, const char *filename); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/components/rtgui/include/rtgui/widgets/filelist_view.h b/components/rtgui/include/rtgui/widgets/filelist_view.h deleted file mode 100644 index dcaa11de1d..0000000000 --- a/components/rtgui/include/rtgui/widgets/filelist_view.h +++ /dev/null @@ -1,58 +0,0 @@ -#ifndef __RTGUI_FILELIST_VIEW_H__ -#define __RTGUI_FILELIST_VIEW_H__ - -#include <rtgui/widgets/container.h> - -#if defined(RTGUI_USING_DFS_FILERW) -#define RTGUI_FITEM_FILE 0x0 -#define RTGUI_FITEM_DIR 0x1 -struct rtgui_file_item -{ - char *name; - - rt_uint32_t type; - rt_uint32_t size; -}; - -DECLARE_CLASS_TYPE(filelist); -/** Gets the type of a filelist view */ -#define RTGUI_FILELIST_VIEW_TYPE (RTGUI_TYPE(filelist)) -/** Casts the object to a filelist */ -#define RTGUI_FILELIST_VIEW(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_FILELIST_VIEW_TYPE, rtgui_filelist_view_t)) -/** Checks if the object is a filelist view */ -#define RTGUI_IS_FILELIST_VIEW(obj) (RTGUI_OBJECT_CHECK_TYPE((obj), RTGUI_FILELIST_VIEW_TYPE)) - -struct rtgui_filelist_view -{ - struct rtgui_container parent; - - /* widget private data */ - - /* current directory */ - char *current_directory; - char *pattern; - - /* the number of item in a page */ - rt_uint16_t page_items; - rt_uint16_t items_count; - - /* the selected item */ - rt_uint16_t current_item; - - /* items array */ - struct rtgui_file_item *items; -}; -typedef struct rtgui_filelist_view rtgui_filelist_view_t; - -rtgui_filelist_view_t *rtgui_filelist_view_create(const char *directory, - const char *pattern, - const rtgui_rect_t *rect); -void rtgui_filelist_view_destroy(rtgui_filelist_view_t *view); - -rt_bool_t rtgui_filelist_view_event_handler(struct rtgui_object *object, struct rtgui_event *event); -void rtgui_filelist_view_set_directory(rtgui_filelist_view_t *view, const char *directory); - -void rtgui_filelist_view_get_fullpath(rtgui_filelist_view_t *view, char *path, rt_size_t len); -#endif - -#endif diff --git a/components/rtgui/include/rtgui/widgets/groupbox.h b/components/rtgui/include/rtgui/widgets/groupbox.h deleted file mode 100644 index 157424728d..0000000000 --- a/components/rtgui/include/rtgui/widgets/groupbox.h +++ /dev/null @@ -1,73 +0,0 @@ -/* - * File : groupbox.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2009, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE - * - * Change Logs: - * Date Author Notes - * 2012-07-29 Bernard first version - */ -#ifndef __RTGUI_GROUPBOX_H__ -#define __RTGUI_GROUPBOX_H__ - -#include <rtgui/rtgui.h> -#include <rtgui/event.h> -#include <rtgui/widgets/panel.h> -#include <rtgui/widgets/box.h> - -DECLARE_CLASS_TYPE(groupbox); - -/** Gets the type of a groupbox */ -#define RTGUI_GROUPBOX_TYPE (RTGUI_TYPE(groupbox)) -/** Casts the object to an groupbox */ -#define RTGUI_GROUPBOX(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_GROUPBOX_TYPE, rtgui_groupbox_t)) -/** Checks if the object is an rtgui_groupbox */ -#define RTGUI_IS_GROUPBOX(obj) (RTGUI_OBJECT_CHECK_TYPE((obj), RTGUI_GROUPBOX_TYPE)) - -typedef void (*widget_select_t)(struct rtgui_widget *widget, rt_bool_t selected); - -/* - * the groupbox widget - * - * The Group Box is a container widget, in which user can place some other widget into it. - * However, the current selected in group box must be notified by user: - * - invoke rtgui_groupbox_select_widget to notify group box the current selected widget; - * - when a widget has been selected, group box invokes groupbox->select_func to change - * the status of widget, for example un-select this widget. - */ -struct rtgui_groupbox -{ - struct rtgui_panel parent; - - char *label; - struct rtgui_box *box; - struct rtgui_widget *selected; - - widget_select_t select_func; - rtgui_event_handler_ptr on_selected; -}; -typedef struct rtgui_groupbox rtgui_groupbox_t; - -rtgui_groupbox_t *rtgui_groupbox_create(const char *label, struct rtgui_rect *rect, int style, widget_select_t select_func); -void rtgui_groupbox_destroy(rtgui_groupbox_t *groupbox); - -void rtgui_groupbox_layout(struct rtgui_groupbox *box); - -void rtgui_groupbox_add_widget(struct rtgui_groupbox *box, struct rtgui_widget *widget); -void rtgui_groupbox_select_widget(struct rtgui_groupbox *box, struct rtgui_widget *widget); -struct rtgui_widget *rtgui_groupbox_get_selected(struct rtgui_groupbox *box); - -rt_bool_t rtgui_groupbox_event_handler(struct rtgui_object *object, struct rtgui_event *event); - -rt_inline void rtgui_groupbox_set_onselected(struct rtgui_groupbox *box, rtgui_event_handler_ptr on_selected) -{ - RT_ASSERT(box != RT_NULL); - box->on_selected = on_selected; -} - -#endif - diff --git a/components/rtgui/include/rtgui/widgets/iconbox.h b/components/rtgui/include/rtgui/widgets/iconbox.h deleted file mode 100644 index f3f9b45e49..0000000000 --- a/components/rtgui/include/rtgui/widgets/iconbox.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * File : iconbox.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2009, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE - * - * Change Logs: - * Date Author Notes - * 2009-10-16 Bernard first version - */ -#ifndef __RTGUI_ICONBOX_H__ -#define __RTGUI_ICONBOX_H__ - -#include <rtgui/rtgui.h> -#include <rtgui/image.h> -#include <rtgui/widgets/widget.h> - -DECLARE_CLASS_TYPE(iconbox); -/** Gets the type of a iconbox */ -#define RTGUI_ICONBOX_TYPE (RTGUI_TYPE(iconbox)) -/** Casts the object to a rtgui_iconbox */ -#define RTGUI_ICONBOX(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_ICONBOX_TYPE, rtgui_iconbox_t)) -/** Checks if the object is a rtgui_iconbox */ -#define RTGUI_IS_ICONBOX(obj) (RTGUI_OBJECT_CHECK_TYPE((obj), RTGUI_ICONBOX_TYPE)) - -#define RTGUI_ICONBOX_NOTEXT 0x00 -#define RTGUI_ICONBOX_TEXT_RIGHT 0x01 -#define RTGUI_ICONBOX_TEXT_BELOW 0x02 - -struct rtgui_iconbox -{ - /* inherit from widget */ - struct rtgui_widget parent; - - /* widget private data */ - struct rtgui_image *image; - - char *text; - rt_ubase_t text_position; - - rt_bool_t selected; -}; -typedef struct rtgui_iconbox rtgui_iconbox_t; - -struct rtgui_iconbox *rtgui_iconbox_create(struct rtgui_image *image, const char *text, int position); -void rtgui_iconbox_destroy(struct rtgui_iconbox *iconbox); - -rt_bool_t rtgui_iconbox_event_handler(struct rtgui_object *object, struct rtgui_event *event); - -void rtgui_iconbox_set_text_position(struct rtgui_iconbox *iconbox, int position); -void rtgui_iconbox_set_selected(struct rtgui_iconbox *iconbox, rt_bool_t selected); - -#endif diff --git a/components/rtgui/include/rtgui/widgets/label.h b/components/rtgui/include/rtgui/widgets/label.h deleted file mode 100644 index 8dfece1701..0000000000 --- a/components/rtgui/include/rtgui/widgets/label.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - * File : label.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2009, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE - * - * Change Logs: - * Date Author Notes - * 2009-10-16 Bernard first version - */ -#ifndef __RTGUI_LABEL_H__ -#define __RTGUI_LABEL_H__ - -#include <rtgui/rtgui.h> -#include <rtgui/widgets/widget.h> - -DECLARE_CLASS_TYPE(label); - -/** Gets the type of a button */ -#define RTGUI_LABEL_TYPE (RTGUI_TYPE(label)) -/** Casts the object to an rtgui_button */ -#define RTGUI_LABEL(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_LABEL_TYPE, rtgui_label_t)) -/** Checks if the object is an rtgui_button */ -#define RTGUI_IS_LABEL(obj) (RTGUI_OBJECT_CHECK_TYPE((obj), RTGUI_LABEL_TYPE)) - -/* - * the label widget - */ -struct rtgui_label -{ - struct rtgui_widget parent; - - /* label */ - char *text; -}; -typedef struct rtgui_label rtgui_label_t; - -rtgui_label_t *rtgui_label_create(const char *text); -void rtgui_label_destroy(rtgui_label_t *label); - -rt_bool_t rtgui_label_event_handler(struct rtgui_object *object, struct rtgui_event *event); - -void rtgui_label_set_text(rtgui_label_t *label, const char *text); -char *rtgui_label_get_text(rtgui_label_t *label); - -#endif diff --git a/components/rtgui/include/rtgui/widgets/list_view.h b/components/rtgui/include/rtgui/widgets/list_view.h deleted file mode 100644 index b58210425b..0000000000 --- a/components/rtgui/include/rtgui/widgets/list_view.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - * File : list_view.h - * This file is part of RTGUI in RT-Thread RTOS - * COPYRIGHT (C) 2010, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE - * - * Change Logs: - * Date Author Notes - * 2010-01-06 Bernard first version - */ - -#ifndef __RTGUI_LIST_VIEW_H__ -#define __RTGUI_LIST_VIEW_H__ - -#include <rtgui/rtgui.h> -#include <rtgui/image.h> -#include <rtgui/rtgui_system.h> - -#include <rtgui/widgets/container.h> - -typedef void (*item_action)(struct rtgui_widget *widget, void *parameter); -struct rtgui_list_item -{ - char *name; - rtgui_image_t *image; - - item_action action; - void *parameter; -}; - -DECLARE_CLASS_TYPE(listview); -/** Gets the type of a list view */ -#define RTGUI_LIST_VIEW_TYPE (RTGUI_TYPE(listview)) -/** Casts the object to a filelist */ -#define RTGUI_LIST_VIEW(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_LIST_VIEW_TYPE, rtgui_list_view_t)) -/** Checks if the object is a filelist view */ -#define RTGUI_IS_LIST_VIEW(obj) (RTGUI_OBJECT_CHECK_TYPE((obj), RTGUI_LIST_VIEW_TYPE)) - -#define RTGUI_LIST_VIEW_LIST 0x00 -#define RTGUI_LIST_VIEW_ICON 0x01 -#define RTGUI_LIST_VIEW_REPORT 0x02 - -struct rtgui_list_view -{ - struct rtgui_container parent; - - /* widget private data */ - /* list item */ - const struct rtgui_list_item *items; - - /* layout flag */ - rt_uint16_t flag; - - /* total number of items */ - rt_uint16_t items_count; - /* the number of item in a page */ - rt_uint16_t page_items; - /* current item */ - rt_int16_t current_item; - - /* icon layout */ - rt_uint8_t row_items, col_items; -}; -typedef struct rtgui_list_view rtgui_list_view_t; - -rtgui_list_view_t *rtgui_list_view_create(const struct rtgui_list_item *items, rt_uint16_t count, - rtgui_rect_t *rect, rt_uint16_t flag); -void rtgui_list_view_destroy(rtgui_list_view_t *view); - -rt_bool_t rtgui_list_view_event_handler(struct rtgui_object *widget, struct rtgui_event *event); - -#endif - diff --git a/components/rtgui/include/rtgui/widgets/listbox.h b/components/rtgui/include/rtgui/widgets/listbox.h deleted file mode 100644 index a2fb035128..0000000000 --- a/components/rtgui/include/rtgui/widgets/listbox.h +++ /dev/null @@ -1,67 +0,0 @@ -/* - * File : listbox.h - * This file is part of RTGUI in RT-Thread RTOS - * COPYRIGHT (C) 2010, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE - * - * Change Logs: - * Date Author Notes - * 2010-01-06 Bernard first version - */ - -#ifndef __RTGUI_LISTBOX_H__ -#define __RTGUI_LISTBOX_H__ - -#include <rtgui/rtgui.h> -#include <rtgui/image.h> -#include <rtgui/rtgui_system.h> -#include <rtgui/widgets/widget.h> - -struct rtgui_listbox_item -{ - char *name; - rtgui_image_t *image; -}; - -DECLARE_CLASS_TYPE(listbox); -/** Gets the type of a list box */ -#define RTGUI_LISTBOX_TYPE (RTGUI_TYPE(listbox)) -/** Casts the object to a filelist */ -#define RTGUI_LISTBOX(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_LISTBOX_TYPE, rtgui_listbox_t)) -/** Checks if the object is a filelist box */ -#define RTGUI_IS_LISTBOX(obj) (RTGUI_OBJECT_CHECK_TYPE((obj), RTGUI_LISTBOX_TYPE)) - -struct rtgui_listbox -{ - struct rtgui_widget parent; - - /* widget private data */ - /* listbox item */ - const struct rtgui_listbox_item *items; - - /* item event handler */ - rtgui_event_handler_ptr on_item; - - /* total number of items */ - rt_uint16_t items_count; - /* the number of item in a page */ - rt_uint16_t page_items; - /* current item */ - rt_int16_t current_item; -}; -typedef struct rtgui_listbox rtgui_listbox_t; - -rtgui_listbox_t *rtgui_listbox_create(const struct rtgui_listbox_item *items, rt_uint16_t count, - rtgui_rect_t *rect); -void rtgui_listbox_destroy(rtgui_listbox_t *box); - -rt_bool_t rtgui_listbox_event_handler(struct rtgui_object *object, struct rtgui_event *event); -void rtgui_listbox_set_onitem(rtgui_listbox_t *box, rtgui_event_handler_ptr func); -void rtgui_listbox_set_items(rtgui_listbox_t *box, struct rtgui_listbox_item *items, rt_uint16_t count); -void rtgui_listbox_set_current_item(rtgui_listbox_t *box, int index); - -#endif - diff --git a/components/rtgui/include/rtgui/widgets/listctrl.h b/components/rtgui/include/rtgui/widgets/listctrl.h deleted file mode 100644 index 79b123c3db..0000000000 --- a/components/rtgui/include/rtgui/widgets/listctrl.h +++ /dev/null @@ -1,66 +0,0 @@ -/* - * File : listctrl.h - * This file is part of RTGUI in RT-Thread RTOS - * COPYRIGHT (C) 2010, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE - * - * Change Logs: - * Date Author Notes - * 2010-12-06 Bernard first version - */ - -#ifndef __RTGUI_LISTCTRL_H__ -#define __RTGUI_LISTCTRL_H__ - -#include <rtgui/rtgui.h> -#include <rtgui/image.h> -#include <rtgui/rtgui_system.h> -#include <rtgui/widgets/widget.h> - -DECLARE_CLASS_TYPE(listctrl); -/** Gets the type of a listctrl */ -#define RTGUI_LISTCTRL_TYPE (RTGUI_TYPE(listctrl)) -/** Casts the object to a listctrl */ -#define RTGUI_LISTCTRL(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_LISTCTRL_TYPE, rtgui_listctrl_t)) -/** Checks if the object is a listctrl */ -#define RTGUI_IS_LISTCTRL(obj) (RTGUI_OBJECT_CHECK_TYPE((obj), RTGUI_LISTCTRL_TYPE)) - -struct rtgui_listctrl -{ - struct rtgui_widget parent; - - /* widget private data */ - /* listctrl items */ - void *items; - - /* total number of items */ - rt_uint16_t items_count; - /* the number of item in a page */ - rt_uint16_t page_items; - /* current item */ - rt_int16_t current_item; - rt_uint16_t item_height; - - /* item event handler */ - rtgui_event_handler_ptr on_item; - void (*on_item_draw)(struct rtgui_listctrl *list, struct rtgui_dc *dc, rtgui_rect_t *rect, rt_uint16_t index); -}; -typedef struct rtgui_listctrl rtgui_listctrl_t; - -typedef void (*rtgui_onitem_draw_t)(struct rtgui_listctrl *list, struct rtgui_dc *dc, rtgui_rect_t *rect, rt_uint16_t index); - -rtgui_listctrl_t *rtgui_listctrl_create(void *items, rt_uint16_t count, - rtgui_rect_t *rect, rtgui_onitem_draw_t ondraw); -void rtgui_listctrl_destroy(rtgui_listctrl_t *ctrl); - -rt_bool_t rtgui_listctrl_event_handler(struct rtgui_object *object, struct rtgui_event *event); -void rtgui_listctrl_set_onitem(rtgui_listctrl_t *ctrl, rtgui_event_handler_ptr func); -void rtgui_listctrl_set_items(rtgui_listctrl_t *ctrl, void *items, rt_uint16_t count); -void rtgui_listctrl_set_current_item(struct rtgui_listctrl *ctrl, rt_uint16_t index); -rt_bool_t rtgui_listctrl_get_item_rect(rtgui_listctrl_t *ctrl, rt_uint16_t item, rtgui_rect_t *item_rect); -void rtgui_listctrl_set_itemheight(struct rtgui_listctrl *ctrl, int height); - -#endif diff --git a/components/rtgui/include/rtgui/widgets/menu.h b/components/rtgui/include/rtgui/widgets/menu.h deleted file mode 100644 index 1a6e85b387..0000000000 --- a/components/rtgui/include/rtgui/widgets/menu.h +++ /dev/null @@ -1,78 +0,0 @@ -#ifndef __RTGUI_MENU_H__ -#define __RTGUI_MENU_H__ - -#include <rtgui/image.h> -#include <rtgui/widgets/window.h> -#include <rtgui/widgets/listctrl.h> - -/* rtgui menu item */ -enum rtgui_menu_item_type -{ - RTGUI_ITEM_NORMAL, - RTGUI_ITEM_CHECK, - RTGUI_ITEM_SUBMENU, - RTGUI_ITEM_SEPARATOR -}; -typedef enum rtgui_menu_item_type rtgui_menu_item_type_t; - -struct rtgui_menu_item -{ - rtgui_menu_item_type_t type; - - /* menu text label */ - const char *label; - /* menu image */ - rtgui_image_t *image; - - /* sub-menu item */ - const struct rtgui_menu_item_t *submenu; - rt_uint16_t submenu_count; - - /* menu action */ - rt_bool_t (*on_menuaction)(struct rtgui_object *object, struct rtgui_event *event); -}; -typedef struct rtgui_menu_item rtgui_menu_item_t; - -DECLARE_CLASS_TYPE(menu); -/** Gets the type of a menu */ -#define RTGUI_MENU_TYPE (RTGUI_TYPE(menu)) -/** Casts the object to an rtgui_menu */ -#define RTGUI_MENU(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_MENU_TYPE, rtgui_menu_t)) -/** Checks if the object is an rtgui_menu */ -#define RTGUI_IS_MENU(obj) (RTGUI_OBJECT_CHECK_TYPE((obj), RTGUI_MENU_TYPE)) - -#define RTGUI_MENU_DEFAULT_WIDTH 100 -struct rtgui_menu -{ - /* inherited from window */ - struct rtgui_win parent; - - /* menu items */ - const struct rtgui_menu_item *items; - rt_uint16_t items_count; - - /* parent menu */ - struct rtgui_menu *parent_menu; - struct rtgui_menu *sub_menu; - - /* menu item list control */ - struct rtgui_listctrl *items_list; - - /* pop event handle */ - rtgui_event_handler_ptr on_menupop; - rtgui_event_handler_ptr on_menuhide; -}; -typedef struct rtgui_menu rtgui_menu_t; - -struct rtgui_menu *rtgui_menu_create(const char *title, struct rtgui_menu *parent_menu, - const struct rtgui_menu_item *items, rt_uint16_t count); -void rtgui_menu_destroy(struct rtgui_menu *menu); - -void rtgui_menu_set_onmenupop(struct rtgui_menu *menu, rtgui_event_handler_ptr handler); -void rtgui_menu_set_onmenuhide(struct rtgui_menu *menu, rtgui_event_handler_ptr handler); - -void rtgui_menu_pop(struct rtgui_menu *menu, int x, int y); -void rtgui_menu_hide(struct rtgui_menu *menu); - -#endif - diff --git a/components/rtgui/include/rtgui/widgets/mv_view.h b/components/rtgui/include/rtgui/widgets/mv_view.h deleted file mode 100644 index 290f4d0dbb..0000000000 --- a/components/rtgui/include/rtgui/widgets/mv_view.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * File : mv_view.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2012, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE - * - * Change Logs: - * Date Author Notes - * 2012-09-15 Grissiom first version - */ -#ifndef __MV_VIEW_H__ -#define __MV_VIEW_H__ - -#include <rtgui/rtgui.h> -#include <rtgui/widgets/widget.h> - -DECLARE_CLASS_TYPE(mv_view); - -/** Gets the type of a mv_view */ -#define RTGUI_MV_VIEW_TYPE (RTGUI_TYPE(mv_view)) -/** Casts the object to an mv_view */ -#define RTGUI_MV_VIEW(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_MV_VIEW_TYPE, struct rtgui_mv_view)) -/** Checks if the object is an mv_view */ -#define RTGUI_IS_MV_VIEW(obj) (RTGUI_OBJECT_CHECK_TYPE((obj), RTGUI_MV_VIEW_TYPE)) - -struct rtgui_mv_view -{ - struct rtgui_widget parent; - rt_uint16_t model_number; - /* if the model_number is 1, the model is the pointer to the model. If the - * model_number is more than 1, model is a pointer to a array of pointers - * to model. */ - void *model; -}; - -struct rtgui_mv_view *rtgui_mv_view_create(void); -void rtgui_mv_view_destroy(struct rtgui_mv_view *view); - -struct rtgui_mv_model *rtgui_mv_view_foreach_in_model(struct rtgui_mv_view *view, rt_uint32_t *iter); - -#endif /* end of include guard: __MV_VIEW_H__ */ diff --git a/components/rtgui/include/rtgui/widgets/notebook.h b/components/rtgui/include/rtgui/widgets/notebook.h deleted file mode 100644 index 60d209e538..0000000000 --- a/components/rtgui/include/rtgui/widgets/notebook.h +++ /dev/null @@ -1,72 +0,0 @@ -#ifndef __RTGUI_NOTEBOOK_H__ -#define __RTGUI_NOTEBOOK_H__ - -#include <rtgui/rtgui.h> -#include <rtgui/image.h> -#include <rtgui/widgets/widget.h> - -DECLARE_CLASS_TYPE(notebook); -/** Gets the type of a notebook */ -#define RTGUI_NOTEBOOK_TYPE (RTGUI_TYPE(notebook)) -/** Casts the object to a notebook control */ -#define RTGUI_NOTEBOOK(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_NOTEBOOK_TYPE, struct rtgui_notebook)) -/** Checks if the object is a notebook control */ -#define RTGUI_IS_NOTEBOOK(obj) (RTGUI_OBJECT_CHECK_TYPE((obj), RTGUI_NOTEBOOK_TYPE)) - -#define RTGUI_NOTEBOOK_TOP 0x00 -#define RTGUI_NOTEBOOK_BOTTOM 0x01 -#define RTGUI_NOTEBOOK_NOTAB 0x02 -#define RTGUI_NOTEBOOK_LEFT 0x03 -#define RTGUI_NOTEBOOK_RIGHT 0x04 - -struct rtgui_notebook_tab; - -struct rtgui_notebook -{ - struct rtgui_widget parent; - - rt_uint8_t flag; - - /* widget private data */ - struct rtgui_notebook_tab *childs; - rt_uint16_t count; - rt_int16_t current; - - rt_uint16_t tab_w, tab_h; -}; - -struct rtgui_notebook *rtgui_notebook_create(const rtgui_rect_t *rect, rt_uint8_t style); -void rtgui_notebook_destroy(struct rtgui_notebook *notebook); - -rt_inline void rtgui_notebook_set_tab_height(struct rtgui_notebook *notebook, rt_uint16_t height) -{ - RT_ASSERT(notebook != RT_NULL); - notebook->tab_h = height; -} - -rt_inline void rtgui_notebook_set_tab_width(struct rtgui_notebook *notebook, rt_uint16_t width) -{ - RT_ASSERT(notebook != RT_NULL); - notebook->tab_w = width; -} - -void rtgui_notebook_add(struct rtgui_notebook *notebook, const char *label, struct rtgui_widget *child); -#ifdef RTGUI_USING_NOTEBOOK_IMAGE -void rtgui_notebook_add_image(struct rtgui_notebook *notebook, const char *label, struct rtgui_widget *child, - struct rtgui_image *pressed_image, struct rtgui_image *unpressed_image); -#endif -void rtgui_notebook_remove(struct rtgui_notebook *notebook, rt_uint16_t index); -struct rtgui_widget *rtgui_notebook_get_current(struct rtgui_notebook *notebook); -rt_int16_t rtgui_notebook_get_current_index(struct rtgui_notebook *notebook); - -int rtgui_notebook_get_count(struct rtgui_notebook *notebook); -void rtgui_notebook_get_client_rect(struct rtgui_notebook *notebook, struct rtgui_rect *rect); - -void rtgui_notebook_set_current(struct rtgui_notebook *notebook, struct rtgui_widget *child); -void rtgui_notebook_set_current_by_index(struct rtgui_notebook *notebook, rt_uint16_t index); - -struct rtgui_widget *rtgui_notebook_get_widget_at(struct rtgui_notebook *notebook, rt_uint16_t index); - -rt_bool_t rtgui_notebook_event_handler(struct rtgui_object *widget, struct rtgui_event *event); - -#endif diff --git a/components/rtgui/include/rtgui/widgets/panel.h b/components/rtgui/include/rtgui/widgets/panel.h deleted file mode 100644 index ec332e4eef..0000000000 --- a/components/rtgui/include/rtgui/widgets/panel.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * File : panel.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2009, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE - * - * Change Logs: - * Date Author Notes - * 2009-10-16 Bernard first version - */ -#ifndef __RTGUI_PANEL_H__ -#define __RTGUI_PANEL_H__ - -#include <rtgui/rtgui.h> -#include <rtgui/widgets/container.h> - -DECLARE_CLASS_TYPE(panel); - -/** Gets the type of a panel */ -#define RTGUI_PANEL_TYPE (RTGUI_TYPE(panel)) -/** Casts the object to an panel */ -#define RTGUI_PANEL(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_PANEL_TYPE, rtgui_panel_t)) -/** Checks if the object is an rtgui_panel */ -#define RTGUI_IS_PANEL(obj) (RTGUI_OBJECT_CHECK_TYPE((obj), RTGUI_PANEL_TYPE)) - -/* - * the panel widget - */ -struct rtgui_panel -{ - struct rtgui_container parent; - - int border_style; -}; -typedef struct rtgui_panel rtgui_panel_t; - -rtgui_panel_t *rtgui_panel_create(int border_style); -void rtgui_panel_destroy(rtgui_panel_t *panel); - -rt_inline void rtgui_panel_set_border(struct rtgui_panel *panel, int border_style) -{ - RT_ASSERT(panel != RT_NULL); - panel->border_style = border_style; -} - -rt_bool_t rtgui_panel_event_handler(struct rtgui_object *object, struct rtgui_event *event); - -#endif diff --git a/components/rtgui/include/rtgui/widgets/plot.h b/components/rtgui/include/rtgui/widgets/plot.h deleted file mode 100644 index db063f2004..0000000000 --- a/components/rtgui/include/rtgui/widgets/plot.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - * File : plot.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2012, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE - * - * Change Logs: - * Date Author Notes - * 2012-09-03 Grissiom first version - */ -#ifndef __RTGUI_PLOT_H__ -#define __RTGUI_PLOT_H__ - -#include <rtgui/rtgui.h> -#include <rtgui/widgets/widget.h> -#include <rtgui/widgets/mv_view.h> -#include <rtgui/widgets/plot_curve.h> - -DECLARE_CLASS_TYPE(plot); - -/** Gets the type of a plot */ -#define RTGUI_PLOT_TYPE (RTGUI_TYPE(plot)) -/** Casts the object to an rtgui_plot */ -#define RTGUI_PLOT(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_PLOT_TYPE, struct rtgui_plot)) -/** Checks if the object is an rtgui_plot */ -#define RTGUI_IS_PLOT(obj) (RTGUI_OBJECT_CHECK_TYPE((obj), RTGUI_PLOT_TYPE)) - -enum rtgui_plot_type -{ - RTGUI_PLOT_TYPE_SCAN, - RTGUI_PLOT_TYPE_INCREMENTAL, -}; - -/* - * the plot widget - */ -struct rtgui_plot -{ - struct rtgui_mv_view parent; - - enum rtgui_plot_type ptype; - rt_uint16_t scale_x; - rt_uint16_t scale_y; - - rtgui_plot_curve_dtype base_x; - rtgui_plot_curve_dtype base_y; -}; - -struct rtgui_plot *rtgui_plot_create(void); -void rtgui_plot_destroy(struct rtgui_plot *plot); - -void rtgui_plot_set_base(struct rtgui_plot *plot, - rtgui_plot_curve_dtype x, rtgui_plot_curve_dtype y); - -rt_bool_t rtgui_plot_event_handler(struct rtgui_object *object, struct rtgui_event *event); - -#endif diff --git a/components/rtgui/include/rtgui/widgets/plot_curve.h b/components/rtgui/include/rtgui/widgets/plot_curve.h deleted file mode 100644 index d3c3053301..0000000000 --- a/components/rtgui/include/rtgui/widgets/plot_curve.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * File : plot_curve.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2012, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE - * - * Change Logs: - * Date Author Notes - * 2012-09-03 Grissiom first version - */ -#ifndef __RTGUI_PLOT_CURVE_H__ -#define __RTGUI_PLOT_CURVE_H__ - -#include <rtgui/rtgui.h> -#include <rtgui/rtgui_mv_model.h> - -DECLARE_CLASS_TYPE(plot_curve); - -/** Gets the type of a plot_curve */ -#define RTGUI_PLOT_CURVE_TYPE (RTGUI_TYPE(plot_curve)) -/** Casts the object to an rtgui_plot */ -#define RTGUI_PLOT_CURVE(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_PLOT_CURVE_TYPE, struct rtgui_plot_curve)) -/** Checks if the object is an rtgui_plot */ -#define RTGUI_IS_PLOT_CURVE(obj) (RTGUI_OBJECT_CHECK_TYPE((obj), RTGUI_PLOT_CURVE_TYPE)) - -/* change this if you want to use other type of data. - * For example, rt_uint8_t or rt_uint32_t. */ -#define rtgui_plot_curve_dtype rt_int16_t - -struct rtgui_plot_curve -{ - struct rtgui_mv_model parent; - - rtgui_color_t color; - - rtgui_plot_curve_dtype min_x, max_x; - rtgui_plot_curve_dtype min_y, max_y; -}; - -struct rtgui_plot_curve *rtgui_plot_curve_create(void); -void rtgui_plot_curve_destroy(struct rtgui_plot_curve *curve); - -void rtgui_plot_curve_set_x(struct rtgui_plot_curve *curve, void *p); -void *rtgui_plot_curve_get_x(struct rtgui_plot_curve *curve); -void rtgui_plot_curve_set_y(struct rtgui_plot_curve *curve, void *p); -void *rtgui_plot_curve_get_y(struct rtgui_plot_curve *curve); - -#endif diff --git a/components/rtgui/include/rtgui/widgets/progressbar.h b/components/rtgui/include/rtgui/widgets/progressbar.h deleted file mode 100644 index 9c19ad724d..0000000000 --- a/components/rtgui/include/rtgui/widgets/progressbar.h +++ /dev/null @@ -1,40 +0,0 @@ -#ifndef __RTGUI_PROGRESSBAR_H__ -#define __RTGUI_PROGRESSBAR_H__ - -#include <rtgui/rtgui.h> -#include <rtgui/widgets/widget.h> - -DECLARE_CLASS_TYPE(progressbar); -/** Gets the type of a progressbar */ -#define RTGUI_PROGRESSBAR_TYPE (RTGUI_TYPE(progressbar)) -/** Casts the object to a rtgui_progressbar */ -#define RTGUI_PROGRESSBAR(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_PROGRESSBAR_TYPE, rtgui_progressbar_t)) -/** Checks if the object is a rtgui_progressbar */ -#define RTGUI_IS_PROGRESSBAR(obj) (RTGUI_OBJECT_CHECK_TYPE((obj), RTGUI_PROGRESSBAR_TYPE)) - -#define DEFAULT_WIDTH 100 -#define DEFAULT_HEIGHT 20 - -struct rtgui_progressbar -{ - struct rtgui_widget parent; - - int orient; - - int range; - int position; -}; -typedef struct rtgui_progressbar rtgui_progressbar_t; - -struct rtgui_progressbar *rtgui_progressbar_create(int orientation, int range, rtgui_rect_t *r); -void rtgui_progressbar_destroy(struct rtgui_progressbar *p_bar); - -rt_bool_t rtgui_progressbar_event_handler(struct rtgui_object *object, - struct rtgui_event *event); - -void rtgui_progressbar_set_value(struct rtgui_progressbar *p_bar, int value); -int rtgui_progressbar_get_value(struct rtgui_progressbar *p_bar); -void rtgui_progressbar_set_range(struct rtgui_progressbar *p_bar, int range); -int rtgui_progressbar_get_range(struct rtgui_progressbar *p_bar); - -#endif diff --git a/components/rtgui/include/rtgui/widgets/radiobox.h b/components/rtgui/include/rtgui/widgets/radiobox.h deleted file mode 100644 index 94dbb54b3e..0000000000 --- a/components/rtgui/include/rtgui/widgets/radiobox.h +++ /dev/null @@ -1,45 +0,0 @@ -#ifndef __RTGUI_RADIOBOX_H__ -#define __RTGUI_RADIOBOX_H__ - -#include <rtgui/rtgui.h> -#include <rtgui/widgets/widget.h> - -DECLARE_CLASS_TYPE(radiobox); -/** Gets the type of a radiobox */ -#define RTGUI_RADIOBOX_TYPE (RTGUI_TYPE(radiobox)) -/** Casts the object to an rtgui_radiobox */ -#define RTGUI_RADIOBOX(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_RADIOBOX_TYPE, rtgui_radiobox_t)) -/** Checks if the object is an rtgui_radiobox */ -#define RTGUI_IS_RADIOBOX(obj) (RTGUI_OBJECT_CHECK_TYPE((obj), RTGUI_RADIOBOX_TYPE)) - -struct rtgui_radiobox -{ - struct rtgui_widget parent; - - /* widget private data */ - char *text; /* radio box label */ - - /* box orient */ - rt_uint8_t orient; - - /* item size */ - rt_uint8_t item_size; - - char **items; - rt_uint16_t item_count; - rt_int16_t item_selection; -}; -typedef struct rtgui_radiobox rtgui_radiobox_t; - -struct rtgui_radiobox *rtgui_radiobox_create(const char *label, int orient, char **radio_items, int number); -void rtgui_radiobox_destroy(struct rtgui_radiobox *radiobox); - -void rtgui_radiobox_set_selection(struct rtgui_radiobox *radiobox, int selection); -int rtgui_radiobox_get_selection(struct rtgui_radiobox *radiobox); - -rt_bool_t rtgui_radiobox_event_handler(struct rtgui_object *object, struct rtgui_event *event); - -void rtgui_radiobox_set_orientation(struct rtgui_radiobox *radiobox, int orientation); - -#endif - diff --git a/components/rtgui/include/rtgui/widgets/scrollbar.h b/components/rtgui/include/rtgui/widgets/scrollbar.h deleted file mode 100644 index 24f1691267..0000000000 --- a/components/rtgui/include/rtgui/widgets/scrollbar.h +++ /dev/null @@ -1,92 +0,0 @@ -/* - * File : scrollbar.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2010, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE - * - * Change Logs: - * Date Author Notes - * 2010-08-09 Bernard first version - */ -#ifndef __RTGUI_SCROLLBAR_H__ -#define __RTGUI_SCROLLBAR_H__ - -#include <rtgui/widgets/widget.h> -#include <rtgui/widgets/container.h> - -#ifdef __cplusplus -extern "C" { -#endif - -DECLARE_CLASS_TYPE(scrollbar); - -/** Gets the type of a scrollbar */ -#define RTGUI_SCROLLBAR_TYPE (RTGUI_TYPE(scrollbar)) -/** Casts the object to an rtgui_scrollbar */ -#define RTGUI_SCROLLBAR(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_SCROLLBAR_TYPE, rtgui_scrollbar_t)) -/** Checks if the object is an rtgui_scrollbar */ -#define RTGUI_IS_SCROLLBAR(obj) (RTGUI_OBJECT_CHECK_TYPE((obj), RTGUI_SCROLLBAR_TYPE)) - -#define RTGUI_DEFAULT_SB_WIDTH 16 - -/* scrollbar status/positions*/ -#define SBS_UNKNOWN 0x0000 -#define SBS_LEFTARROW 0x0001 -#define SBS_RIGHTARROW 0x0002 -#define SBS_LEFTSPACE 0x0004 /* Need mouse_motion event */ -#define SBS_RIGHTSPACE 0x0008 /* Need mouse_motion event */ -#define SBS_HORZTHUMB 0x0010 /* Need mouse_motion event */ -#define SBS_UPARROW 0x0020 -#define SBS_DOWNARROW 0x0040 -#define SBS_UPSPACE 0x0080 /* Need mouse_motion event */ -#define SBS_DOWNSPACE 0x0100 /* Need mouse_motion event */ -#define SBS_VERTTHUMB 0x0200 /* Need mouse_motion event */ -#define SBS_UPTHUMB 0x0400 /* Need mouse_motion event */ -#define SBS_DOWNTHUMB 0x0800 /* Need mouse_motion event */ -#define SBS_LEFTTHUMB 0x1000 /* Need mouse_motion event */ -#define SBS_RIGHTTHUMB 0x2000 /* Need mouse_motion event */ - -struct rtgui_scrollbar -{ - /* inherit from widget */ - rtgui_widget_t parent; - - rt_uint8_t orient; - rt_uint32_t status; - - /* page_step = display lines of scrollbar */ - /* thumb_len = line_step * page_step / (page_step - (button width * 2)) */ - rt_int16_t line_step, page_step; - rt_int16_t value, thumb_len,thumb_w; - /* position 1:1 width of scrollbar */ - rt_int16_t count; - - rtgui_widget_t *widget_link;/* be connected widget */ - rt_bool_t (*on_scroll) (rtgui_object_t *obj, rtgui_event_t* event); -}; -typedef struct rtgui_scrollbar rtgui_scrollbar_t; - -rtgui_scrollbar_t* rtgui_scrollbar_create(rtgui_container_t *container,int left,int top,int w,int len,int orient); -void rtgui_scrollbar_destroy(rtgui_scrollbar_t* bar); -void rtgui_scrollbar_ondraw(rtgui_scrollbar_t* bar); -void rtgui_scrollbar_get_thumb_rect(rtgui_scrollbar_t *bar, rtgui_rect_t *erect); - -void rtgui_scrollbar_set_range(rtgui_scrollbar_t* bar, int count); -void rtgui_scrollbar_set_value(rtgui_scrollbar_t* bar, rt_int16_t value); - -void rtgui_scrollbar_set_onscroll(rtgui_scrollbar_t* bar, rtgui_event_handler_ptr handler); -void rtgui_scrollbar_set_orientation(rtgui_scrollbar_t* bar, int orient); -void rtgui_scrollbar_set_page_step(rtgui_scrollbar_t* bar, int step); -void rtgui_scrollbar_set_line_step(rtgui_scrollbar_t* bar, int step); - -rt_bool_t rtgui_scrollbar_event_handler(rtgui_object_t *obj, rtgui_event_t* event); -void rtgui_scrollbar_hide(rtgui_scrollbar_t* bar); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/components/rtgui/include/rtgui/widgets/slider.h b/components/rtgui/include/rtgui/widgets/slider.h deleted file mode 100644 index ea99fb736e..0000000000 --- a/components/rtgui/include/rtgui/widgets/slider.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * File : slider.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2009, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE - * - * Change Logs: - * Date Author Notes - * 2009-10-16 Bernard first version - */ -#ifndef __RTGUI_SLIDER_H__ -#define __RTGUI_SLIDER_H__ - -#include <rtgui/rtgui.h> -#include <rtgui/widgets/widget.h> - -DECLARE_CLASS_TYPE(slider); -/** Gets the type of a slider */ -#define RTGUI_SLIDER_TYPE (RTGUI_TYPE(slider)) -/** Casts the object to an rtgui_slider */ -#define RTGUI_SLIDER(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_SLIDER_TYPE, rtgui_slider_t)) -/** Checks if the object is an rtgui_slider */ -#define RTGUI_IS_SLIDER(obj) (RTGUI_OBJECT_CHECK_TYPE((obj), RTGUI_SLIDER_TYPE)) - -struct rtgui_slider -{ - struct rtgui_widget parent; - - /* widget private data */ - rt_size_t min, max, value, ticks; - rt_size_t thumb_width; - - int orient; - - void (*on_changed)(struct rtgui_widget *widget, struct rtgui_event *event); -}; -typedef struct rtgui_slider rtgui_slider_t; - -struct rtgui_slider *rtgui_slider_create(rt_size_t min, rt_size_t max, int orient); -void rtgui_slider_destroy(struct rtgui_slider *slider); - -rt_bool_t rtgui_slider_event_handler(struct rtgui_object *object, struct rtgui_event *event); - -void rtgui_slider_set_range(struct rtgui_slider *slider, rt_size_t min, rt_size_t max); -void rtgui_slider_set_value(struct rtgui_slider *slider, rt_size_t value); -void rtgui_slider_set_orientation(struct rtgui_slider *slider, int orientation); - -rt_size_t rtgui_slider_get_value(struct rtgui_slider *slider); - -#endif diff --git a/components/rtgui/include/rtgui/widgets/staticline.h b/components/rtgui/include/rtgui/widgets/staticline.h deleted file mode 100644 index 6ba8799816..0000000000 --- a/components/rtgui/include/rtgui/widgets/staticline.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef __RTGUI_STATICLINE__H__ -#define __RTGUI_STATICLINE__H__ - -#include <rtgui/rtgui.h> -#include <rtgui/widgets/widget.h> - -/* - * the static line widget - */ - -DECLARE_CLASS_TYPE(staticline); -/** Gets the type of a staticline */ -#define RTGUI_STATICLINE_TYPE (RTGUI_TYPE(staticline)) -/** Casts the object to an rtgui_staticline */ -#define RTGUI_STATICLINE(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_STATICLINE_TYPE, rtgui_staticline_t)) -/** Checks if the object is an rtgui_staticline */ -#define RTGUI_IS_STATICLINE(obj) (RTGUI_OBJECT_CHECK_TYPE((obj), RTGUI_STATICLINE_TYPE)) - -struct rtgui_staticline -{ - /* inherit from widget */ - struct rtgui_widget parent; - - int orient; -}; -typedef struct rtgui_staticline rtgui_staticline_t; - -rtgui_staticline_t *rtgui_staticline_create(int orientation); -void rtgui_staticline_destroy(rtgui_staticline_t *staticline); - -rt_bool_t rtgui_staticline_event_handler(struct rtgui_object *object, struct rtgui_event *event); -void rtgui_staticline_set_orientation(rtgui_staticline_t *staticline, int orientation); - -#endif - diff --git a/components/rtgui/include/rtgui/widgets/textbox.h b/components/rtgui/include/rtgui/widgets/textbox.h deleted file mode 100644 index 989c170efb..0000000000 --- a/components/rtgui/include/rtgui/widgets/textbox.h +++ /dev/null @@ -1,107 +0,0 @@ -/* -* File : textbox.h -* This file is part of RT-Thread RTOS -* COPYRIGHT (C) 2006 - 2009, RT-Thread Development Team -* -* The license and distribution terms for this file may be -* found in the file LICENSE in this distribution or at -* http://www.rt-thread.org/license/LICENSE -* -* Change Logs: -* Date Author Notes -* 2009-10-16 Bernard first version -*/ -#ifndef __RTGUI_TEXTBOX_H__ -#define __RTGUI_TEXTBOX_H__ - -#include <rtgui/rtgui_system.h> -#include <rtgui/widgets/widget.h> -#include <rtgui/widgets/container.h> - -#ifdef __cplusplus -extern "C" { -#endif - -DECLARE_CLASS_TYPE(textbox); - -/** Gets the type of a textbox */ -#define RTGUI_TEXTBOX_TYPE (RTGUI_TYPE(textbox)) -/** Casts the object to a rtgui_textbox_t */ -#define RTGUI_TEXTBOX(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_TEXTBOX_TYPE, rtgui_textbox_t)) -/** Checks if the object is a rtgui_textbox_t */ -#define RTGUI_IS_TEXTBOX(obj) (RTGUI_OBJECT_CHECK_TYPE((obj), RTGUI_TEXTBOX_TYPE)) - -#define RTGUI_TEXTBOX_DEFAULT_WIDTH 80 -#define RTGUI_TEXTBOX_DEFAULT_HEIGHT 20 - -#define RTGUI_TEXTBOX_BORDER_WIDTH 1 - -#define RTGUI_TEXTBOX_SINGLE 0x00 -#define RTGUI_TEXTBOX_MULTI 0x01 /* multiline */ -#define RTGUI_TEXTBOX_MASK 0x02 /* ciphertext */ -#define RTGUI_TEXTBOX_DIGIT 0x04 /* digit */ -#define RTGUI_TEXTBOX_CARET_SHOW 0x10 -#define RTGUI_TEXTBOX_CARET_STAT 0x20 /* unused */ - -#define RTGUI_TEXTBOX_LINE_MAX 128 /* text line cache */ - -struct rtgui_textbox -{ - /* inherit from widget */ - struct rtgui_widget parent; - - /* text box flag */ - rt_uint32_t flag; - - /* current line and position */ - rt_uint16_t line, line_begin, position; - /** maximum chars a line could hold excluding the NULL byte */ - rt_uint16_t line_length; - rt_uint16_t dis_length; /*may be display length.*/ - rt_uint16_t first_pos; - char mask_char; - /** a NULL terminated string that the textbox is holding */ - char *text; - rt_size_t font_width; - - rtgui_timer_t *caret_timer; - rtgui_color_t *caret; - rtgui_rect_t caret_rect; - - /* textbox private data */ - rt_bool_t (*on_enter)(struct rtgui_textbox *box, rtgui_event_t *event); -}; -typedef struct rtgui_textbox rtgui_textbox_t; - -rtgui_textbox_t *rtgui_textbox_create(const char *text, rt_uint32_t flag); -void rtgui_textbox_destroy(struct rtgui_textbox *box); - -rt_bool_t rtgui_textbox_event_handler(struct rtgui_object *object, struct rtgui_event *event); - -void rtgui_textbox_set_value(struct rtgui_textbox *box, const char *text); -const char *rtgui_textbox_get_value(struct rtgui_textbox *box); -void rtgui_textbox_set_mask_char(rtgui_textbox_t *box, const char ch); -char rtgui_textbox_get_mask_char(rtgui_textbox_t *box); -/** set the maximum chars a line could hold excluding the NULL byte - * - * It will truncate the current line if the length is smaller than the chars - * the box is currently holding. But the box->text is guaranteed to be NULL - * terminated anyway. - * - * @param box the text box it operate on - * @param length the new line length. It should be greater than 0. - * - * @return -RT_ERROR on invalid length; -RT_ENOMEM if there is no enough memory - * to allocate the new buffer. On returning -RT_ENOMEM, the original text would - * remain unchanged. - */ -rt_err_t rtgui_textbox_set_line_length(struct rtgui_textbox *box, rt_size_t length); - -void rtgui_textbox_get_edit_rect(struct rtgui_textbox *box, rtgui_rect_t *rect); - -void rtgui_textbox_ondraw(rtgui_textbox_t *box); -#ifdef __cplusplus -} -#endif - -#endif diff --git a/components/rtgui/include/rtgui/widgets/textview.h b/components/rtgui/include/rtgui/widgets/textview.h deleted file mode 100644 index 14ff51821a..0000000000 --- a/components/rtgui/include/rtgui/widgets/textview.h +++ /dev/null @@ -1,67 +0,0 @@ -/* - * File : textview.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2011, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE - * - * Change Logs: - * Date Author Notes - * 2011-03-05 Bernard first version - */ -#ifndef __RTGUI_TEXTVIEW_H__ -#define __RTGUI_TEXTVIEW_H__ - -#include <rtgui/widgets/widget.h> - -#ifdef __cplusplus -extern "C" { -#endif - - /** - * @defgroup rtgui_textview - * @{ - */ - - DECLARE_CLASS_TYPE(textview); - - /** Gets the type of a textview */ -#define RTGUI_TEXTVIEW_TYPE (RTGUI_TYPE(textview)) - /** Casts the object to an rtgui_textview */ -#define RTGUI_TEXTVIEW(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_TEXTVIEW_TYPE, rtgui_textview_t)) - /** Checks if the object is an rtgui_textview */ -#define RTGUI_IS_TEXTVIEW(obj) (RTGUI_OBJECT_CHECK_TYPE((obj), RTGUI_TEXTVIEW_TYPE)) - - /* - * the textview widget - */ - struct rtgui_textview - { - /* inherit from widget */ - struct rtgui_widget parent; - - rt_uint16_t line_width; - rt_uint16_t line_count; - - char *lines; - - rt_int16_t line_current; - rt_uint16_t line_page_count; - }; - typedef struct rtgui_textview rtgui_textview_t; - - rtgui_textview_t *rtgui_textview_create(const char *text, const rtgui_rect_t *rect); - void rtgui_textview_destroy(rtgui_textview_t *textview); - - rt_bool_t rtgui_textview_event_handler(struct rtgui_object *object, struct rtgui_event *event); - void rtgui_textview_set_text(rtgui_textview_t *textview, const char *text); - - /** @} */ - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/components/rtgui/include/rtgui/widgets/title.h b/components/rtgui/include/rtgui/widgets/title.h deleted file mode 100644 index 7684f56df1..0000000000 --- a/components/rtgui/include/rtgui/widgets/title.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * File : title.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2009, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE - * - * Change Logs: - * Date Author Notes - * 2009-10-16 Bernard first version - */ -#ifndef __RTGUI_TITLE__ -#define __RTGUI_TITLE__ - -#include <rtgui/widgets/widget.h> - -DECLARE_CLASS_TYPE(wintitle); -/** Gets the type of a title */ -#define RTGUI_WINTITLE_TYPE (RTGUI_TYPE(wintitle)) -/** Casts the object to an rtgui_wintitle */ -#define RTGUI_WINTITLE(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_WINTITLE_TYPE, rtgui_wintitle_t)) -/** Checks if the object is an rtgui_wintitle */ -#define RTGUI_IS_WINTITLE(obj) (RTGUI_OBJECT_CHECK_TYPE((obj), RTGUI_WINTITLE_TYPE)) - -struct rtgui_wintitle -{ - struct rtgui_widget parent; - - /* title */ - char *title; -}; -typedef struct rtgui_wintitle rtgui_wintitle_t; - -rtgui_wintitle_t *rtgui_wintitle_create(struct rtgui_win *window, const char *title); -void rtgui_wintitle_destroy(rtgui_wintitle_t *wintitle); - -rt_bool_t rtgui_wintile_event_handler(rtgui_widget_t *widget, rtgui_event_t *event); - -void rtgui_wintitle_set_title(rtgui_wintitle_t *wintitle, const char *title); -char *rtgui_wintitle_get_title(rtgui_wintitle_t *wintitle); - -#endif diff --git a/components/rtgui/include/rtgui/widgets/widget.h b/components/rtgui/include/rtgui/widgets/widget.h deleted file mode 100644 index 60d388cc1a..0000000000 --- a/components/rtgui/include/rtgui/widgets/widget.h +++ /dev/null @@ -1,202 +0,0 @@ -/* - * File : widget.h - * This file is part of RTGUI in RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2009, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE - * - * Change Logs: - * Date Author Notes - * 2009-10-04 Bernard first version - */ -#ifndef __RTGUI_WIDGET_H__ -#define __RTGUI_WIDGET_H__ - -#include <rtgui/rtgui.h> -#include <rtgui/list.h> -#include <rtgui/region.h> -#include <rtgui/event.h> -#include <rtgui/color.h> -#include <rtgui/font.h> - -#ifdef __cplusplus -extern "C" { -#endif - -#define RTGUI_WIDGET_FLAG_DEFAULT 0x0000 -#define RTGUI_WIDGET_FLAG_SHOWN 0x0001 -#define RTGUI_WIDGET_FLAG_DISABLE 0x0002 -#define RTGUI_WIDGET_FLAG_FOCUS 0x0004 -#define RTGUI_WIDGET_FLAG_TRANSPARENT 0x0008 -#define RTGUI_WIDGET_FLAG_FOCUSABLE 0x0010 -#define RTGUI_WIDGET_FLAG_DC_VISIBLE 0x0100 - - /* rtgui widget attribute */ -#define RTGUI_WIDGET_FOREGROUND(w) (RTGUI_WIDGET(w)->gc.foreground) -#define RTGUI_WIDGET_BACKGROUND(w) (RTGUI_WIDGET(w)->gc.background) -#define RTGUI_WIDGET_TEXTALIGN(w) (RTGUI_WIDGET(w)->gc.textalign) -#define RTGUI_WIDGET_FONT(w) (RTGUI_WIDGET(w)->gc.font) -#define RTGUI_WIDGET_FLAG(w) (RTGUI_WIDGET(w)->flag) -#define RTGUI_WIDGET_ALIGN(w) (RTGUI_WIDGET(w)->align) -#define RTGUI_WIDGET_BORDER(w) (RTGUI_WIDGET(w)->border) -#define RTGUI_WIDGET_BORDER_STYLE(w) (RTGUI_WIDGET(w)->border_style) - -#define RTGUI_WIDGET_UNHIDE(w) RTGUI_WIDGET_FLAG(w) |= RTGUI_WIDGET_FLAG_SHOWN -#define RTGUI_WIDGET_HIDE(w) RTGUI_WIDGET_FLAG(w) &= ~RTGUI_WIDGET_FLAG_SHOWN -#define RTGUI_WIDGET_IS_HIDE(w) (!(RTGUI_WIDGET_FLAG(w) & RTGUI_WIDGET_FLAG_SHOWN)) - -#define RTGUI_WIDGET_ENABLE(w) RTGUI_WIDGET_FLAG(w) &= ~RTGUI_WIDGET_FLAG_DISABLE -#define RTGUI_WIDGET_DISABLE(w) RTGUI_WIDGET_FLAG(w) |= RTGUI_WIDGET_FLAG_DISABLE -#define RTGUI_WIDGET_IS_ENABLE(w) (!((RTGUI_WIDGET_FLAG(w) & RTGUI_WIDGET_FLAG_DISABLE))) - -#define RTGUI_WIDGET_UNFOCUS(w) RTGUI_WIDGET_FLAG(w) &= ~RTGUI_WIDGET_FLAG_FOCUS -#define RTGUI_WIDGET_FOCUS(w) RTGUI_WIDGET_FLAG(w) |= RTGUI_WIDGET_FLAG_FOCUS -#define RTGUI_WIDGET_IS_FOCUSED(w) (RTGUI_WIDGET_FLAG(w) & RTGUI_WIDGET_FLAG_FOCUS) - -#define RTGUI_WIDGET_IS_FOCUSABLE(w) (RTGUI_WIDGET_FLAG(w) & RTGUI_WIDGET_FLAG_FOCUSABLE) - -#define RTGUI_WIDGET_IS_DC_VISIBLE(w) (RTGUI_WIDGET_FLAG(w) & RTGUI_WIDGET_FLAG_DC_VISIBLE) -#define RTGUI_WIDGET_DC_SET_VISIBLE(w) RTGUI_WIDGET_FLAG(w) |= RTGUI_WIDGET_FLAG_DC_VISIBLE -#define RTGUI_WIDGET_DC_SET_UNVISIBLE(w) RTGUI_WIDGET_FLAG(w) &= ~RTGUI_WIDGET_FLAG_DC_VISIBLE -#define RTGUI_WIDGET_DC(w) ((struct rtgui_dc*)&((w)->dc_type)) - -DECLARE_CLASS_TYPE(widget); - -/** Gets the type of a widget */ -#define RTGUI_WIDGET_TYPE (RTGUI_TYPE(widget)) -/** Casts the object to a rtgui_widget */ -#define RTGUI_WIDGET(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_WIDGET_TYPE, rtgui_widget_t)) -/** Check if the object is a rtgui_widget */ -#define RTGUI_IS_WIDGET(obj) (RTGUI_OBJECT_CHECK_TYPE((obj), RTGUI_WIDGET_TYPE)) - -/* - * the base widget object - */ -struct rtgui_widget -{ - /* inherit from rtgui_object */ - struct rtgui_object object; - - /* the widget that contains this widget */ - struct rtgui_widget *parent; - /* the window that contains this widget */ - struct rtgui_win *toplevel; - /* the widget children and sibling */ - rtgui_list_t sibling; - - /* widget flag */ - rt_int32_t flag; - - /* hardware device context */ - rt_uint32_t dc_type; - const struct rtgui_dc_engine *dc_engine; - - /* the graphic context of widget */ - rtgui_gc_t gc; - - /* the widget extent */ - rtgui_rect_t extent; - - /* minimal width and height of widget */ - rt_int16_t min_width, min_height; - /* widget align */ - rt_int32_t align; - rt_uint16_t border; - rt_uint16_t border_style; - /* the rect clip */ - rtgui_region_t clip; - - /* call back */ - rt_bool_t (*on_focus_in)(struct rtgui_object *widget, struct rtgui_event *event); - rt_bool_t (*on_focus_out)(struct rtgui_object *widget, struct rtgui_event *event); -#ifndef RTGUI_USING_SMALL_SIZE - rt_bool_t (*on_draw)(struct rtgui_object *widget, struct rtgui_event *event); - rt_bool_t (*on_mouseclick)(struct rtgui_object *widget, struct rtgui_event *event); - rt_bool_t (*on_key)(struct rtgui_object *widget, struct rtgui_event *event); - rt_bool_t (*on_size)(struct rtgui_object *widget, struct rtgui_event *event); - rt_bool_t (*on_command)(struct rtgui_object *widget, struct rtgui_event *event); -#endif - - /* user private data */ - rt_uint32_t user_data; -}; -typedef struct rtgui_widget rtgui_widget_t; - -rtgui_widget_t *rtgui_widget_create(rtgui_type_t *widget_type); -void rtgui_widget_destroy(rtgui_widget_t *widget); - -rt_bool_t rtgui_widget_event_handler(struct rtgui_object *object, rtgui_event_t *event); - -/* focus and unfocus */ -void rtgui_widget_focus(rtgui_widget_t *widget); -void rtgui_widget_unfocus(rtgui_widget_t *widget); - -/* event handler for each command */ -void rtgui_widget_set_onfocus(rtgui_widget_t *widget, rtgui_event_handler_ptr handler); -void rtgui_widget_set_onunfocus(rtgui_widget_t *widget, rtgui_event_handler_ptr handler); -#ifndef RTGUI_USING_SMALL_SIZE -void rtgui_widget_set_ondraw(rtgui_widget_t *widget, rtgui_event_handler_ptr handler); -void rtgui_widget_set_onmouseclick(rtgui_widget_t *widget, rtgui_event_handler_ptr handler); -void rtgui_widget_set_onkey(rtgui_widget_t *widget, rtgui_event_handler_ptr handler); -void rtgui_widget_set_onsize(rtgui_widget_t *widget, rtgui_event_handler_ptr handler); -void rtgui_widget_set_oncommand(rtgui_widget_t *widget, rtgui_event_handler_ptr handler); -#endif - -/* get and set rect of widget */ -void rtgui_widget_get_rect(rtgui_widget_t *widget, rtgui_rect_t *rect); -void rtgui_widget_set_border(rtgui_widget_t *widget, rt_uint32_t style); -void rtgui_widget_set_rect(rtgui_widget_t *widget, const rtgui_rect_t *rect); -void rtgui_widget_set_rectangle(rtgui_widget_t *widget, int x, int y, int width, int height); -void rtgui_widget_get_extent(rtgui_widget_t *widget, rtgui_rect_t *rect); - -void rtgui_widget_set_minsize(rtgui_widget_t *widget, int width, int height); -void rtgui_widget_set_minwidth(rtgui_widget_t *widget, int width); -void rtgui_widget_set_minheight(rtgui_widget_t *widget, int height); - -void rtgui_widget_set_parent(rtgui_widget_t *widget, rtgui_widget_t *parent); - -/* get the physical position of a logic point on widget */ -void rtgui_widget_point_to_device(rtgui_widget_t *widget, rtgui_point_t *point); -/* get the physical position of a logic rect on widget */ -void rtgui_widget_rect_to_device(rtgui_widget_t *widget, rtgui_rect_t *rect); - -/* get the logic position of a physical point on widget */ -void rtgui_widget_point_to_logic(rtgui_widget_t *widget, rtgui_point_t *point); -/* get the logic position of a physical rect on widget */ -void rtgui_widget_rect_to_logic(rtgui_widget_t *widget, rtgui_rect_t *rect); - -/* move widget and its children to a logic point */ -void rtgui_widget_move_to_logic(rtgui_widget_t *widget, int dx, int dy); - -/* update the clip info of widget */ -void rtgui_widget_update_clip(rtgui_widget_t *widget); - -/* get the toplevel widget of widget */ -struct rtgui_win *rtgui_widget_get_toplevel(rtgui_widget_t *widget); -rt_bool_t rtgui_widget_onupdate_toplvl(struct rtgui_object *object, struct rtgui_event *event); - -void rtgui_widget_show(rtgui_widget_t *widget); -rt_bool_t rtgui_widget_onshow(struct rtgui_object *object, struct rtgui_event *event); -void rtgui_widget_hide(rtgui_widget_t *widget); -rt_bool_t rtgui_widget_onhide(struct rtgui_object *object, struct rtgui_event *event); -void rtgui_widget_update(rtgui_widget_t *widget); - -/* get parent color */ -rtgui_color_t rtgui_widget_get_parent_foreground(rtgui_widget_t *widget); -rtgui_color_t rtgui_widget_get_parent_background(rtgui_widget_t *widget); - -/* get the next sibling of widget */ -rtgui_widget_t *rtgui_widget_get_next_sibling(rtgui_widget_t *widget); -/* get the prev sibling of widget */ -rtgui_widget_t *rtgui_widget_get_prev_sibling(rtgui_widget_t *widget); - -/* dump widget information */ -void rtgui_widget_dump(rtgui_widget_t *widget); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/components/rtgui/include/rtgui/widgets/window.h b/components/rtgui/include/rtgui/widgets/window.h deleted file mode 100644 index f0642004a0..0000000000 --- a/components/rtgui/include/rtgui/widgets/window.h +++ /dev/null @@ -1,156 +0,0 @@ -/* - * File : window.h - * This file is part of RTGUI in RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2009, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE - * - * Change Logs: - * Date Author Notes - * 2009-10-04 Bernard first version - * 2010-05-03 Bernard add win close function - */ -#ifndef __RTGUI_WINDOW_H__ -#define __RTGUI_WINDOW_H__ - -#include <rtgui/rtgui.h> -#include <rtgui/list.h> -#include <rtgui/widgets/widget.h> -#include <rtgui/widgets/box.h> - -DECLARE_CLASS_TYPE(win); -/** Gets the type of a win */ -#define RTGUI_WIN_TYPE (RTGUI_TYPE(win)) -/** Casts the object to an rtgui_win */ -#define RTGUI_WIN(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_WIN_TYPE, rtgui_win_t)) -/** Checks if the object is an rtgui_win */ -#define RTGUI_IS_WIN(obj) (RTGUI_OBJECT_CHECK_TYPE((obj), RTGUI_WIN_TYPE)) - -#define RTGUI_WIN_STYLE_NO_FOCUS 0x0001 /* non-focused window */ -#define RTGUI_WIN_STYLE_NO_TITLE 0x0002 /* no title window */ -#define RTGUI_WIN_STYLE_NO_BORDER 0x0004 /* no border window */ -#define RTGUI_WIN_STYLE_CLOSEBOX 0x0008 /* window has the close button */ -#define RTGUI_WIN_STYLE_MINIBOX 0x0010 /* window has the mini button */ - -#define RTGUI_WIN_STYLE_DESTROY_ON_CLOSE 0x0020 /* window is destroyed when closed */ -#define RTGUI_WIN_STYLE_ONTOP 0x0040 /* window is in the top layer */ -#define RTGUI_WIN_STYLE_ONBTM 0x0080 /* window is in the bottom layer */ -#define RTGUI_WIN_STYLE_MAINWIN 0x0106 /* window is a main window */ - -#define RTGUI_WIN_STYLE_DEFAULT (RTGUI_WIN_STYLE_CLOSEBOX | RTGUI_WIN_STYLE_MINIBOX) - -enum rtgui_win_flag -{ - RTGUI_WIN_FLAG_INIT = 0x00, /* init state */ - RTGUI_WIN_FLAG_MODAL = 0x01, /* modal mode window */ - RTGUI_WIN_FLAG_CLOSED = 0x02, /* window is closed */ - RTGUI_WIN_FLAG_ACTIVATE = 0x04, /* window is activated */ - RTGUI_WIN_FLAG_UNDER_MODAL = 0x08, /* window is under modal - show(modaled by other) */ - RTGUI_WIN_FLAG_CONNECTED = 0x10, /* connected to server */ - /* window is event_key dispatcher(dispatch it to the focused widget in - * current window) _and_ a key handler(it should be able to handle keys - * such as ESC). Both of dispatching and handling are in the same - * function(rtgui_win_event_handler). So we have to distinguish between the - * two modes. - * - * If this flag is set, we are in key-handling mode. - */ - RTGUI_WIN_FLAG_HANDLE_KEY = 0x20 -}; - -struct rtgui_win_title; -struct rtgui_win_area; - -struct rtgui_win -{ - /* inherit from container */ - rtgui_container_t parent; - - /* drawing count */ - rt_base_t drawing; - - /* parent window. RT_NULL if the window is a top level window */ - struct rtgui_win *parent_window; - - /* the widget that will grab the focus in current window */ - struct rtgui_widget *focused_widget; - - /* which app I belong */ - struct rtgui_app *app; - - /* window style */ - rt_uint16_t style; - - /* window state flag */ - enum rtgui_win_flag flag; - - rtgui_modal_code_t modal_code; - - /* last mouse event handled widget */ - rtgui_widget_t *last_mevent_widget; - - /* window title */ - char *title; - - /* call back */ - rt_bool_t (*on_activate)(struct rtgui_object *widget, struct rtgui_event *event); - rt_bool_t (*on_deactivate)(struct rtgui_object *widget, struct rtgui_event *event); - rt_bool_t (*on_close)(struct rtgui_object *widget, struct rtgui_event *event); - /* the key is sent to the focused widget by default. If the focused widget - * and all of it's parents didn't handle the key event, it will be handled - * by @func on_key - * - * If you want to handle key event on your own, it's better to overload - * this function other than handle EVENT_KBD in event_handler. - */ - rt_bool_t (*on_key)(struct rtgui_object *widget, struct rtgui_event *event); - - /* reserved user data */ - rt_uint32_t user_data; -}; - -rtgui_win_t *rtgui_win_create(struct rtgui_win *parent_window, const char *title, - rtgui_rect_t *rect, rt_uint16_t style); -rtgui_win_t *rtgui_mainwin_create(struct rtgui_win *parent_window, const char *title, rt_uint16_t style); - -void rtgui_win_destroy(rtgui_win_t *win); - -/** Close window. - * - * @param win the window you want to close - * - * @return RT_TRUE if the window is closed. RT_FALSE if not. If the onclose - * callback returns RT_FALSE, the window won't be closed. - * - * \sa rtgui_win_set_onclose . - */ -rt_bool_t rtgui_win_close(struct rtgui_win *win); - -rt_base_t rtgui_win_show(struct rtgui_win *win, rt_bool_t is_modal); -void rtgui_win_hide(rtgui_win_t *win); -void rtgui_win_end_modal(rtgui_win_t *win, rtgui_modal_code_t modal_code); -rt_err_t rtgui_win_activate(struct rtgui_win *win); -rt_bool_t rtgui_win_is_activated(struct rtgui_win *win); - -void rtgui_win_move(struct rtgui_win *win, int x, int y); - -/* reset extent of window */ -void rtgui_win_set_rect(rtgui_win_t *win, rtgui_rect_t *rect); -void rtgui_win_update_clip(struct rtgui_win *win); - -void rtgui_win_set_onactivate(rtgui_win_t *win, rtgui_event_handler_ptr handler); -void rtgui_win_set_ondeactivate(rtgui_win_t *win, rtgui_event_handler_ptr handler); -void rtgui_win_set_onclose(rtgui_win_t *win, rtgui_event_handler_ptr handler); -void rtgui_win_set_onkey(rtgui_win_t *win, rtgui_event_handler_ptr handler); - -rt_bool_t rtgui_win_event_handler(struct rtgui_object *win, struct rtgui_event *event); - -void rtgui_win_event_loop(rtgui_win_t *wnd); - -void rtgui_win_set_title(rtgui_win_t *win, const char *title); -char *rtgui_win_get_title(rtgui_win_t *win); - -#endif |
