mirror of
https://github.com/lospec/pixel-editor.git
synced 2023-08-10 21:12:51 +03:00
Moved dialogue related things to their own IIFE
Refactored all calls to showDialogue and closeDialogue to use the IIFE version
This commit is contained in:
parent
87ab2da6b5
commit
e4ecc3d607
77
js/Dialogue.js
Normal file
77
js/Dialogue.js
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
/** Handles the pop up windows (NewPixel, ResizeCanvas ecc)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
const Dialogue = (() => {
|
||||||
|
let currentOpenDialogue = "";
|
||||||
|
const popUpContainer = document.getElementById("pop-up-container");
|
||||||
|
const cancelButtons = popUpContainer.getElementsByClassName('close-button');
|
||||||
|
|
||||||
|
// Add click handlers for all cancel buttons
|
||||||
|
for (var i = 0; i < cancelButtons.length; i++) {
|
||||||
|
cancelButtons[i].addEventListener('click', function () {
|
||||||
|
closeDialogue();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Closes a dialogue window if the user clicks everywhere but in the current window
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
popUpContainer.addEventListener('click', function (e) {
|
||||||
|
if (e.target == popUpContainer)
|
||||||
|
closeDialogue();
|
||||||
|
});
|
||||||
|
|
||||||
|
/** Shows the dialogue window called dialogueName, which is a child of pop-up-container in pixel-editor.hbs
|
||||||
|
*
|
||||||
|
* @param {*} dialogueName The name of the window to show
|
||||||
|
* @param {*} trackEvent Should I track the GA event?
|
||||||
|
*/
|
||||||
|
function showDialogue (dialogueName, trackEvent) {
|
||||||
|
if (typeof trackEvent === 'undefined') trackEvent = true;
|
||||||
|
|
||||||
|
// Updating currently open dialogue
|
||||||
|
currentOpenDialogue = dialogueName;
|
||||||
|
// The pop up window is open
|
||||||
|
dialogueOpen = true;
|
||||||
|
// Showing the pop up container
|
||||||
|
popUpContainer.style.display = 'block';
|
||||||
|
|
||||||
|
// Showing the window
|
||||||
|
document.getElementById(dialogueName).style.display = 'block';
|
||||||
|
|
||||||
|
// If I'm opening the palette window, I initialize the colour picker
|
||||||
|
if (dialogueName == 'palette-block' && documentCreated) {
|
||||||
|
cpInit();
|
||||||
|
pbInit();
|
||||||
|
}
|
||||||
|
|
||||||
|
//track google event
|
||||||
|
if (trackEvent)
|
||||||
|
ga('send', 'event', 'Palette Editor Dialogue', dialogueName); /*global ga*/
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Closes the current dialogue by hiding the window and the pop-up-container
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
function closeDialogue () {
|
||||||
|
popUpContainer.style.display = 'none';
|
||||||
|
var popups = popUpContainer.children;
|
||||||
|
|
||||||
|
for (var i = 0; i < popups.length; i++) {
|
||||||
|
popups[i].style.display = 'none';
|
||||||
|
}
|
||||||
|
|
||||||
|
dialogueOpen = false;
|
||||||
|
|
||||||
|
if (currentOpenDialogue == "palette-block") {
|
||||||
|
ColorModule.addToSimplePalette();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
showDialogue,
|
||||||
|
closeDialogue
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
|
||||||
|
console.log("Dialog: " + Dialogue);
|
@ -67,7 +67,7 @@ Input.on('click', 'create-button', function (){
|
|||||||
Util.setText('preset-button', 'Choose a preset...');
|
Util.setText('preset-button', 'Choose a preset...');
|
||||||
});
|
});
|
||||||
|
|
||||||
/** Triggered when the "Create" button in the new pixel dialogue is pressed
|
/** Triggered when the "Create" button in the splash page is pressed
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
Input.on('click', 'create-button-splash', function (){
|
Input.on('click', 'create-button-splash', function (){
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
/** Creates the colour palette
|
/** Creates the colour palette when starting up the editor from _newPixel.js
|
||||||
*
|
*
|
||||||
* @param {*} paletteColors The colours of the palette
|
* @param {*} paletteColors The colours of the palette
|
||||||
* @param {*} deletePreviousPalette Tells if the app should delete the previous palette or not
|
* @param {*} deletePreviousPalette Tells if the app should delete the previous palette or not
|
||||||
|
@ -1,64 +0,0 @@
|
|||||||
let currentOpenDialogue = "";
|
|
||||||
|
|
||||||
/** Shows the dialogue window called dialogueName, which is a child of pop-up-container in pixel-editor.hbs
|
|
||||||
*
|
|
||||||
* @param {*} dialogueName The name of the window to show
|
|
||||||
* @param {*} trackEvent Should I track the GA event?
|
|
||||||
*/
|
|
||||||
function showDialogue (dialogueName, trackEvent) {
|
|
||||||
if (typeof trackEvent === 'undefined') trackEvent = true;
|
|
||||||
|
|
||||||
// Updating currently open dialogue
|
|
||||||
currentOpenDialogue = dialogueName;
|
|
||||||
// The pop up window is open
|
|
||||||
dialogueOpen = true;
|
|
||||||
// Showing the pop up container
|
|
||||||
popUpContainer.style.display = 'block';
|
|
||||||
|
|
||||||
// Showing the window
|
|
||||||
document.getElementById(dialogueName).style.display = 'block';
|
|
||||||
|
|
||||||
// If I'm opening the palette window, I initialize the colour picker
|
|
||||||
if (dialogueName == 'palette-block' && documentCreated) {
|
|
||||||
cpInit();
|
|
||||||
pbInit();
|
|
||||||
}
|
|
||||||
|
|
||||||
//track google event
|
|
||||||
if (trackEvent)
|
|
||||||
ga('send', 'event', 'Palette Editor Dialogue', dialogueName); /*global ga*/
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Closes the current dialogue by hiding the window and the pop-up-container
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
function closeDialogue () {
|
|
||||||
popUpContainer.style.display = 'none';
|
|
||||||
var popups = popUpContainer.children;
|
|
||||||
|
|
||||||
for (var i = 0; i < popups.length; i++) {
|
|
||||||
popups[i].style.display = 'none';
|
|
||||||
}
|
|
||||||
|
|
||||||
dialogueOpen = false;
|
|
||||||
|
|
||||||
if (currentOpenDialogue == "palette-block") {
|
|
||||||
ColorModule.addToSimplePalette();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Closes a dialogue window if the user clicks everywhere but in the current window
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
popUpContainer.addEventListener('click', function (e) {
|
|
||||||
if (e.target == popUpContainer)
|
|
||||||
closeDialogue();
|
|
||||||
});
|
|
||||||
|
|
||||||
//add click handlers for all cancel buttons
|
|
||||||
var cancelButtons = popUpContainer.getElementsByClassName('close-button');
|
|
||||||
for (var i = 0; i < cancelButtons.length; i++) {
|
|
||||||
cancelButtons[i].addEventListener('click', function () {
|
|
||||||
closeDialogue();
|
|
||||||
});
|
|
||||||
}
|
|
@ -1 +1 @@
|
|||||||
showDialogue("splash", false);
|
Dialogue.showDialogue("splash", false);
|
@ -27,7 +27,7 @@ for (var i = 1; i < mainMenuItems.length; i++) {
|
|||||||
|
|
||||||
//File Menu
|
//File Menu
|
||||||
case 'New':
|
case 'New':
|
||||||
showDialogue('new-pixel');
|
Dialogue.showDialogue('new-pixel');
|
||||||
break;
|
break;
|
||||||
case 'Save project':
|
case 'Save project':
|
||||||
//create name
|
//create name
|
||||||
@ -169,17 +169,17 @@ for (var i = 1; i < mainMenuItems.length; i++) {
|
|||||||
//fill form with current settings values
|
//fill form with current settings values
|
||||||
Util.setValue('setting-numberOfHistoryStates', settings.numberOfHistoryStates);
|
Util.setValue('setting-numberOfHistoryStates', settings.numberOfHistoryStates);
|
||||||
|
|
||||||
showDialogue('settings');
|
Dialogue.showDialogue('settings');
|
||||||
break;
|
break;
|
||||||
//Help Menu
|
//Help Menu
|
||||||
case 'Help':
|
case 'Help':
|
||||||
showDialogue('help');
|
Dialogue.showDialogue('help');
|
||||||
break;
|
break;
|
||||||
case 'About':
|
case 'About':
|
||||||
showDialogue('about');
|
Dialogue.showDialogue('about');
|
||||||
break;
|
break;
|
||||||
case 'Changelog':
|
case 'Changelog':
|
||||||
showDialogue('changelog');
|
Dialogue.showDialogue('changelog');
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -143,7 +143,7 @@ function newPixel (width, height, editorMode, fileContent = null) {
|
|||||||
redoStates = [];
|
redoStates = [];
|
||||||
|
|
||||||
// Closing the "New Pixel dialogue"
|
// Closing the "New Pixel dialogue"
|
||||||
closeDialogue();
|
Dialogue.closeDialogue();
|
||||||
// Updating the cursor of the current tool
|
// Updating the cursor of the current tool
|
||||||
currentTool.updateCursor();
|
currentTool.updateCursor();
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ window.onload = function () {
|
|||||||
console.log('no url parameters were found');
|
console.log('no url parameters were found');
|
||||||
|
|
||||||
//show splash screen
|
//show splash screen
|
||||||
showDialogue('splash', false);
|
Dialogue.showDialogue('splash', false);
|
||||||
}
|
}
|
||||||
|
|
||||||
//url parameters were specified
|
//url parameters were specified
|
||||||
@ -53,7 +53,7 @@ window.onload = function () {
|
|||||||
//dimentions were not specified -- show splash screen with palette preselected
|
//dimentions were not specified -- show splash screen with palette preselected
|
||||||
else {
|
else {
|
||||||
//show splash
|
//show splash
|
||||||
showDialogue('new-pixel', false);
|
Dialogue.showDialogue('new-pixel', false);
|
||||||
}
|
}
|
||||||
|
|
||||||
})
|
})
|
||||||
@ -62,7 +62,7 @@ window.onload = function () {
|
|||||||
console.warn('failed to load palette "'+paletteSlug+'"', error);
|
console.warn('failed to load palette "'+paletteSlug+'"', error);
|
||||||
|
|
||||||
//proceed to splash screen
|
//proceed to splash screen
|
||||||
showDialogue('splash', false);
|
Dialogue.showDialogue('splash', false);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
@ -15,7 +15,7 @@ let rcBorders = {left: 0, right: 0, top: 0, bottom: 0};
|
|||||||
function openResizeCanvasWindow() {
|
function openResizeCanvasWindow() {
|
||||||
// Initializes the inputs
|
// Initializes the inputs
|
||||||
initResizeCanvasInputs();
|
initResizeCanvasInputs();
|
||||||
showDialogue('resize-canvas');
|
Dialogue.showDialogue('resize-canvas');
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Initializes the canvas resizing input
|
/** Initializes the canvas resizing input
|
||||||
@ -201,7 +201,7 @@ function resizeCanvas(event, size, customData, saveHistory = true) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
closeDialogue();
|
Dialogue.closeDialogue();
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Trims the canvas so tat the sprite is perfectly contained in it
|
/** Trims the canvas so tat the sprite is perfectly contained in it
|
||||||
|
@ -32,7 +32,7 @@ function openResizeSpriteWindow() {
|
|||||||
startData.widthPercentage = 100;
|
startData.widthPercentage = 100;
|
||||||
|
|
||||||
// Opening the pop up now that it's ready
|
// Opening the pop up now that it's ready
|
||||||
showDialogue('resize-sprite');
|
Dialogue.showDialogue('resize-sprite');
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Initalizes the input values and binds the elements to their events
|
/** Initalizes the input values and binds the elements to their events
|
||||||
@ -152,7 +152,7 @@ function resizeSprite(event, ratio) {
|
|||||||
startData.widthPercentage = 100;
|
startData.widthPercentage = 100;
|
||||||
startData.heightPercentage = 100;
|
startData.heightPercentage = 100;
|
||||||
|
|
||||||
closeDialogue();
|
Dialogue.closeDialogue();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Trust me, the math for the functions below works. If you want to optimize them feel free to have a look, though */
|
/* Trust me, the math for the functions below works. If you want to optimize them feel free to have a look, though */
|
||||||
|
@ -46,5 +46,5 @@ function saveSettings() {
|
|||||||
Cookies.set('pixelEditorSettings', cookieValue, { expires: Infinity });
|
Cookies.set('pixelEditorSettings', cookieValue, { expires: Infinity });
|
||||||
|
|
||||||
//close window
|
//close window
|
||||||
closeDialogue();
|
Dialogue.closeDialogue();
|
||||||
}
|
}
|
@ -13,7 +13,6 @@ var eyedropperPreview = document.getElementById("eyedropper-preview");
|
|||||||
var canvasView = document.getElementById("canvas-view");
|
var canvasView = document.getElementById("canvas-view");
|
||||||
var colors = document.getElementsByClassName("color-button");
|
var colors = document.getElementsByClassName("color-button");
|
||||||
var colorsMenu = document.getElementById("colors-menu");
|
var colorsMenu = document.getElementById("colors-menu");
|
||||||
var popUpContainer = document.getElementById("pop-up-container");
|
|
||||||
|
|
||||||
// main canvas
|
// main canvas
|
||||||
var canvas = document.getElementById('pixel-canvas');
|
var canvas = document.getElementById('pixel-canvas');
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
//=include Util.js
|
//=include Util.js
|
||||||
//=include Input.js
|
//=include Input.js
|
||||||
//=include Color.js
|
//=include Color.js
|
||||||
|
//=include Dialogue.js
|
||||||
|
|
||||||
/**init**/
|
/**init**/
|
||||||
//=include _consts.js
|
//=include _consts.js
|
||||||
@ -23,7 +24,6 @@
|
|||||||
//=include _createColorPalette.js
|
//=include _createColorPalette.js
|
||||||
//=include _changeZoom.js
|
//=include _changeZoom.js
|
||||||
//=include ColorModule.js
|
//=include ColorModule.js
|
||||||
//=include _dialogue.js
|
|
||||||
//!=include _featuresLog.js
|
//!=include _featuresLog.js
|
||||||
//=include _drawLine.js
|
//=include _drawLine.js
|
||||||
//=include _getCursorPosition.js
|
//=include _getCursorPosition.js
|
||||||
|
@ -52,7 +52,7 @@
|
|||||||
<button>Editor</button>
|
<button>Editor</button>
|
||||||
<ul>
|
<ul>
|
||||||
<li><button id="switch-mode-button">Switch to basic mode</button></li>
|
<li><button id="switch-mode-button">Switch to basic mode</button></li>
|
||||||
<li><button onclick="showDialogue('splash', false)">Splash page</button></li>
|
<li><button onclick="Dialogue.showDialogue('splash', false)">Splash page</button></li>
|
||||||
<li><button>Settings</button></li>
|
<li><button>Settings</button></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
Loading…
Reference in New Issue
Block a user