mirror of
https://github.com/RT-Thread/rt-thread.git
synced 2026-06-13 04:33:18 +08:00
sync with rtgui-0.6
This commit is contained in:
@@ -43,6 +43,7 @@ demo_view_edit.c
|
||||
demo_view_bmp.c
|
||||
demo_plot.c
|
||||
mywidget.c
|
||||
demo_view_digtube.c
|
||||
""")
|
||||
|
||||
if GetDepend('RTGUI_USING_FONT_COMPACT'):
|
||||
|
||||
@@ -33,7 +33,7 @@ static void application_entry(void *parameter)
|
||||
struct rtgui_app *app;
|
||||
struct rtgui_rect rect;
|
||||
|
||||
app = rtgui_app_create(rt_thread_self(), "gui_demo");
|
||||
app = rtgui_app_create("gui_demo");
|
||||
if (app == RT_NULL)
|
||||
return;
|
||||
|
||||
@@ -95,6 +95,7 @@ static void application_entry(void *parameter)
|
||||
demo_view_notebook();
|
||||
demo_view_mywidget();
|
||||
demo_plot();
|
||||
demo_view_digtube();
|
||||
|
||||
#if defined(RTGUI_USING_DFS_FILERW)
|
||||
demo_view_edit();
|
||||
|
||||
@@ -42,7 +42,7 @@ struct rtgui_container* demo_plot(void)
|
||||
curve1->min_x = 0;
|
||||
curve1->max_x = sizeof(sin_ydata)/sizeof(sin_ydata[0]);
|
||||
curve1->min_y = -100;
|
||||
curve1->min_y = 100;
|
||||
curve1->max_y = 100;
|
||||
curve1->color = red;
|
||||
rtgui_mv_model_add_view(RTGUI_MV_MODEL(curve1), RTGUI_MV_VIEW(plot));
|
||||
|
||||
@@ -51,22 +51,25 @@ struct rtgui_container* demo_plot(void)
|
||||
RTGUI_MV_MODEL(curve2)->length = sizeof(cos_ydata)/sizeof(cos_ydata[0]);
|
||||
curve2->min_x = 0;
|
||||
curve2->max_x = sizeof(cos_ydata)/sizeof(cos_ydata[0]);
|
||||
curve1->min_y = -50;
|
||||
curve1->min_y = 50;
|
||||
curve2->min_y = -50;
|
||||
curve2->max_y = 50;
|
||||
curve2->color = blue;
|
||||
rtgui_mv_model_add_view(RTGUI_MV_MODEL(curve2), RTGUI_MV_VIEW(plot));
|
||||
|
||||
curve3 = rtgui_plot_curve_create();
|
||||
rtgui_plot_curve_set_x(curve3, cos_ydata);
|
||||
rtgui_plot_curve_set_y(curve3, sin_ydata);
|
||||
curve3->min_x = -50;
|
||||
curve3->max_x = 50;
|
||||
curve3->min_y = -100;
|
||||
curve3->max_y = 100;
|
||||
RTGUI_MV_MODEL(curve3)->length = sizeof(sin_ydata)/sizeof(sin_ydata[0]);
|
||||
curve3->color = black;
|
||||
rtgui_mv_model_add_view(RTGUI_MV_MODEL(curve3), RTGUI_MV_VIEW(plot));
|
||||
|
||||
rtgui_widget_get_rect(RTGUI_WIDGET(cnt), &rect);
|
||||
rtgui_widget_set_rect(RTGUI_WIDGET(plot), &rect);
|
||||
rtgui_plot_set_base(plot,
|
||||
-rtgui_rect_width(rect)/3, rtgui_rect_height(rect)/2);
|
||||
rtgui_plot_set_base(plot, -100, -300);
|
||||
|
||||
rtgui_container_add_child(cnt, RTGUI_WIDGET(plot));
|
||||
|
||||
|
||||
@@ -110,7 +110,7 @@ rt_bool_t benchmark_event_handler(struct rtgui_object *object, rtgui_event_t *ev
|
||||
if (running)
|
||||
{
|
||||
/* stop */
|
||||
rtgui_app_set_onidle(RT_NULL);
|
||||
rtgui_app_set_onidle(rtgui_app_self(), RT_NULL);
|
||||
_draw_default(object, event);
|
||||
}
|
||||
else
|
||||
@@ -118,7 +118,7 @@ rt_bool_t benchmark_event_handler(struct rtgui_object *object, rtgui_event_t *ev
|
||||
/* run */
|
||||
ticks = rt_tick_get();
|
||||
area = 0;
|
||||
rtgui_app_set_onidle(_onidle);
|
||||
rtgui_app_set_onidle(rtgui_app_self(), _onidle);
|
||||
}
|
||||
|
||||
running = !running;
|
||||
|
||||
@@ -34,7 +34,7 @@ rtgui_container_t *demo_view_box(void)
|
||||
|
||||
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_set_minheight(RTGUI_WIDGET(button), 25);
|
||||
RTGUI_WIDGET_ALIGN(button) = RTGUI_ALIGN_EXPAND;
|
||||
|
||||
rtgui_container_layout(RTGUI_CONTAINER(panel));
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
/*
|
||||
* 程序清单:button控件演示
|
||||
* 程序清单:button控件演示
|
||||
*
|
||||
* 这个例子会在创建出的container上添加几个不同类型的button控件
|
||||
* 这个例子会在创建出的container上添加几个不同类型的button控件
|
||||
*/
|
||||
|
||||
#include "demo_view.h"
|
||||
#include <rtgui/widgets/button.h>
|
||||
|
||||
/* 创建用于演示button控件的视图 */
|
||||
/* 创建用于演示button控件的视图 */
|
||||
rtgui_container_t *demo_view_button(void)
|
||||
{
|
||||
rtgui_rect_t rect;
|
||||
@@ -15,64 +15,64 @@ rtgui_container_t *demo_view_button(void)
|
||||
rtgui_button_t *button;
|
||||
rtgui_font_t *font;
|
||||
|
||||
/* 先创建一个演示用的视图 */
|
||||
/* 先创建一个演示用的视图 */
|
||||
container = demo_view("Button View");
|
||||
|
||||
/* 获得视图的位置信息 */
|
||||
/* 获得视图的位置信息 */
|
||||
demo_view_get_rect(container, &rect);
|
||||
rect.x1 += 5;
|
||||
rect.x2 = rect.x1 + 100;
|
||||
rect.y1 += 5;
|
||||
rect.y2 = rect.y1 + 20;
|
||||
/* 创建一个button控件 */
|
||||
/* 创建一个button控件 */
|
||||
button = rtgui_button_create("Red");
|
||||
/* 设置label控件的前景色为红色 */
|
||||
/* 设置label控件的前景色为红色 */
|
||||
RTGUI_WIDGET_FOREGROUND(button) = red;
|
||||
/* 设置button的位置 */
|
||||
/* 设置button的位置 */
|
||||
rtgui_widget_set_rect(RTGUI_WIDGET(button), &rect);
|
||||
rtgui_container_add_child(container, RTGUI_WIDGET(button));
|
||||
|
||||
/* 获得视图的位置信息 */
|
||||
/* 获得视图的位置信息 */
|
||||
demo_view_get_rect(container, &rect);
|
||||
rect.x1 += 5;
|
||||
rect.x2 = rect.x1 + 100;
|
||||
rect.y1 += 5 + 25;
|
||||
rect.y2 = rect.y1 + 20;
|
||||
/* 创建一个button控件 */
|
||||
/* 创建一个button控件 */
|
||||
button = rtgui_button_create("Blue");
|
||||
/* 设置label控件的前景色为蓝色 */
|
||||
/* 设置label控件的前景色为蓝色 */
|
||||
RTGUI_WIDGET_FOREGROUND(button) = blue;
|
||||
/* 设置button的位置 */
|
||||
/* 设置button的位置 */
|
||||
rtgui_widget_set_rect(RTGUI_WIDGET(button), &rect);
|
||||
rtgui_container_add_child(container, RTGUI_WIDGET(button));
|
||||
|
||||
/* 获得视图的位置信息 */
|
||||
/* 获得视图的位置信息 */
|
||||
demo_view_get_rect(container, &rect);
|
||||
rect.x1 += 5;
|
||||
rect.x2 = rect.x1 + 100;
|
||||
rect.y1 += 5 + 25 + 25;
|
||||
rect.y2 = rect.y1 + 20;
|
||||
/* 创建一个button控件 */
|
||||
/* 创建一个button控件 */
|
||||
button = rtgui_button_create("12 font");
|
||||
/* 设置字体为12点阵的asc字体 */
|
||||
/* 设置字体为12点阵的asc字体 */
|
||||
font = rtgui_font_refer("asc", 12);
|
||||
RTGUI_WIDGET_FONT(button) = font;
|
||||
/* 设置button的位置 */
|
||||
/* 设置button的位置 */
|
||||
rtgui_widget_set_rect(RTGUI_WIDGET(button), &rect);
|
||||
rtgui_container_add_child(container, RTGUI_WIDGET(button));
|
||||
|
||||
/* 获得视图的位置信息 */
|
||||
/* 获得视图的位置信息 */
|
||||
demo_view_get_rect(container, &rect);
|
||||
rect.x1 += 5;
|
||||
rect.x2 = rect.x1 + 100;
|
||||
rect.y1 += 5 + 25 + 25 + 25;
|
||||
rect.y2 = rect.y1 + 20;
|
||||
/* 创建一个button控件 */
|
||||
/* 创建一个button控件 */
|
||||
button = rtgui_button_create("16 font");
|
||||
/* 设置字体为16点阵的asc字体 */
|
||||
/* 设置字体为16点阵的asc字体 */
|
||||
font = rtgui_font_refer("asc", 16);
|
||||
RTGUI_WIDGET_FONT(button) = font;
|
||||
/* 设置button的位置 */
|
||||
/* 设置button的位置 */
|
||||
rtgui_widget_set_rect(RTGUI_WIDGET(button), &rect);
|
||||
rtgui_container_add_child(container, RTGUI_WIDGET(button));
|
||||
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
/*
|
||||
* 程序清单:checkbox控件演示
|
||||
* 程序清单:checkbox控件演示
|
||||
*
|
||||
* 这个例子会在创建出的container上添加几个checkbox控件
|
||||
* 这个例子会在创建出的container上添加几个checkbox控件
|
||||
*/
|
||||
|
||||
#include "demo_view.h"
|
||||
#include <rtgui/widgets/checkbox.h>
|
||||
|
||||
/* 创建用于演示checkbox控件的视图 */
|
||||
/* 创建用于演示checkbox控件的视图 */
|
||||
rtgui_container_t *demo_view_checkbox(void)
|
||||
{
|
||||
rtgui_rect_t rect;
|
||||
@@ -15,64 +15,64 @@ rtgui_container_t *demo_view_checkbox(void)
|
||||
rtgui_checkbox_t *checkbox;
|
||||
rtgui_font_t *font;
|
||||
|
||||
/* 先创建一个演示用的视图 */
|
||||
/* 先创建一个演示用的视图 */
|
||||
container = demo_view("CheckBox View");
|
||||
|
||||
/* 获得视图的位置信息 */
|
||||
/* 获得视图的位置信息 */
|
||||
demo_view_get_rect(container, &rect);
|
||||
rect.x1 += 5;
|
||||
rect.x2 = rect.x1 + 100;
|
||||
rect.y1 += 5;
|
||||
rect.y2 = rect.y1 + 20;
|
||||
/* 创建一个checkbox控件 */
|
||||
/* 创建一个checkbox控件 */
|
||||
checkbox = rtgui_checkbox_create("Red", RT_TRUE);
|
||||
/* 设置前景色为红色 */
|
||||
/* 设置前景色为红色 */
|
||||
RTGUI_WIDGET_FOREGROUND(checkbox) = red;
|
||||
/* 设置checkbox的位置 */
|
||||
/* 设置checkbox的位置 */
|
||||
rtgui_widget_set_rect(RTGUI_WIDGET(checkbox), &rect);
|
||||
rtgui_container_add_child(container, RTGUI_WIDGET(checkbox));
|
||||
|
||||
/* 获得视图的位置信息 */
|
||||
/* 获得视图的位置信息 */
|
||||
demo_view_get_rect(container, &rect);
|
||||
rect.x1 += 5;
|
||||
rect.x2 = rect.x1 + 100;
|
||||
rect.y1 += 5 + 25;
|
||||
rect.y2 = rect.y1 + 20;
|
||||
/* 创建一个checkbox控件 */
|
||||
/* 创建一个checkbox控件 */
|
||||
checkbox = rtgui_checkbox_create("Blue", RT_TRUE);
|
||||
/* 设置前景色为蓝色 */
|
||||
/* 设置前景色为蓝色 */
|
||||
RTGUI_WIDGET_FOREGROUND(checkbox) = blue;
|
||||
/* 设置checkbox的位置 */
|
||||
/* 设置checkbox的位置 */
|
||||
rtgui_widget_set_rect(RTGUI_WIDGET(checkbox), &rect);
|
||||
rtgui_container_add_child(container, RTGUI_WIDGET(checkbox));
|
||||
|
||||
/* 获得视图的位置信息 */
|
||||
/* 获得视图的位置信息 */
|
||||
demo_view_get_rect(container, &rect);
|
||||
rect.x1 += 5;
|
||||
rect.x2 = rect.x1 + 100;
|
||||
rect.y1 += 5 + 25 + 25;
|
||||
rect.y2 = rect.y1 + 20;
|
||||
/* 创建一个checkbox控件 */
|
||||
/* 创建一个checkbox控件 */
|
||||
checkbox = rtgui_checkbox_create("12 font", RT_TRUE);
|
||||
/* 设置字体为12点阵 */
|
||||
/* 设置字体为12点阵 */
|
||||
font = rtgui_font_refer("asc", 12);
|
||||
RTGUI_WIDGET_FONT(checkbox) = font;
|
||||
/* 设置checkbox的位置 */
|
||||
/* 设置checkbox的位置 */
|
||||
rtgui_widget_set_rect(RTGUI_WIDGET(checkbox), &rect);
|
||||
rtgui_container_add_child(container, RTGUI_WIDGET(checkbox));
|
||||
|
||||
/* 获得视图的位置信息 */
|
||||
/* 获得视图的位置信息 */
|
||||
demo_view_get_rect(container, &rect);
|
||||
rect.x1 += 5;
|
||||
rect.x2 = rect.x1 + 100;
|
||||
rect.y1 += 5 + 25 + 25 + 25;
|
||||
rect.y2 = rect.y1 + 20;
|
||||
/* 创建一个checkbox控件 */
|
||||
/* 创建一个checkbox控件 */
|
||||
checkbox = rtgui_checkbox_create("16 font", RT_TRUE);
|
||||
/* 设置字体为16点阵 */
|
||||
/* 设置字体为16点阵 */
|
||||
font = rtgui_font_refer("asc", 16);
|
||||
RTGUI_WIDGET_FONT(checkbox) = font;
|
||||
/* 设置checkbox的位置 */
|
||||
/* 设置checkbox的位置 */
|
||||
rtgui_widget_set_rect(RTGUI_WIDGET(checkbox), &rect);
|
||||
rtgui_container_add_child(container, RTGUI_WIDGET(checkbox));
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* 程序清单:label控件演示
|
||||
* 程序清单:label控件演示
|
||||
*
|
||||
* 这个例子会在创建出的container上添加几个不同类型的label控件
|
||||
* 这个例子会在创建出的container上添加几个不同类型的label控件
|
||||
*/
|
||||
#include "demo_view.h"
|
||||
#include <rtgui/widgets/combobox.h>
|
||||
@@ -15,25 +15,25 @@ struct rtgui_listbox_item items[] =
|
||||
{"item 5", RT_NULL},
|
||||
};
|
||||
|
||||
/* 创建用于演示combobox控件的视图 */
|
||||
/* 创建用于演示combobox控件的视图 */
|
||||
rtgui_container_t *demo_view_combobox(void)
|
||||
{
|
||||
rtgui_rect_t rect;
|
||||
rtgui_container_t *container;
|
||||
rtgui_combobox_t *box;
|
||||
|
||||
/* 先创建一个演示用的视图 */
|
||||
/* 先创建一个演示用的视图 */
|
||||
container = demo_view("ComboBox View");
|
||||
|
||||
/* 获得视图的位置信息 */
|
||||
/* 获得视图的位置信息 */
|
||||
demo_view_get_rect(container, &rect);
|
||||
rect.x1 += 5;
|
||||
rect.x2 -= 5;
|
||||
rect.y1 += 5;
|
||||
rect.y2 = rect.y1 + 20;
|
||||
/* 创建一个label控件 */
|
||||
/* 创建一个label控件 */
|
||||
box = rtgui_combobox_create(items, sizeof(items) / sizeof(items[0]), &rect);
|
||||
/* container是一个container控件,调用add_child方法添加这个box控件 */
|
||||
/* container是一个container控件,调用add_child方法添加这个box控件 */
|
||||
rtgui_container_add_child(container, RTGUI_WIDGET(box));
|
||||
|
||||
return container;
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
#include "demo_view.h"
|
||||
#include <rtgui/widgets/digtube.h>
|
||||
|
||||
/* digit tube codes: "ERROR" */
|
||||
static char digitbuf[5] = {0x79, 0x77, 0x77, 0x3F, 0x77};
|
||||
|
||||
rtgui_container_t * demo_view_digtube(void)
|
||||
{
|
||||
struct rtgui_rect rect;
|
||||
rtgui_container_t *container;
|
||||
struct rtgui_digtube * digtube;
|
||||
struct rtgui_digitfont digitfont;
|
||||
|
||||
container = demo_view("Digit Tube View");
|
||||
/* add digtube 1: use the default digit font */
|
||||
digtube = rtgui_digtube_create(RT_NULL, 5, (void *)4213, 0);
|
||||
rtgui_container_add_child(container, RTGUI_WIDGET(digtube));
|
||||
|
||||
demo_view_get_rect(container, &rect);
|
||||
rect.y2 = rect.y1 + 80;
|
||||
rtgui_widget_set_rect(RTGUI_WIDGET(digtube), &rect);
|
||||
|
||||
/* add digtube 2: show hex */
|
||||
digitfont.seg1_len = 20;
|
||||
digitfont.seg1_hspace = 4;
|
||||
digitfont.seg1_nr = 3;
|
||||
digitfont.seg2_len = 20;
|
||||
digitfont.seg3_len = 20;
|
||||
digitfont.seg1_vspace = 1;
|
||||
digitfont.data = RT_NULL;
|
||||
|
||||
digtube = rtgui_digtube_create(&digitfont, 5, (void *)0xABC, RTGUI_DIGTUBE_STYLE_NOBACKFONT | RTGUI_DIGTUBE_STYLE_DISHEXNUM);
|
||||
rtgui_container_add_child(container, RTGUI_WIDGET(digtube));
|
||||
rect.y1 = rect.y2 + 10;;
|
||||
rect.y2 = rect.y1 + 60;
|
||||
rtgui_widget_set_rect(RTGUI_WIDGET(digtube), &rect);
|
||||
|
||||
/* add digtube 3: show custom codes table */
|
||||
digitfont.seg1_len = 25;
|
||||
digitfont.seg1_hspace = 5;
|
||||
digitfont.seg1_nr = 5;
|
||||
digitfont.seg2_len = 25;
|
||||
digitfont.seg3_len = 25;
|
||||
digitfont.seg1_vspace = 1;
|
||||
digitfont.data = RT_NULL;
|
||||
digtube = rtgui_digtube_create(&digitfont, 5, (void *)digitbuf, RTGUI_DIGTUBE_STYLE_DISCODES);
|
||||
rtgui_container_add_child(container, RTGUI_WIDGET(digtube));
|
||||
rect.y1 = rect.y2 + 5;
|
||||
rect.y2 = rect.y1 + 80;
|
||||
rtgui_widget_set_rect(RTGUI_WIDGET(digtube), &rect);
|
||||
RTGUI_WIDGET_BACKGROUND(digtube) = RTGUI_RGB(0x00, 0x00, 0x00);
|
||||
RTGUI_WIDGET_FOREGROUND(digtube) = RTGUI_RGB(0x00, 0xFF, 0x00);
|
||||
digtube->digit_bc = RTGUI_RGB(0x00, 0xFF, 0xFF);
|
||||
|
||||
return container;
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* 程序清单:edit控件演示
|
||||
* 程序清单:edit控件演示
|
||||
*
|
||||
* 这个例子会在conatiner上进行edit控件的演示
|
||||
* 这个例子会在conatiner上进行edit控件的演示
|
||||
*/
|
||||
|
||||
#include "demo_view.h"
|
||||
@@ -22,14 +22,14 @@ void demo_edit_readin_file(struct rtgui_object *object, struct rtgui_event *even
|
||||
|
||||
RT_ASSERT(object != RT_NULL);
|
||||
button = RTGUI_BUTTON(object);
|
||||
/* 取得edit指针 */
|
||||
/* 取得edit指针 */
|
||||
edit = RTGUI_EDIT(RTGUI_WIDGET(button)->user_data);
|
||||
|
||||
/* 判断文件是否存在 */
|
||||
/* 判断文件是否存在 */
|
||||
file = rtgui_filerw_create_file(filename, "rb");
|
||||
if (file == RT_NULL)
|
||||
{
|
||||
/* 不存在存在,则创建它 */
|
||||
/* 不存在存在,则创建它 */
|
||||
rt_kprintf("file:\"%s\" does not exist!\n", filename);
|
||||
|
||||
return;
|
||||
@@ -49,15 +49,15 @@ void demo_edit_saveas_file(struct rtgui_object *object, struct rtgui_event *even
|
||||
|
||||
RT_ASSERT(object != RT_NULL);
|
||||
button = RTGUI_BUTTON(object);
|
||||
/* 取得edit指针 */
|
||||
/* 取得edit指针 */
|
||||
edit = RTGUI_EDIT(RTGUI_WIDGET(button)->user_data);
|
||||
|
||||
/* 判断文件是否存在, 如果存在则删除之 */
|
||||
/* 判断文件是否存在, 如果存在则删除之 */
|
||||
file = rtgui_filerw_create_file(filename, "rb");
|
||||
if (file != RT_NULL)
|
||||
{
|
||||
rtgui_filerw_close(file);
|
||||
/* 如果是在win32中调试, 请手工删除该文件吧, NT中文件是只读的,unlink删除不掉 */
|
||||
/* 如果是在win32中调试, 请手工删除该文件吧, NT中文件是只读的,unlink删除不掉 */
|
||||
if (rtgui_filerw_unlink(filename) == -1)
|
||||
rt_kprintf("Could not delete %s\n", filename);
|
||||
}
|
||||
@@ -95,7 +95,7 @@ rt_bool_t demo_edit_event_handler(struct rtgui_object* object, struct rtgui_even
|
||||
return result;
|
||||
}
|
||||
|
||||
/* 创建用于演示edit控件的视图 */
|
||||
/* 创建用于演示edit控件的视图 */
|
||||
rtgui_container_t *demo_view_edit(void)
|
||||
{
|
||||
rtgui_rect_t rect;
|
||||
@@ -104,7 +104,7 @@ rtgui_container_t *demo_view_edit(void)
|
||||
struct rtgui_label *label;
|
||||
struct rtgui_button *button;
|
||||
|
||||
/* 先创建一个演示用的视图 */
|
||||
/* 先创建一个演示用的视图 */
|
||||
container = demo_view("Edit View");
|
||||
|
||||
edit = rtgui_edit_create(container, 10, 35, 220, 200);
|
||||
@@ -117,14 +117,14 @@ rtgui_container_t *demo_view_edit(void)
|
||||
"rtgui_edit_insert_line\n"
|
||||
"rtgui_edit_delete_line\n"
|
||||
"rtgui_edit_connect_line\n"
|
||||
"双字节测试\n"
|
||||
"双字节测试\n"
|
||||
"a\n"
|
||||
"b\n"
|
||||
"c\n"
|
||||
"d\n"
|
||||
"1234567890\n");
|
||||
|
||||
/* 创建一个按钮, 读取某个文件 */
|
||||
/* 创建一个按钮, 读取某个文件 */
|
||||
demo_view_get_rect(container, &rect);
|
||||
rect.x1 += 10;
|
||||
rect.x2 = rect.x1 + 100;
|
||||
@@ -134,10 +134,10 @@ rtgui_container_t *demo_view_edit(void)
|
||||
rtgui_widget_set_rect(RTGUI_WIDGET(button), &rect);
|
||||
rtgui_container_add_child(container, RTGUI_WIDGET(button));
|
||||
rtgui_button_set_onbutton(button, demo_edit_readin_file);
|
||||
/* 使用user_data传递edit指针 */
|
||||
/* 使用user_data传递edit指针 */
|
||||
RTGUI_WIDGET(button)->user_data = (rt_uint32_t)edit;
|
||||
|
||||
/* 创建一个按钮, 保存为某个文件 */
|
||||
/* 创建一个按钮, 保存为某个文件 */
|
||||
demo_view_get_rect(container, &rect);
|
||||
rect.x1 += 130;
|
||||
rect.x2 = rect.x1 + 100;
|
||||
@@ -147,10 +147,10 @@ rtgui_container_t *demo_view_edit(void)
|
||||
rtgui_widget_set_rect(RTGUI_WIDGET(button), &rect);
|
||||
rtgui_container_add_child(container, RTGUI_WIDGET(button));
|
||||
rtgui_button_set_onbutton(button, demo_edit_saveas_file);
|
||||
/* 使用user_data传递edit指针 */
|
||||
/* 使用user_data传递edit指针 */
|
||||
RTGUI_WIDGET(button)->user_data = (rt_uint32_t)edit;
|
||||
|
||||
/* 创建一个标签, 显示EDIT的主要参数 */
|
||||
/* 创建一个标签, 显示EDIT的主要参数 */
|
||||
demo_view_get_rect(container, &rect);
|
||||
rect.x1 += 10;
|
||||
rect.x2 = rect.x1 + 220;
|
||||
@@ -165,7 +165,7 @@ rtgui_container_t *demo_view_edit(void)
|
||||
RTGUI_WIDGET(edit)->user_data = (rt_uint32_t)label;
|
||||
rtgui_object_set_event_handler(RTGUI_OBJECT(edit), demo_edit_event_handler);
|
||||
|
||||
/* 创建一个按钮, 读取EDIT的内存消耗 */
|
||||
/* 创建一个按钮, 读取EDIT的内存消耗 */
|
||||
demo_view_get_rect(container, &rect);
|
||||
rect.x1 += 150;
|
||||
rect.x2 = rect.x1 + 80;
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
/*
|
||||
* 程序清单:label控件演示
|
||||
* 程序清单:label控件演示
|
||||
*
|
||||
* 这个例子会在创建出的container上添加几个不同类型的label控件
|
||||
* 这个例子会在创建出的container上添加几个不同类型的label控件
|
||||
*/
|
||||
#include "demo_view.h"
|
||||
#include <rtgui/widgets/label.h>
|
||||
|
||||
/* 创建用于演示label控件的视图 */
|
||||
/* 创建用于演示label控件的视图 */
|
||||
rtgui_container_t *demo_view_label(void)
|
||||
{
|
||||
rtgui_rect_t rect;
|
||||
@@ -14,89 +14,89 @@ rtgui_container_t *demo_view_label(void)
|
||||
rtgui_label_t *label;
|
||||
rtgui_font_t *font;
|
||||
|
||||
/* 先创建一个演示用的视图 */
|
||||
/* 先创建一个演示用的视图 */
|
||||
container = demo_view("Label View");
|
||||
|
||||
/* 获得视图的位置信息 */
|
||||
/* 获得视图的位置信息 */
|
||||
demo_view_get_rect(container, &rect);
|
||||
rect.x1 += 5;
|
||||
rect.x2 -= 5;
|
||||
rect.y1 += 5;
|
||||
rect.y2 = rect.y1 + 20;
|
||||
/* 创建一个label控件 */
|
||||
/* 创建一个label控件 */
|
||||
label = rtgui_label_create("Red Left");
|
||||
/* 设置label控件上的文本对齐方式为:左对齐 */
|
||||
/* 设置label控件上的文本对齐方式为:左对齐 */
|
||||
RTGUI_WIDGET_TEXTALIGN(label) = RTGUI_ALIGN_LEFT;
|
||||
/* 设置label控件的前景色为红色 */
|
||||
/* 设置label控件的前景色为红色 */
|
||||
RTGUI_WIDGET_FOREGROUND(label) = red;
|
||||
/* 设置label的位置 */
|
||||
/* 设置label的位置 */
|
||||
rtgui_widget_set_rect(RTGUI_WIDGET(label), &rect);
|
||||
/* container是一个container控件,调用add_child方法添加这个label控件 */
|
||||
/* container是一个container控件,调用add_child方法添加这个label控件 */
|
||||
rtgui_container_add_child(container, RTGUI_WIDGET(label));
|
||||
|
||||
/* 获得视图的位置信息 */
|
||||
/* 获得视图的位置信息 */
|
||||
demo_view_get_rect(container, &rect);
|
||||
rect.x1 += 5;
|
||||
rect.x2 -= 5;
|
||||
rect.y1 += 5 + 25;
|
||||
rect.y2 = rect.y1 + 20;
|
||||
/* 创建一个label控件 */
|
||||
/* 创建一个label控件 */
|
||||
label = rtgui_label_create("Blue Right");
|
||||
/* 设置label控件上的文本对齐方式为:右对齐 */
|
||||
/* 设置label控件上的文本对齐方式为:右对齐 */
|
||||
RTGUI_WIDGET_TEXTALIGN(label) = RTGUI_ALIGN_RIGHT;
|
||||
/* 设置label控件的前景色为蓝色 */
|
||||
/* 设置label控件的前景色为蓝色 */
|
||||
RTGUI_WIDGET_FOREGROUND(label) = blue;
|
||||
/* 设置label的位置 */
|
||||
/* 设置label的位置 */
|
||||
rtgui_widget_set_rect(RTGUI_WIDGET(label), &rect);
|
||||
/* container是一个container控件,调用add_child方法添加这个label控件 */
|
||||
/* container是一个container控件,调用add_child方法添加这个label控件 */
|
||||
rtgui_container_add_child(container, RTGUI_WIDGET(label));
|
||||
|
||||
/* 获得视图的位置信息 */
|
||||
/* 获得视图的位置信息 */
|
||||
demo_view_get_rect(container, &rect);
|
||||
rect.x1 += 5;
|
||||
rect.x2 -= 5;
|
||||
rect.y1 += 5 + 25 + 25;
|
||||
rect.y2 = rect.y1 + 20;
|
||||
/* 创建一个label控件 */
|
||||
/* 创建一个label控件 */
|
||||
label = rtgui_label_create("Green Center");
|
||||
/* 设置label控件的前景色为绿色 */
|
||||
/* 设置label控件的前景色为绿色 */
|
||||
RTGUI_WIDGET_FOREGROUND(label) = green;
|
||||
/* 设置label控件上的文本对齐方式为:右对齐 */
|
||||
/* 设置label控件上的文本对齐方式为:右对齐 */
|
||||
RTGUI_WIDGET_TEXTALIGN(label) = RTGUI_ALIGN_CENTER_HORIZONTAL;
|
||||
/* 设置label的位置 */
|
||||
/* 设置label的位置 */
|
||||
rtgui_widget_set_rect(RTGUI_WIDGET(label), &rect);
|
||||
/* container是一个container控件,调用add_child方法添加这个label控件 */
|
||||
/* container是一个container控件,调用add_child方法添加这个label控件 */
|
||||
rtgui_container_add_child(container, RTGUI_WIDGET(label));
|
||||
|
||||
/* 获得视图的位置信息 */
|
||||
/* 获得视图的位置信息 */
|
||||
demo_view_get_rect(container, &rect);
|
||||
rect.x1 += 5;
|
||||
rect.x2 -= 5;
|
||||
rect.y1 += 5 + 25 + 25 + 25;
|
||||
rect.y2 = rect.y1 + 20;
|
||||
/* 创建一个label控件 */
|
||||
/* 创建一个label控件 */
|
||||
label = rtgui_label_create("12 font");
|
||||
/* 设置字体为12点阵的asc字体 */
|
||||
/* 设置字体为12点阵的asc字体 */
|
||||
font = rtgui_font_refer("asc", 12);
|
||||
RTGUI_WIDGET_FONT(label) = font;
|
||||
/* 设置label的位置 */
|
||||
/* 设置label的位置 */
|
||||
rtgui_widget_set_rect(RTGUI_WIDGET(label), &rect);
|
||||
/* container是一个container控件,调用add_child方法添加这个label控件 */
|
||||
/* container是一个container控件,调用add_child方法添加这个label控件 */
|
||||
rtgui_container_add_child(container, RTGUI_WIDGET(label));
|
||||
|
||||
/* 获得视图的位置信息 */
|
||||
/* 获得视图的位置信息 */
|
||||
demo_view_get_rect(container, &rect);
|
||||
rect.x1 += 5;
|
||||
rect.y1 += 5 + 25 + 25 + 25 + 25;
|
||||
rect.y2 = rect.y1 + 20;
|
||||
/* 创建一个label控件 */
|
||||
/* 创建一个label控件 */
|
||||
label = rtgui_label_create("16 font");
|
||||
/* 设置字体为16点阵的asc字体 */
|
||||
/* 设置字体为16点阵的asc字体 */
|
||||
font = rtgui_font_refer("asc", 16);
|
||||
RTGUI_WIDGET_FONT(label) = font;
|
||||
/* 设置label的位置 */
|
||||
/* 设置label的位置 */
|
||||
rtgui_widget_set_rect(RTGUI_WIDGET(label), &rect);
|
||||
/* container是一个container控件,调用add_child方法添加这个label控件 */
|
||||
/* container是一个container控件,调用add_child方法添加这个label控件 */
|
||||
rtgui_container_add_child(container, RTGUI_WIDGET(label));
|
||||
|
||||
return container;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* 程序清单:label控件演示
|
||||
* 程序清单:label控件演示
|
||||
*
|
||||
* 这个例子会在创建出的container上添加几个不同类型的label控件
|
||||
* 这个例子会在创建出的container上添加几个不同类型的label控件
|
||||
*/
|
||||
#include "demo_view.h"
|
||||
#include <rtgui/widgets/label.h>
|
||||
@@ -149,13 +149,13 @@ static rt_bool_t on_items(struct rtgui_object *object, struct rtgui_event *event
|
||||
/* get listbox */
|
||||
box = RTGUI_LISTBOX(object);
|
||||
|
||||
/* 打印当前的项 */
|
||||
/* 打印当前的项 */
|
||||
rt_kprintf("current item: %d\n", box->current_item);
|
||||
|
||||
return RT_TRUE;
|
||||
}
|
||||
|
||||
/* 创建用于演示label控件的视图 */
|
||||
/* 创建用于演示label控件的视图 */
|
||||
rtgui_container_t *demo_view_listbox(void)
|
||||
{
|
||||
rtgui_rect_t rect;
|
||||
@@ -163,7 +163,7 @@ rtgui_container_t *demo_view_listbox(void)
|
||||
rtgui_label_t *label;
|
||||
rtgui_listbox_t *box;
|
||||
|
||||
/* 先创建一个演示用的视图 */
|
||||
/* 先创建一个演示用的视图 */
|
||||
container = demo_view("ListBox Demo");
|
||||
|
||||
if (item_icon == RT_NULL)
|
||||
@@ -171,24 +171,24 @@ rtgui_container_t *demo_view_listbox(void)
|
||||
(const rt_uint8_t *)image_xpm, sizeof(image_xpm), RT_TRUE);
|
||||
items[1].image = item_icon;
|
||||
|
||||
/* 获得视图的位置信息 */
|
||||
/* 获得视图的位置信息 */
|
||||
demo_view_get_rect(container, &rect);
|
||||
rect.x1 += 5;
|
||||
rect.x2 -= 5;
|
||||
rect.y1 += 5;
|
||||
rect.y2 = rect.y1 + 20;
|
||||
/* 创建一个label控件 */
|
||||
/* 创建一个label控件 */
|
||||
label = rtgui_label_create("listbox: ");
|
||||
/* 设置label的位置 */
|
||||
/* 设置label的位置 */
|
||||
rtgui_widget_set_rect(RTGUI_WIDGET(label), &rect);
|
||||
/* container是一个container控件,调用add_child方法添加这个label控件 */
|
||||
/* container是一个container控件,调用add_child方法添加这个label控件 */
|
||||
rtgui_container_add_child(container, RTGUI_WIDGET(label));
|
||||
|
||||
rect.y1 = rect.y2 + 3;
|
||||
rect.y2 = 250;
|
||||
box = rtgui_listbox_create(items, sizeof(items) / sizeof(struct rtgui_listbox_item), &rect);
|
||||
rtgui_listbox_set_onitem(box, on_items);
|
||||
/* container是一个container控件,调用add_child方法添加这个listbox控件 */
|
||||
/* container是一个container控件,调用add_child方法添加这个listbox控件 */
|
||||
rtgui_container_add_child(container, RTGUI_WIDGET(box));
|
||||
|
||||
return container;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* 程序清单:menu控件演示
|
||||
* 程序清单:menu控件演示
|
||||
*
|
||||
* 这个例子会在创建出的container上添加几个不同类型的label控件
|
||||
* 这个例子会在创建出的container上添加几个不同类型的label控件
|
||||
*/
|
||||
#include "demo_view.h"
|
||||
#include <rtgui/widgets/menu.h>
|
||||
@@ -46,27 +46,27 @@ static rt_bool_t _onmenu(struct rtgui_object *object, struct rtgui_event *event)
|
||||
return RT_TRUE;
|
||||
}
|
||||
|
||||
/* 创建用于演示menu控件的视图 */
|
||||
/* 创建用于演示menu控件的视图 */
|
||||
rtgui_container_t *demo_view_menu(void)
|
||||
{
|
||||
rtgui_rect_t rect;
|
||||
rtgui_container_t *container;
|
||||
rtgui_button_t *button;
|
||||
|
||||
/* 先创建一个演示用的视图 */
|
||||
/* 先创建一个演示用的视图 */
|
||||
container = demo_view("MENU View");
|
||||
|
||||
/* 获得视图的位置信息 */
|
||||
/* 获得视图的位置信息 */
|
||||
demo_view_get_rect(container, &rect);
|
||||
rect.x1 += 5;
|
||||
rect.x2 = rect.x1 + 100;
|
||||
rect.y1 += 5;
|
||||
rect.y2 = rect.y1 + 20;
|
||||
/* 创建一个button控件 */
|
||||
/* 创建一个button控件 */
|
||||
button = rtgui_button_create("Pop Menu");
|
||||
/* 设置button的位置 */
|
||||
/* 设置button的位置 */
|
||||
rtgui_widget_set_rect(RTGUI_WIDGET(button), &rect);
|
||||
/* container是一个container控件,调用add_child方法添加这个button控件 */
|
||||
/* container是一个container控件,调用add_child方法添加这个button控件 */
|
||||
rtgui_container_add_child(container, RTGUI_WIDGET(button));
|
||||
rtgui_button_set_onbutton(button, _onmenu);
|
||||
|
||||
|
||||
@@ -1,41 +1,41 @@
|
||||
/*
|
||||
* 程序清单:自定义控件演示
|
||||
* 程序清单:自定义控件演示
|
||||
*
|
||||
* 这个例子会在创建出的container上添加两个自定义控件
|
||||
* 这个例子会在创建出的container上添加两个自定义控件
|
||||
*/
|
||||
#include "demo_view.h"
|
||||
#include "mywidget.h"
|
||||
|
||||
/* 创建用于演示自定义控件的视图 */
|
||||
/* 创建用于演示自定义控件的视图 */
|
||||
rtgui_container_t *demo_view_mywidget(void)
|
||||
{
|
||||
rtgui_container_t *container;
|
||||
rtgui_rect_t rect;
|
||||
rtgui_mywidget_t *mywidget;
|
||||
|
||||
/* 先创建一个演示用的视图 */
|
||||
/* 先创建一个演示用的视图 */
|
||||
container = demo_view("MyWidget View");
|
||||
|
||||
/* 获得视图的位置信息 */
|
||||
/* 获得视图的位置信息 */
|
||||
demo_view_get_rect(container, &rect);
|
||||
rect.x1 += 5;
|
||||
rect.x2 = rect.y1 + 80;
|
||||
rect.y1 += 5;
|
||||
rect.y2 = rect.y1 + 80;
|
||||
/* 创建一个自定义控件 */
|
||||
/* 创建一个自定义控件 */
|
||||
mywidget = rtgui_mywidget_create(&rect);
|
||||
/* container是一个container控件,调用add_child方法添加这个自控件 */
|
||||
/* container是一个container控件,调用add_child方法添加这个自控件 */
|
||||
rtgui_container_add_child(container, RTGUI_WIDGET(mywidget));
|
||||
|
||||
/* 获得视图的位置信息 */
|
||||
/* 获得视图的位置信息 */
|
||||
demo_view_get_rect(container, &rect);
|
||||
rect.x1 += 25;
|
||||
rect.x2 = rect.y1 + 40;
|
||||
rect.y1 += 5 + 100;
|
||||
rect.y2 = rect.y1 + 40;
|
||||
/* 创建一个自定义控件 */
|
||||
/* 创建一个自定义控件 */
|
||||
mywidget = rtgui_mywidget_create(&rect);
|
||||
/* container是一个container控件,调用add_child方法添加这个自控件 */
|
||||
/* container是一个container控件,调用add_child方法添加这个自控件 */
|
||||
rtgui_container_add_child(container, RTGUI_WIDGET(mywidget));
|
||||
|
||||
return container;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* 程序清单:notebook控件演示
|
||||
* 程序清单:notebook控件演示
|
||||
*
|
||||
* 这个例子会在创建出的container上演示notebook控件
|
||||
* 这个例子会在创建出的container上演示notebook控件
|
||||
*/
|
||||
|
||||
#include "demo_view.h"
|
||||
@@ -25,7 +25,7 @@ const static struct rtgui_listbox_item items2[] =
|
||||
{"new list #2", RT_NULL},
|
||||
};
|
||||
|
||||
/* 创建用于演示notebook控件的视图 */
|
||||
/* 创建用于演示notebook控件的视图 */
|
||||
rtgui_container_t *demo_view_notebook(void)
|
||||
{
|
||||
rtgui_rect_t rect;
|
||||
@@ -33,14 +33,14 @@ rtgui_container_t *demo_view_notebook(void)
|
||||
struct rtgui_notebook *notebook;
|
||||
rtgui_listbox_t *box;
|
||||
|
||||
/* 先创建一个演示用的视图 */
|
||||
/* 先创建一个演示用的视图 */
|
||||
container = demo_view("Notebook View");
|
||||
|
||||
/* 获得视图的位置信息 */
|
||||
/* 获得视图的位置信息 */
|
||||
demo_view_get_rect(container, &rect);
|
||||
|
||||
notebook = rtgui_notebook_create(&rect, RTGUI_NOTEBOOK_BOTTOM);
|
||||
/* container是一个container控件,调用add_child方法添加这个notebook控件 */
|
||||
/* container是一个container控件,调用add_child方法添加这个notebook控件 */
|
||||
rtgui_container_add_child(container, RTGUI_WIDGET(notebook));
|
||||
|
||||
box = rtgui_listbox_create(items, sizeof(items) / sizeof(struct rtgui_listbox_item), &rect);
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
/*
|
||||
* 程序清单:radiobox控件演示
|
||||
* 程序清单:radiobox控件演示
|
||||
*
|
||||
* 这个例子会在创建出的container上添加两个不同方向的radiobox控件
|
||||
* 这个例子会在创建出的container上添加两个不同方向的radiobox控件
|
||||
*/
|
||||
|
||||
#include "demo_view.h"
|
||||
#include <rtgui/widgets/radiobox.h>
|
||||
|
||||
/* 用于显示垂直方向的radio文本项数组 */
|
||||
/* 用于显示垂直方向的radio文本项数组 */
|
||||
static char *radio_item_v[5] =
|
||||
{
|
||||
"one",
|
||||
@@ -17,52 +17,52 @@ static char *radio_item_v[5] =
|
||||
"item 2"
|
||||
};
|
||||
|
||||
/* 用于显示水平方向的radio文本项数组 */
|
||||
/* 用于显示水平方向的radio文本项数组 */
|
||||
static char *radio_item_h[3] =
|
||||
{
|
||||
"one", "two", "three"
|
||||
};
|
||||
|
||||
/* 创建用于演示radiobox控件的视图 */
|
||||
/* 创建用于演示radiobox控件的视图 */
|
||||
rtgui_container_t *demo_view_radiobox(void)
|
||||
{
|
||||
rtgui_rect_t rect;
|
||||
rtgui_container_t *container;
|
||||
rtgui_radiobox_t *radiobox;
|
||||
|
||||
/* 先创建一个演示用的视图 */
|
||||
/* 先创建一个演示用的视图 */
|
||||
container = demo_view("RadioBox View");
|
||||
|
||||
/* 获得视图的位置信息 */
|
||||
/* 获得视图的位置信息 */
|
||||
demo_view_get_rect(container, &rect);
|
||||
rect.x1 += 5;
|
||||
rect.x2 -= 5;
|
||||
rect.y1 += 5;
|
||||
rect.y2 = rect.y1 + 5 * 25;
|
||||
|
||||
/* 创建一个垂直方向显示的radiobox控件,文本项是radio_item_v数组,共5个项 */
|
||||
/* 创建一个垂直方向显示的radiobox控件,文本项是radio_item_v数组,共5个项 */
|
||||
radiobox = rtgui_radiobox_create("Radio Box", RTGUI_VERTICAL, radio_item_v, 5);
|
||||
/* 设置当前选择的数组是第0项 */
|
||||
/* 设置当前选择的数组是第0项 */
|
||||
rtgui_radiobox_set_selection(radiobox, 0);
|
||||
/* 添加radiobox控件到视图中 */
|
||||
/* 添加radiobox控件到视图中 */
|
||||
rtgui_container_add_child(container, RTGUI_WIDGET(radiobox));
|
||||
/* 设置radiobox控件的位置信息 */
|
||||
/* 设置radiobox控件的位置信息 */
|
||||
rtgui_widget_set_rect(RTGUI_WIDGET(radiobox), &rect);
|
||||
|
||||
/* 获得视图的位置信息 */
|
||||
/* 获得视图的位置信息 */
|
||||
demo_view_get_rect(container, &rect);
|
||||
rect.x1 += 5;
|
||||
rect.x2 -= 5;
|
||||
rect.y1 += 5 + 5 * 25;
|
||||
rect.y2 = rect.y1 + 60;
|
||||
|
||||
/* 创建一个水平方向显示的radiobox控件,文本项是radio_item_h数组,共3个项 */
|
||||
/* 创建一个水平方向显示的radiobox控件,文本项是radio_item_h数组,共3个项 */
|
||||
radiobox = rtgui_radiobox_create("Radio Box", RTGUI_HORIZONTAL, radio_item_h, 3);
|
||||
/* 设置当前选择的数组是第0项 */
|
||||
/* 设置当前选择的数组是第0项 */
|
||||
rtgui_radiobox_set_selection(radiobox, 0);
|
||||
/* 添加radiobox控件到视图中 */
|
||||
/* 添加radiobox控件到视图中 */
|
||||
rtgui_container_add_child(container, RTGUI_WIDGET(radiobox));
|
||||
/* 设置radiobox控件的位置信息 */
|
||||
/* 设置radiobox控件的位置信息 */
|
||||
rtgui_widget_set_rect(RTGUI_WIDGET(radiobox), &rect);
|
||||
|
||||
return container;
|
||||
|
||||
Reference in New Issue
Block a user