rtt-f030/examples/gui/demo_application.c
dzzxzz@gmail.com 9a99573152 sync gui examples with github 6cf0a8bc19c292ca810c917574895c8defa3922e
As always, full log is in GitHub.

git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2254 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-08-13 08:32:01 +00:00

150 lines
3.5 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include <rtgui/rtgui.h>
#include <rtgui/rtgui_system.h>
#include <rtgui/rtgui_app.h>
#include <rtgui/widgets/window.h>
#include <rtgui/widgets/notebook.h>
struct rtgui_notebook *the_notebook;
static rt_bool_t demo_handle_key(struct rtgui_object *object, struct rtgui_event *event)
{
struct rtgui_event_kbd *ekbd = (struct rtgui_event_kbd *)event;
if (ekbd->type == RTGUI_KEYUP)
{
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;
}
}
return RT_TRUE;
}
struct rtgui_win *main_win;
static void application_entry(void *parameter)
{
struct rtgui_app *app;
struct rtgui_rect rect;
app = rtgui_app_create(rt_thread_self(), "gui_demo");
if (app == RT_NULL)
return;
/* create a full screen window */
rtgui_graphic_driver_get_rect(rtgui_graphic_driver_get_default(), &rect);
main_win = rtgui_win_create(RT_NULL, "demo_win", &rect,
RTGUI_WIN_STYLE_NO_BORDER | RTGUI_WIN_STYLE_NO_TITLE);
if (main_win == RT_NULL)
{
rtgui_app_destroy(app);
return;
}
rtgui_win_set_onkey(main_win, demo_handle_key);
/* create a no title notebook that we can switch demo on it easily. */
the_notebook = rtgui_notebook_create(&rect, RTGUI_NOTEBOOK_NOTAB);
if (the_notebook == RT_NULL)
{
rtgui_win_destroy(main_win);
rtgui_app_destroy(app);
return;
}
rtgui_container_add_child(RTGUI_CONTAINER(main_win), RTGUI_WIDGET(the_notebook));
//demo_view_box();
/* łőĘźťŻ¸÷¸öŔý×ÓľÄĘÓÍź */
demo_view_benchmark();
demo_view_dc();
#ifdef RTGUI_USING_TTF
demo_view_ttf();
#endif
#ifndef RTGUI_USING_SMALL_SIZE
demo_view_dc_buffer();
#endif
demo_view_animation();
#ifndef RTGUI_USING_SMALL_SIZE
demo_view_buffer_animation();
demo_view_instrument_panel();
#endif
demo_view_window();
demo_view_label();
demo_view_button();
demo_view_checkbox();
demo_view_progressbar();
demo_view_scrollbar();
demo_view_radiobox();
demo_view_textbox();
demo_view_listbox();
demo_view_menu();
demo_view_listctrl();
demo_view_combobox();
demo_view_slider();
demo_view_notebook();
demo_view_mywidget();
demo_view_edit();
#if 0
#if defined(RTGUI_USING_DFS_FILERW) || defined(RTGUI_USING_STDIO_FILERW)
demo_view_image();
#endif
#ifdef RT_USING_MODULE
#if defined(RTGUI_USING_DFS_FILERW) || defined(RTGUI_USING_STDIO_FILERW)
demo_view_module();
#endif
#endif
demo_listview_view();
demo_listview_icon_view();
#if defined(RTGUI_USING_DFS_FILERW) || defined(RTGUI_USING_STDIO_FILERW)
demo_fn_view();
#endif
#endif
rtgui_win_show(main_win, RT_FALSE);
/* Ö´ĐĐš¤×÷̨ĘÂźţŃ­ťˇ */
rtgui_app_run(app);
rtgui_app_destroy(app);
}
void application_init()
{
static rt_bool_t inited = RT_FALSE;
if (inited == RT_FALSE) /* ąÜĂâÖظ´łőĘźťŻśř×öľÄąŁť¤ */
{
rt_thread_t tid;
tid = rt_thread_create("wb",
application_entry, RT_NULL,
2048 * 2, 25, 10);
if (tid != RT_NULL)
rt_thread_startup(tid);
inited = RT_TRUE;
}
}
#ifdef RT_USING_FINSH
#include <finsh.h>
void application()
{
application_init();
}
/* finshľÄĂüÁîĘäłöŁŹżÉŇÔÖą˝ÓÖ´ĐĐapplication()şŻĘýŇÔÖ´ĐĐÉĎĂćľÄşŻĘý */
FINSH_FUNCTION_EXPORT(application, application demo)
#endif