asciiblaster

- draw irc art in your web browser
git clone git://git.acid.vegas/asciiblaster.git
Log | Files | Refs | Archive | README

app.js (2239B)

      1 
      2 var dragging = false
      3 var drawing = false
      4 var erasing = false
      5 var selecting = false
      6 var filling = false
      7 var changed = false
      8 var transforming = false
      9 var mirror_x = false
     10 var mirror_y = false
     11 var focused
     12 
     13 var canvas, tools, palette, controls, brush, mode 
     14 var current_tool, current_filetool, current_canvas
     15 var mouse = { x: 0, y: 0 }
     16 
     17 function init () {
     18   build()
     19   bind()
     20   clipboard.load_from_location()
     21 }
     22 function build () {
     23   shader.init()
     24 //  shader.run(canvas)
     25   shader.animate()
     26 
     27   canvas.append(canvas_rapper)
     28   brush.append(brush_rapper)
     29   palette.append(palette_rapper)
     30   letters.append(letters_rapper)
     31   letters.repaint("Basic Latin")
     32   
     33   controls.circle.focus()
     34 //  controls.shader.focus()
     35 
     36   brush.bg = colors.red
     37   brush.generate()
     38   brush.build()
     39 
     40   // controls.grid.use()
     41   canvas.resize_rapper()
     42 }
     43 function bind () {
     44   canvas.bind()
     45   palette.bind()
     46   letters.bind()
     47   brush.bind()
     48   controls.bind()
     49   keys.bind()
     50   clipboard.bind()
     51   
     52   window.addEventListener('mouseup', function(e){
     53     dragging = erasing = false
     54     // if (current_filetool.name != 'shader' && current_filetool.name != 'load' && current_filetool.name != 'save' && is_desktop) {
     55       // cursor_input.focus()
     56     // }
     57     
     58     var ae = document.activeElement
     59 
     60     if (ae !== shader_textarea && ae !== import_textarea && ae !== username_input && ae !== upload_input) {
     61       if (is_desktop) cursor_input.focus()
     62     }
     63 
     64     if (selecting) {
     65       selection.up(e)
     66     }
     67     else if (transforming) {
     68       transform.up(e)
     69     }
     70   })
     71   window.addEventListener("touchend", function(){
     72     if (current_tool.name === "text") {
     73       if (is_desktop) cursor_input.focus()
     74     }
     75     dragging = false
     76   })
     77   
     78   window.addEventListener('mousedown', function(e){
     79     // if (current_filetool.name != 'shader' && is_desktop) { cursor_input.focus() }
     80   })
     81 
     82   document.addEventListener('DOMContentLoaded', function(){
     83     if (is_desktop) { cursor_input.focus() }
     84     document.body.classList.remove('loading')
     85   })
     86   
     87   window.onbeforeunload = function() {
     88     // if (changed && !in_iframe()) return "You have edited this drawing."
     89   }
     90 
     91   function in_iframe () {
     92     try {
     93       return window.self !== window.top;
     94     } catch (e) {
     95       return true;
     96     }
     97   }
     98 }
     99 
    100 init()