3d-interface/js/l3d/apps/prototype/ButtonManager.js

79 lines
2.5 KiB
JavaScript
Raw Normal View History

2015-07-22 10:10:11 +02:00
var ButtonManager = function(camera, recommendations, previewer) {
this.camera = camera;
2015-07-22 10:10:11 +02:00
this.recommendations = recommendations;
2015-05-18 09:28:51 +02:00
this.previewer = previewer;
this.showArrows = true;
this.beenFullscreen = false;
// this.fullElement = document.getElementById('fullarrow');
this.resetElement = document.getElementById('reset');
this.undoElement = document.getElementById('undo');
this.redoElement = document.getElementById('redo');
2015-06-19 15:54:09 +02:00
this.pointerLockElement = document.getElementById('lock');
this.showarrowsElement = document.getElementById('showarrows');
// this.recommendationElement = document.getElementById('recommendation');
2015-05-18 09:28:51 +02:00
(function(self) {
self.undoElement.onclick = function() {self.camera.undo(); self.updateElements();};
self.redoElement.onclick = function() {self.camera.redo(); self.updateElements();};
// self.fullElement.onclick = function() {
2015-07-22 10:10:11 +02:00
// self.recommendations.map(function(camera) {
// if (!(camera instanceof PointerCamera)) {
// camera.fullArrow = self.fullElement.checked;
// }
// });
// };
2015-06-19 15:54:09 +02:00
self.pointerLockElement.onchange = function() {
self.camera.shouldLock = self.pointerLockElement.checked;
self.camera.onPointerLockChange();
2015-07-09 15:38:56 +02:00
2015-07-22 10:10:11 +02:00
// Log (this will change option in the session)
var bakup = L3D.DB.Private.enabled;
if (!bakup)
L3D.DB.enable();
2015-07-17 16:28:55 +02:00
var event = new L3D.DB.Event.SwitchedLockOption();
2015-07-09 15:38:56 +02:00
event.locked = self.pointerLockElement.checked;
event.send();
2015-07-22 10:10:11 +02:00
if (!bakup)
L3D.DB.disable();
};
2015-06-19 15:54:09 +02:00
self.showarrowsElement.onchange = function() {self.showArrows = self.showarrowsElement.checked;};
2015-05-20 15:20:59 +02:00
self.resetElement.onclick = function() {
// Reinit camera
self.camera.reset();
};
2015-05-18 09:28:51 +02:00
// self.recommendationElement.onchange = function() {
// previewer.fixedRecommendation(self.recommendationElement.checked);
// };
})(this);
};
ButtonManager.prototype.updateElements = function() {
// Update icon
if (!this.camera.undoable()) {
2015-06-03 15:34:20 +02:00
this.undoElement.className = "btn btn-default navbar-btn";
} else {
2015-06-03 15:34:20 +02:00
this.undoElement.className = "btn btn-primary navbar-btn";
}
if (!this.camera.redoable()) {
2015-06-03 15:34:20 +02:00
this.redoElement.className = "btn btn-default navbar-btn";
} else {
2015-06-03 15:34:20 +02:00
this.redoElement.className = "btn btn-primary navbar-btn";
}
};