2018-10-24 15:14:46 +00:00
|
|
|
|
|
|
|
var dragging = false
|
|
|
|
var drawing = false
|
|
|
|
var erasing = false
|
|
|
|
var selecting = false
|
|
|
|
var filling = false
|
|
|
|
var changed = false
|
|
|
|
var transforming = false
|
|
|
|
var mirror_x = false
|
|
|
|
var mirror_y = false
|
|
|
|
var focused
|
|
|
|
|
|
|
|
var canvas, tools, palette, controls, brush, mode
|
|
|
|
var current_tool, current_filetool, current_canvas
|
|
|
|
var mouse = { x: 0, y: 0 }
|
|
|
|
|
|
|
|
function init () {
|
|
|
|
build()
|
|
|
|
bind()
|
|
|
|
}
|
|
|
|
function build () {
|
|
|
|
shader.init()
|
|
|
|
// shader.run(canvas)
|
|
|
|
shader.animate()
|
|
|
|
|
|
|
|
canvas.append(canvas_rapper)
|
|
|
|
brush.append(brush_rapper)
|
|
|
|
palette.append(palette_rapper)
|
|
|
|
letters.append(letters_rapper)
|
|
|
|
letters.repaint("Basic Latin")
|
|
|
|
|
|
|
|
controls.circle.focus()
|
|
|
|
// controls.shader.focus()
|
|
|
|
|
|
|
|
brush.bg = colors.red
|
|
|
|
brush.generate()
|
|
|
|
brush.build()
|
|
|
|
|
|
|
|
// controls.grid.use()
|
|
|
|
canvas.resize_rapper()
|
|
|
|
}
|
|
|
|
function bind () {
|
|
|
|
canvas.bind()
|
|
|
|
palette.bind()
|
|
|
|
letters.bind()
|
|
|
|
brush.bind()
|
|
|
|
controls.bind()
|
|
|
|
keys.bind()
|
|
|
|
clipboard.bind()
|
|
|
|
|
|
|
|
window.addEventListener('mouseup', function(e){
|
|
|
|
dragging = erasing = false
|
|
|
|
// if (current_filetool.name != 'shader' && current_filetool.name != 'load' && current_filetool.name != 'save' && is_desktop) {
|
|
|
|
// cursor_input.focus()
|
|
|
|
// }
|
|
|
|
|
|
|
|
var ae = document.activeElement
|
|
|
|
|
2018-10-24 23:57:57 +00:00
|
|
|
if (ae !== shader_textarea && ae !== import_textarea) {
|
2018-10-24 15:14:46 +00:00
|
|
|
if (is_desktop) cursor_input.focus()
|
|
|
|
}
|
|
|
|
|
|
|
|
if (selecting) {
|
|
|
|
selection.up(e)
|
|
|
|
}
|
|
|
|
else if (transforming) {
|
|
|
|
transform.up(e)
|
|
|
|
}
|
|
|
|
})
|
|
|
|
window.addEventListener("touchend", function(){
|
|
|
|
if (current_tool.name === "text") {
|
|
|
|
if (is_desktop) cursor_input.focus()
|
|
|
|
}
|
|
|
|
dragging = false
|
|
|
|
})
|
|
|
|
|
|
|
|
window.addEventListener('mousedown', function(e){
|
|
|
|
// if (current_filetool.name != 'shader' && is_desktop) { cursor_input.focus() }
|
|
|
|
})
|
|
|
|
|
|
|
|
document.addEventListener('DOMContentLoaded', function(){
|
|
|
|
if (is_desktop) { cursor_input.focus() }
|
|
|
|
document.body.classList.remove('loading')
|
|
|
|
})
|
|
|
|
|
|
|
|
window.onbeforeunload = function() {
|
|
|
|
// if (changed && !in_iframe()) return "You have edited this drawing."
|
|
|
|
}
|
|
|
|
|
|
|
|
function in_iframe () {
|
|
|
|
try {
|
|
|
|
return window.self !== window.top;
|
|
|
|
} catch (e) {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
init()
|