summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorbernard.xiong <[email protected]>2010-04-05 23:15:05 +0000
committerbernard.xiong <[email protected]>2010-04-05 23:15:05 +0000
commitbc1e63c2919ca76019c50cdd1f00c2f64504f1fb (patch)
tree57a8550f1b32d056f2b97cb6da0b204ee470fe8b /examples
parent9372599ff99f68de3f4e6eee79661393774c4898 (diff)
fix dual panel issue.
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@580 bbd45198-f89e-11dd-88c7-29a3b14d5316
Diffstat (limited to 'examples')
-rw-r--r--examples/gui/demo_panel.c2
-rw-r--r--examples/gui/demo_view_dc_buffer.c77
-rw-r--r--examples/gui/demo_workbench.c1
3 files changed, 79 insertions, 1 deletions
diff --git a/examples/gui/demo_panel.c b/examples/gui/demo_panel.c
index 109565f3db..27536eff46 100644
--- a/examples/gui/demo_panel.c
+++ b/examples/gui/demo_panel.c
@@ -20,7 +20,7 @@ void panel_init(void)
/* register main panel */
rect.x1 = 0;
rect.y1 = 25;
- rect.x2 = 320;
+ rect.x2 = 240;
rect.y2 = 320;
rtgui_panel_register("main", &rect);
rtgui_panel_set_default_focused("main");
diff --git a/examples/gui/demo_view_dc_buffer.c b/examples/gui/demo_view_dc_buffer.c
new file mode 100644
index 0000000000..314fe88125
--- /dev/null
+++ b/examples/gui/demo_view_dc_buffer.c
@@ -0,0 +1,77 @@
+/*
+ * �����嵥��DC Buffer��ʾ
+ *
+ * ������ӻ��ڴ�������view�Ͻ���DC Buffer����ʾ
+ */
+
+#include "demo_view.h"
+#include <rtgui/rtgui_system.h>
+#include <rtgui/widgets/label.h>
+#include <rtgui/widgets/slider.h>
+#include <rtgui/image.h>
+
+static rtgui_image_t *background;
+static struct rtgui_dc *dc_buffer;
+
+/*
+ * view���¼���������
+ */
+static rt_bool_t dc_buffer_event_handler(rtgui_widget_t* widget, rtgui_event_t *event)
+{
+
+ /* ����PAINT�¼����д��� */
+ if (event->type == RTGUI_EVENT_PAINT)
+ {
+ struct rtgui_dc* dc;
+ rtgui_rect_t rect;
+ rtgui_point_t point = {0, 0};
+
+ /*
+ * ��Ϊ�õ���demo view�����汾����һ���ֿؼ��������ڻ�ͼʱ��Ҫ��demo view
+ * �Ȼ�ͼ
+ */
+ rtgui_view_event_handler(widget, event);
+
+ /* ��ÿؼ�������DC */
+ dc = rtgui_dc_begin_drawing(widget);
+ /* ��������������DC�����أ�����ؼ��򸸿ؼ�������״̬��DC�ǻ�ȡ���ɹ��ģ� */
+ if (dc == RT_NULL)
+ return RT_FALSE;
+
+ /* ���demo view������ͼ������ */
+ demo_view_get_rect(RTGUI_VIEW(widget), &rect);
+
+ rtgui_dc_blit(dc_buffer, &point, dc, &rect);
+
+ /* ��ͼ��� */
+ rtgui_dc_end_drawing(dc);
+ }
+ else
+ {
+ /* �����¼�������Ĭ�ϵ��¼��������� */
+ return rtgui_view_event_handler(widget, event);
+ }
+
+ return RT_FALSE;
+}
+
+/* ��������DC Buffer������ʾ�õ���ͼ */
+rtgui_view_t *demo_view_dc_buffer(rtgui_workbench_t* workbench)
+{
+ rtgui_view_t *view;
+
+ if (dc_buffer == RT_NULL)
+ {
+ /* ���� DC Buffer���� 50���� 50 */
+ dc_buffer = rtgui_dc_buffer_create(50, 50);
+ rtgui_dc_set_color(dc_buffer, blue);
+ rtgui_dc_draw_circle(dc_buffer, 25, 25, 10);
+ }
+
+ view = demo_view(workbench, "����DC��ʾ");
+ if (view != RT_NULL)
+ /* ���ó��Լ����¼��������� */
+ rtgui_widget_set_event_handler(RTGUI_WIDGET(view), dc_buffer_event_handler);
+
+ return view;
+}
diff --git a/examples/gui/demo_workbench.c b/examples/gui/demo_workbench.c
index 5b5d01dab0..3efa61ebcb 100644
--- a/examples/gui/demo_workbench.c
+++ b/examples/gui/demo_workbench.c
@@ -53,6 +53,7 @@ static void workbench_entry(void* parameter)
/* 初始化各个例子的视图 */
demo_view_dc(workbench);
+ demo_view_dc_buffer(workbench);
demo_view_animation(workbench);
demo_view_window(workbench);
demo_view_label(workbench);