diff options
Diffstat (limited to 'src/svg.js')
-rwxr-xr-x | src/svg.js | 24 |
1 files changed, 24 insertions, 0 deletions
@@ -55,6 +55,30 @@ SVG.extend = function() { SVG.Set.inherit() } +// Invent new element +SVG.invent = function(config) { + /* create element initializer */ + var initializer = typeof config.create == 'function' ? + config.create : + function() { + this.constructor.call(this, SVG.create(config.create)) + } + + /* inherit prototype */ + if (config.inherit) + initializer.prototype = new config.inherit + + /* extend with methods */ + if (config.extend) + SVG.extend(initializer, config.extend) + + /* attach construct method to parent */ + if (config.construct) + SVG.extend(config.parent || SVG.Container, config.construct) + + return initializer +} + // Initialize parsing element SVG.prepare = function(element) { /* select document body and create invisible svg element */ |