Skip to content
This repository has been archived by the owner on Dec 17, 2022. It is now read-only.

Commit

Permalink
Browse files Browse the repository at this point in the history
A little functional magic
  • Loading branch information
Matthew Ephraim committed Nov 12, 2009
1 parent dd24066 commit 77ee916
Showing 1 changed file with 27 additions and 24 deletions.
51 changes: 27 additions & 24 deletions lib/raphael.draggable.js
Expand Up @@ -49,13 +49,14 @@
}
}

function overrideElementFunc(paper, elementType) {
var oldFunc = paper[elementType];
paper[elementType] = function() {
var element = oldFunc.apply(paper, arguments);
element.draggable = new DraggableExtension(element);
return element;
};
function overrideElementFunc(paper, elementType) {
paper[elementType] = function(oldFunc) {
return function() {
var element = oldFunc.apply(paper, arguments);
element.draggable = new DraggableExtension(element);
return element;
};
}(paper[elementType]);
}

var lastDragX,
Expand Down Expand Up @@ -102,29 +103,31 @@

/* Raphael set extensions */
function overrideSet(paper) {
var oldFunc = paper.set;
paper.set = function() {
var set = oldFunc.apply(paper, arguments);
set.paper = paper;
set.draggable = new DraggableSetExtension(set);
paper.set = function(oldFunc) {
return function() {
var set = oldFunc.apply(paper, arguments);
set.paper = paper;
set.draggable = new DraggableSetExtension(set);

overrideSetFunctions(set);
return set;
};
overrideSetFunctions(set);
return set;
};
}(paper.set);
}

function overrideSetFunctions(set) {
var oldPushFunc = set.push;
set.push = function(element) {
oldPushFunc.apply(set, arguments);
if (element.draggable) {
element.draggable.parent = set;
set.push = function(oldFunc) {
return function(element) {
oldFunc.apply(set, arguments);
if (element.draggable) {
element.draggable.parent = set;

if (set.draggable.enabled) {
element.draggable.enable();
if (set.draggable.enabled) {
element.draggable.enable();
}
}
}
}
};
}(set.push);
}

DraggableSetExtension = function(set) {
Expand Down

0 comments on commit 77ee916

Please sign in to comment.