diff nodejs/examples/simple/testcase.js @ 939:a74b4d986a91

Move examples for nodejs into nodejs/examples/ sub-directories. See INSTALL.txt. Use nodejs/examples/run.sh to run examples. For example, cd nodejs/examples; ./run.sh examples/testsvg/testsvg.js
author Thinker K.F. Li <thinker@codemud.net>
date Fri, 12 Nov 2010 17:39:04 +0800
parents nodejs/testcase.js@586e50f82c1f
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nodejs/examples/simple/testcase.js	Fri Nov 12 17:39:04 2010 +0800
@@ -0,0 +1,169 @@
+// -*- indent-tabs-mode: t; tab-width: 8; c-basic-offset: 4; -*-
+// vim: sw=4:ts=8:sts=4
+var mbfly = require("mbfly");
+var r = mbfly.Hello(" test");
+var sys = require("sys");
+sys.puts(r);
+
+var display_name = ":0.0";
+if(process.argv.length == 3)
+   display_name = process.argv[2];
+
+var mb_rt = new mbfly.mb_rt(display_name, 300, 200);
+var root = mb_rt.root;
+sys.puts("root matrix: " +
+	 [root[0], root[1], root[2], root[3], root[4], root[5]]);
+var coord = mb_rt.coord_new(root);
+sys.puts("coord matrix: " + 
+	 [coord[0], coord[1], coord[2], coord[3], coord[4], coord[5]]);
+
+/* Testcase for image shapes */
+var img = mb_rt.image_new(10, 10, 50, 50);
+var ldr = mbfly.img_ldr_new(".");
+var img_data = ldr.load("sample.png");
+var paint = mb_rt.paint_image_new(img_data);
+var img_coord = mb_rt.coord_new(root);
+paint.fill(img);
+img_coord.add_shape(img);
+
+/* test linear paint and rectangle */
+var rect = mb_rt.rect_new(100, 100, 50, 50, 10, 10);
+sys.puts(mb_rt.paint_linear_new);
+var paint = mb_rt.paint_linear_new(100, 100, 150, 150);
+paint.set_stops([[0, 0, 1, 0, 1], [1, 0, 0, 1, 1]]);
+paint.fill(rect);
+root.add_shape(rect);
+
+/* test radial paint and rectangle */
+var rect = mb_rt.rect_new(150, 100, 50, 50, 10, 10);
+sys.puts(mb_rt.paint_radial_new);
+var paint = mb_rt.paint_radial_new(175, 125, 25);
+paint.set_stops([[0, 0, 1, 0, 1], [1, 0, 0, 1, 1]]);
+paint.fill(rect);
+root.add_shape(rect);
+
+/* test alpha blending and rectangle */
+var rect = mb_rt.rect_new(40, 40, 100, 100, 10, 10);
+sys.puts(mb_rt.paint_color_new);
+var paint = mb_rt.paint_color_new(1, 0.5, 0.5, 0.5);
+paint.fill(rect);
+root.add_shape(rect);
+
+/* test hide of shapes */
+var sw = 1;
+setInterval(function() {
+	if(sw) {
+	    rect.hide();
+	    sw = 0;
+	} else {
+	    rect.show();
+	    sw = 1;
+	}
+    }, 1000);
+
+/* test hide of coord */
+var cw = 1;
+setInterval(function() {
+	if(sw) {
+	    coord.hide();
+	    cw = 0;
+	} else {
+	    coord.show();
+	    cw = 1;
+	}
+    }, 3000);
+
+/* test removing a coord */
+var rm_coord = mb_rt.coord_new(root);
+var rm_rect1 = mb_rt.rect_new(150, 150, 50, 50, 10, 10);
+paint.fill(rm_rect1);
+rm_coord.add_shape(rm_rect1);
+var rm_rect2 = mb_rt.rect_new(100, 150, 50, 50, 10, 10);
+paint.fill(rm_rect2);
+rm_coord.add_shape(rm_rect2);
+setTimeout(function() {
+	rm_coord.remove();
+	mb_rt.redraw_changed();
+	mb_rt.flush();
+    }, 3000);
+
+/* test removing a shape */
+setTimeout(function() {
+	rm_rect1.remove();
+	mb_rt.redraw_changed();
+	mb_rt.flush();
+    }, 2000);
+
+/* Moving a path */
+sys.puts(mb_rt.path_new);
+var path = mb_rt.path_new("m 100,50 L 120,50 L 200,150 L 180,150 z");
+sys.puts(path);
+sys.puts(coord.add_shape);
+coord.add_shape(path);
+
+sys.puts(mb_rt.paint_color_new);
+var paint = mb_rt.paint_color_new(1, 1, 1, 1);
+sys.puts(paint);
+paint.stroke(path);
+
+sys.puts(path.stroke_width);
+path.stroke_width = 2;
+sys.puts(path.stroke_width);
+
+var face = mb_rt.font_face_query("courier", 2, 100);
+var blks = [[5, face, 20]];
+var stext = mb_rt.stext_new("Hello", 100, 50);
+stext.set_style(blks);
+paint.fill(stext);
+coord.add_shape(stext);
+
+mb_rt.redraw_all();
+mb_rt.flush();
+
+var i = 0;
+setInterval(function() {
+	var deg = (i++) * 0.1;
+	coord[2] = (i % 40) * 5;
+	mb_rt.redraw_changed();
+	mb_rt.flush();
+    }, 20);
+setTimeout(function() { sys.puts("timeout"); }, 1000);
+
+sys.puts(root.mouse_event);
+var observer;
+/* Mouse button pressed */
+observer = root.mouse_event.add_event_observer(4, function(evt) {
+	var c = 1 - (i % 40) / 40;
+	sys.puts(c);
+
+	sys.puts("mouse " + evt.x + " " + evt.y);
+	sys.puts(c);
+	sys.puts(paint.set_color);
+	paint.set_color(c, 1, 1, 1);
+	mb_rt.redraw_changed();
+	mb_rt.flush();
+    });
+
+var resize_sw = 0;
+setInterval(function() {
+	var sz;
+	
+	resize_sw++;
+	
+	sz = (resize_sw % 20) - 10;
+	if(sz < 0)
+	    sz = -sz;
+	sz = 2 - sz / 10;
+	
+	img_coord[0] = sz;
+	img_coord[4] = sz;
+	mb_rt.redraw_changed();
+	mb_rt.flush();
+    }, 50);
+
+var kbobserver;
+/* Keyboard event */
+kbobserver = mb_rt.kbevents.add_event_observer(6, function(evt) {
+	sys.puts("keycode = " + evt.keycode);
+	sys.puts("sym = " + evt.sym);
+    });