summaryrefslogtreecommitdiff
path: root/components/rtgui_win/include
diff options
context:
space:
mode:
author[email protected] <[email protected]>2011-03-24 14:12:30 +0000
committer[email protected] <[email protected]>2011-03-24 14:12:30 +0000
commit0621f30e9d4e69220991ad2a18ba6e89814f46f9 (patch)
tree87af4a64ad418226d98f216f3b5ea8e8e6406760 /components/rtgui_win/include
parent0e93e6809c7beac4597148edc1dc09bcdf9a2ab3 (diff)
move rtgui_win to branches.
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1346 bbd45198-f89e-11dd-88c7-29a3b14d5316
Diffstat (limited to 'components/rtgui_win/include')
-rw-r--r--components/rtgui_win/include/rtgui/blit.h9
-rw-r--r--components/rtgui_win/include/rtgui/color.h104
-rw-r--r--components/rtgui_win/include/rtgui/dc.h197
-rw-r--r--components/rtgui_win/include/rtgui/dc_client.h27
-rw-r--r--components/rtgui_win/include/rtgui/dc_hw.h24
-rw-r--r--components/rtgui_win/include/rtgui/driver.h67
-rw-r--r--components/rtgui_win/include/rtgui/event.h341
-rw-r--r--components/rtgui_win/include/rtgui/filerw.h48
-rw-r--r--components/rtgui_win/include/rtgui/font.h116
-rw-r--r--components/rtgui_win/include/rtgui/image.h78
-rw-r--r--components/rtgui_win/include/rtgui/image_bmp.h19
-rw-r--r--components/rtgui_win/include/rtgui/image_hdc.h37
-rw-r--r--components/rtgui_win/include/rtgui/image_jpeg.h8
-rw-r--r--components/rtgui_win/include/rtgui/image_png.h21
-rw-r--r--components/rtgui_win/include/rtgui/image_xpm.h21
-rw-r--r--components/rtgui_win/include/rtgui/kbddef.h293
-rw-r--r--components/rtgui_win/include/rtgui/list.h66
-rw-r--r--components/rtgui_win/include/rtgui/region.h101
-rw-r--r--components/rtgui_win/include/rtgui/rtgui.h154
-rw-r--r--components/rtgui_win/include/rtgui/rtgui_config.h41
-rw-r--r--components/rtgui_win/include/rtgui/rtgui_object.h107
-rw-r--r--components/rtgui_win/include/rtgui/rtgui_server.h32
-rw-r--r--components/rtgui_win/include/rtgui/rtgui_system.h94
-rw-r--r--components/rtgui_win/include/rtgui/rtgui_theme.h80
-rw-r--r--components/rtgui_win/include/rtgui/rtgui_xml.h34
-rw-r--r--components/rtgui_win/include/rtgui/tree.h748
-rw-r--r--components/rtgui_win/include/rtgui/widgets/button.h84
-rw-r--r--components/rtgui_win/include/rtgui/widgets/checkbox.h35
-rw-r--r--components/rtgui_win/include/rtgui/widgets/combobox.h62
-rw-r--r--components/rtgui_win/include/rtgui/widgets/container.h50
-rw-r--r--components/rtgui_win/include/rtgui/widgets/dialog.h32
-rw-r--r--components/rtgui_win/include/rtgui/widgets/filelist_view.h60
-rw-r--r--components/rtgui_win/include/rtgui/widgets/iconbox.h58
-rw-r--r--components/rtgui_win/include/rtgui/widgets/label.h48
-rw-r--r--components/rtgui_win/include/rtgui/widgets/list_view.h76
-rw-r--r--components/rtgui_win/include/rtgui/widgets/listbox.h75
-rw-r--r--components/rtgui_win/include/rtgui/widgets/menu.h106
-rw-r--r--components/rtgui_win/include/rtgui/widgets/progressbar.h40
-rw-r--r--components/rtgui_win/include/rtgui/widgets/radiobox.h42
-rw-r--r--components/rtgui_win/include/rtgui/widgets/scrollbar.h92
-rw-r--r--components/rtgui_win/include/rtgui/widgets/slider.h40
-rw-r--r--components/rtgui_win/include/rtgui/widgets/staticline.h32
-rw-r--r--components/rtgui_win/include/rtgui/widgets/textbox.h78
-rw-r--r--components/rtgui_win/include/rtgui/widgets/view.h62
-rw-r--r--components/rtgui_win/include/rtgui/widgets/widget.h168
-rw-r--r--components/rtgui_win/include/rtgui/widgets/window.h130
46 files changed, 0 insertions, 4237 deletions
diff --git a/components/rtgui_win/include/rtgui/blit.h b/components/rtgui_win/include/rtgui/blit.h
deleted file mode 100644
index 615e5b6d7e..0000000000
--- a/components/rtgui_win/include/rtgui/blit.h
+++ /dev/null
@@ -1,9 +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);
-
-#endif
diff --git a/components/rtgui_win/include/rtgui/color.h b/components/rtgui_win/include/rtgui/color.h
deleted file mode 100644
index d5b17b8e5e..0000000000
--- a/components/rtgui_win/include/rtgui/color.h
+++ /dev/null
@@ -1,104 +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
- */
-#ifndef __RTGUI_COLOR_H__
-#define __RTGUI_COLOR_H__
-
-#include <rtgui/rtgui.h>
-
-
-extern const rtgui_color_t default_foreground;
-extern const rtgui_color_t default_background;
-extern const rtgui_color_t selected_color;
-
-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 yellow;
-extern const rtgui_color_t cyan;
-extern const rtgui_color_t purple;
-extern const rtgui_color_t dark;
-
-extern const rtgui_color_t high_light;
-extern const rtgui_color_t dark_grey;
-extern const rtgui_color_t light_grey;
-
-
-#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) >> 0) & 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)
-
-/*
- * RTGUI default color format
- * BBBB BBBB GGGG GGGG RRRR RRRR
- */
-
-/* convert rtgui color to BBBBB_GGGGGG_RRRRR */
-rt_inline rt_uint16_t rtgui_color_to_565(rt_uint32_t c)
-{
- rt_uint16_t pixel;
-
- pixel = (rt_uint16_t)(((RTGUI_RGB_B(c)*31/255) << 11) | ((RTGUI_RGB_G(c)*63/255) << 5) | (RTGUI_RGB_R(c)*31/255));
- return pixel;
-}
-
-rt_inline rt_uint32_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 RRRRR_GGGGGG)BBBBB */
-rt_inline rt_uint16_t rtgui_color_to_565p(rt_uint32_t c)
-{
- rt_uint16_t pixel;
-
- pixel = (rt_uint16_t)(((RTGUI_RGB_R(c)*31/255) << 11) | ((RTGUI_RGB_G(c)*63/255) << 5) | (RTGUI_RGB_B(c)*31/255));
- return pixel;
-}
-
-rt_inline rt_uint32_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;
-}
-
-
-#endif
-
diff --git a/components/rtgui_win/include/rtgui/dc.h b/components/rtgui_win/include/rtgui/dc.h
deleted file mode 100644
index 4239283e55..0000000000
--- a/components/rtgui_win/include/rtgui/dc.h
+++ /dev/null
@@ -1,197 +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,
- RTGUI_DC_IMLIB2,
-};
-
-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;
-};
-
-#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(PVOID wdt);
-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_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_win/include/rtgui/dc_client.h b/components/rtgui_win/include/rtgui/dc_client.h
deleted file mode 100644
index 297307c875..0000000000
--- a/components/rtgui_win/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_win/include/rtgui/dc_hw.h b/components/rtgui_win/include/rtgui/dc_hw.h
deleted file mode 100644
index f4c84dd755..0000000000
--- a/components/rtgui_win/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_win/include/rtgui/driver.h b/components/rtgui_win/include/rtgui/driver.h
deleted file mode 100644
index 9b3db0e19b..0000000000
--- a/components/rtgui_win/include/rtgui/driver.h
+++ /dev/null
@@ -1,67 +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>
-
-struct rtgui_graphic_driver
-{
- /* driver name */
- char* name;
-
- /* byte per pixel */
- rt_uint16_t byte_per_pixel;
-
- /* screen width and height */
- rt_uint16_t width;
- rt_uint16_t height;
-
- /* screen update */
- void (*screen_update)(rtgui_rect_t* rect);
-
- /* get video frame buffer */
- rt_uint8_t* (*get_framebuffer)(void);
-
- /* set and get pixel in (x, y) */
- void (*set_pixel) (rtgui_color_t *c, rt_base_t x, rt_base_t y);
- void (*get_pixel) (rtgui_color_t *c, rt_base_t x, rt_base_t y);
-
- void (*draw_hline)(rtgui_color_t *c, rt_base_t x1, rt_base_t x2, rt_base_t y);
- void (*draw_vline)(rtgui_color_t *c, rt_base_t x , rt_base_t y1, rt_base_t y2);
-
- /* draw raw rt_hw_lcd_draw_hline */
- void (*draw_raw_hline)(rt_uint8_t *pixels, rt_base_t x1, rt_base_t x2, rt_base_t y);
-
- /* the driver list */
- rtgui_list_t list;
-};
-
-#ifdef RTGUI_USING_GRAPHIC_DRIVER_LIST
-void rtgui_graphic_driver_add(struct rtgui_graphic_driver* driver);
-void rtgui_graphic_driver_remove(struct rtgui_graphic_driver* driver);
-
-struct rtgui_graphic_driver* rtgui_graphic_driver_find(char* name);
-#else
-void rtgui_graphic_driver_add(const struct rtgui_graphic_driver* driver);
-#endif
-
-const 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_get_default_rect(rtgui_rect_t *rect);
-
-#endif
-
diff --git a/components/rtgui_win/include/rtgui/event.h b/components/rtgui_win/include/rtgui/event.h
deleted file mode 100644
index 7f5241ab20..0000000000
--- a/components/rtgui_win/include/rtgui/event.h
+++ /dev/null
@@ -1,341 +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/rtgui_system.h>
-
-/* Use new name & namespace */
-typedef struct rtgui_event rtgui_event_t;
-typedef struct rtgui_event_win rtgui_event_win_t;
-typedef struct rtgui_event_win_move rtgui_event_win_move_t;
-typedef struct rtgui_event_win_resize rtgui_event_win_resize_t;
-
-typedef struct rtgui_event_set_wm rtgui_event_set_wm_t;
-typedef struct rtgui_event_update rtgui_event_update_t;
-typedef struct rtgui_event_monitor rtgui_event_monitor_t;
-typedef struct rtgui_event_paint rtgui_event_paint_t;
-typedef struct rtgui_event_timer rtgui_event_timer_t;
-typedef struct rtgui_event_clip rtgui_event_clip_t;
-
-typedef struct rtgui_event_mouse rtgui_event_mouse_t;
-typedef struct rtgui_event_kbd rtgui_event_kbd_t;
-typedef struct rtgui_event_current_pos rtgui_event_current_pos_t;//���������¼�
-typedef struct rtgui_event_backlight rtgui_event_backlight_t;//LCD����
-typedef struct rtgui_event_command rtgui_event_command_t;
-typedef struct rtgui_event_scrollbar rtgui_event_scrollbar_t;
-
-typedef struct rtgui_event_focused rtgui_event_focused_t;
-typedef struct rtgui_event_resize rtgui_event_resize_t;
-
-
-/* panel event NULL */
-
-/* window event */
-#define RTGUI_EVENT_PANEL_ATTACH 0 /* attach to a panel */
-#define RTGUI_EVENT_PANEL_DETACH 1 /* detach from a panel */
-#define RTGUI_EVENT_PANEL_SHOW 2 /* show in a panel */
-#define RTGUI_EVENT_PANEL_HIDE 3 /* hide from a panel */
-#define RTGUI_EVENT_PANEL_INFO 4 /* panel information */
-#define RTGUI_EVENT_PANEL_RESIZE 5 /* resize panel */
-#define RTGUI_EVENT_PANEL_FULLSCREEN 6 /* to full screen */
-#define RTGUI_EVENT_PANEL_NORMAL 7 /* to normal screen */
-
-#define RTGUI_EVENT_WIN_CREATE 8 /* create a window */
-#define RTGUI_EVENT_WIN_DESTROY 9 /* destroy a window */
-#define RTGUI_EVENT_WIN_SHOW 10 /* show a window */
-#define RTGUI_EVENT_WIN_HIDE 11 /* hide a window */
-#define RTGUI_EVENT_WIN_ACTIVATE 12 /* activate a window */
-#define RTGUI_EVENT_WIN_DEACTIVATE 13 /* deactivate a window */
-#define RTGUI_EVENT_WIN_CLOSE 14 /* close a window */
-#define RTGUI_EVENT_WIN_MAX 15 /* max a window */
-#define RTGUI_EVENT_WIN_MIN 16 /* min a window */
-#define RTGUI_EVENT_WIN_MOVE 17 /* move a window */
-#define RTGUI_EVENT_WIN_RESIZE 18 /* resize a window */
-#define RTGUI_EVENT_UPDATE 19 /* update a rect */
-#define RTGUI_EVENT_PAINT 23 /* paint on screen */
-#define RTGUI_EVENT_TIMER 24 /* timer 0x17 */
-/* clip rect information */
-#define RTGUI_EVENT_CLIP 25 /* ��������Ϣ */
-/* mouse and keyboard event */
-#define RTGUI_EVENT_MOUSE_MOTION 26 /* ������� */
-#define RTGUI_EVENT_MOUSE_BUTTON 27 /* ����� */
-#define RTGUI_EVENT_KBD 28 /* keyboard info 0x1B*/
-/* user command event */
-#define RTGUI_EVENT_COMMAND 29 /* �û����� */
-/* widget event */
-#define RTGUI_EVENT_FOCUSED 30 /* �ؼ����� */
-#define RTGUI_EVENT_SCROLLED 31 /* scroll bar scrolled */
-#define RTGUI_EVENT_RESIZE 32 /* widget resize */
-#define RTGUI_EVENT_CURRENT_POS 33 /* ���µ�ǰ����� */
-#define RTGUI_EVENT_BACKLIGHT 34 /* Һ�������� */
-
-enum {
- RTGUI_STATUS_OK = 0, /* status ok */
- RTGUI_STATUS_ERROR, /* generic error */
- RTGUI_STATUS_NRC, /* no resource */
-};
-
-struct rtgui_event
-{
- /* the event type */
- rt_uint16_t type;
- /* user field of event */
- rt_uint16_t user;
-
- /* the event sender */
- struct rt_thread* sender;
-
- /* mailbox to acknowledge request */
- struct rt_mailbox* ack;
-};
-
-#define RTGUI_EVENT(e) ((rtgui_event_t*)(e))
-
-#define RTGUI_EVENT_INIT(e, t) do \
-{ \
- (e)->type = (t); \
- (e)->user = 0; \
- (e)->sender = rt_thread_self(); \
- (e)->ack = RT_NULL; \
-} while(0)
-
-/*
- * RTGUI Window Event
- */
-struct rtgui_event_win
-{
- rtgui_event_t parent;
-
- /* the window id */
- rtgui_win_t* wid;
-};
-
-struct rtgui_event_win_move
-{
- rtgui_event_t parent;
-
- /* the window id */
- rtgui_win_t* wid;
-
- rt_int16_t x, y;
-};
-
-struct rtgui_event_win_resize
-{
- rtgui_event_t parent;
-
- /* the window id */
- rtgui_win_t* wid;
-
- rtgui_rect_t rect;
-};
-
-/* 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_MAX_INIT(e) RTGUI_EVENT_INIT(&((e)->parent), RTGUI_EVENT_WIN_MAX)
-#define RTGUI_EVENT_WIN_MIN_INIT(e) RTGUI_EVENT_INIT(&((e)->parent), RTGUI_EVENT_WIN_MIN)
-#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)
-
-/*
- * RTGUI Other Event
- */
-struct rtgui_event_update
-{
- rtgui_event_t parent;
-
- /* the update rect */
- rtgui_rect_t rect;
-};
-
-struct rtgui_event_monitor
-{
- rtgui_event_t parent;
-
- /* the monitor rect */
- rtgui_rect_t rect;
-
- /* under panel */
- rtgui_panel_t* panel;
-
- /* or under window */
- rtgui_win_t* wid;
-};
-
-struct rtgui_event_paint
-{
- rtgui_event_t parent;
- rtgui_win_t* wid; /* destination window */
- rt_bool_t bfull;//����ȫ��,���Ǹ����ӿؼ�
-};
-
-struct rtgui_event_timer
-{
- rtgui_event_t parent;
-
- rtgui_timer_t *timer;
-};
-
-struct rtgui_event_clip
-{
- rtgui_event_t parent;
- /* destination window */
- rtgui_win_t* wid;
- /* 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_INIT(e) RTGUI_EVENT_INIT(&((e)->parent), RTGUI_EVENT_UPDATE)
-#define RTGUI_EVENT_CLIP_INIT(e) RTGUI_EVENT_INIT(&((e)->parent), RTGUI_EVENT_CLIP)
-#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)
-
-/*
- * RTGUI Mouse and Keyboard Event
- */
-struct rtgui_event_mouse
-{
- rtgui_event_t parent;
-
- rtgui_win_t* wid; /* destination window */
-
- rt_uint16_t x, y;
- rt_uint16_t button;
-};
-
-#define RTGUI_MOUSE_BUTTON_RIGHT 0x01
-#define RTGUI_MOUSE_BUTTON_LEFT 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_t parent;
-
- rtgui_win_t* wid; /* destination window */
-
- 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 */
-};
-
-struct rtgui_event_current_pos
-{
- rtgui_event_t parent;
-};
-
-//Һ��������
-struct rtgui_event_backlight
-{
- rtgui_event_t parent;
- rt_uint16_t light;
-};
-
-#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)
-#define RTGUI_EVENT_CURRENT_POS_INIT(e) RTGUI_EVENT_INIT(&((e)->parent), RTGUI_EVENT_CURRENT_POS)
-#define RTGUI_EVENT_BACKLIGHT_INIT(e) RTGUI_EVENT_INIT(&((e)->parent), RTGUI_EVENT_BACKLIGHT)
-
-struct rtgui_event_command
-{
- rtgui_event_t parent;
-
- /* command type */
- rt_int32_t type;
-
- /* command id */
- rt_int32_t command;
-
- /* 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
-{
- rtgui_event_t 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
-{
- rtgui_event_t parent;
-
- rtgui_widget_t* widget;
-};
-#define RTGUI_EVENT_FOCUSED_INIT(e) RTGUI_EVENT_INIT(&((e)->parent), RTGUI_EVENT_FOCUSED)
-
-/*
- * RTGUI Widget Resize Event
- */
-struct rtgui_event_resize
-{
- rtgui_event_t 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)
-
-#endif
-
diff --git a/components/rtgui_win/include/rtgui/filerw.h b/components/rtgui_win/include/rtgui/filerw.h
deleted file mode 100644
index 95e419621f..0000000000
--- a/components/rtgui_win/include/rtgui/filerw.h
+++ /dev/null
@@ -1,48 +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__
-
-#include <rtgui/rtgui.h>
-
-#define RTGUI_FILE_SEEK_SET 0
-#define RTGUI_FILE_SEEK_CUR 1
-#define RTGUI_FILE_SEEK_END 2
-
-typedef struct rtgui_filerw rtgui_filerw_t;
-
-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);
-};
-
-struct rtgui_filerw* rtgui_filerw_create_file(const char *filename, const char *mode);
-struct rtgui_filerw* rtgui_filerw_create_mem(const rt_uint8_t *data, 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);
-
-/* 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_win/include/rtgui/font.h b/components/rtgui_win/include/rtgui/font.h
deleted file mode 100644
index f56de6ae4e..0000000000
--- a/components/rtgui_win/include/rtgui/font.h
+++ /dev/null
@@ -1,116 +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>
-
-extern rtgui_font_t rtgui_font_asc12,rtgui_font_asc16,font_dotum;
-
-struct rtgui_font_engine
-{
- /* font engine function */
- void (*font_init)(rtgui_font_t* font);
- void (*font_load)(rtgui_font_t* font);
-
- void (*font_draw_text)(rtgui_font_t* font, rtgui_dc_t *dc, const char* text, rt_uint32_t len, rtgui_rect_t* rect);
- void (*font_get_metrics)(rtgui_font_t* font, const char* text, rtgui_rect_t* rect);
-};
-
-/*
- * bitmap font engine
- */
-/* bitmap font private data */
-struct rtgui_font_bitmap
-{
- /* bitmap data */
- const rt_uint8_t* bmp;
- 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;
- rt_uint16_t 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 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(rtgui_font_t* font);
-void rtgui_font_system_remove_font(rtgui_font_t* font);
-rtgui_font_t* rtgui_font_default(void);
-void rtgui_font_set_defaut(rtgui_font_t* font);
-
-rtgui_font_t* rtgui_font_refer(const rt_uint8_t* family, rt_uint16_t height);
-void rtgui_font_derefer(rtgui_font_t* font);
-
-/* draw a text */
-void rtgui_font_draw(rtgui_font_t* font, rtgui_dc_t *dc, const char* text, rt_uint32_t len, rtgui_rect_t* rect);
-int rtgui_font_get_string_width(rtgui_font_t* font, const char* text);//ȡ���ַ����Ŀ���
-int rtgui_font_get_font_width(rtgui_font_t* font); //ȡ������Ŀ���
-int rtgui_font_get_font_height(rtgui_font_t* font);//ȡ������ĸ߶�
-void rtgui_font_get_string_rect(rtgui_font_t* font, const char* text, rtgui_rect_t* rect);//ȡ���ַ����ľ�������
-void rtgui_font_get_metrics(struct rtgui_font* font, const char* text, rtgui_rect_t* rect);
-
-#endif
diff --git a/components/rtgui_win/include/rtgui/image.h b/components/rtgui_win/include/rtgui/image.h
deleted file mode 100644
index 8a2611cd87..0000000000
--- a/components/rtgui_win/include/rtgui/image.h
+++ /dev/null
@@ -1,78 +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/list.h>
-#include <rtgui/dc.h>
-#include <rtgui/driver.h>
-#include <rtgui/color.h>
-#include <rtgui/filerw.h>
-#include <rtgui/region.h>
-
-typedef struct rtgui_image rtgui_image_t;
-
-struct rtgui_image_engine
-{
- const char* name; //��������,ͼ������
- rtgui_list_t list;
-
- /* image engine function */
- rt_bool_t (*image_check)(struct rtgui_filerw* file);
-
- rt_bool_t (*image_load)(rtgui_image_t* image, struct rtgui_filerw* file, rt_bool_t load);
- void (*image_unload)(rtgui_image_t* image);
-
- void (*image_blit)(rtgui_image_t *image, rtgui_dc_t *dc, rtgui_rect_t *rect);
- void (*image_paste)(rtgui_image_t *image, rtgui_dc_t *dc, rtgui_rect_t *rect, rtgui_color_t shield_color);
-};
-
-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;
-};
-
-/* init rtgui image system */
-void rtgui_system_image_init(void);
-
-rtgui_image_t* rtgui_image_create_from_file(const char* type, const char* filename, rt_bool_t load);
-rtgui_image_t* 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(rtgui_image_t* image);
-
-/* register an image engine */
-void rtgui_image_register_engine(struct rtgui_image_engine* engine);
-
-/* blit an image */
-void rtgui_image_blit(rtgui_image_t* image, rtgui_dc_t *dc, rtgui_rect_t* rect);
-void rtgui_image_paste(rtgui_image_t *image, rtgui_dc_t *dc, rtgui_rect_t *rect, rtgui_color_t shield_color);
-struct rtgui_image_palette* rtgui_image_palette_create(rt_uint32_t ncolors);
-
-#endif
diff --git a/components/rtgui_win/include/rtgui/image_bmp.h b/components/rtgui_win/include/rtgui/image_bmp.h
deleted file mode 100644
index 1dbcccff90..0000000000
--- a/components/rtgui_win/include/rtgui/image_bmp.h
+++ /dev/null
@@ -1,19 +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__
-
-void rtgui_image_bmp_init(void);
-
-#endif
diff --git a/components/rtgui_win/include/rtgui/image_hdc.h b/components/rtgui_win/include/rtgui/image_hdc.h
deleted file mode 100644
index aa91609058..0000000000
--- a/components/rtgui_win/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
-{
- rtgui_image_t 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_win/include/rtgui/image_jpeg.h b/components/rtgui_win/include/rtgui/image_jpeg.h
deleted file mode 100644
index d89d1ed290..0000000000
--- a/components/rtgui_win/include/rtgui/image_jpeg.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef __RTGUI_IMAGE_JPEG_H__
-#define __RTGUI_IMAGE_JPEG_H__
-
-#include <image.h>
-
-void rtgui_image_jpeg_init(void);
-
-#endif
diff --git a/components/rtgui_win/include/rtgui/image_png.h b/components/rtgui_win/include/rtgui/image_png.h
deleted file mode 100644
index 5722e72e97..0000000000
--- a/components/rtgui_win/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 <image.h>
-
-void rtgui_image_png_init(void);
-
-#endif
diff --git a/components/rtgui_win/include/rtgui/image_xpm.h b/components/rtgui_win/include/rtgui/image_xpm.h
deleted file mode 100644
index e580327f6d..0000000000
--- a/components/rtgui_win/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_win/include/rtgui/kbddef.h b/components/rtgui_win/include/rtgui/kbddef.h
deleted file mode 100644
index 650e67314d..0000000000
--- a/components/rtgui_win/include/rtgui/kbddef.h
+++ /dev/null
@@ -1,293 +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_win/include/rtgui/list.h b/components/rtgui_win/include/rtgui/list.h
deleted file mode 100644
index eb8afb62ea..0000000000
--- a/components/rtgui_win/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>
-
-typedef struct rtgui_list_node rtgui_list_t;/* (template),ע����CCList������ */
-
-struct rtgui_list_node
-{
- rtgui_list_t* next;
-};
-rt_inline void rtgui_list_init(rtgui_list_t *l)
-{
- l->next = (rtgui_list_t *)0;
-}
-
-rt_inline void rtgui_list_append(rtgui_list_t *l, rtgui_list_t *n)
-{
- rtgui_list_t* node;
-
- node = l;
- while(node->next) node = node->next;
-
- /* append the node to the tail */
- node->next = n;
- n->next = (rtgui_list_t*) 0;
-}
-
-rt_inline void 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 */
- rtgui_list_t* 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_win/include/rtgui/region.h b/components/rtgui_win/include/rtgui/region.h
deleted file mode 100644
index 8cd14eb83b..0000000000
--- a/components/rtgui_win/include/rtgui/region.h
+++ /dev/null
@@ -1,101 +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);
-
-#if defined(__cplusplus) || defined(c_plusplus)
-}
-#endif
-
-#endif /* _PIXMAN_H_ */
diff --git a/components/rtgui_win/include/rtgui/rtgui.h b/components/rtgui_win/include/rtgui/rtgui.h
deleted file mode 100644
index f68954bd7d..0000000000
--- a/components/rtgui_win/include/rtgui/rtgui.h
+++ /dev/null
@@ -1,154 +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>
-#include <string.h>
-
-#define RT_INT16_MAX 32767
-#define RT_INT16_MIN (-RT_INT16_MAX-1)
-
-#define SELECTED_HEIGHT 20 //��ѡ���еĸ߶�
-
-#define RT_COUNT(array) sizeof(array)/sizeof(array[0])
-
-/* Use new name & namespace */
-typedef struct rtgui_point rtgui_point_t;
-typedef struct rtgui_rect rtgui_rect_t;
-typedef rt_uint32_t rtgui_color_t;
-typedef struct rtgui_event rtgui_event_t;
-typedef struct rtgui_font rtgui_font_t;
-typedef struct rtgui_dc rtgui_dc_t;
-typedef struct rtgui_gc rtgui_gc_t;
-
-typedef void* PVOID;
-typedef struct rtgui_type rtgui_type_t;
-typedef struct rtgui_object rtgui_object_t;
-typedef struct rtgui_widget rtgui_widget_t;
-typedef struct rtgui_panel rtgui_panel_t;
-typedef struct rtgui_container rtgui_container_t;
-typedef struct rtgui_win rtgui_win_t;
-typedef struct rtgui_staticline rtgui_staticline_t;
-typedef struct rtgui_label rtgui_label_t;
-typedef struct rtgui_textbox rtgui_textbox_t;
-typedef struct rtgui_button rtgui_button_t;
-typedef struct rtgui_view rtgui_view_t;
-typedef struct rtgui_checkbox rtgui_checkbox_t;
-typedef struct rtgui_radiobox rtgui_radiobox_t;
-typedef struct rtgui_listbox rtgui_listbox_t;
-typedef struct rtgui_list_view rtgui_list_view_t;
-typedef struct rtgui_fileview rtgui_filelist_view_t;
-typedef struct rtgui_scrollbar rtgui_scrollbar_t;
-typedef struct rtgui_iconbox rtgui_iconbox_t;
-typedef struct rtgui_menu_item rtgui_menu_item_t;
-typedef struct rtgui_menu rtgui_menu_t;
-typedef struct rtgui_combo rtgui_combo_t;
-
-
-typedef rt_bool_t (*rtgui_event_handler_ptr)(PVOID wdt, rtgui_event_t* event);
-
-struct rtgui_point
-{
- rt_int16_t x, y;
-};
-
-struct rtgui_rect
-{
- rt_int16_t x1, y1, x2, y2;
-};
-
-extern rtgui_point_t rtgui_empty_point;
-
-#define rtgui_rect_width(r) ((r).x2 - (r).x1)
-#define rtgui_rect_height(r) ((r).y2 - (r).y1)
-
-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;
-};
-
-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)
-};
-
-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
-
-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_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_win/include/rtgui/rtgui_config.h b/components/rtgui_win/include/rtgui/rtgui_config.h
deleted file mode 100644
index ecdd03fc67..0000000000
--- a/components/rtgui_win/include/rtgui/rtgui_config.h
+++ /dev/null
@@ -1,41 +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 */
-
-/* native running under RT-Thread */
-#ifndef RT_USING_DFS
- #undef RTGUI_USING_DFS_FILERW
- #undef RTGUI_USING_HZ_FILE
-#endif
-
-#define RTGUI_USING_WINMOVE
-
-//#define RTGUI_IMAGE_BMP
-
-#define RTGUI_DEFAULT_FONT_SIZE 16
-
-#define RTGUI_SVR_THREAD_PRIORITY 3
-#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 4096
-#endif
-
-#endif
diff --git a/components/rtgui_win/include/rtgui/rtgui_object.h b/components/rtgui_win/include/rtgui/rtgui_object.h
deleted file mode 100644
index 1ff0c6c947..0000000000
--- a/components/rtgui_win/include/rtgui/rtgui_object.h
+++ /dev/null
@@ -1,107 +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>
-
-#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(c) ((rtgui_constructor_t)(c))
-/** Casts the function pointer to an rtgui_constructor */
-#define RTGUI_DESTRUCTOR(d) ((rtgui_destructor_t)(d))
-
-/* pre-definetion */
-typedef struct rtgui_type rtgui_type_t;
-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;
-
- /* hierarchy and depth */
- rtgui_type_t **hierarchy;
- int hierarchy_depth;
-
- /* constructor and destructor */
- rtgui_constructor_t constructor;
- rtgui_destructor_t destructor;
-
- /* size of type */
- int size;
-};
-typedef struct rtgui_type rtgui_type_t;
-
-rtgui_type_t *rtgui_type_create(const char *type_name, rtgui_type_t *parent_type,
- int type_size, rtgui_constructor_t c,
- rtgui_destructor_t d);
-void rtgui_type_destroy(rtgui_type_t *type);
-
-void rtgui_type_object_construct(rtgui_type_t *type, rtgui_object_t *object);
-void rtgui_type_destructors_call(rtgui_type_t *type, rtgui_object_t *object);
-rt_bool_t rtgui_type_inherits_from(rtgui_type_t *type, rtgui_type_t *parent);
-rtgui_type_t *rtgui_type_parent_type_get(rtgui_type_t *type);
-const char *rtgui_type_name_get(rtgui_type_t *type);
-rtgui_type_t *GetTypeFromName(const char *name);
-
-#ifdef RTGUI_USING_CAST_CHECK
- #define RTGUI_OBJECT_CAST(obj, rtgui_type_t, c_type) \
- ((c_type *)rtgui_object_check_cast((rtgui_object_t *)(obj), (rtgui_type_t)))
-#else
- #define RTGUI_OBJECT_CAST(obj, rtgui_type_t, c_type) ((c_type *)(obj))
-#endif
-
-#define RTGUI_OBJECT_CHECK_TYPE(_obj, _type) \
- (rtgui_type_inherits_from(((rtgui_object_t *)(_obj))->type, (_type)))
-
-/** Gets the type of an object */
-#define RTGUI_OBJECT_TYPE (rtgui_object_type_get())
-/** Casts the object to an rtgui_object_t */
-#define RTGUI_OBJECT(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_OBJECT_TYPE, rtgui_object_t))
-/** Checks if the object is an rtgui_Object */
-#define RTGUI_IS_OBJECT(obj) (RTGUI_OBJECT_CHECK_TYPE((obj), RTGUI_OBJECT_TYPE))
-
-/* rtgui base object */
-struct rtgui_object
-{
- /* object type */
- rtgui_type_t* type;
-
- rt_bool_t is_static;
-};
-rtgui_type_t *rtgui_object_type_get(void);
-
-rtgui_object_t *rtgui_object_create(rtgui_type_t *object_type);
-void rtgui_object_destroy(rtgui_object_t *object);
-
-rtgui_object_t *rtgui_object_check_cast(rtgui_object_t *object, rtgui_type_t *type);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/components/rtgui_win/include/rtgui/rtgui_server.h b/components/rtgui_win/include/rtgui/rtgui_server.h
deleted file mode 100644
index 234d433eb8..0000000000
--- a/components/rtgui_win/include/rtgui/rtgui_server.h
+++ /dev/null
@@ -1,32 +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>
-
-/* RTGUI server definitions */
-
-#define WINTITLE_HEIGHT 20
-#define WINTITLE_BORDER_SIZE 2
-
-/* top win manager init */
-void rtgui_win_init(void);
-void rtgui_server_init(void);
-
-/* post an event to server */
-void rtgui_server_post_event(rtgui_event_t* event, rt_size_t size);
-
-#endif
-
diff --git a/components/rtgui_win/include/rtgui/rtgui_system.h b/components/rtgui_win/include/rtgui/rtgui_system.h
deleted file mode 100644
index 655834d68b..0000000000
--- a/components/rtgui_win/include/rtgui/rtgui_system.h
+++ /dev/null
@@ -1,94 +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>
-
-#ifdef RTGUI_USING_SMALL_SIZE
-#define RTGUI_EVENT_BUFFER_SIZE 64
-#else
-#define RTGUI_EVENT_BUFFER_SIZE 256
-#endif
-
-struct rtgui_thread
-{
- /* the thread id */
- struct rt_thread* tid;
-
- /* the message queue of thread */
- struct rt_messagequeue* mq;
-
- /* the owner of thread */
- PVOID widget;
- /* event buffer */
- rt_uint8_t event_buffer[RTGUI_EVENT_BUFFER_SIZE];
-
- /* on idle event handler */
- void (*on_idle)(PVOID wdt, rtgui_event_t *event);
-};
-typedef struct rtgui_thread rtgui_thread_t;
-
-typedef struct rtgui_timer rtgui_timer_t;
-typedef void (*rtgui_timeout_func)(rtgui_timer_t* timer, void* parameter);
-typedef void (*rtgui_idle_func)(PVOID wdt, rtgui_event_t *event);
-
-struct rtgui_timer
-{
- /* context thread id */
- struct rt_thread* tid;
- /* rt timer */
- struct rt_timer timer;
-
- /* timeout function and user data */
- rtgui_timeout_func timeout;
- void* user_data;
-};
-
-
-rtgui_timer_t* rtgui_timer_create(rt_int32_t time, rt_int32_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);
-
-void rtgui_thread_register(struct rt_thread* tid, struct rt_messagequeue* mq);
-void rtgui_thread_deregister(struct rt_thread* tid);
-rtgui_thread_t* rtgui_thread_self(void);
-void rtgui_thread_set_onidle(rtgui_idle_func onidle);
-rtgui_idle_func rtgui_thread_get_onidle(void);
-
-struct rt_thread* rtgui_thread_get_server(void);
-
-void rtgui_thread_set_widget(PVOID widget);
-PVOID rtgui_thread_get_widget(void);
-
-rt_err_t rtgui_thread_send(struct rt_thread* tid, rtgui_event_t* event, rt_size_t event_size);
-rt_err_t rtgui_thread_send_urgent(struct rt_thread* tid, rtgui_event_t* event, rt_size_t event_size);
-rt_err_t rtgui_thread_send_sync(struct rt_thread* tid, rtgui_event_t* event, rt_size_t event_size);
-rt_err_t rtgui_thread_recv(rtgui_event_t* event, rt_size_t event_size);
-rt_err_t rtgui_thread_recv_nosuspend(rtgui_event_t* event, rt_size_t event_size);
-rt_err_t rtgui_thread_recv_filter(rt_uint32_t type, rtgui_event_t* event, rt_size_t event_size);
-rt_err_t rtgui_thread_ack(rtgui_event_t* event, rt_err_t errcode);
-
-/* 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);
-
-#endif
-
diff --git a/components/rtgui_win/include/rtgui/rtgui_theme.h b/components/rtgui_win/include/rtgui/rtgui_theme.h
deleted file mode 100644
index 2fddf29951..0000000000
--- a/components/rtgui_win/include/rtgui/rtgui_theme.h
+++ /dev/null
@@ -1,80 +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>
-
-#define CHECK_BOX_W 13
-#define CHECK_BOX_H 13
-
-#define RADIO_BOX_W 12
-#define RADIO_BOX_H 12
-
-#include <rtgui/widgets/widget.h>
-#include <rtgui/widgets/container.h>
-#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/listbox.h>
-#include <rtgui/widgets/scrollbar.h>
-#include <rtgui/widgets/slider.h>
-#include <rtgui/widgets/progressbar.h>
-#include <rtgui/widgets/staticline.h>
-#include <rtgui/widgets/window.h>
-#include <rtgui/widgets/view.h>
-#include <rtgui/widgets/menu.h>
-#include <rtgui/widgets/combobox.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-void rtgui_system_theme_init(void);
-
-void rtgui_theme_draw_win_closebox(rtgui_win_t *win);
-void rtgui_theme_draw_win_maxbox(rtgui_win_t *win);
-void rtgui_theme_draw_win_minbox(rtgui_win_t *win);
-void rtgui_theme_draw_win_title(rtgui_win_t *win);
-void rtgui_theme_draw_win(rtgui_win_t* 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(rtgui_radiobox_t* rbox, rt_uint32_t index);
-void rtgui_theme_draw_radiobox(rtgui_radiobox_t* rbox);
-void rtgui_theme_draw_menu(rtgui_menu_t* menu);
-void rtgui_theme_draw_menu_item(rtgui_menu_t* menu, rtgui_menu_item_t *item);
-void rtgui_theme_draw_slider(rtgui_slider_t* slider);
-void rtgui_theme_draw_scrollbar(rtgui_scrollbar_t* bar);
-void rtgui_theme_draw_progressbar(rtgui_progressbar_t* bar);
-void rtgui_theme_draw_staticline(rtgui_staticline_t* sline);
-
-void rtgui_theme_draw_selected(rtgui_dc_t *dc, rtgui_color_t *color, rtgui_rect_t *rect);
-
-rtgui_color_t rtgui_theme_default_bc(void);//default black ground color
-rtgui_color_t rtgui_theme_default_fc(void);
-void rtgui_theme_draw_panel(rtgui_panel_t *panel);
-void rtgui_theme_draw_combo(rtgui_combo_t *cbo);
-void rtgui_theme_draw_combo_downarrow(rtgui_combo_t *cbo);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/components/rtgui_win/include/rtgui/rtgui_xml.h b/components/rtgui_win/include/rtgui/rtgui_xml.h
deleted file mode 100644
index abdc5c79af..0000000000
--- a/components/rtgui_win/include/rtgui/rtgui_xml.h
+++ /dev/null
@@ -1,34 +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 (*XML_handle)(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, XML_handle 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_win/include/rtgui/tree.h b/components/rtgui_win/include/rtgui/tree.h
deleted file mode 100644
index f447c3c382..0000000000
--- a/components/rtgui_win/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 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) \
- { RT_NULL }
-
-#define SPLAY_INIT(root) do { \
- (root)->sph_root = RT_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) == RT_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 */ \
-static __inline struct type * \
-name##_SPLAY_FIND(struct name *head, struct type *elm) \
-{ \
- if(SPLAY_EMPTY(head)) \
- return(RT_NULL); \
- name##_SPLAY(head, elm); \
- if((cmp)(elm, (head)->sph_root) == 0) \
- return (head->sph_root); \
- return (RT_NULL); \
-} \
- \
-static __inline struct type * \
-name##_SPLAY_NEXT(struct name *head, struct type *elm) \
-{ \
- name##_SPLAY(head, elm); \
- if(SPLAY_RIGHT(elm, field) != RT_NULL) { \
- elm = SPLAY_RIGHT(elm, field); \
- while(SPLAY_LEFT(elm, field) != RT_NULL) { \
- elm = SPLAY_LEFT(elm, field); \
- } \
- } else \
- elm = RT_NULL; \
- return (elm); \
-} \
- \
-static __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) = RT_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) = RT_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) = RT_NULL; \
- } else \
- return ((head)->sph_root); \
- } \
- (head)->sph_root = (elm); \
- return (RT_NULL); \
-} \
- \
-struct type * \
-name##_SPLAY_REMOVE(struct name *head, struct type *elm) \
-{ \
- struct type *__tmp; \
- if(SPLAY_EMPTY(head)) \
- return (RT_NULL); \
- name##_SPLAY(head, elm); \
- if((cmp)(elm, (head)->sph_root) == 0) { \
- if(SPLAY_LEFT((head)->sph_root, field) == RT_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 (RT_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) = RT_NULL;\
- __left = __right = &__node; \
-\
- while((__comp = (cmp)(elm, (head)->sph_root)) != 0) { \
- if(__comp < 0) { \
- __tmp = SPLAY_LEFT((head)->sph_root, field); \
- if(__tmp == RT_NULL) \
- break; \
- if((cmp)(elm, __tmp) < 0){ \
- SPLAY_ROTATE_RIGHT(head, __tmp, field); \
- if(SPLAY_LEFT((head)->sph_root, field) == RT_NULL)\
- break; \
- } \
- SPLAY_LINKLEFT(head, __right, field); \
- } else if(__comp > 0) { \
- __tmp = SPLAY_RIGHT((head)->sph_root, field); \
- if(__tmp == RT_NULL) \
- break; \
- if((cmp)(elm, __tmp) > 0){ \
- SPLAY_ROTATE_LEFT(head, __tmp, field); \
- if(SPLAY_RIGHT((head)->sph_root, field) == RT_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) = RT_NULL;\
- __left = __right = &__node; \
-\
- while(1) { \
- if(__comp < 0) { \
- __tmp = SPLAY_LEFT((head)->sph_root, field); \
- if(__tmp == RT_NULL) \
- break; \
- if(__comp < 0){ \
- SPLAY_ROTATE_RIGHT(head, __tmp, field); \
- if(SPLAY_LEFT((head)->sph_root, field) == RT_NULL)\
- break; \
- } \
- SPLAY_LINKLEFT(head, __right, field); \
- } else if(__comp > 0) { \
- __tmp = SPLAY_RIGHT((head)->sph_root, field); \
- if(__tmp == RT_NULL) \
- break; \
- if(__comp > 0) { \
- SPLAY_ROTATE_LEFT(head, __tmp, field); \
- if(SPLAY_RIGHT((head)->sph_root, field) == RT_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) ? RT_NULL \
- : name##_SPLAY_MIN_MAX(x, SPLAY_NEGINF))
-#define SPLAY_MAX(name, x) (SPLAY_EMPTY(x) ? RT_NULL \
- : name##_SPLAY_MIN_MAX(x, SPLAY_INF))
-
-#define SPLAY_FOREACH(x, name, head) \
- for((x) = SPLAY_MIN(name, head); \
- (x) != RT_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) \
- { RT_NULL }
-
-#define RB_INIT(root) do { \
- (root)->rbh_root = RT_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) == RT_NULL)
-
-#define RB_SET(elm, parent, field) do { \
- RB_PARENT(elm, field) = parent; \
- RB_LEFT(elm, field) = RB_RIGHT(elm, field) = RT_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)) != RT_NULL) { \
- RB_PARENT(RB_LEFT(tmp, field), field) = (elm); \
- } \
- RB_AUGMENT(elm); \
- if((RB_PARENT(tmp, field) = RB_PARENT(elm, field)) != RT_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)) != RT_NULL) { \
- RB_PARENT(RB_RIGHT(tmp, field), field) = (elm); \
- } \
- RB_AUGMENT(elm); \
- if((RB_PARENT(tmp, field) = RB_PARENT(elm, field)) != RT_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)) != RT_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 == RT_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) == RT_NULL || \
- RB_COLOR(RB_LEFT(tmp, field), field) == RB_BLACK) &&\
- (RB_RIGHT(tmp, field) == RT_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) == RT_NULL || \
- RB_COLOR(RB_RIGHT(tmp, field), field) == RB_BLACK) {\
- struct type *oleft; \
- if((oleft = RB_LEFT(tmp, field)) \
- != RT_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) == RT_NULL || \
- RB_COLOR(RB_LEFT(tmp, field), field) == RB_BLACK) &&\
- (RB_RIGHT(tmp, field) == RT_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) == RT_NULL || \
- RB_COLOR(RB_LEFT(tmp, field), field) == RB_BLACK) {\
- struct type *oright; \
- if((oright = RB_RIGHT(tmp, field)) \
- != RT_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) == RT_NULL) \
- child = RB_RIGHT(elm, field); \
- else if(RB_RIGHT(elm, field) == RT_NULL) \
- child = RB_LEFT(elm, field); \
- else { \
- struct type *left; \
- elm = RB_RIGHT(elm, field); \
- while((left = RB_LEFT(elm, field)) != RT_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)) != RT_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 = RT_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 != RT_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 (RT_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 (RT_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 = RT_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 = RT_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) != RT_NULL; \
- (x) = name##_RB_NEXT(x))
-
-#define RB_FOREACH_REVERSE(x, name, head) \
- for((x) = RB_MAX(name, head); \
- (x) != RT_NULL; \
- (x) = name##_RB_PREV(x))
-
-#endif /* _SYS_TREE_H_ */
diff --git a/components/rtgui_win/include/rtgui/widgets/button.h b/components/rtgui_win/include/rtgui/widgets/button.h
deleted file mode 100644
index a0fa703168..0000000000
--- a/components/rtgui_win/include/rtgui/widgets/button.h
+++ /dev/null
@@ -1,84 +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>
-#include <rtgui/kbddef.h>
-#include <rtgui/color.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup rtgui_button_t
- * @{
- */
-
-/** Gets the type of a button */
-#define RTGUI_BUTTON_TYPE (rtgui_button_type_get())
-/** Casts the object to an rtgui_button_t */
-#define RTGUI_BUTTON(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_BUTTON_TYPE, rtgui_button_t))
-/** Checks if the object is an rtgui_button_t */
-#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 */
- rtgui_label_t parent;
-
- /* button flag */
- rt_uint32_t flag;
-
- /* pressed and unpressed image */
- rtgui_image_t *image;
-
- /* click button event handler */
- void (*on_button)(PVOID wdt, rtgui_event_t *event);
-};
-typedef struct rtgui_button rtgui_button_t;
-typedef void (*rtgui_onbutton_func_t)(PVOID wdt, rtgui_event_t *event);
-
-rtgui_type_t *rtgui_button_type_get(void);
-
-rtgui_button_t* rtgui_button_create(PVOID parent,char* text,int left,int top,int w,int h);
-void rtgui_button_destroy(rtgui_button_t* btn);
-
-void rtgui_button_set_image(rtgui_button_t* btn, rtgui_image_t* image);
-
-void rtgui_button_set_onbutton(rtgui_button_t* btn, rtgui_onbutton_func_t func);
-
-rt_bool_t rtgui_button_event_handler(PVOID wdt, rtgui_event_t* event);
-
-void rtgui_button_set_text(rtgui_button_t* button, const char* text);
-
-/** @} */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/components/rtgui_win/include/rtgui/widgets/checkbox.h b/components/rtgui_win/include/rtgui/widgets/checkbox.h
deleted file mode 100644
index fed9c6cbd8..0000000000
--- a/components/rtgui_win/include/rtgui/widgets/checkbox.h
+++ /dev/null
@@ -1,35 +0,0 @@
-#ifndef __RTGUI_CHECKBOX_H__
-#define __RTGUI_CHECKBOX_H__
-
-#include <rtgui/rtgui.h>
-
-
-#define RTGUI_CHECKBOX_TYPE (rtgui_checkbox_type_get())
-#define RTGUI_CHECKBOX(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_CHECKBOX_TYPE, rtgui_checkbox_t))
-#define RTGUI_IS_CHECKBOX(obj) (RTGUI_OBJECT_CHECK_TYPE((obj), RTGUI_CHECKBOX_TYPE))
-
-//#define RTGUI_CHECKBOX_STATUS_CHECKED 1
-//#define RTGUI_CHECKBOX_STATUS_UNCHECKED 0
-
-struct rtgui_checkbox
-{
- /* inherit from label */
- rtgui_label_t parent;
-
- /* check box status */
- int value;
-};
-typedef struct rtgui_checkbox rtgui_checkbox_t;
-
-rtgui_type_t *rtgui_checkbox_type_get(void);
-
-rtgui_checkbox_t* rtgui_checkbox_create(PVOID wdt,const char* text, rt_bool_t checked,rtgui_color_t fc,int left,int top);
-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);
-
-rt_bool_t rtgui_checkbox_event_handler(PVOID wdt, rtgui_event_t* event);
-void rtgui_checkbox_set_text(rtgui_checkbox_t *box, const char* text);
-
-#endif
diff --git a/components/rtgui_win/include/rtgui/widgets/combobox.h b/components/rtgui_win/include/rtgui/widgets/combobox.h
deleted file mode 100644
index 3da90e1389..0000000000
--- a/components/rtgui_win/include/rtgui/widgets/combobox.h
+++ /dev/null
@@ -1,62 +0,0 @@
-#ifndef __RTGUI_COMBO_H__
-#define __RTGUI_COMBO_H__
-
-#include <rtgui/rtgui.h>
-#include <rtgui/rtgui_system.h>
-#include <rtgui/widgets/widget.h>
-#include <rtgui/widgets/textbox.h>
-#include <rtgui/widgets/button.h>
-#include <rtgui/widgets/view.h>
-#include <rtgui/widgets/listbox.h>
-
-#define RTGUI_COMBOBOX_HEIGHT 24
-#define RTGUI_COMBOBOX_BUTTON_WIDTH 16
-
-#define RTGUI_COMBO_STYLE_DOWNARROW_UP 0x01
-#define RTGUI_COMBO_STYLE_DOWNARROW_DOWN 0x02
-
-typedef struct rtgui_combo rtgui_combo_t;
-
-/** Gets the type of a textbox */
-#define RTGUI_COMBOBOX_TYPE (rtgui_combo_type_get())
-/** Casts the object to a rtgui_textbox_t */
-#define RTGUI_COMBOBOX(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_COMBOBOX_TYPE, rtgui_combo_t))
-/** Checks if the object is a rtgui_textbox_t */
-#define RTGUI_IS_COMBOBOX(obj) (RTGUI_OBJECT_CHECK_TYPE((obj), RTGUI_COMBOBOX_TYPE))
-
-typedef struct rtgui_combo_item
-{
- char *name;
-}rtgui_combo_item_t;
-
-struct rtgui_combo
-{
- rtgui_container_t parent;
-
- /* widget private data */
- rt_uint32_t style;
-
- rtgui_textbox_t *tbox;
- rtgui_listbox_t *lbox;
-
- /* call back */
- void (*on_selected) (PVOID wdt, rtgui_event_t* event);
- rt_uint32_t (*get_count)(rtgui_combo_t* box);
- void (*add_string)(rtgui_combo_t* box,char* string);
-};
-
-
-rtgui_type_t *rtgui_combo_type_get(void);
-rtgui_combo_t* rtgui_combo_create(PVOID parent,const char* text,int left,int top,int w,int h);
-void rtgui_combo_destroy(rtgui_combo_t* cbo);
-
-void rtgui_combo_set_onitem(rtgui_combo_t* cbo, rtgui_event_handler_ptr func);
-rt_bool_t rtgui_combo_event_handler(PVOID wdt, rtgui_event_t* event);
-rt_bool_t rtgui_combo_onitem(PVOID wdt, rtgui_event_t* event);
-void rtgui_combo_set_items(rtgui_combo_t* cbo, rtgui_listbox_item_t* items, rt_uint32_t count);
-
-rt_uint32_t rtgui_combo_get_select(rtgui_combo_t* cbo);
-char* rtgui_combo_get_string(rtgui_combo_t* cbo);
-
-#endif
-
diff --git a/components/rtgui_win/include/rtgui/widgets/container.h b/components/rtgui_win/include/rtgui/widgets/container.h
deleted file mode 100644
index abf90af16b..0000000000
--- a/components/rtgui_win/include/rtgui/widgets/container.h
+++ /dev/null
@@ -1,50 +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/widgets/widget.h>
-#include <rtgui/event.h>
-
-/** Gets the type of a box */
-#define RTGUI_CONTAINER_TYPE (rtgui_container_type_get())
-/** Casts the object to a rtgui_container_t */
-#define RTGUI_CONTAINER(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_CONTAINER_TYPE, rtgui_container_t))
-/** Checks if the object is a rtgui_container_t */
-#define RTGUI_IS_CONTAINER(obj) (RTGUI_OBJECT_CHECK_TYPE((obj), RTGUI_CONTAINER_TYPE))
-
-struct rtgui_container
-{
- /* inherit from widget */
- rtgui_widget_t parent;
-
- rtgui_widget_t *focused;
- rtgui_list_t children;
-};
-typedef struct rtgui_container rtgui_container_t;
-
-rtgui_type_t *rtgui_container_type_get(void);
-
-void rtgui_container_add_child(PVOID cbox, PVOID wdt);
-void rtgui_container_remove_child(rtgui_container_t *box, PVOID wdt);
-void rtgui_container_destroy_children(rtgui_container_t *box);
-rtgui_widget_t* rtgui_container_get_first_child(rtgui_container_t* box);
-
-rt_bool_t rtgui_container_event_handler(PVOID wdt, rtgui_event_t* event);
-
-rt_bool_t rtgui_container_dispatch_event(rtgui_container_t *box, rtgui_event_t* event);
-rt_bool_t rtgui_container_dispatch_mouse_event(rtgui_container_t *box, rtgui_event_mouse_t* event);
-
-
-#endif
diff --git a/components/rtgui_win/include/rtgui/widgets/dialog.h b/components/rtgui_win/include/rtgui/widgets/dialog.h
deleted file mode 100644
index 7790aff028..0000000000
--- a/components/rtgui_win/include/rtgui/widgets/dialog.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifndef __DIALOG_H__
-#define __DIALOG_H__
-
-/* �򿪶Ի����е�һЩ���� */
-struct OpenDlgSt
-{
- char* path; //����·��
- char* filename; //�ļ�(��)����
- rt_uint32_t size;//�ļ���С/�ļ����µ��ļ�����
- rt_uint32_t type;//�ļ�����:�ļ�/�ļ���
- char* pattern; //�����;
-
- rtgui_filelist_view_t* fview;
- rtgui_textbox_t* tbox_path; //�ؼ�ָ��
- rtgui_textbox_t* tbox_filename;
- rtgui_combo_t* cbox_pattern;
-};
-
-
-rtgui_win_t* rtgui_win_get_win_by_widget(PVOID wdt);
-void OpenFileDialog(PVOID wdt, rtgui_event_t* event);
-void NewFileDialog(PVOID wdt, rtgui_event_t *event);
-void SaveFileDialog(PVOID wdt, rtgui_event_t *event);
-
-void GoToTopFolder(PVOID wdt, rtgui_event_t *event);
-void GoToSubFolder(PVOID wdt, rtgui_event_t *event);
-
-
-
-
-#endif
-
diff --git a/components/rtgui_win/include/rtgui/widgets/filelist_view.h b/components/rtgui_win/include/rtgui/widgets/filelist_view.h
deleted file mode 100644
index d669f064b1..0000000000
--- a/components/rtgui_win/include/rtgui/widgets/filelist_view.h
+++ /dev/null
@@ -1,60 +0,0 @@
-#ifndef __RTGUI_FILELIST_VIEW_H__
-#define __RTGUI_FILELIST_VIEW_H__
-
-#include <rtgui/widgets/view.h>
-#include <rtgui/widgets/scrollbar.h>
-#include <rtgui/kbddef.h>
-#include <rtgui/color.h>
-
-#define RTGUI_FITEM_FILE 0x0
-#define RTGUI_FITEM_DIR 0x1
-
-
-typedef struct rtgui_fileview rtgui_filelist_view_t;
-
-/** Gets the type of a filelist view */
-#define RTGUI_FILELIST_VIEW_TYPE (rtgui_filelist_view_type_get())
-/** 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))
-
-
-typedef struct rtgui_file_item
-{
- char* name;
- rt_uint32_t type;
- rt_uint32_t size;
-}rtgui_filelist_view_item_t;
-
-struct rtgui_fileview
-{
- rtgui_container_t parent;
-
- /* widget private data */
- char* current_dir; //��ǰ�ļ���current_dir
- char* pattern; //���������
-
- rt_int16_t item_per_page; //ÿҳ����ʾ����
- rt_int16_t item_count; //������
-
- rt_int16_t frist_aloc;/* frist item */
- rt_int16_t now_aloc; /* now item */
- rt_int16_t old_aloc; /* old item */
-
- rtgui_scrollbar_t *sbar; //����
-
- rtgui_filelist_view_item_t *items; /* items array */
-};
-
-rtgui_type_t *rtgui_filelist_view_type_get(void);
-
-rtgui_filelist_view_t* rtgui_filelist_view_create(PVOID parent, const char* directory, const char* pattern, int left, int top, int w, int h);
-void rtgui_filelist_view_destroy(rtgui_filelist_view_t* view);
-
-rt_bool_t rtgui_filelist_view_event_handler(PVOID wdt, rtgui_event_t* event);
-void rtgui_filelist_view_set_directory(rtgui_filelist_view_t* view, const char* directory);
-void rtgui_filelist_view_on_enter(rtgui_filelist_view_t* fview);
-void rtgui_filelist_view_get_fullpath(rtgui_filelist_view_t* view, char* path, rt_size_t len);
-
-#endif
diff --git a/components/rtgui_win/include/rtgui/widgets/iconbox.h b/components/rtgui_win/include/rtgui/widgets/iconbox.h
deleted file mode 100644
index ef82d58a7a..0000000000
--- a/components/rtgui_win/include/rtgui/widgets/iconbox.h
+++ /dev/null
@@ -1,58 +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 <topwin.h>
-#include <rtgui/image.h>
-#include <rtgui/font.h>
-#include <rtgui/widgets/widget.h>
-
-/** Gets the type of a iconbox */
-#define RTGUI_ICONBOX_TYPE (rtgui_iconbox_type_get())
-/** Casts the object to a rtgui_iconbox_t */
-#define RTGUI_ICONBOX(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_ICONBOX_TYPE, rtgui_iconbox_t))
-/** Checks if the object is a rtgui_iconbox_t */
-#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
-
-#define RTGUI_ICONBOX_AREA 76
-
-struct rtgui_iconbox
-{
- rtgui_widget_t parent; /* inherit from widget */
-
- rtgui_image_t* image; /* widget private data */
- char *text;
- void (*call)(void);
- rt_uint32_t text_position;
-
- rt_bool_t selected;
-};
-typedef struct rtgui_iconbox rtgui_iconbox_t;
-
-rtgui_type_t *rtgui_iconbox_type_get(void);
-
-rtgui_iconbox_t* rtgui_iconbox_create(PVOID parent, rtgui_image_t* image, const char* text, int position);
-void rtgui_iconbox_destroy(rtgui_iconbox_t* iconbox);
-
-rt_bool_t rtgui_iconbox_event_handler(PVOID wdt, rtgui_event_t* event);
-
-void rtgui_iconbox_set_text_position(rtgui_iconbox_t* iconbox, int position);
-
-#endif
diff --git a/components/rtgui_win/include/rtgui/widgets/label.h b/components/rtgui_win/include/rtgui/widgets/label.h
deleted file mode 100644
index ddc447edc3..0000000000
--- a/components/rtgui_win/include/rtgui/widgets/label.h
+++ /dev/null
@@ -1,48 +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>
-
-/** Gets the type of a button */
-#define RTGUI_LABEL_TYPE (rtgui_label_type_get())
-/** Casts the object to an rtgui_label_t */
-#define RTGUI_LABEL(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_LABEL_TYPE, rtgui_label_t))
-/** Checks if the object is an rtgui_label_t */
-#define RTGUI_IS_LABEL(obj) (RTGUI_OBJECT_CHECK_TYPE((obj), RTGUI_LABEL_TYPE))
-
-/*
- * the label widget
- */
-struct rtgui_label
-{
- rtgui_widget_t parent;
- /* label */
- char* text;
-};
-typedef struct rtgui_label rtgui_label_t;
-
-rtgui_type_t *rtgui_label_type_get(void);
-
-rtgui_label_t* rtgui_label_create(PVOID wdt, const char* text, int left, int top, int w, int h);
-void rtgui_label_destroy(rtgui_label_t* label);
-
-rt_bool_t rtgui_label_event_handler(PVOID wdt, rtgui_event_t* 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_win/include/rtgui/widgets/list_view.h b/components/rtgui_win/include/rtgui/widgets/list_view.h
deleted file mode 100644
index 2af23061b3..0000000000
--- a/components/rtgui_win/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/kbddef.h>
-#include <rtgui/color.h>
-#include <rtgui/event.h>
-#include <rtgui/widgets/view.h>
-
-typedef void (*item_action)(void* parameter);
-typedef struct rtgui_list_item rtgui_list_view_item_t;
-struct rtgui_list_item
-{
- char* name;
- rtgui_image_t *image;
- item_action action;
- void *parameter;
-};
-
-/** Gets the type of a list view */
-#define RTGUI_LIST_VIEW_TYPE (rtgui_list_view_type_get())
-/** Casts the object to a rtgui_list_view_t */
-#define RTGUI_LIST_VIEW(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_LIST_VIEW_TYPE, rtgui_list_view_t))
-/** Checks if the object is a rtgui_list_view_t */
-#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
-{
- rtgui_view_t parent;
-
- /* widget private data */
- /* list item */
- const rtgui_list_view_item_t* items;
-
- /* layout flag */
- rt_uint16_t flag;
-
- /* total number of items */
- rt_uint16_t item_count;
- /* the number of item in a page */
- rt_uint16_t page;
- /* current item */
- rt_int16_t item_current;
-
- /* icon layout */
- rt_uint32_t row_items, col_items;
-};
-typedef struct rtgui_list_view rtgui_list_view_t;
-
-rtgui_type_t *rtgui_list_view_type_get(void);
-
-rtgui_list_view_t* rtgui_list_view_create(PVOID parent,const rtgui_list_view_item_t* items, rt_uint16_t count, int left,int top,int w,int h, rt_uint16_t flag);
-void rtgui_list_view_destroy(rtgui_list_view_t* view);
-
-rt_bool_t rtgui_list_view_event_handler(PVOID wdt, rtgui_event_t* event);
-
-#endif
-
diff --git a/components/rtgui_win/include/rtgui/widgets/listbox.h b/components/rtgui_win/include/rtgui/widgets/listbox.h
deleted file mode 100644
index 3b86eef281..0000000000
--- a/components/rtgui_win/include/rtgui/widgets/listbox.h
+++ /dev/null
@@ -1,75 +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/kbddef.h>
-#include <rtgui/color.h>
-#include <rtgui/image.h>
-
-struct rtgui_listbox_item
-{
- char *name;
- rtgui_image_t *image;
-};
-typedef struct rtgui_listbox_item rtgui_listbox_item_t;
-/** Gets the type of a list box */
-#define RTGUI_LISTBOX_TYPE (rtgui_listbox_type_get())
-/** 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))
-
-typedef struct rtgui_listbox rtgui_listbox_t;
-
-struct rtgui_listbox
-{
- rtgui_container_t parent;
-
- /* widget private data */
- rt_int16_t item_per_page; /* the number of item in a page */
- rt_int16_t item_count; /* total number of items */
- rt_int16_t item_size; /* item size */
- rt_int16_t frist_aloc; /* frist item */
- rt_int16_t now_aloc; /* now item */
- rt_int16_t old_aloc; /* old item */
- rt_bool_t ispopup; /* �ǵ��������б� */
- PVOID widgetlnk; /* ���ӵĿؼ� */
- rtgui_scrollbar_t *sbar;
- rtgui_listbox_item_t *items; /* items array */
-
- /* item event handler */
- rt_bool_t (*on_item)(PVOID wdt, rtgui_event_t* event);
-
- rt_uint32_t (*get_count)(rtgui_listbox_t* box);
- void (*add_item)(rtgui_listbox_t* box, rtgui_listbox_item_t* item);
-};
-
-
-rtgui_type_t *rtgui_listbox_type_get(void);
-
-rtgui_listbox_t* rtgui_listbox_create(PVOID wdt, int left,int top,int w,int h,rt_uint32_t style);
-void rtgui_listbox_destroy(rtgui_listbox_t* box);
-
-void rtgui_listbox_update(rtgui_listbox_t* box);
-rt_bool_t rtgui_listbox_event_handler(PVOID wdt, rtgui_event_t* event);
-void rtgui_listbox_set_onitem(rtgui_listbox_t* box, rtgui_event_handler_ptr func);
-void rtgui_listbox_set_items(rtgui_listbox_t* box, rtgui_listbox_item_t* items, rt_uint32_t count);
-
-void rtgui_listbox_delete_item(rtgui_listbox_t* box, rt_uint32_t item_num);
-
-#endif
-
diff --git a/components/rtgui_win/include/rtgui/widgets/menu.h b/components/rtgui_win/include/rtgui/widgets/menu.h
deleted file mode 100644
index 591d8a682a..0000000000
--- a/components/rtgui_win/include/rtgui/widgets/menu.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * File : view.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_MENU_H__
-#define __RTGUI_MENU_H__
-
-#include <rtgui/rtgui.h>
-#include <rtgui/image.h>
-#include <rtgui/widgets/widget.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef int HMENU;
-
-#define RTGUI_MENU_HEIGHT 43 /*�˵���߶�*/
-#define RTGUI_MENU_BORDER 2
-
-#define RTGUI_MENU_IMAGE_W 24
-#define RTGUI_MENU_IMAGE_H 24
-
-#define ITEM (System,Name,ID) \
-rtgui_menu_append(hPopupMenu_##System, MF_ENABLED, ID, Name);
-
-/*�˵����־*/
-#define RTGUI_MENU_POPUP 0x00000080L
-
-typedef struct rtgui_menu_item rtgui_menu_item_t; //��ͨ�˵�
-typedef struct rtgui_menu rtgui_menu_t;//�˵�
-
-
-/** Gets the type of a view */
-#define RTGUI_MENU_TYPE (rtgui_menu_type_get())
-/** Casts the object to an rtgui_view_t */
-#define RTGUI_MENU(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_MENU_TYPE, rtgui_menu_t))
-/** Checks if the object is an rtgui_view_t */
-#define RTGUI_IS_MENU(obj) (RTGUI_OBJECT_CHECK_TYPE((obj), RTGUI_MENU_TYPE))
-
-struct rtgui_menu
-{
- rtgui_widget_t parent;
- char* name;
- /* ���ڸ�����ͼ�IJ���,��������ͼ,ȥ����Щ����û��Ӱ�� */
- rt_uint32_t orient; /* ����� */
- rt_uint32_t item_size; /* �˵���ߴ� */
- rt_uint16_t item_count; /* �˵����� */
-
- rtgui_menu_item_t* current_item; /* ��ǰ�IJ˵��� */
- rtgui_menu_item_t* forego_item; /* ��һ���˵��� */
-
- /*�¼��˵��� */
- rtgui_menu_item_t* head; /*ͷ*/
- rtgui_menu_item_t* tail; /*β*/
- /*�ϼ��˵��� */
- rtgui_menu_item_t* farther;
-};
-
-struct rtgui_menu_item
-{
- char* caption; //�˵���
- rt_uint32_t item_id;
- rt_uint32_t type; //�˵��Ĵ�������
- rt_uint32_t shortcut;
- rt_bool_t bexit; //���øò˵����Ƿ��˳��˵�
-
- rtgui_menu_item_t* next;
- rtgui_menu_item_t* prev;
-
- rtgui_image_t* image; //�󶨵�ͼ��
- rtgui_menu_t* sub_menu; //�Ӳ˵�
-
- void(*func_updown)(rtgui_menu_t *menu); //��UP/DOWN����֮�����еĺ���
- void(*func_enter)(void); //��ȷ�Ϻ�ִ�еĺ���
-};
-
-rtgui_type_t *rtgui_menu_type_get(void);
-
-rtgui_menu_t* rtgui_menu_create(PVOID parent, const char* name);
-void rtgui_menu_destroy(rtgui_menu_t* menu);
-
-
-HMENU rtgui_menu_popup_create (void);
-rt_bool_t rtgui_menu_append(rtgui_menu_t *menu,rt_uint32_t flags,rt_uint32_t ID,char * caption);
-void rtgui_menu_popup_delete(rtgui_menu_t* menu);
-rtgui_menu_t* rtgui_menu_item_delete(rtgui_menu_t* menu,rtgui_menu_item_t* pItem);
-void rtgui_menu_on_down(rtgui_menu_t* menu);
-void rtgui_menu_on_up(rtgui_menu_t* menu);
-void rtgui_menu_on_exit(rtgui_menu_t* menu);
-void rtgui_menu_set_selected(rtgui_menu_t* menu, int selected);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/components/rtgui_win/include/rtgui/widgets/progressbar.h b/components/rtgui_win/include/rtgui/widgets/progressbar.h
deleted file mode 100644
index c2133a93dd..0000000000
--- a/components/rtgui_win/include/rtgui/widgets/progressbar.h
+++ /dev/null
@@ -1,40 +0,0 @@
-#ifndef __RTGUI_PROGRESSBAR_H__
-#define __RTGUI_PROGRESSBAR_H__
-
-#include <rtgui/rtgui.h>
-
-typedef struct rtgui_progressbar rtgui_progressbar_t;
-
-/** Gets the type of a progressbar */
-#define RTGUI_PROGRESSBAR_TYPE (rtgui_progressbar_type_get())
-/** 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
-{
- rtgui_widget_t parent;
-
- int orient;
-
- int range;
- int position;
-};
-
-rtgui_type_t *rtgui_progressbar_type_get(void);
-
-rtgui_progressbar_t* rtgui_progressbar_create(PVOID parent, int orient, int range, int left, int top, int w, int h);
-void rtgui_progressbar_destroy(rtgui_progressbar_t* p_bar);
-
-rt_bool_t rtgui_progressbar_event_handler(PVOID wdt, rtgui_event_t* event);
-
-void rtgui_progressbar_set_value(rtgui_progressbar_t *p_bar, int value);
-int rtgui_progressbar_get_value(rtgui_progressbar_t *p_bar);
-void rtgui_progressbar_set_range(rtgui_progressbar_t *p_bar, int range);
-int rtgui_progressbar_get_range(rtgui_progressbar_t *p_bar);
-
-#endif
diff --git a/components/rtgui_win/include/rtgui/widgets/radiobox.h b/components/rtgui_win/include/rtgui/widgets/radiobox.h
deleted file mode 100644
index 3856c98bff..0000000000
--- a/components/rtgui_win/include/rtgui/widgets/radiobox.h
+++ /dev/null
@@ -1,42 +0,0 @@
-#ifndef __RTGUI_RADIOBOX_H__
-#define __RTGUI_RADIOBOX_H__
-
-#include <rtgui/rtgui.h>
-#include <rtgui/kbddef.h>
-#include <rtgui/widgets/container.h>
-
-/** Gets the type of a rbox */
-#define RTGUI_RADIOBOX_TYPE (rtgui_radiobox_type_get())
-/** Casts the object to an rtgui_radiobox_t */
-#define RTGUI_RADIOBOX(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_RADIOBOX_TYPE, rtgui_radiobox_t))
-/** Checks if the object is an rtgui_radiobox_t */
-#define RTGUI_IS_RADIOBOX(obj) (RTGUI_OBJECT_CHECK_TYPE((obj), RTGUI_RADIOBOX_TYPE))
-
-struct rtgui_radiobox
-{
- rtgui_container_t parent;
-
- char* name;
-
- rt_uint32_t orient;
- rt_uint32_t item_count;
- rt_bool_t item_sel;
-
- char **items;
-};
-
-typedef struct rtgui_radiobox rtgui_radiobox_t;
-
-rtgui_type_t *rtgui_radiobox_type_get(void);
-
-rtgui_radiobox_t* rtgui_radiobox_create(PVOID parent, const char* name, int orient, char **items, int count,
- int left, int top, int w, int h);
-void rtgui_radiobox_destroy(rtgui_radiobox_t* rbox);
-
-void rtgui_radiobox_set_selection(rtgui_radiobox_t* rbox, int selection);
-int rtgui_radiobox_get_selection(rtgui_radiobox_t* rbox);
-
-rt_bool_t rtgui_radiobox_event_handler(PVOID wdt, rtgui_event_t* event);
-
-#endif
-
diff --git a/components/rtgui_win/include/rtgui/widgets/scrollbar.h b/components/rtgui_win/include/rtgui/widgets/scrollbar.h
deleted file mode 100644
index 934114e755..0000000000
--- a/components/rtgui_win/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/rtgui.h>
-#include <rtgui/widgets/widget.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** Gets the type of a scrollbar */
-#define RTGUI_SCROLLBAR_TYPE (rtgui_scrollbar_type_get())
-/** 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 SBAR_UNKNOWN 0x0000
-#define SBAR_LEFTARROW 0x0001 //������ť��
-#define SBAR_RIGHTARROW 0x0002 //�����Ұ�ť��
-#define SBAR_LEFTSPACE 0x0004 //�ڻ�����հ״�
-#define SBAR_RIGHTSPACE 0x0008 //�ڻ���Ҳ�հ״�
-#define SBAR_HORZTHUMB 0x0010 //���ˮƽ����
-#define SBAR_UPARROW 0x0020 //״̬����
-#define SBAR_DOWNARROW 0x0040 //״̬����
-#define SBAR_UPSPACE 0x0080 //�ڻ���ϲ�հ״�
-#define SBAR_DOWNSPACE 0x0100 //�ڻ���²�հ״�
-#define SBAR_VERTTHUMB 0x0200 //��鴹ֱ����
-
-#define SBAR_UPTHUMB 0x0400 //������ϻ���
-#define SBAR_DOWNTHUMB 0x0800 //������»���
-#define SBAR_LEFTTHUMB 0x1000 //������󻬶�
-#define SBAR_RIGHTTHUMB 0x2000 //������һ���
-
-struct rtgui_scrollbar
-{
- /* inherit from widget */
- rtgui_widget_t parent;
-
- rt_uint32_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;
-
- PVOID widgetlnk;//���ӵĿؼ�
- rt_bool_t (*on_scroll) (PVOID wdt, rtgui_event_t* event);
-};
-typedef struct rtgui_scrollbar rtgui_scrollbar_t;
-
-rtgui_type_t *rtgui_scrollbar_type_get(void);
-
-rtgui_scrollbar_t* rtgui_scrollbar_create(PVOID wdt,int left,int top,int w,int len,int orient);
-void rtgui_scrollbar_destroy(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(PVOID wdt, rtgui_event_t* event);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/components/rtgui_win/include/rtgui/widgets/slider.h b/components/rtgui_win/include/rtgui/widgets/slider.h
deleted file mode 100644
index b94ced24e4..0000000000
--- a/components/rtgui_win/include/rtgui/widgets/slider.h
+++ /dev/null
@@ -1,40 +0,0 @@
-#ifndef __RTGUI_SLIDER_H__
-#define __RTGUI_SLIDER_H__
-
-#include <rtgui/rtgui.h>
-#include <rtgui/kbddef.h>
-
-typedef struct rtgui_slider rtgui_slider_t;
-
-/** Gets the type of a slider */
-#define RTGUI_SLIDER_TYPE (rtgui_slider_type_get())
-/** 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
-{
- rtgui_widget_t parent;
-
- /* widget private data */
- rt_size_t min, max, value, ticks;
- rt_size_t thumb_width;
-
- int orient;
-};
-
-rtgui_type_t *rtgui_slider_type_get(void);
-
-rtgui_slider_t* rtgui_slider_create(PVOID parent, rt_size_t min, rt_size_t max, int left, int top, int w, int h, int orient);
-void rtgui_slider_destroy(rtgui_slider_t* slider);
-
-rt_bool_t rtgui_slider_event_handler(PVOID wdt, rtgui_event_t* event);
-
-void rtgui_slider_set_range(rtgui_slider_t* slider, rt_size_t min, rt_size_t max);
-void rtgui_slider_set_value(rtgui_slider_t* slider, rt_size_t value);
-void rtgui_slider_set_orientation(rtgui_slider_t* slider, int orient);
-
-rt_size_t rtgui_slider_get_value(rtgui_slider_t* slider);
-
-#endif
diff --git a/components/rtgui_win/include/rtgui/widgets/staticline.h b/components/rtgui_win/include/rtgui/widgets/staticline.h
deleted file mode 100644
index b63e6c25af..0000000000
--- a/components/rtgui_win/include/rtgui/widgets/staticline.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifndef __RTGUI_STATICLINE__H__
-#define __RTGUI_STATICLINE__H__
-
-#include <rtgui/rtgui.h>
-
-/*
- * the static line widget
- */
-
-/** Gets the type of a sline */
-#define RTGUI_STATICLINE_TYPE (rtgui_staticline_type_get())
-/** Casts the object to an rtgui_staticline_t */
-#define RTGUI_STATICLINE(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_STATICLINE_TYPE, rtgui_staticline_t))
-/** Checks if the object is an rtgui_staticline_t */
-#define RTGUI_IS_STATICLINE(obj) (RTGUI_OBJECT_CHECK_TYPE((obj), RTGUI_STATICLINE_TYPE))
-
-struct rtgui_staticline
-{
- /* inherit from widget */
- rtgui_widget_t parent;
-
- int orient;
-};
-typedef struct rtgui_staticline rtgui_staticline_t;
-
-rtgui_staticline_t *rtgui_staticline_create(PVOID wdt,int left,int top,int w,int len,int orient);
-void rtgui_staticline_destroy(rtgui_staticline_t* sline);
-
-rt_bool_t rtgui_staticline_event_handler(PVOID wdt, rtgui_event_t* event);
-
-#endif
-
diff --git a/components/rtgui_win/include/rtgui/widgets/textbox.h b/components/rtgui_win/include/rtgui/widgets/textbox.h
deleted file mode 100644
index 4638da48a1..0000000000
--- a/components/rtgui_win/include/rtgui/widgets/textbox.h
+++ /dev/null
@@ -1,78 +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.h>
-#include <rtgui/rtgui_system.h>
-
-/** Gets the type of a textbox */
-#define RTGUI_TEXTBOX_TYPE (rtgui_textbox_type_get())
-/** 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_NONE 0x00
-#define RTGUI_TEXTBOX_MULTI 0x01 //����
-#define RTGUI_TEXTBOX_MASK 0x02 //����
-#define RTGUI_TEXTBOX_DIGIT 0x04 //������������
-#define RTGUI_TEXTBOX_CARET_SHOW 0x10
-#define RTGUI_TEXTBOX_CARET_STAT 0x20
-
-#define RTGUI_TEXTBOX_LINE_MAX 128 //���ij���
-
-struct rtgui_textbox
-{
- /* inherit from widget */
- rtgui_widget_t parent;
-
- /* text box flag */
- rt_uint32_t flag;
- rt_uint32_t isedit;//�Ƿ�ɱ༭
-
- /* current line and position */
- rt_uint16_t line, line_begin, position, line_length;
- rt_uint16_t dis_length; /*may be display length.*/
- char* text;
- rt_size_t font_width;
-
- rtgui_timer_t* caret_timer;
-
- /* widget private data */
- rt_bool_t (*on_change)(PVOID wdt, rtgui_event_t* event);
- rt_bool_t (*on_enter) (PVOID wdt, rtgui_event_t* event);
-};
-typedef struct rtgui_textbox rtgui_textbox_t;
-
-void _rtgui_textbox_constructor(rtgui_textbox_t *box);
-void _rtgui_textbox_deconstructor(rtgui_textbox_t *textbox);
-rtgui_type_t *rtgui_textbox_type_get(void);
-
-rtgui_textbox_t* rtgui_textbox_create(PVOID wdt,const char* text,int left,int top,int w,int h, rt_uint32_t flag);
-void rtgui_textbox_destroy(rtgui_textbox_t* box);
-
-rt_bool_t rtgui_textbox_event_handler(PVOID wdt, rtgui_event_t* event);
-
-void rtgui_textbox_set_value(rtgui_textbox_t* box, const char* text);
-const char* rtgui_textbox_get_value(rtgui_textbox_t* box);
-
-void rtgui_textbox_set_line_length(rtgui_textbox_t* box, rt_size_t length);
-
-void rtgui_textbox_get_edit_rect(rtgui_textbox_t *box,rtgui_rect_t *rect);
-
-#endif
diff --git a/components/rtgui_win/include/rtgui/widgets/view.h b/components/rtgui_win/include/rtgui/widgets/view.h
deleted file mode 100644
index f0639c3f45..0000000000
--- a/components/rtgui_win/include/rtgui/widgets/view.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * File : view.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_VIEW_H__
-#define __RTGUI_VIEW_H__
-
-#include <rtgui/widgets/container.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** Gets the type of a view */
-#define RTGUI_VIEW_TYPE (rtgui_view_type_get())
-/** Casts the object to an rtgui_view_t */
-#define RTGUI_VIEW(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_VIEW_TYPE, rtgui_view_t))
-/** Checks if the object is an rtgui_view_t */
-#define RTGUI_IS_VIEW(obj) (RTGUI_OBJECT_CHECK_TYPE((obj), RTGUI_VIEW_TYPE))
-
-/*
- * the view widget
- */
-struct rtgui_view
-{
- /* inherit from box */
- rtgui_container_t parent;
-
- /* private field */
- char* title;
-};
-typedef struct rtgui_view rtgui_view_t;
-
-rtgui_type_t *rtgui_view_type_get(void);
-
-rtgui_view_t *rtgui_view_create(PVOID wdt,const char* title,int left,int top,int w,int h);
-void rtgui_view_destroy(rtgui_view_t* view);
-
-rt_bool_t rtgui_view_event_handler(PVOID wdt, rtgui_event_t* event);
-
-rt_bool_t rtgui_view_show(rtgui_view_t* view);
-void rtgui_view_hide(rtgui_view_t* view);
-
-char* rtgui_view_get_title(rtgui_view_t* view);
-void rtgui_view_set_title(rtgui_view_t* view, const char* title);
-void rtgui_view_show_child(PVOID wdt,const char* name);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/components/rtgui_win/include/rtgui/widgets/widget.h b/components/rtgui_win/include/rtgui/widgets/widget.h
deleted file mode 100644
index 1cddfd267b..0000000000
--- a/components/rtgui_win/include/rtgui/widgets/widget.h
+++ /dev/null
@@ -1,168 +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/color.h>
-#include <rtgui/font.h>
-#include <rtgui/list.h>
-#include <rtgui/region.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct rtgui_widget rtgui_widget_t;
-
-/** Gets the type of a widget */
-#define RTGUI_WIDGET_TYPE (rtgui_widget_type_get())
-/** 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
-{
- rtgui_object_t object; /* inherit from rtgui_object_t */
- rtgui_widget_t *parent, *toplevel; /* the parent and root widget */
- rtgui_list_t sibling; /* the widget child and sibling */
- rt_uint32_t flag; /* widget flag */
-
- rt_uint32_t dc_type; /* hardware device context */
- const struct rtgui_dc_engine* dc_engine;
- rtgui_gc_t gc; /* the graphic context of widget */
- rt_uint16_t tab_index; /* table detect order */
- rt_uint16_t tab_stop;
- rtgui_rect_t extent; /* the widget extent */
- rt_uint32_t align; /* widget align */
- rt_uint16_t border,border_style;
- rtgui_region_t clip; /* the rect clip */
-
- rt_bool_t (*event_handler)(PVOID wdt, rtgui_event_t* event);/* the event handler */
-
- rt_bool_t (*on_focus_in)(PVOID wdt, rtgui_event_t* event);/* call back */
- rt_bool_t (*on_focus_out)(PVOID wdt, rtgui_event_t* event);
- rt_bool_t (*on_draw)(PVOID wdt, rtgui_event_t* event);
- rt_bool_t (*on_mouseclick)(PVOID wdt, rtgui_event_t* event);
- rt_bool_t (*on_key)(PVOID wdt, rtgui_event_t* event);
- rt_bool_t (*on_size)(PVOID wdt, rtgui_event_t* event);
- rt_bool_t (*on_command)(PVOID wdt, rtgui_event_t* event);
-
- rt_uint32_t user_data; /* reserved user data */
-};
-
-#define RTGUI_WIDGET_FOREGROUND(w) (RTGUI_WIDGET(w))->gc.foreground
-#define RTGUI_WIDGET_BACKGROUND(w) (RTGUI_WIDGET(w))->gc.background
-#define RTGUI_WIDGET_FONT(w) (RTGUI_WIDGET(w))->gc.font
-#define RTGUI_WIDGET_TEXTALIGN(w) (RTGUI_WIDGET(w))->gc.textalign
-
-#define RTGUI_WIDGET_FLAG(w) (RTGUI_WIDGET(w))->flag
-#define RTGUI_WIDGET_ALIGN(w) (RTGUI_WIDGET(w))->align
-#define RTGUI_WIDGET_EVENT_HANDLE(w) (RTGUI_WIDGET(w))->event_handler
-#define RTGUI_WIDGET_EVENT_CALL(w,e) (RTGUI_WIDGET(w))->event_handler(w,e)
-#define RTGUI_WIDGET_PARENT(w) (RTGUI_WIDGET(w))->parent
-#define RTGUI_WIDGET_EXTENT(w) (RTGUI_WIDGET(w))->extent
-#define RTGUI_WIDGET_BORDER(w) (RTGUI_WIDGET(w))->border
-#define RTGUI_WIDGET_BORDER_STYLE(w) (RTGUI_WIDGET(w))->border_style
-#define RTGUI_WIDGET_CLIP(w) (RTGUI_WIDGET(w))->clip
-
-#define RTGUI_WIDGET_FLAG_DEFAULT 0x0000 //Ĭ��
-#define RTGUI_WIDGET_FLAG_HIDE 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
-
-#define RTGUI_WIDGET_UNHIDE(w) RTGUI_WIDGET_FLAG(w) &= ~RTGUI_WIDGET_FLAG_HIDE
-#define RTGUI_WIDGET_HIDE(w) RTGUI_WIDGET_FLAG(w) |= RTGUI_WIDGET_FLAG_HIDE
-#define RTGUI_WIDGET_IS_HIDE(w) (RTGUI_WIDGET_FLAG(w) & RTGUI_WIDGET_FLAG_HIDE)
-
-#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) ((rtgui_dc_t*)&(RTGUI_WIDGET(w)->dc_type))
-
-rtgui_type_t *rtgui_widget_type_get(void);
-PVOID rtgui_widget_create(rtgui_type_t *widget_type);
-void rtgui_widget_destroy(PVOID wdt);
-
-/* set the event handler of widget */
-void rtgui_widget_set_event_handler(PVOID wdt, rtgui_event_handler_ptr handler);
-/* widget default event handler */
-rt_bool_t rtgui_widget_event_handler(PVOID wdt, rtgui_event_t* event);
-
-/* focus and unfocus */
-PVOID rtgui_widget_get_focus(PVOID wdt);
-void rtgui_widget_focus(PVOID wdt);
-void rtgui_widget_unfocus(PVOID wdt);
-
-/* event handler for each command */
-void rtgui_widget_set_onfocus(PVOID wdt, rtgui_event_handler_ptr handler);
-void rtgui_widget_set_onunfocus(PVOID wdt, rtgui_event_handler_ptr handler);
-
-void rtgui_widget_set_ondraw(PVOID wdt, rtgui_event_handler_ptr handler);
-void rtgui_widget_set_onmouseclick(PVOID wdt, rtgui_event_handler_ptr handler);
-void rtgui_widget_set_onkey(PVOID wdt, rtgui_event_handler_ptr handler);
-void rtgui_widget_set_onsize(PVOID wdt, rtgui_event_handler_ptr handler);
-void rtgui_widget_set_oncommand(PVOID wdt, rtgui_event_handler_ptr handler);
-
-void rtgui_widget_get_rect(PVOID wdt, rtgui_rect_t *rect);/* get and set rect of widget */
-void rtgui_widget_set_rect(PVOID wdt, rtgui_rect_t* rect);
-void rtgui_widget_get_position(PVOID wdt, rtgui_point_t *p);
-rt_uint16_t rtgui_widget_get_width(PVOID wdt);
-rt_uint16_t rtgui_widget_get_height(PVOID wdt);
-
-void rtgui_widget_set_style(PVOID wdt, rt_uint32_t style);
-void rtgui_widget_point_to_device(PVOID wdt, rtgui_point_t *point);/* get the physical position of a logic point on widget */
-void rtgui_widget_rect_to_device(PVOID wdt, rtgui_rect_t *rect);/* get the physical position of a logic rect on widget */
-void rtgui_widget_point_to_logic(PVOID wdt, rtgui_point_t *point);/* get the logic position of a physical point on widget */
-void rtgui_widget_rect_to_logic(PVOID wdt, rtgui_rect_t *rect);/* get the logic position of a physical rect on widget */
-void rtgui_widget_move_to_logic(PVOID wdt, int dx, int dy);/* move widget and its child to a logic point */
-
-/* update the clip info of widget */
-void rtgui_widget_update_clip(PVOID wdt);
-void rtgui_widget_update_clip_pirate(PVOID wdt,PVOID topwdt);
-
-PVOID rtgui_widget_get_toplevel(PVOID wdt); /* get the toplevel widget of widget */
-void rtgui_widget_show(PVOID wdt);
-void rtgui_widget_hide(PVOID wdt);
-void rtgui_widget_update(PVOID wdt);
-/* get parent color */
-rtgui_color_t rtgui_widget_get_parent_foreground(PVOID wdt);
-rtgui_color_t rtgui_widget_get_parent_background(PVOID wdt);
-/* get the next sibling of widget */
-rtgui_widget_t* rtgui_widget_get_next_sibling(PVOID wdt);
-/* get the prev sibling of widget */
-rtgui_widget_t* rtgui_widget_get_prev_sibling(PVOID wdt);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/components/rtgui_win/include/rtgui/widgets/window.h b/components/rtgui_win/include/rtgui/widgets/window.h
deleted file mode 100644
index 7a5f32a346..0000000000
--- a/components/rtgui_win/include/rtgui/widgets/window.h
+++ /dev/null
@@ -1,130 +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/widgets/container.h>
-
-/** Gets the type of a win */
-#define RTGUI_WIN_TYPE (rtgui_win_type_get())
-/** Casts the object to an rtgui_win_t */
-#define RTGUI_WIN(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_WIN_TYPE, rtgui_win_t))
-/** Checks if the object is an rtgui_win_t */
-#define RTGUI_IS_WIN(obj) (RTGUI_OBJECT_CHECK_TYPE((obj), RTGUI_WIN_TYPE))
-
-#define RTGUI_WIN_CLOSEBOX_WIDTH 16
-#define RTGUI_WIN_CLOSEBOX_HEIGHT 16
-
-#define RTGUI_WIN_TITLE_HEIGHT 20 //�������߶�
-#define RTGUI_WIN_STATUS_HEIGHT 20 //״̬���߶�
-#define RTGUI_WIN_MENU_HEIGHT 20 //�˵����߶�
-
-//���ڵ�״̬
-#define RTGUI_WIN_STATUS_MODAL (1ul << 0) //ģʽ����
-#define RTGUI_WIN_STATUS_MIN (1ul << 1)
-#define RTGUI_WIN_STATUS_MAX (1ul << 2) //���ڴ������״̬
-#define RTGUI_WIN_STATUS_CLOSED (1ul << 3) //�رյ�
-#define RTGUI_WIN_STATUS_ACTIVATE (1ul << 4) //���
-#define RTGUI_WIN_STATUS_FOCUS (1ul << 5) //��ý����
-
-#define RTGUI_WIN_IS_MODAL_MODE(w) (w->status & RTGUI_WIN_STATUS_MODAL)
-//���ڵ���ʽ,����
-#define RTGUI_WIN_TITLE (1ul << 1) //������
-#define RTGUI_WIN_STATUS (1ul << 2) //״̬��
-#define RTGUI_WIN_MENU (1ul << 3) //�˵���
-#define RTGUI_WIN_BORDER (1ul << 4) //�߿�
-#define RTGUI_WIN_MINBOX (1ul << 5) //��С����ť
-#define RTGUI_WIN_MAXBOX (1ul << 6) //��󻯰�ť
-#define RTGUI_WIN_CLOSEBOX (1ul << 7) //�رհ�ť
-#define RTGUI_WIN_MINBOX_PRESSED (1ul << 8)
-#define RTGUI_WIN_MAXBOX_PRESSED (1ul << 9)
-#define RTGUI_WIN_CLOSEBOX_PRESSED (1ul << 10) //�رհ�ť������
-
-#define RTGUI_WIN_NOTITLE (0)
-#define RTGUI_WIN_DEFAULT (RTGUI_WIN_BORDER|RTGUI_WIN_TITLE|RTGUI_WIN_CLOSEBOX)
-#define RTGUI_WIN_DIALOG (RTGUI_WIN_BORDER|RTGUI_WIN_TITLE|RTGUI_WIN_CLOSEBOX|RTGUI_WIN_MINBOX)
-#define RTGUI_WIN_NORMAL (RTGUI_WIN_BORDER|RTGUI_WIN_TITLE|RTGUI_WIN_CLOSEBOX|RTGUI_WIN_MINBOX|RTGUI_WIN_MAXBOX)
-
-
-struct rtgui_win_title;
-struct rtgui_win_area;
-
-struct rtgui_win
-{
- /* inherit from top */
- rtgui_container_t parent;
-
- /* window title */
- char* title;
-
- /* parent top */
- PVOID modal_widget;
- rtgui_list_t list; /* window list */
-
- /* the thread id */
- struct rt_thread* tid; //�����߳�
-
- rt_uint32_t style; //���ڵ���ʽ
- rt_uint32_t status; //���ڵ�״̬
- rt_uint16_t title_height; //�������߶�
- rt_uint16_t status_height; //״̬���߶�
- rt_uint16_t menu_height; //�˵����߶�
- rt_uint16_t border_size; //����߿����
-
- /* call back */
- rt_bool_t (*on_activate)(PVOID wdt, rtgui_event_t* event);
- rt_bool_t (*on_deactivate)(PVOID wdt, rtgui_event_t* event);
- rt_bool_t (*on_close)(PVOID wdt, rtgui_event_t* event);
-
- /* reserved user data */
- void* user_data;
-};
-
-rtgui_type_t *rtgui_win_type_get(void);
-rtgui_win_t* rtgui_win_create(PVOID parent, const char* title, rtgui_rect_t *rect, rt_uint32_t flag);
-void rtgui_win_destroy(rtgui_win_t* win);
-rtgui_win_t* rtgui_win_get_win_by_widget(PVOID wdt);
-void rtgui_win_close(PVOID wdt, rtgui_event_t *event);
-rt_bool_t rtgui_win_ondraw(rtgui_win_t* win);
-
-void rtgui_win_show(rtgui_win_t* win, rt_bool_t modal);
-void rtgui_win_hiden(rtgui_win_t* win);
-void rtgui_win_end_modal(rtgui_win_t* win);
-
-rt_bool_t rtgui_win_is_activated(rtgui_win_t* win);
-
-void rtgui_win_move(rtgui_win_t* 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_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);
-
-rt_bool_t rtgui_win_event_handler(PVOID wdt, rtgui_event_t* event);
-void rtgui_win_event_loop(rtgui_win_t* win);
-
-void rtgui_win_set_title(rtgui_win_t* win, const char *title);
-char* rtgui_win_get_title(rtgui_win_t* win);
-
-rtgui_point_t rtgui_win_get_client_zero(rtgui_win_t *win);
-void rtgui_win_get_client_rect(rtgui_win_t *win, rtgui_rect_t *rect);
-void rtgui_win_get_title_rect(rtgui_win_t *win, rtgui_rect_t *rect);
-void rtgui_win_get_closebox_rect(rtgui_win_t *win, rtgui_rect_t *rect);
-void rtgui_win_get_maxbox_rect(rtgui_win_t *win, rtgui_rect_t *rect);
-void rtgui_win_get_minbox_rect(rtgui_win_t *win, rtgui_rect_t *rect);
-
-#endif