Merge remote branch 'origin/master'

This commit is contained in:
Jonathan Puckey 2011-07-20 18:09:47 +02:00
commit 4bba0a5201
4 changed files with 30 additions and 17 deletions

View file

@ -141,11 +141,31 @@ var PaperScope = this.PaperScope = Base.extend(/** @scope _global_ */{
},
/**
* Installs the paper scope into any other given scope. Can be used for
* Sets up the scope for a standard project, by creating an empty
* {@link Project} object for us, along with a {@link View} for the passed
* canvas, both linked to this scope.
*/
setup: function(canvas) {
// We need to set the global paper reference to this scope,
// since that will be used in the Project constructor to set
// internal references.
paper = this;
new Project();
if (canvas) {
// Activate the newly created view straight away
new View(canvas).activate();
}
},
/**
* Injects the paper scope into any other given scope. Can be used for
* examle to inject the currently active PaperScope into the window's global
* scope, to emulate PaperScript-style globally accessible Paper classes:
* scope, to emulate PaperScript-style globally accessible Paper classes and
* objects:
*
* @example
* paper.install(window);
*
* @ignore
*/
install: function(scope) {

View file

@ -138,12 +138,7 @@ var PaperScript = this.PaperScript = new function() {
// so the active project is defined.
var canvas = PaperScript.getAttribute(code, 'canvas');
if (canvas = canvas && document.getElementById(canvas)) {
// Create an empty Project for this scope, and a view for the
// canvas, both using the right paper scope
paper = scope;
new Project();
// Activate the newly created view straight away
new View(canvas).activate();
scope.setup(canvas);
}
if (code.src) {
// If we're loading from a source, request that first and then
@ -155,15 +150,15 @@ var PaperScript = this.PaperScript = new function() {
}
}
//#endif // BROWSER
// Set currently active scope.
paper = scope;
var view = scope.view,
// TODO: Add support for multiple tools
tool = scope.tool = /on(?:Key|Mouse)(?:Up|Down|Move|Drag)/.test(code)
&& new Tool(null, scope),
&& new Tool(),
res;
// Define variables for potential handlers, so eval() calls below to
// fetch their values do not require try-catch around them.
// Set currently active scope.
paper = scope;
// Use with(){} in order to make the scope the current 'global' scope
// instead of window.
with (scope) {

View file

@ -48,11 +48,9 @@
*/
var Tool = this.Tool = Base.extend(/** @lends Tool# */{
// DOCS: rewrite Tool constructor explanation
/**
* Initializes the tool's settings, so a new tool can be assigned to it
*/
initialize: function(handlers, scope) {
this._scope = scope;
initialize: function() {
// Store reference to the currently active global paper scope:
this._scope = paper;
this._firstMove = true;
this._count = 0;
this._downCount = 0;

View file

@ -183,7 +183,7 @@ var ToolEvent = this.ToolEvent = Event.extend(/** @lends ToolEvent# */{
if (result) {
var item = result.item,
// Find group parent
parent = item.getParent();
parent = item._parent;
while ((parent instanceof Group && !(parent instanceof Layer))
|| parent instanceof CompoundPath) {
item = parent;