aboutsummaryrefslogtreecommitdiffstats
path: root/src/inventor.js
blob: f8244f55b6237b35b56ef64039579eeb57f8bf22 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// 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
}