var EditorToolbar = View.extend({ el: "#editorToolbar", events: { "mousedown": 'stopPropagation', "click [data-role='undo']": 'undo', "click [data-role='toggle-map-view']": 'toggleMap', "click [data-role='toggle-project-settings']": 'toggleSettings', "click [data-role='open-media-viewer']": 'openMediaViewer', "click [data-role='toggle-presets']": 'togglePresets', // "click [data-role='destroy-media']": 'destroyMedia', "click [data-role='toggle-wallpaper-panel']": 'toggleWallpaper', "click [data-role='toggle-light-control']": 'toggleLightControl', "click [data-role='toggle-text-editor']": 'toggleTextEditor', }, initialize: function(opt){ this.parent = opt.parent }, undo: function(e){ if (e.shiftKey) { var canRedo = UndoStack.redo() console.log("can redo", canRedo) } else { var canUndo = UndoStack.undo() console.log("can undo", canUndo) } }, toggleMap: function(){ var state = ! $("[data-role='toggle-map-view']").hasClass("inuse") this.resetControls() $("[data-role='toggle-map-view']").toggleClass("inuse", state) map.toggle(state) $("#minimap").toggleClass("hide", state) this.parent.info.toggle(state) }, toggleSettings: function(){ // this.resetMode() this.parent.textEditor.hide() this.parent.presets.hide() this.parent.lightControl.hide() this.parent.wallpaperPicker.hide() this.parent.mediaEditor.hide() this.parent.settings.toggle() }, openMediaViewer: function(){ this.parent.mediaViewer.show() this.parent.mediaUpload.show() this.resetMode() this.resetControls() }, resetMode: function(){ // this.resizeMedia(true) // this.destroyMedia(false) $(".inuse").removeClass("inuse") $("body").removeClass("addText") this.parent.hideExtras() this.resetPermissions() }, resetControls: function(){ $(".inuse").removeClass("inuse") this.parent.textEditor.hide() this.parent.wallpaperPicker.hide() this.parent.presets.hide() this.parent.lightControl.hide() this.parent.settings.hide() }, resetPermissions: function(){ editor.permissions.add("pick") editor.permissions.add("move") editor.permissions.add("resize") editor.permissions.remove("destroy") }, destroyMedia: function(e, state){ this.resetControls() if (! state && typeof e == "boolean") { state = e editor.permissions.assign("destroy", state) } else { state = editor.permissions.toggle("destroy") } if (! state) { this.resetPermissions() } else { app.controller.hideExtras() } $(".inuse").removeClass("inuse") $("[data-role='destroy-media']").toggleClass("inuse", state) $("body").toggleClass("destroyActive", state) }, toggleWallpaper: function(){ var state = ! $("[data-role='toggle-wallpaper-panel']").hasClass("inuse") this.resetMode() $("[data-role='toggle-wallpaper-panel']").toggleClass("inuse", state) this.parent.mediaEditor.hide() this.parent.lightControl.hide() this.parent.textEditor.hide() this.parent.settings.hide() this.parent.presets.hide() this.parent.wallpaperPicker.toggle(state) }, toggleLightControl: function(){ var state = ! $("[data-role='toggle-light-control']").hasClass("inuse") this.resetMode() $("[data-role='toggle-light-control']").toggleClass("inuse", state) this.parent.mediaEditor.hide() this.parent.wallpaperPicker.hide() this.parent.textEditor.hide() this.parent.settings.hide() this.parent.presets.hide() this.parent.lightControl.toggle(state) }, toggleTextEditor: function(){ var state = ! $("[data-role='toggle-text-editor']").hasClass("inuse") this.resetMode() $("[data-role='toggle-text-editor']").toggleClass("inuse", state) this.parent.mediaEditor.hide() this.parent.wallpaperPicker.hide() this.parent.lightControl.hide() this.parent.settings.hide() this.parent.presets.hide() this.parent.textEditor.toggle(state) }, togglePresets: function(){ var state = ! $("[data-role='toggle-presets']").hasClass("inuse") this.resetMode() $("[data-role='toggle-presets']").toggleClass("inuse", state) this.parent.mediaEditor.hide() this.parent.wallpaperPicker.hide() this.parent.textEditor.hide() this.parent.settings.hide() this.parent.lightControl.hide() this.parent.presets.toggle(state) }, }) var editor = new function(){ this.permissions = new Permissions({ 'pick': true, 'move': true, 'resize': true, 'destroy': false, }) }