123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- /*
- * File : application.c
- * This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2006, RT-Thread Development Team
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rt-thread.org/license/LICENSE
- *
- * Change Logs:
- * Date Author Notes
- */
- #include <rtthread.h>
- #include "finsh.h"
- #include "rtgui_demo.h"
- #define DEBUG
- #ifdef DEBUG
- #define DEBUG_PRINTF(...) rt_kprintf(__VA_ARGS__)
- #else
- #define DEBUG_PRINTF(...)
- #endif
- #ifdef PKG_USING_GUIENGINE
- #include <rtgui/rtgui.h>
- #include <rtgui/rtgui_system.h>
- #include <rtgui/rtgui_app.h>
- #include <rtgui/widgets/window.h>
- #include <rtgui/dc.h>
- struct rtgui_win *main_win;
- rt_bool_t dc_event_handler(struct rtgui_object *object, rtgui_event_t *event);
- static void rt_gui_demo_entry(void *parameter)
- {
- struct rtgui_app *app;
- //struct rtgui_dc *dc;
-
- DEBUG_PRINTF("gui demo entry\n");
-
- /* create gui app */
- app = rtgui_app_create("gui_demo");
- if (app == RT_NULL)
- {
- DEBUG_PRINTF("rtgui_app_create faild\n");
- return;
- }
-
- /* create main window */
- main_win = rtgui_mainwin_create(RT_NULL,
- "UiWindow", RTGUI_WIN_STYLE_NO_TITLE | RTGUI_WIN_STYLE_NO_BORDER);
- if (main_win == RT_NULL)
- {
- DEBUG_PRINTF("main_win is null\n");
- rtgui_app_destroy(app);
- return;
- }
-
- rtgui_object_set_event_handler(RTGUI_OBJECT(main_win), dc_event_handler);
-
- DEBUG_PRINTF("rtgui_win_show\n");
- rtgui_win_show(main_win, RT_FALSE);
-
- DEBUG_PRINTF("rtgui_app_run\n");
- rtgui_app_run(app);
-
- DEBUG_PRINTF("rtgui_win_destroy\n");
- rtgui_win_destroy(main_win);
-
- DEBUG_PRINTF("rtgui_app_destroy\n");
- rtgui_app_destroy(app);
- }
- rt_bool_t dc_event_handler(struct rtgui_object *object, rtgui_event_t *event)
- {
- struct rtgui_widget *widget = RTGUI_WIDGET(object);
- if (event->type == RTGUI_EVENT_PAINT)
- {
- struct rtgui_dc *dc;
- rtgui_rect_t rect;
-
- rt_kprintf("\r\n RTGUI_EVENT_PAINT \r\n");
- rtgui_win_event_handler(RTGUI_OBJECT(widget), event);
-
- rtgui_widget_get_rect(widget, &rect);
- DEBUG_PRINTF("widget react x1: %d, y1: %d, x2: %d, y2: %d\r\n",
- rect.x1, rect.y1, rect.x2, rect.y2);
- dc = rtgui_dc_begin_drawing(widget);
- if(dc == RT_NULL)
- {
- DEBUG_PRINTF("\r\n dc is null \r\n");
- return RT_FALSE;
- }
- rtgui_dc_draw_line(dc, rect.x1, rect.y1, rect.x2, rect.y2);
- rtgui_dc_draw_line(dc, rect.x1, rect.y2, rect.x2, rect.y1);
-
- rect.x1 += (rect.x2 - rect.x1) / 2;
- rect.y1 += (rect.y2 - rect.y1) / 2;
- rtgui_dc_draw_text_stroke(dc, __DATE__"--"__TIME__, &rect, HIGH_LIGHT, BLUE);
-
-
- rtgui_dc_end_drawing(dc, RT_TRUE);
- }
- return RT_FALSE;
- }
- int rt_gui_demo_init(void)
- {
- rt_thread_t tid;
- tid = rt_thread_create("mygui",
- rt_gui_demo_entry, RT_NULL,
- 2048, 25, 10);
- if (tid != RT_NULL)
- rt_thread_startup(tid);
-
- return 0;
- }
- #endif /* PKG_USING_GUIENGINE */
|