src/js/libs/spiritual-gui.js
function(SuperC, protos, recurring, statics, name) {
		var C = this._createclass(SuperC, SuperC.prototype, name);
		gui.Object.extend(C, statics);
		gui.Object.extend(C.$recurring, recurring);
		gui.Object.each(C.$recurring, function(key, val) {
			var desc = Object.getOwnPropertyDescriptor(C, key);
			if (!desc || desc.writable) {
				C[key] = val;
			}
		});
		gui.Property.extendall(protos, C.prototype);
		C = this._classname(C, name);
		return C;
	}
function(SuperC, protos, recurring, statics, name) {
		var C = this._createclass(SuperC, SuperC.prototype, name);
		gui.Object.extend(C, statics);
		gui.Object.extend(C.$recurring, recurring);
		gui.Object.each(C.$recurring, function(key, val) {
			var desc = Object.getOwnPropertyDescriptor(C, key);
			if (!desc || desc.writable) {
				C[key] = val;
			}
		});
		gui.Property.extendall(protos, C.prototype);
		C = this._classname(C, name);
		return C;
	}
function ( SuperC , protos , recurring , statics , name ) { var C = this . _createclass ( SuperC , SuperC . prototype , name ) ; gui . Object . extend ( C , statics ) ; gui . Object . extend ( C . $recurring , recurring ) ; gui . Object . each ( C . $recurring , function ( key , val ) { var desc = Object . getOwnPropertyDescriptor ( C , key ) ; if ( ! desc || desc . writable ) { C [ key ] = val ; } } ) ; gui . Property . extendall ( protos , C . prototype ) ; C = this . _classname ( C , name ) ; return C ; }
Create subclass constructor.
@param {object} SuperC super constructor
@param {object} protos Prototype extensions
@param {object} recurring Constructor and subconstructor extensions
@param {object} statics Constructor extensions
@param {String} generated display name (for development)
@returns {function} Constructor
Create subclass constructor .