db06460208
The full log is at https://github.com/RTGUI/RTGUI/commits/merge_1 and it's difficult to merge the new tree commit by commit. I also converted all the file into unix eol so there are many fake diff. Big changes are noted in rtgui/doc/road_map.txt and rtgui/doc/attention.txt. Keep an eye on them if you want to migrate your old code. Note that the work is still in progress and the bsp is not prepared in trunk so far. git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2092 bbd45198-f89e-11dd-88c7-29a3b14d5316
148 lines
3.2 KiB
C
148 lines
3.2 KiB
C
#include <rtgui/rtgui.h>
|
||
#include <rtgui/rtgui_system.h>
|
||
#include <rtgui/rtgui_application.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_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;
|
||
}
|
||
}
|
||
return RT_TRUE;
|
||
}
|
||
|
||
struct rtgui_win *main_win;
|
||
static void application_entry(void* parameter)
|
||
{
|
||
struct rtgui_application *app;
|
||
struct rtgui_rect rect;
|
||
|
||
app = rtgui_application_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_DESKTOP_DEFAULT);*/
|
||
RTGUI_WIN_STYLE_NO_BORDER | RTGUI_WIN_STYLE_NO_TITLE);
|
||
if (main_win == RT_NULL)
|
||
{
|
||
rtgui_application_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_application_destroy(app);
|
||
return;
|
||
}
|
||
|
||
rtgui_container_add_child(RTGUI_CONTAINER(main_win), RTGUI_WIDGET(the_notebook));
|
||
|
||
/* ³õʼ»¯¸÷¸öÀý×ÓµÄÊÓͼ */
|
||
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();
|
||
#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_application_run(app);
|
||
|
||
rtgui_application_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
|