seed r396 - trunk/modules/canvas



Author: racarr
Date: Sat Dec  6 02:49:10 2008
New Revision: 396
URL: http://svn.gnome.org/viewvc/seed?rev=396&view=rev

Log:
Fun pacman example. and Canvas.rect()


Added:
   trunk/modules/canvas/test9.js   (contents, props changed)
Modified:
   trunk/modules/canvas/Makefile.am
   trunk/modules/canvas/seed-canvas.c

Modified: trunk/modules/canvas/Makefile.am
==============================================================================
--- trunk/modules/canvas/Makefile.am	(original)
+++ trunk/modules/canvas/Makefile.am	Sat Dec  6 02:49:10 2008
@@ -7,7 +7,7 @@
 libsqlite_la_LDFLAGS = \
 	`pkg-config --libs seed cairo`
 
-EXTRA_DIST=test1.js test2.js test3.js test4.js test5.js test6.js test7.js test8.js
+EXTRA_DIST=test1.js test2.js test3.js test4.js test5.js test6.js test7.js test8.js test9.js
 
 AM_CPPFLAGS = \
 	-I../../libseed/ \

Modified: trunk/modules/canvas/seed-canvas.c
==============================================================================
--- trunk/modules/canvas/seed-canvas.c	(original)
+++ trunk/modules/canvas/seed-canvas.c	Sat Dec  6 02:49:10 2008
@@ -481,6 +481,24 @@
 	return seed_make_null(ctx);
 }
 
+SeedValue seed_canvas_rect (SeedContext ctx,
+								 SeedObject function,
+								 SeedObject this_object,
+								 size_t argument_count,
+								 const SeedValue arguments[],
+								 SeedException * exception)
+{
+	GET_CR;
+	gdouble x, y, width, height;
+
+	x = seed_value_to_double(ctx, arguments[0], exception);
+	y = seed_value_to_double(ctx, arguments[1], exception);
+	width = seed_value_to_double(ctx, arguments[2], exception);
+	height = seed_value_to_double(ctx, arguments[3], exception);
+	
+	cairo_rectangle(cr, x, y, width, height);
+}
+
 static void canvas_finalize(SeedObject object)
 {
 	cairo_destroy((cairo_t *)seed_object_get_private(object));
@@ -507,6 +525,7 @@
 	{"arc", seed_canvas_arc, 0},
 	{"quadraticCurveTo", seed_canvas_quadratic, 0},
 	{"bezierCurveTo", seed_canvas_bezier, 0},
+	{"rect", seed_canvas_rect, 0},
 	{0, 0, 0}
 };
 

Added: trunk/modules/canvas/test9.js
==============================================================================
--- (empty file)
+++ trunk/modules/canvas/test9.js	Sat Dec  6 02:49:10 2008
@@ -0,0 +1,94 @@
+#!/usr/local/bin/seed
+Seed.import_namespace("Gdk");
+Seed.import_namespace("Gtk");
+Seed.import_namespace("Canvas");
+
+
+Gtk.init(null, null);
+
+w = new Gtk.Window();
+d = new Gtk.DrawingArea();
+w.add(d);
+
+w.resize(150, 200);
+
+w.show_all();
+
+function roundedRect(ctx,x,y,width,height,radius){
+	ctx.beginPath();
+	ctx.moveTo(x,y+radius);
+	ctx.lineTo(x,y+height-radius);
+	ctx.quadraticCurveTo(x,y+height,x+radius,y+height);
+	ctx.lineTo(x+width-radius,y+height);
+	ctx.quadraticCurveTo(x+width,y+height,x+width,y+height-radius);
+	ctx.lineTo(x+width,y+radius);
+	ctx.quadraticCurveTo(x+width,y,x+width-radius,y);
+	ctx.lineTo(x+radius,y);
+	ctx.quadraticCurveTo(x,y,x,y+radius);
+	ctx.stroke();
+}
+
+d.signal.expose_event.connect(function(){
+		var cr = Gdk.cairo_create(d.window);
+		var ctx = new Canvas.CairoCanvas(cr);
+
+		roundedRect(ctx,12,12,150,150,15);
+		roundedRect(ctx,19,19,150,150,9);
+		roundedRect(ctx,53,53,49,33,10);
+		roundedRect(ctx,53,119,49,16,6);
+		roundedRect(ctx,135,53,49,33,10);
+		roundedRect(ctx,135,119,25,49,10);
+
+		ctx.beginPath();
+		ctx.arc(37,37,13,Math.PI/7,-Math.PI/7,true);
+		ctx.lineTo(31,37);
+		ctx.fill();
+		for(i=0;i<8;i++){
+			ctx.fillRect(51+i*16,35,4,4);
+		}
+		for(i=0;i<6;i++){
+			ctx.fillRect(115,51+i*16,4,4);
+		}
+		for(i=0;i<8;i++){
+			ctx.fillRect(51+i*16,99,4,4);
+		}
+		ctx.beginPath();
+		ctx.moveTo(83,116);
+		ctx.lineTo(83,102);
+		ctx.bezierCurveTo(83,94,89,88,97,88);
+		ctx.bezierCurveTo(105,88,111,94,111,102);
+		ctx.lineTo(111,116);
+		ctx.lineTo(106.333,111.333);
+		ctx.lineTo(101.666,116);
+		ctx.lineTo(97,111.333);
+		ctx.lineTo(92.333,116);
+		ctx.lineTo(87.666,111.333);
+		ctx.lineTo(83,116);
+		ctx.fill();
+		ctx.fillStyle = "rgb(255,255,255)";
+		ctx.beginPath();
+		ctx.moveTo(91,96);
+		ctx.bezierCurveTo(88,96,87,99,87,101);
+		ctx.bezierCurveTo(87,103,88,106,91,106);
+		ctx.bezierCurveTo(94,106,95,103,95,101);
+		ctx.bezierCurveTo(95,99,94,96,91,96);
+		ctx.moveTo(103,96);
+		ctx.bezierCurveTo(100,96,99,99,99,101);
+		ctx.bezierCurveTo(99,103,100,106,103,106);
+		ctx.bezierCurveTo(106,106,107,103,107,101);
+		ctx.bezierCurveTo(107,99,106,96,103,96);
+		ctx.fill();
+		ctx.fillStyle = "rgb(0,0,0)";
+		ctx.beginPath();
+		ctx.arc(101,102,2,0,Math.PI*2,true);
+		ctx.fill();
+		ctx.beginPath();
+		ctx.arc(89,102,2,0,Math.PI*2,true);
+		ctx.fill();
+		return true;
+	});
+Gtk.main();
+
+
+
+



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]