summaryrefslogtreecommitdiff
path: root/components/rtgui/include
diff options
context:
space:
mode:
authorBernard Xiong <[email protected]>2013-02-21 13:11:10 +0800
committerBernard Xiong <[email protected]>2013-02-21 13:11:10 +0800
commit385f682d7bfce81ba281faaffb0a250ab94985b8 (patch)
tree94fca413db98390d21dc18938067a7a90e470a6f /components/rtgui/include
parentc4bd0023f8da136c5788f47f9a0170a77f627be9 (diff)
remove RT-Thread GUI from RT-Thread temporary
Diffstat (limited to 'components/rtgui/include')
-rw-r--r--components/rtgui/include/rtgui/blit.h10
-rw-r--r--components/rtgui/include/rtgui/color.h139
-rw-r--r--components/rtgui/include/rtgui/dc.h206
-rw-r--r--components/rtgui/include/rtgui/dc_client.h27
-rw-r--r--components/rtgui/include/rtgui/dc_hw.h24
-rw-r--r--components/rtgui/include/rtgui/dlist.h119
-rw-r--r--components/rtgui/include/rtgui/driver.h99
-rw-r--r--components/rtgui/include/rtgui/event.h466
-rw-r--r--components/rtgui/include/rtgui/filerw.h60
-rw-r--r--components/rtgui/include/rtgui/font.h118
-rw-r--r--components/rtgui/include/rtgui/font_freetype.h10
-rw-r--r--components/rtgui/include/rtgui/image.h91
-rw-r--r--components/rtgui/include/rtgui/image_bmp.h46
-rw-r--r--components/rtgui/include/rtgui/image_container.h27
-rw-r--r--components/rtgui/include/rtgui/image_hdc.h37
-rw-r--r--components/rtgui/include/rtgui/image_jpeg.h8
-rw-r--r--components/rtgui/include/rtgui/image_png.h21
-rw-r--r--components/rtgui/include/rtgui/image_xpm.h21
-rw-r--r--components/rtgui/include/rtgui/kbddef.h295
-rw-r--r--components/rtgui/include/rtgui/list.h66
-rw-r--r--components/rtgui/include/rtgui/region.h104
-rw-r--r--components/rtgui/include/rtgui/rtgui.h150
-rw-r--r--components/rtgui/include/rtgui/rtgui_app.h96
-rw-r--r--components/rtgui/include/rtgui/rtgui_config.h51
-rw-r--r--components/rtgui/include/rtgui/rtgui_mv_model.h58
-rw-r--r--components/rtgui/include/rtgui/rtgui_object.h148
-rw-r--r--components/rtgui/include/rtgui/rtgui_server.h86
-rw-r--r--components/rtgui/include/rtgui/rtgui_system.h78
-rw-r--r--components/rtgui/include/rtgui/rtgui_theme.h66
-rw-r--r--components/rtgui/include/rtgui/rtgui_xml.h35
-rw-r--r--components/rtgui/include/rtgui/tree.h748
-rw-r--r--components/rtgui/include/rtgui/widgets/box.h55
-rw-r--r--components/rtgui/include/rtgui/widgets/button.h92
-rw-r--r--components/rtgui/include/rtgui/widgets/checkbox.h43
-rw-r--r--components/rtgui/include/rtgui/widgets/combobox.h49
-rw-r--r--components/rtgui/include/rtgui/widgets/container.h69
-rw-r--r--components/rtgui/include/rtgui/widgets/digfont.h36
-rw-r--r--components/rtgui/include/rtgui/widgets/digtube.h68
-rw-r--r--components/rtgui/include/rtgui/widgets/edit.h114
-rw-r--r--components/rtgui/include/rtgui/widgets/filelist_view.h58
-rw-r--r--components/rtgui/include/rtgui/widgets/groupbox.h73
-rw-r--r--components/rtgui/include/rtgui/widgets/iconbox.h56
-rw-r--r--components/rtgui/include/rtgui/widgets/label.h49
-rw-r--r--components/rtgui/include/rtgui/widgets/list_view.h76
-rw-r--r--components/rtgui/include/rtgui/widgets/listbox.h67
-rw-r--r--components/rtgui/include/rtgui/widgets/listctrl.h66
-rw-r--r--components/rtgui/include/rtgui/widgets/menu.h78
-rw-r--r--components/rtgui/include/rtgui/widgets/mv_view.h44
-rw-r--r--components/rtgui/include/rtgui/widgets/notebook.h72
-rw-r--r--components/rtgui/include/rtgui/widgets/panel.h51
-rw-r--r--components/rtgui/include/rtgui/widgets/plot.h60
-rw-r--r--components/rtgui/include/rtgui/widgets/plot_curve.h51
-rw-r--r--components/rtgui/include/rtgui/widgets/progressbar.h40
-rw-r--r--components/rtgui/include/rtgui/widgets/radiobox.h45
-rw-r--r--components/rtgui/include/rtgui/widgets/scrollbar.h92
-rw-r--r--components/rtgui/include/rtgui/widgets/slider.h53
-rw-r--r--components/rtgui/include/rtgui/widgets/staticline.h35
-rw-r--r--components/rtgui/include/rtgui/widgets/textbox.h107
-rw-r--r--components/rtgui/include/rtgui/widgets/textview.h67
-rw-r--r--components/rtgui/include/rtgui/widgets/title.h44
-rw-r--r--components/rtgui/include/rtgui/widgets/widget.h202
-rw-r--r--components/rtgui/include/rtgui/widgets/window.h156
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