4
0
mirror of https://github.com/RT-Thread/rt-thread.git synced 2025-01-16 05:19:23 +08:00
rt-thread-official/examples/gui/demo_application.c
dzzxzz@gmail.com 9707b6ce0b sync RTGUI with github(https://github.com/RT-Thread/RTGUI)
a8dac7ed473f381b7042cf9d14028488192624c5
As always, full log is in GitHub.

git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2276 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-09-07 01:50:13 +00:00

156 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_plot();
#if defined(RTGUI_USING_DFS_FILERW)
demo_view_edit();
demo_view_bmp();
#endif
#if 0
#if defined(RTGUI_USING_DFS_FILERW)
demo_view_image();
#endif
#ifdef RT_USING_MODULE
#if defined(RTGUI_USING_DFS_FILERW)
demo_view_module();
#endif
#endif
demo_listview_view();
demo_listview_icon_view();
#if defined(RTGUI_USING_DFS_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