From 894f3cdb18ed2d60b724793a8db4ac6eda0a380e Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Mon, 12 Mar 2012 17:27:42 -0700 Subject: [PATCH] Implement start, line, and curve instructions. --- src/main/resources/guacamole.js | 56 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/src/main/resources/guacamole.js b/src/main/resources/guacamole.js index 385e3dd..b7328ba 100644 --- a/src/main/resources/guacamole.js +++ b/src/main/resources/guacamole.js @@ -68,6 +68,24 @@ Guacamole.Client = function(tunnel) { var displayWidth = 0; var displayHeight = 0; + /** + * Translation from Guacamole protocol line caps to Layer line caps. + */ + var lineCap = { + 0: "butt", + 1: "round", + 2: "square" + }; + + /** + * Translation from Guacamole protocol line caps to Layer line caps. + */ + var lineJoin = { + 0: "bevel", + 1: "miter", + 2: "round" + }; + // Create display var display = document.createElement("div"); display.style.position = "relative"; @@ -299,6 +317,24 @@ Guacamole.Client = function(tunnel) { }, + "cstroke": function(parameters) { + + var channelMask = parseInt(parameters[0]); + var layer = getLayer(parseInt(parameters[1])); + var cap = lineCap[parseInt(parameters[2])]; + var join = lineJoin[parseInt(parameters[3])]; + var thickness = parseInt(parameters[4]); + var r = parseInt(parameters[5]); + var g = parseInt(parameters[6]); + var b = parseInt(parameters[7]); + var a = parseInt(parameters[8]); + + layer.setChannelMask(channelMask); + + layer.strokeColor(cap, join, thickness, r, g, b, a); + + }, + "cursor": function(parameters) { cursorHotspotX = parseInt(parameters[0]); @@ -359,6 +395,16 @@ Guacamole.Client = function(tunnel) { guac_client.disconnect(); }, + "line": function(parameters) { + + var layer = getLayer(parseInt(parameters[0])); + var x = parseInt(parameters[1]); + var y = parseInt(parameters[2]); + + layer.lineTo(x, y); + + }, + "move": function(parameters) { var layer_index = parseInt(parameters[0]); @@ -456,6 +502,16 @@ Guacamole.Client = function(tunnel) { } }, + + "start": function(parameters) { + + var layer = getLayer(parseInt(parameters[0])); + var x = parseInt(parameters[1]); + var y = parseInt(parameters[2]); + + layer.moveTo(x, y); + + }, "sync": function(parameters) { -- 1.7.10.4