summaryrefslogtreecommitdiff
path: root/examples/gui/demo_application.c
diff options
context:
space:
mode:
Diffstat (limited to 'examples/gui/demo_application.c')
-rw-r--r--examples/gui/demo_application.c147
1 files changed, 147 insertions, 0 deletions
diff --git a/examples/gui/demo_application.c b/examples/gui/demo_application.c
new file mode 100644
index 0000000000..00ffce982a
--- /dev/null
+++ b/examples/gui/demo_application.c
@@ -0,0 +1,147 @@
+#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