mirror of
https://github.com/dataarts/dat.gui.git
synced 2024-12-12 04:08:27 +00:00
gui.add
use gui.add for CustomController
This commit is contained in:
parent
ced2ce7880
commit
3f46a30943
@ -1536,6 +1536,17 @@ function hueGradient(elem) {
|
|||||||
elem.style.cssText += 'background: linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);';
|
elem.style.cssText += 'background: linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var CustomController = function (_Controller) {
|
||||||
|
inherits(CustomController, _Controller);
|
||||||
|
function CustomController(object, property) {
|
||||||
|
classCallCheck(this, CustomController);
|
||||||
|
var _this = possibleConstructorReturn(this, (CustomController.__proto__ || Object.getPrototypeOf(CustomController)).call(this, object, property));
|
||||||
|
object.constructor(_this);
|
||||||
|
return _this;
|
||||||
|
}
|
||||||
|
return CustomController;
|
||||||
|
}(Controller);
|
||||||
|
|
||||||
var css = {
|
var css = {
|
||||||
load: function load(url, indoc) {
|
load: function load(url, indoc) {
|
||||||
var doc = indoc || document;
|
var doc = indoc || document;
|
||||||
@ -1913,6 +1924,7 @@ var GUI = function GUI(pars) {
|
|||||||
resetWidth();
|
resetWidth();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
GUI.CustomController = CustomController;
|
||||||
GUI.toggleHide = function () {
|
GUI.toggleHide = function () {
|
||||||
hide = !hide;
|
hide = !hide;
|
||||||
Common.each(hideableGuis, function (gui) {
|
Common.each(hideableGuis, function (gui) {
|
||||||
@ -1942,6 +1954,7 @@ Common.extend(GUI.prototype,
|
|||||||
{
|
{
|
||||||
add: function add(object, property) {
|
add: function add(object, property) {
|
||||||
return _add(this, object, property, {
|
return _add(this, object, property, {
|
||||||
|
custom: object instanceof CustomController,
|
||||||
factoryArgs: Array.prototype.slice.call(arguments, 2)
|
factoryArgs: Array.prototype.slice.call(arguments, 2)
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
@ -1950,6 +1963,12 @@ Common.extend(GUI.prototype,
|
|||||||
color: true
|
color: true
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
addCustomController: function addCustomController(object, property) {
|
||||||
|
return _add(this, object, property, {
|
||||||
|
custom: true,
|
||||||
|
factoryArgs: Array.prototype.slice.call(arguments, 2)
|
||||||
|
});
|
||||||
|
},
|
||||||
remove: function remove(controller) {
|
remove: function remove(controller) {
|
||||||
this.__ul.removeChild(controller.__li);
|
this.__ul.removeChild(controller.__li);
|
||||||
this.__controllers.splice(this.__controllers.indexOf(controller), 1);
|
this.__controllers.splice(this.__controllers.indexOf(controller), 1);
|
||||||
@ -2299,14 +2318,18 @@ function recallSavedValue(gui, controller) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
function _add(gui, object, property, params) {
|
function _add(gui, object, property, params) {
|
||||||
if (object[property] === undefined) {
|
if (!object instanceof CustomController && !params.custom && object[property] === undefined) {
|
||||||
throw new Error('Object "' + object + '" has no property "' + property + '"');
|
throw new Error('Object "' + object + '" has no property "' + property + '"');
|
||||||
}
|
}
|
||||||
var controller = void 0;
|
var controller = void 0;
|
||||||
if (params.color) {
|
if (params.color) {
|
||||||
controller = new ColorController(object, property);
|
controller = new ColorController(object, property);
|
||||||
|
} else if (object instanceof CustomController && property === undefined) {
|
||||||
|
controller = object;
|
||||||
|
} else if (!(object instanceof CustomController) && params.custom && object[property] === undefined) {
|
||||||
|
controller = new CustomController(object, property);
|
||||||
} else {
|
} else {
|
||||||
var factoryArgs = [object, property].concat(params.factoryArgs);
|
var factoryArgs = object instanceof CustomController ? [property].concat(params.factoryArgs) : [object, property].concat(params.factoryArgs);
|
||||||
controller = ControllerFactory.apply(gui, factoryArgs);
|
controller = ControllerFactory.apply(gui, factoryArgs);
|
||||||
}
|
}
|
||||||
if (params.before instanceof Controller) {
|
if (params.before instanceof Controller) {
|
||||||
@ -2314,10 +2337,10 @@ function _add(gui, object, property, params) {
|
|||||||
}
|
}
|
||||||
recallSavedValue(gui, controller);
|
recallSavedValue(gui, controller);
|
||||||
dom.addClass(controller.domElement, 'c');
|
dom.addClass(controller.domElement, 'c');
|
||||||
var name = document.createElement('span');
|
|
||||||
dom.addClass(name, 'property-name');
|
|
||||||
name.innerHTML = controller.property;
|
|
||||||
var container = document.createElement('div');
|
var container = document.createElement('div');
|
||||||
|
var name = params.custom && controller instanceof CustomController === false ? object instanceof CustomController ? object.domElement : new CustomController(object).domElement : document.createElement('span');
|
||||||
|
if (!params.custom) name.innerHTML = controller.property;
|
||||||
|
dom.addClass(name, 'property-name');
|
||||||
container.appendChild(name);
|
container.appendChild(name);
|
||||||
container.appendChild(controller.domElement);
|
container.appendChild(controller.domElement);
|
||||||
var li = addRow(gui, container, params.before);
|
var li = addRow(gui, container, params.before);
|
||||||
@ -2511,7 +2534,8 @@ var controllers = {
|
|||||||
NumberControllerBox: NumberControllerBox,
|
NumberControllerBox: NumberControllerBox,
|
||||||
NumberControllerSlider: NumberControllerSlider,
|
NumberControllerSlider: NumberControllerSlider,
|
||||||
FunctionController: FunctionController,
|
FunctionController: FunctionController,
|
||||||
ColorController: ColorController
|
ColorController: ColorController,
|
||||||
|
CustomController: CustomController
|
||||||
};
|
};
|
||||||
var dom$1 = { dom: dom };
|
var dom$1 = { dom: dom };
|
||||||
var gui = { GUI: GUI };
|
var gui = { GUI: GUI };
|
||||||
|
File diff suppressed because one or more lines are too long
2
build/dat.gui.min.js
vendored
2
build/dat.gui.min.js
vendored
File diff suppressed because one or more lines are too long
@ -1530,6 +1530,17 @@ function hueGradient(elem) {
|
|||||||
elem.style.cssText += 'background: linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);';
|
elem.style.cssText += 'background: linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var CustomController = function (_Controller) {
|
||||||
|
inherits(CustomController, _Controller);
|
||||||
|
function CustomController(object, property) {
|
||||||
|
classCallCheck(this, CustomController);
|
||||||
|
var _this = possibleConstructorReturn(this, (CustomController.__proto__ || Object.getPrototypeOf(CustomController)).call(this, object, property));
|
||||||
|
object.constructor(_this);
|
||||||
|
return _this;
|
||||||
|
}
|
||||||
|
return CustomController;
|
||||||
|
}(Controller);
|
||||||
|
|
||||||
var css = {
|
var css = {
|
||||||
load: function load(url, indoc) {
|
load: function load(url, indoc) {
|
||||||
var doc = indoc || document;
|
var doc = indoc || document;
|
||||||
@ -1907,6 +1918,7 @@ var GUI = function GUI(pars) {
|
|||||||
resetWidth();
|
resetWidth();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
GUI.CustomController = CustomController;
|
||||||
GUI.toggleHide = function () {
|
GUI.toggleHide = function () {
|
||||||
hide = !hide;
|
hide = !hide;
|
||||||
Common.each(hideableGuis, function (gui) {
|
Common.each(hideableGuis, function (gui) {
|
||||||
@ -1936,6 +1948,7 @@ Common.extend(GUI.prototype,
|
|||||||
{
|
{
|
||||||
add: function add(object, property) {
|
add: function add(object, property) {
|
||||||
return _add(this, object, property, {
|
return _add(this, object, property, {
|
||||||
|
custom: object instanceof CustomController,
|
||||||
factoryArgs: Array.prototype.slice.call(arguments, 2)
|
factoryArgs: Array.prototype.slice.call(arguments, 2)
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
@ -1944,6 +1957,12 @@ Common.extend(GUI.prototype,
|
|||||||
color: true
|
color: true
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
addCustomController: function addCustomController(object, property) {
|
||||||
|
return _add(this, object, property, {
|
||||||
|
custom: true,
|
||||||
|
factoryArgs: Array.prototype.slice.call(arguments, 2)
|
||||||
|
});
|
||||||
|
},
|
||||||
remove: function remove(controller) {
|
remove: function remove(controller) {
|
||||||
this.__ul.removeChild(controller.__li);
|
this.__ul.removeChild(controller.__li);
|
||||||
this.__controllers.splice(this.__controllers.indexOf(controller), 1);
|
this.__controllers.splice(this.__controllers.indexOf(controller), 1);
|
||||||
@ -2293,14 +2312,18 @@ function recallSavedValue(gui, controller) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
function _add(gui, object, property, params) {
|
function _add(gui, object, property, params) {
|
||||||
if (object[property] === undefined) {
|
if (!object instanceof CustomController && !params.custom && object[property] === undefined) {
|
||||||
throw new Error('Object "' + object + '" has no property "' + property + '"');
|
throw new Error('Object "' + object + '" has no property "' + property + '"');
|
||||||
}
|
}
|
||||||
var controller = void 0;
|
var controller = void 0;
|
||||||
if (params.color) {
|
if (params.color) {
|
||||||
controller = new ColorController(object, property);
|
controller = new ColorController(object, property);
|
||||||
|
} else if (object instanceof CustomController && property === undefined) {
|
||||||
|
controller = object;
|
||||||
|
} else if (!(object instanceof CustomController) && params.custom && object[property] === undefined) {
|
||||||
|
controller = new CustomController(object, property);
|
||||||
} else {
|
} else {
|
||||||
var factoryArgs = [object, property].concat(params.factoryArgs);
|
var factoryArgs = object instanceof CustomController ? [property].concat(params.factoryArgs) : [object, property].concat(params.factoryArgs);
|
||||||
controller = ControllerFactory.apply(gui, factoryArgs);
|
controller = ControllerFactory.apply(gui, factoryArgs);
|
||||||
}
|
}
|
||||||
if (params.before instanceof Controller) {
|
if (params.before instanceof Controller) {
|
||||||
@ -2308,10 +2331,10 @@ function _add(gui, object, property, params) {
|
|||||||
}
|
}
|
||||||
recallSavedValue(gui, controller);
|
recallSavedValue(gui, controller);
|
||||||
dom.addClass(controller.domElement, 'c');
|
dom.addClass(controller.domElement, 'c');
|
||||||
var name = document.createElement('span');
|
|
||||||
dom.addClass(name, 'property-name');
|
|
||||||
name.innerHTML = controller.property;
|
|
||||||
var container = document.createElement('div');
|
var container = document.createElement('div');
|
||||||
|
var name = params.custom && controller instanceof CustomController === false ? object instanceof CustomController ? object.domElement : new CustomController(object).domElement : document.createElement('span');
|
||||||
|
if (!params.custom) name.innerHTML = controller.property;
|
||||||
|
dom.addClass(name, 'property-name');
|
||||||
container.appendChild(name);
|
container.appendChild(name);
|
||||||
container.appendChild(controller.domElement);
|
container.appendChild(controller.domElement);
|
||||||
var li = addRow(gui, container, params.before);
|
var li = addRow(gui, container, params.before);
|
||||||
@ -2505,7 +2528,8 @@ var controllers = {
|
|||||||
NumberControllerBox: NumberControllerBox,
|
NumberControllerBox: NumberControllerBox,
|
||||||
NumberControllerSlider: NumberControllerSlider,
|
NumberControllerSlider: NumberControllerSlider,
|
||||||
FunctionController: FunctionController,
|
FunctionController: FunctionController,
|
||||||
ColorController: ColorController
|
ColorController: ColorController,
|
||||||
|
CustomController: CustomController
|
||||||
};
|
};
|
||||||
var dom$1 = { dom: dom };
|
var dom$1 = { dom: dom };
|
||||||
var gui = { GUI: GUI };
|
var gui = { GUI: GUI };
|
||||||
|
File diff suppressed because one or more lines are too long
2010
package-lock.json
generated
2010
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -456,6 +456,8 @@ const GUI = function(pars) {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
GUI.CustomController = CustomController;
|
||||||
|
|
||||||
GUI.toggleHide = function() {
|
GUI.toggleHide = function() {
|
||||||
hide = !hide;
|
hide = !hide;
|
||||||
common.each(hideableGuis, function(gui) {
|
common.each(hideableGuis, function(gui) {
|
||||||
@ -521,6 +523,7 @@ common.extend(
|
|||||||
object,
|
object,
|
||||||
property,
|
property,
|
||||||
{
|
{
|
||||||
|
custom: object instanceof CustomController,
|
||||||
factoryArgs: Array.prototype.slice.call(arguments, 2)
|
factoryArgs: Array.prototype.slice.call(arguments, 2)
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
@ -1153,7 +1156,7 @@ function recallSavedValue(gui, controller) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function add(gui, object, property, params) {
|
function add(gui, object, property, params) {
|
||||||
if (!params.custom && (object[property] === undefined)) {
|
if (!object instanceof CustomController && !params.custom && (object[property] === undefined)) {
|
||||||
throw new Error(`Object "${object}" has no property "${property}"`);
|
throw new Error(`Object "${object}" has no property "${property}"`);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1161,10 +1164,13 @@ function add(gui, object, property, params) {
|
|||||||
|
|
||||||
if (params.color) {
|
if (params.color) {
|
||||||
controller = new ColorController(object, property);
|
controller = new ColorController(object, property);
|
||||||
} else if (params.custom && (object[property] === undefined)) {
|
} else if(object instanceof CustomController && ( property === undefined )){
|
||||||
|
controller = object;
|
||||||
|
} else if (!(object instanceof CustomController) && params.custom && (object[property] === undefined)) {
|
||||||
controller = new CustomController(object, property);
|
controller = new CustomController(object, property);
|
||||||
} else {
|
}else {
|
||||||
const factoryArgs = [object, property].concat(params.factoryArgs);
|
const factoryArgs = object instanceof CustomController ?
|
||||||
|
[property].concat(params.factoryArgs) : [object, property].concat(params.factoryArgs);
|
||||||
controller = ControllerFactory.apply(gui, factoryArgs);
|
controller = ControllerFactory.apply(gui, factoryArgs);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1178,7 +1184,8 @@ function add(gui, object, property, params) {
|
|||||||
|
|
||||||
const container = document.createElement('div');
|
const container = document.createElement('div');
|
||||||
|
|
||||||
const name = params.custom && ( controller instanceof CustomController === false ) ? new CustomController(object).domElement : document.createElement('span');
|
const name = params.custom && ( controller instanceof CustomController === false ) ?
|
||||||
|
( object instanceof CustomController ? object.domElement : new CustomController(object).domElement ) : document.createElement('span');
|
||||||
if (!params.custom)
|
if (!params.custom)
|
||||||
name.innerHTML = controller.property;
|
name.innerHTML = controller.property;
|
||||||
dom.addClass(name, 'property-name');
|
dom.addClass(name, 'property-name');
|
||||||
|
Loading…
Reference in New Issue
Block a user