From 1e5fe1d7c1112633f6e0bf135fa05ffaca92beb8 Mon Sep 17 00:00:00 2001 From: "bernard.xiong" Date: Wed, 7 Apr 2010 06:19:09 +0000 Subject: [PATCH] remove dc_buffer example git-svn-id: https://rt-thread.googlecode.com/svn/trunk@589 bbd45198-f89e-11dd-88c7-29a3b14d5316 --- examples/gui/demo_workbench.c | 216 +++++++++++++++++----------------- 1 file changed, 108 insertions(+), 108 deletions(-) diff --git a/examples/gui/demo_workbench.c b/examples/gui/demo_workbench.c index 3efa61ebc..590b12fcc 100644 --- a/examples/gui/demo_workbench.c +++ b/examples/gui/demo_workbench.c @@ -1,108 +1,108 @@ -#include -#include - -#include -#include - -static rt_bool_t demo_workbench_event_handler(struct rtgui_widget* widget, struct rtgui_event* event) -{ - /* 我们目前只对按键事件感兴趣。如果当前workbench处于模式显示状态,忽略它 */ - if ((event->type == RTGUI_EVENT_KBD) && !RTGUI_WORKBENCH_IS_MODAL_MODE(RTGUI_WORKBENCH(widget))) - { - struct rtgui_event_kbd* ekbd = (struct rtgui_event_kbd*)event; - - if (ekbd->type == RTGUI_KEYDOWN) - { - if (ekbd->key == RTGUIK_RIGHT) - { - demo_view_next(RT_NULL, RT_NULL); - return RT_TRUE; - } - else if (ekbd->key == RTGUIK_LEFT) - { - demo_view_prev(RT_NULL, RT_NULL); - return RT_TRUE; - } - } - } - - /* 如果不是绘制事件,使用view原来的事件处理函数处理 */ - return rtgui_workbench_event_handler(widget, event); -} - -static void workbench_entry(void* parameter) -{ - rt_mq_t mq; - struct rtgui_view* view; - struct rtgui_workbench* workbench; - - /* 创建GUI应用需要的消息队列 */ -#ifdef RTGUI_USING_SMALL_SIZE - mq = rt_mq_create("workbench", 32, 8, RT_IPC_FLAG_FIFO); -#else - mq = rt_mq_create("workbench", 256, 8, RT_IPC_FLAG_FIFO); -#endif - /* 注册当前线程为GUI线程 */ - rtgui_thread_register(rt_thread_self(), mq); - - /* 创建一个工作台 */ - workbench = rtgui_workbench_create("main", "workbench"); - if (workbench == RT_NULL) return; - - rtgui_widget_set_event_handler(RTGUI_WIDGET(workbench), demo_workbench_event_handler); - - /* 初始化各个例子的视图 */ - demo_view_dc(workbench); - demo_view_dc_buffer(workbench); - demo_view_animation(workbench); - demo_view_window(workbench); - demo_view_label(workbench); - demo_view_button(workbench); - demo_view_checkbox(workbench); - demo_view_progressbar(workbench); - demo_view_radiobox(workbench); - demo_view_textbox(workbench); - demo_view_slider(workbench); - demo_view_mywidget(workbench); - demo_view_image(workbench); - demo_listview_view(workbench); - demo_fn_view(workbench); - - /* 显示视图 */ - demo_view_show(); - - /* 执行工作台事件循环 */ - rtgui_workbench_event_loop(workbench); - - /* 去注册GUI线程 */ - rtgui_thread_deregister(rt_thread_self()); - rt_mq_delete(mq); -} - -void workbench_init() -{ - static rt_bool_t inited = RT_FALSE; - - if (inited == RT_FALSE) /* 避免重复初始化而做的保护 */ - { - rt_thread_t tid; - - tid = rt_thread_create("wb", - workbench_entry, RT_NULL, - 2048, 25, 10); - - if (tid != RT_NULL) rt_thread_startup(tid); - - inited = RT_TRUE; - } -} - -#ifdef RT_USING_RTGUI -#include -void workbench() -{ - workbench_init(); -} -/* finsh的命令输出,可以直接执行workbench()函数以执行上面的函数 */ -FINSH_FUNCTION_EXPORT(workbench, workbench demo) -#endif +#include +#include + +#include +#include + +static rt_bool_t demo_workbench_event_handler(struct rtgui_widget* widget, struct rtgui_event* event) +{ + /* 我们目前只对按键事件感兴趣。如果当前workbench处于模式显示状态,忽略它 */ + if ((event->type == RTGUI_EVENT_KBD) && !RTGUI_WORKBENCH_IS_MODAL_MODE(RTGUI_WORKBENCH(widget))) + { + struct rtgui_event_kbd* ekbd = (struct rtgui_event_kbd*)event; + + if (ekbd->type == RTGUI_KEYDOWN) + { + if (ekbd->key == RTGUIK_RIGHT) + { + demo_view_next(RT_NULL, RT_NULL); + return RT_TRUE; + } + else if (ekbd->key == RTGUIK_LEFT) + { + demo_view_prev(RT_NULL, RT_NULL); + return RT_TRUE; + } + } + } + + /* 如果不是绘制事件,使用view原来的事件处理函数处理 */ + return rtgui_workbench_event_handler(widget, event); +} + +static void workbench_entry(void* parameter) +{ + rt_mq_t mq; + struct rtgui_view* view; + struct rtgui_workbench* workbench; + + /* 创建GUI应用需要的消息队列 */ +#ifdef RTGUI_USING_SMALL_SIZE + mq = rt_mq_create("workbench", 32, 8, RT_IPC_FLAG_FIFO); +#else + mq = rt_mq_create("workbench", 256, 8, RT_IPC_FLAG_FIFO); +#endif + /* 注册当前线程为GUI线程 */ + rtgui_thread_register(rt_thread_self(), mq); + + /* 创建一个工作台 */ + workbench = rtgui_workbench_create("main", "workbench"); + if (workbench == RT_NULL) return; + + rtgui_widget_set_event_handler(RTGUI_WIDGET(workbench), demo_workbench_event_handler); + + /* 初始化各个例子的视图 */ + demo_view_dc(workbench); + /* demo_view_dc_buffer(workbench); */ + demo_view_animation(workbench); + demo_view_window(workbench); + demo_view_label(workbench); + demo_view_button(workbench); + demo_view_checkbox(workbench); + demo_view_progressbar(workbench); + demo_view_radiobox(workbench); + demo_view_textbox(workbench); + demo_view_slider(workbench); + demo_view_mywidget(workbench); + demo_view_image(workbench); + demo_listview_view(workbench); + demo_fn_view(workbench); + + /* 显示视图 */ + demo_view_show(); + + /* 执行工作台事件循环 */ + rtgui_workbench_event_loop(workbench); + + /* 去注册GUI线程 */ + rtgui_thread_deregister(rt_thread_self()); + rt_mq_delete(mq); +} + +void workbench_init() +{ + static rt_bool_t inited = RT_FALSE; + + if (inited == RT_FALSE) /* 避免重复初始化而做的保护 */ + { + rt_thread_t tid; + + tid = rt_thread_create("wb", + workbench_entry, RT_NULL, + 2048, 25, 10); + + if (tid != RT_NULL) rt_thread_startup(tid); + + inited = RT_TRUE; + } +} + +#ifdef RT_USING_RTGUI +#include +void workbench() +{ + workbench_init(); +} +/* finsh的命令输出,可以直接执行workbench()函数以执行上面的函数 */ +FINSH_FUNCTION_EXPORT(workbench, workbench demo) +#endif -- GitLab