diff options
| author | [email protected] <[email protected]> | 2011-03-24 14:00:19 +0000 |
|---|---|---|
| committer | [email protected] <[email protected]> | 2011-03-24 14:00:19 +0000 |
| commit | 0e93e6809c7beac4597148edc1dc09bcdf9a2ab3 (patch) | |
| tree | 113765e7f8351d84226a3de04f13daf86ddd82f9 /examples/rtgui_win | |
| parent | 96c53b49571adadd957df804f4f5e6698c14e3b3 (diff) | |
add rtgui_win subfield,Highlight the ease of use
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1345 bbd45198-f89e-11dd-88c7-29a3b14d5316
Diffstat (limited to 'examples/rtgui_win')
| -rw-r--r-- | examples/rtgui_win/SConscript | 27 | ||||
| -rw-r--r-- | examples/rtgui_win/demo_gui_main.c | 92 | ||||
| -rw-r--r-- | examples/rtgui_win/gui_init.c | 23 |
3 files changed, 142 insertions, 0 deletions
diff --git a/examples/rtgui_win/SConscript b/examples/rtgui_win/SConscript new file mode 100644 index 0000000000..73735a7bca --- /dev/null +++ b/examples/rtgui_win/SConscript @@ -0,0 +1,27 @@ +Import('env')
+Import('projects')
+
+src = Split("""
+gui_init.c
+demo_gui_main.c
+""")
+
+group = {}
+group['name'] = 'GUI demo'
+group['src'] = File(src)
+group['CCFLAGS'] = ''
+group['CPPPATH'] = ['']
+group['CPPDEFINES'] = ''
+group['LINKFLAGS'] = ''
+
+# add group to project list
+projects.append(group)
+
+env.Append(CCFLAGS = group['CCFLAGS'])
+env.Append(CPPPATH = group['CPPPATH'])
+env.Append(CPPDEFINES = group['CPPDEFINES'])
+env.Append(LINKFLAGS = group['LINKFLAGS'])
+
+objs = env.Object(group['src'])
+
+Return('objs')
diff --git a/examples/rtgui_win/demo_gui_main.c b/examples/rtgui_win/demo_gui_main.c new file mode 100644 index 0000000000..f62624c3d1 --- /dev/null +++ b/examples/rtgui_win/demo_gui_main.c @@ -0,0 +1,92 @@ +/*
+ * ���һ��RTGUI�����ӣ���ʾ����δ���һ��RTGUI����
+ */
+#include <rtthread.h>
+#include <rtgui/rtgui.h>
+#include <panel.h>
+#include <rtgui/event.h>
+#include <rtgui/widgets/widget.h>
+#include <rtgui/widgets/button.h>
+#include <rtgui/widgets/textbox.h>
+#include <rtgui/widgets/view.h>
+#include <rtgui/widgets/listbox.h>
+#include <rtgui/rtgui_theme.h>
+
+rtgui_listbox_t *__lbox;
+
+static rtgui_listbox_item_t _demo_list[] =
+{
+ {"item1", RT_NULL},
+ {"item2", RT_NULL},
+};
+
+/* ���б�����һ����Ŀ */
+void user_add_one_item(PVOID wdt, rtgui_event_t *event)
+{
+ rtgui_listbox_item_t item={"new item", RT_NULL};
+ if(__lbox != RT_NULL)
+ {
+ __lbox->add_item(__lbox, &item);
+ }
+}
+
+static void rtgui_panel_entry(void* parameter) +{ + const struct rtgui_graphic_driver* gd = rtgui_graphic_driver_get_default();
+ struct rt_messagequeue* mq;
+ rtgui_panel_t *panel;
+ rtgui_view_t *view;
+ rtgui_button_t *button;
+ + /* ����GUIӦ����Ҫ����Ϣ���� */ + mq = rt_mq_create("Panel", 256, 32, RT_IPC_FLAG_FIFO); + /* ע�ᵱǰ�߳�ΪGUI�߳� */ + rtgui_thread_register(rt_thread_self(), mq);
+ + panel = rtgui_panel_create(0,0,gd->width,gd->height);
+
+ //����һ������/��Ϣ��
+ view = rtgui_view_create(panel,"titlebar",0,0,gd->width,30);
+ rtgui_widget_set_style(view, RTGUI_BORDER_SIMPLE);
+ rtgui_label_create(view, "hello world!",5,2,150,24);
+
+ //����һ���б�
+ __lbox = rtgui_listbox_create(panel,10,30,120,100,RTGUI_BORDER_SUNKEN);
+ rtgui_listbox_set_items(__lbox,_demo_list,RT_COUNT(_demo_list));
+ button = rtgui_button_create(panel,"add",140,60,50,25);
+ rtgui_button_set_onbutton(button,user_add_one_item);
+
+ //����һ���༭��
+ rtgui_textbox_create(panel,
+ "this is a textbox,\n"
+ "demo multi text.\n",
+ 10,150,180,50,
+ RTGUI_TEXTBOX_MULTI);
+
+ ///////////////////////////////////////////////////////
+ rtgui_panel_show(panel);
+ + /* ִ�й���̨�¼�ѭ�� */ + rtgui_panel_event_loop(panel); + + /* ȥע��GUI�߳� */ + rtgui_thread_deregister(rt_thread_self()); + rt_mq_delete(mq); +} + +void rtgui_panel_init(void) +{ + static rt_bool_t main_inited = RT_FALSE;
+ + if(main_inited == RT_FALSE) /* �����ظ���ʼ�������ı��� */ + { + struct rt_thread* tid; + + tid = rt_thread_create("Panel", rtgui_panel_entry, RT_NULL, 4096, 4, 5); + + if(tid != RT_NULL) rt_thread_startup(tid); + + main_inited = RT_TRUE; + } +}
+
diff --git a/examples/rtgui_win/gui_init.c b/examples/rtgui_win/gui_init.c new file mode 100644 index 0000000000..2d557d25f7 --- /dev/null +++ b/examples/rtgui_win/gui_init.c @@ -0,0 +1,23 @@ +#include <rtgui/rtgui.h>
+#include <rtgui/rtgui_system.h>
+#include <rtgui/rtgui_server.h>
+#include "touch.h"
+
+void rt_hw_lcd_init(void);
+void rt_key_init(void);
+void rtgui_panel_init(void);
+
+
+/* GUI�����ʾ��ڣ�������߳��н��г�ʼ�� */
+void rtgui_startup()
+{
+ /* GUIϵͳ��ʼ�� */
+ rtgui_system_server_init();
+
+ /* ������ʼ�� */
+ //rt_key_hw_init();
+ /* LCD������ʼ�� */
+ rt_hw_lcd_init();
+ rtgui_touch_hw_init();
+ rtgui_panel_init();
+}
|
