summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
Diffstat (limited to 'examples')
-rw-r--r--examples/gui/SConscript1
-rw-r--r--examples/gui/demo_application.c25
-rw-r--r--examples/gui/demo_listview_icon.c4
-rw-r--r--examples/gui/demo_view.c6
-rw-r--r--examples/gui/demo_view.h2
-rw-r--r--examples/gui/demo_view_benchmark.c15
-rw-r--r--examples/gui/demo_view_box.c37
-rw-r--r--examples/gui/demo_view_image.c2
-rw-r--r--examples/gui/demo_view_listbox.c6
-rw-r--r--examples/gui/demo_view_listctrl.c6
-rw-r--r--examples/gui/demo_view_menu.c10
-rw-r--r--examples/gui/demo_view_window.c22
-rw-r--r--examples/gui/mywidget.c6
-rw-r--r--examples/gui/mywidget.h2
14 files changed, 93 insertions, 51 deletions
diff --git a/examples/gui/SConscript b/examples/gui/SConscript
index 73d0f6731f..35f4c9e810 100644
--- a/examples/gui/SConscript
+++ b/examples/gui/SConscript
@@ -36,6 +36,7 @@ demo_view_combobox.c
demo_view_slider.c
demo_view_notebook.c
demo_view_mywidget.c
+demo_view_box.c
mywidget.c
""")
diff --git a/examples/gui/demo_application.c b/examples/gui/demo_application.c
index c46d271a76..b84eaa704f 100644
--- a/examples/gui/demo_application.c
+++ b/examples/gui/demo_application.c
@@ -1,6 +1,6 @@
#include <rtgui/rtgui.h>
#include <rtgui/rtgui_system.h>
-#include <rtgui/rtgui_application.h>
+#include <rtgui/rtgui_app.h>
#include <rtgui/widgets/window.h>
#include <rtgui/widgets/notebook.h>
@@ -11,7 +11,7 @@ static rt_bool_t demo_handle_key(struct rtgui_object* object, struct rtgui_event
{
struct rtgui_event_kbd* ekbd = (struct rtgui_event_kbd*)event;
- if (ekbd->type == RTGUI_KEYDOWN)
+ if (ekbd->type == RTGUI_KEYUP)
{
if (ekbd->key == RTGUIK_RIGHT)
{
@@ -30,10 +30,10 @@ static rt_bool_t demo_handle_key(struct rtgui_object* object, struct rtgui_event
struct rtgui_win *main_win;
static void application_entry(void* parameter)
{
- struct rtgui_application *app;
+ struct rtgui_app *app;
struct rtgui_rect rect;
- app = rtgui_application_create(rt_thread_self(), "gui_demo");
+ app = rtgui_app_create(rt_thread_self(), "gui_demo");
if (app == RT_NULL)
return;
@@ -41,11 +41,10 @@ static void application_entry(void* parameter)
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);
+ RTGUI_WIN_STYLE_NO_BORDER | RTGUI_WIN_STYLE_NO_TITLE);
if (main_win == RT_NULL)
{
- rtgui_application_destroy(app);
+ rtgui_app_destroy(app);
return;
}
@@ -56,12 +55,14 @@ static void application_entry(void* parameter)
if (the_notebook == RT_NULL)
{
rtgui_win_destroy(main_win);
- rtgui_application_destroy(app);
+ rtgui_app_destroy(app);
return;
}
rtgui_container_add_child(RTGUI_CONTAINER(main_win), RTGUI_WIDGET(the_notebook));
+ demo_view_box();
+
/* ��ʼ���������ӵ���ͼ */
demo_view_benchmark();
@@ -112,12 +113,12 @@ static void application_entry(void* parameter)
rtgui_win_show(main_win, RT_FALSE);
/* ִ�й���̨�¼�ѭ�� */
- rtgui_application_run(app);
+ rtgui_app_run(app);
- rtgui_application_destroy(app);
+ rtgui_app_destroy(app);
}
-void application_init(void)
+void application_init()
{
static rt_bool_t inited = RT_FALSE;
@@ -138,7 +139,7 @@ void application_init(void)
#ifdef RT_USING_FINSH
#include <finsh.h>
-void application(void)
+void application()
{
application_init();
}
diff --git a/examples/gui/demo_listview_icon.c b/examples/gui/demo_listview_icon.c
index a5f6e20b4b..9723059ce2 100644
--- a/examples/gui/demo_listview_icon.c
+++ b/examples/gui/demo_listview_icon.c
@@ -45,11 +45,7 @@ static void listitem_action(rtgui_widget_t* widget, void* parameter)
}
/* ���ع��ܵĶ������� */
-#if RT_VERSION == 4
static void return_action(rtgui_widget_t* widget, void* parameter)
-#else
-static void return_action(void* parameter)
-#endif
{
/* �˳�ģ̬��ʾ */
rtgui_container_end_modal(RTGUI_CONTAINER(_view), RTGUI_MODAL_OK);
diff --git a/examples/gui/demo_view.c b/examples/gui/demo_view.c
index b1c1d657aa..885e600aeb 100644
--- a/examples/gui/demo_view.c
+++ b/examples/gui/demo_view.c
@@ -1,10 +1,11 @@
#include <rtgui/rtgui.h>
-#include <rtgui/rtgui_application.h>
+#include <rtgui/rtgui_app.h>
#include <rtgui/widgets/container.h>
#include <rtgui/widgets/notebook.h>
#include <rtgui/widgets/button.h>
#include <rtgui/widgets/staticline.h>
+#include <rtgui/widgets/box.h>
extern struct rtgui_notebook *the_notebook;
@@ -130,7 +131,6 @@ void demo_view_get_logic_rect(rtgui_container_t* container, rtgui_rect_t *rect)
/* ���DZ�׼�汾ʱ������������ڷ����Զ���������box�ؼ� */
#ifndef RTGUI_USING_SMALL_SIZE
-#include <rtgui/widgets/box.h>
struct rtgui_box* demo_view_create_box(struct rtgui_container *container, int orient)
{
rtgui_rect_t rect;
@@ -142,7 +142,7 @@ struct rtgui_box* demo_view_create_box(struct rtgui_container *container, int or
rect.y2 -= 25;
/* ����һ���Զ��������� */
- box = rtgui_box_create(orient, &rect);
+ box = rtgui_box_create(orient, 5);
/* ����box�ؼ�����ͼ�� */
rtgui_container_add_child(container, RTGUI_WIDGET(box));
diff --git a/examples/gui/demo_view.h b/examples/gui/demo_view.h
index e1c93a53b3..8f138a2750 100644
--- a/examples/gui/demo_view.h
+++ b/examples/gui/demo_view.h
@@ -15,7 +15,7 @@
#define __DEMO_VIEW_H__
#include <rtgui/rtgui.h>
-#include <rtgui/rtgui_application.h>
+#include <rtgui/rtgui_app.h>
#include <rtgui/widgets/container.h>
/* 如果是标准版本,可以启用box自动布局引擎 */
diff --git a/examples/gui/demo_view_benchmark.c b/examples/gui/demo_view_benchmark.c
index cd24824c62..956bf9e4a2 100644
--- a/examples/gui/demo_view_benchmark.c
+++ b/examples/gui/demo_view_benchmark.c
@@ -74,18 +74,21 @@ rt_bool_t benchmark_event_handler(struct rtgui_object *object, rtgui_event_t *ev
{
struct rtgui_event_kbd *kbd = (struct rtgui_event_kbd*)event;
+ if (kbd->key == RTGUIK_LEFT || kbd->key == RTGUIK_RIGHT)
+ return RT_FALSE;
+
if (RTGUI_KBD_IS_UP(kbd))
{
if (running)
{
/* stop */
- rtgui_application_set_onidle(RT_NULL);
+ rtgui_app_set_onidle(RT_NULL);
_draw_default(object, event);
}
else
{
/* run */
- rtgui_application_set_onidle(_onidle);
+ rtgui_app_set_onidle(_onidle);
}
running = !running;
@@ -101,11 +104,19 @@ rt_bool_t benchmark_event_handler(struct rtgui_object *object, rtgui_event_t *ev
return RT_FALSE;
}
+static rt_bool_t _benchmark_onshow(struct rtgui_object *obj, struct rtgui_event* ev)
+{
+ rtgui_widget_focus(RTGUI_WIDGET(obj));
+ return RT_TRUE;
+}
+
rtgui_container_t *demo_view_benchmark(void)
{
srand(100);
container = demo_view("��ͼ����");
+ RTGUI_WIDGET(container)->flag |= RTGUI_WIDGET_FLAG_FOCUSABLE;
rtgui_object_set_event_handler(RTGUI_OBJECT(container), benchmark_event_handler);
+ rtgui_widget_set_onshow(RTGUI_WIDGET(container), _benchmark_onshow);
return container;
}
diff --git a/examples/gui/demo_view_box.c b/examples/gui/demo_view_box.c
index 41f1338c44..f567acdb78 100644
--- a/examples/gui/demo_view_box.c
+++ b/examples/gui/demo_view_box.c
@@ -1,15 +1,44 @@
#include "demo_view.h"
-#ifndef RTGUI_USING_SMALL_SIZE
#include <rtgui/widgets/box.h>
+#include <rtgui/widgets/panel.h>
+#include <rtgui/widgets/label.h>
+#include <rtgui/widgets/button.h>
-rtgui_container_t* demo_view_box(rtgui_workbench_t* workbench)
+rtgui_container_t* demo_view_box(void)
{
rtgui_rect_t rect;
rtgui_container_t* view;
+ struct rtgui_panel *panel;
+ struct rtgui_box *box;
- view = demo_view(workbench, "Box View");
+ struct rtgui_label *label;
+ struct rtgui_button *button;
+
+ view = demo_view("Box View");
demo_view_get_rect(view, &rect);
+ panel = rtgui_panel_create(RTGUI_BORDER_NONE);
+ rtgui_widget_set_rect(RTGUI_WIDGET(panel), &rect);
+ rtgui_container_add_child(RTGUI_CONTAINER(view), RTGUI_WIDGET(panel));
+
+ box = rtgui_box_create(RTGUI_VERTICAL, 5);
+ rtgui_container_set_box(RTGUI_CONTAINER(panel), box);
+
+ label = rtgui_label_create("label 1");
+ rtgui_container_add_child(RTGUI_CONTAINER(panel), RTGUI_WIDGET(label));
+ label = rtgui_label_create("label 2");
+ rtgui_container_add_child(RTGUI_CONTAINER(panel), RTGUI_WIDGET(label));
+
+ button = rtgui_button_create("button 1");
+ rtgui_container_add_child(RTGUI_CONTAINER(panel), RTGUI_WIDGET(button));
+
+ button = rtgui_button_create("button 2");
+ rtgui_container_add_child(RTGUI_CONTAINER(panel), RTGUI_WIDGET(button));
+ rtgui_widget_set_miniheight(RTGUI_WIDGET(button), 25);
+ RTGUI_WIDGET_ALIGN(button) = RTGUI_ALIGN_EXPAND;
+
+ rtgui_container_layout(RTGUI_CONTAINER(panel));
+
return view;
}
-#endif
+
diff --git a/examples/gui/demo_view_image.c b/examples/gui/demo_view_image.c
index ba866424da..a846ce377f 100644
--- a/examples/gui/demo_view_image.c
+++ b/examples/gui/demo_view_image.c
@@ -26,7 +26,7 @@ static void open_btn_onbutton(rtgui_widget_t* widget, struct rtgui_event* event)
filelist = rtgui_filelist_view_create("/", "*.*", &rect);
#endif
/* ģ̬��ʾһ���ļ��б���ͼ�����ṩ���û�ѡ��ͼ���ļ� */
- if (rtgui_container_show(RTGUI_CONTAINER(filelist), RT_TRUE) == RTGUI_MODAL_OK)
+ if (rtgui_widget_show(RTGUI_WIDGET(filelist), RT_TRUE) == RTGUI_MODAL_OK)
{
char path[32], image_type[8];
diff --git a/examples/gui/demo_view_listbox.c b/examples/gui/demo_view_listbox.c
index 9236d58425..7ff049a32c 100644
--- a/examples/gui/demo_view_listbox.c
+++ b/examples/gui/demo_view_listbox.c
@@ -141,14 +141,16 @@ static struct rtgui_listbox_item items[] =
{"list #3", RT_NULL},
};
-static void on_items(rtgui_widget_t* widget, struct rtgui_event* event)
+static rt_bool_t on_items(struct rtgui_object* object, struct rtgui_event* event)
{
rtgui_listbox_t* box;
/* get listbox */
- box = RTGUI_LISTBOX(widget);
+ box = RTGUI_LISTBOX(object);
/* 打印当前的项 */
rt_kprintf("current item: %d\n", box->current_item);
+
+ return RT_TRUE;
}
/* 创建用于演示label控件的视图 */
diff --git a/examples/gui/demo_view_listctrl.c b/examples/gui/demo_view_listctrl.c
index fb7128fd22..2efe78b369 100644
--- a/examples/gui/demo_view_listctrl.c
+++ b/examples/gui/demo_view_listctrl.c
@@ -204,14 +204,16 @@ void _rtgui_listctrl_item_draw(struct rtgui_listctrl *list,
}
}
-static void on_items(rtgui_widget_t* widget, struct rtgui_event* event)
+static rt_bool_t on_items(struct rtgui_object* object, struct rtgui_event* event)
{
rtgui_listctrl_t* ctrl;
/* get listctrl */
- ctrl = RTGUI_LISTCTRL(widget);
+ ctrl = RTGUI_LISTCTRL(object);
/* ��ӡ��ǰ���� */
rt_kprintf("current item: %d\n", ctrl->current_item);
+
+ return RT_TRUE;
}
/* ����������ʾlabel�ؼ�����ͼ */
diff --git a/examples/gui/demo_view_menu.c b/examples/gui/demo_view_menu.c
index da323f67a3..5e42d84c8c 100644
--- a/examples/gui/demo_view_menu.c
+++ b/examples/gui/demo_view_menu.c
@@ -7,7 +7,7 @@
#include <rtgui/widgets/menu.h>
#include <rtgui/widgets/button.h>
-static rt_bool_t _onmenuitem(struct rtgui_widget *widget, struct rtgui_event* event)
+static rt_bool_t _onmenuitem(struct rtgui_object *object, struct rtgui_event* event)
{
rt_kprintf("menu action!!\n");
return RT_TRUE;
@@ -31,15 +31,17 @@ static const rtgui_menu_item_t items[] =
};
static rtgui_menu_t* menu;
-static _onmenu(struct rtgui_widget* widget, struct rtgui_event* event)
+static rt_bool_t _onmenu(struct rtgui_object* object, struct rtgui_event* event)
{
rtgui_rect_t rect;
- rtgui_widget_get_rect(widget, &rect);
- rtgui_widget_rect_to_device(widget, &rect);
+ rtgui_widget_get_rect(RTGUI_WIDGET(object), &rect);
+ rtgui_widget_rect_to_device(RTGUI_WIDGET(object), &rect);
if (menu != RT_NULL)
rtgui_menu_pop(menu, rect.x1, rect.y2 + 5);
+
+ return RT_TRUE;
}
/* 创建用于演示menu控件的视图 */
diff --git a/examples/gui/demo_view_window.c b/examples/gui/demo_view_window.c
index d6d278681c..46616ab52e 100644
--- a/examples/gui/demo_view_window.c
+++ b/examples/gui/demo_view_window.c
@@ -57,14 +57,16 @@ static void create_normal_win(void)
}
/* ��������������ʾ */
-static void demo_normal_window_onbutton(struct rtgui_widget* widget, rtgui_event_t* event)
+static void demo_normal_window_onbutton(struct rtgui_object* object, rtgui_event_t* event)
{
rt_sprintf(normal_window_label_text,
"�� %d ����ʾ", normal_window_show_count);
rtgui_label_set_text(normal_window_label,
normal_window_label_text);
- /* ��ģ̬��ʾ���� */
- rtgui_win_show(normal_window, RT_FALSE);
+ if (RTGUI_WIDGET_IS_HIDE(RTGUI_WIDGET(normal_window)))
+ rtgui_win_show(normal_window, RT_FALSE);
+ else
+ rtgui_win_activate(normal_window);
}
/* ��ȡһ�������Ĵ��ڱ��� */
@@ -91,10 +93,6 @@ void diag_close(struct rtgui_timer* timer, void* parameter)
{
/* ��ʱ���رնԻ��� */
rtgui_win_destroy(msgbox);
-
- /* ֹͣ��ɾ����ʱ�� */
- rtgui_timer_stop(timer);
- rtgui_timer_destory(timer);
}
}
@@ -117,7 +115,7 @@ static rt_uint16_t delta_x = 20;
static rt_uint16_t delta_y = 40;
/* �����Զ�������ʾ */
-static void demo_autowin_onbutton(struct rtgui_widget* widget, rtgui_event_t* event)
+static void demo_autowin_onbutton(struct rtgui_object* object, rtgui_event_t* event)
{
struct rtgui_rect rect ={50, 50, 200, 200};
@@ -147,7 +145,7 @@ static void demo_autowin_onbutton(struct rtgui_widget* widget, rtgui_event_t* ev
}
/* ����ģ̬������ʾ */
-static void demo_modalwin_onbutton(struct rtgui_widget* widget, rtgui_event_t* event)
+static void demo_modalwin_onbutton(struct rtgui_object* object, rtgui_event_t* event)
{
rtgui_win_t *win;
rtgui_label_t *label;
@@ -177,19 +175,19 @@ static void demo_modalwin_onbutton(struct rtgui_widget* widget, rtgui_event_t* e
rtgui_win_destroy(win);
}
-static void demo_close_ntitle_window(struct rtgui_widget* widget, rtgui_event_t* event)
+static void demo_close_ntitle_window(struct rtgui_object* object, rtgui_event_t* event)
{
rtgui_win_t* win;
/* ������ؼ� */
- win = RTGUI_WIN(rtgui_widget_get_toplevel(widget));
+ win = RTGUI_WIN(rtgui_widget_get_toplevel(RTGUI_WIDGET(object)));
/* ���ٴ��� */
rtgui_win_destroy(win);
}
/* �����ޱ��ⴰ����ʾ */
-static void demo_ntitlewin_onbutton(struct rtgui_widget* widget, rtgui_event_t* event)
+static void demo_ntitlewin_onbutton(struct rtgui_object* object, rtgui_event_t* event)
{
rtgui_win_t *win;
rtgui_label_t *label;
diff --git a/examples/gui/mywidget.c b/examples/gui/mywidget.c
index 24ff207627..1fc94d66fe 100644
--- a/examples/gui/mywidget.c
+++ b/examples/gui/mywidget.c
@@ -71,10 +71,10 @@ static void rtgui_mywidget_onmouse(struct rtgui_mywidget* me, struct rtgui_event
}
/* mywidget控件的事件处理函�?*/
-rt_bool_t rtgui_mywidget_event_handler(struct rtgui_widget* widget, struct rtgui_event* event)
+rt_bool_t rtgui_mywidget_event_handler(struct rtgui_object* object, struct rtgui_event* event)
{
/* 调用事件处理函数时,widget指针指向控件本身,所以先获得相应控件对象的指�?*/
- struct rtgui_mywidget* me = RTGUI_MYWIDGET(widget);
+ struct rtgui_mywidget* me = RTGUI_MYWIDGET(object);
switch (event->type)
{
@@ -90,7 +90,7 @@ rt_bool_t rtgui_mywidget_event_handler(struct rtgui_widget* widget, struct rtgui
/* 其他事件调用父类的事件处理函�?*/
default:
- return rtgui_widget_event_handler(RTGUI_OBJECT(widget), event);
+ return rtgui_widget_event_handler(object, event);
}
return RT_FALSE;
diff --git a/examples/gui/mywidget.h b/examples/gui/mywidget.h
index 65a68a01bd..ac8d25ffe1 100644
--- a/examples/gui/mywidget.h
+++ b/examples/gui/mywidget.h
@@ -45,6 +45,6 @@ void rtgui_mywidget_destroy(struct rtgui_mywidget* me);
* 对一个控件而言,如果派生自它的子控件很可能会调用父控件的事件处理函数,
* 所以这里采用公开声明的方式�?
*/
-rt_bool_t rtgui_mywidget_event_handler(struct rtgui_widget* widget, struct rtgui_event* event);
+rt_bool_t rtgui_mywidget_event_handler(struct rtgui_object* object, struct rtgui_event* event);
#endif