summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--index.html5
-rw-r--r--js/app.js3
-rw-r--r--js/clipboard.js51
-rw-r--r--js/draw.js1
-rw-r--r--js/util.js1
5 files changed, 55 insertions, 6 deletions
diff --git a/index.html b/index.html
index d431ebe..09ee42b 100644
--- a/index.html
+++ b/index.html
@@ -44,7 +44,10 @@
<input type="radio" name="import_format" id="import_irssi"><label for="import_irssi">irssi</label>
<input type="radio" name="import_format" id="import_mirc"><label for="import_mirc">mirc</label>
</span>
- <button id="import_button">import</button>
+ <span id="import_buttons">
+ <button id="import_button">import ascii</button>
+ <button id="import_html">import sally</button>
+ </span>
<button id="export_button">export</button><br>
<textarea id="import_textarea"></textarea>
</div>
diff --git a/js/app.js b/js/app.js
index a9f7bb7..e9ed28f 100644
--- a/js/app.js
+++ b/js/app.js
@@ -4,6 +4,7 @@ var drawing = false
var erasing = false
var selecting = false
var filling = false
+var changed = false
var focused
var canvas, tools, palette, controls, brush, mode, current_tool, current_canvas
@@ -58,7 +59,7 @@ function bind () {
})
window.onbeforeunload = function() {
- return "Are you sure you want to navigate away?";
+ if (changed) return "You have edited this drawing."
}
}
diff --git a/js/clipboard.js b/js/clipboard.js
index da326ff..66c0c67 100644
--- a/js/clipboard.js
+++ b/js/clipboard.js
@@ -9,10 +9,12 @@ var clipboard = (function () {
import_ascii.addEventListener("change", exports.setFormat("ascii"))
import_irssi.addEventListener("change", exports.setFormat("irssi"))
import_mirc.addEventListener("change", exports.setFormat("mirc"))
- import_button.addEventListener("click", exports.import_data)
+ import_button.addEventListener("click", exports.import_text)
+ import_html.addEventListener("click", exports.import_html)
export_button.addEventListener("click", exports.export_data)
import_textarea.addEventListener("focus", exports.focus)
import_textarea.addEventListener("blur", exports.blur)
+ import_textarea.addEventListener('paste', exports.paste)
import_irssi.setAttribute("checked", true)
},
setFormat: function (name) {
@@ -35,18 +37,59 @@ var clipboard = (function () {
import_mode: function () {
focus()
clipboard.importing = true
- import_button.style.display = "inline-block"
+ import_buttons.style.display = "inline-block"
export_button.style.display = format_group.style.display = "none"
import_textarea.value = ""
},
export_mode: function () {
focus()
clipboard.importing = false
- import_button.style.display = "none"
+ import_buttons.style.display = "none"
export_button.style.display = format_group.style.display = "inline-block"
clipboard.export_data()
},
- import_data: function () {
+
+ paste: function (e) {
+ toArray(e.clipboardData.items).forEach(function(item,i){
+ console.log(item.kind, item.type)
+ if (item.kind == 'file' && item.type.match('image/')) {
+ var blob = item.getAsFile();
+ window.URL = window.URL || window.webkitURL;
+ var blobUrl = window.URL.createObjectURL(blob);
+
+ var img = document.createElement('img');
+ img.onerror = function(){
+ // error!
+ console.log("error! bad image!")
+ }
+ img.onload = function(){
+ // load!
+ //document.body.appendChild(img);
+ // handle importing an image?
+ console.log("image import not supported")
+ }
+ img.src = blobUrl;
+ }
+ // this can be text/plain or text/html..
+ else if (item.kind == 'string' && item.type.match('text/plain') && e.clipboardData.items.length > 1) {
+ return
+ }
+ else if (item.kind == 'string') {
+ item.getAsString(function(text){
+ import_textarea.value = text
+ })
+ }
+ else {
+ console.error("unknown type!", item.type)
+ }
+ })
+
+ },
+
+ import_html: function () {
+ },
+
+ import_text: function () {
var data = import_textarea.value
lines = data.split("\n")
var width = lines.reduce(function(a,b){ return Math.max(a, b.length) })
diff --git a/js/draw.js b/js/draw.js
index fbbfbc1..36be079 100644
--- a/js/draw.js
+++ b/js/draw.js
@@ -5,6 +5,7 @@ var draw = (function(){
function down (e, lex, point) {
erasing = (e.which == "3" || e.ctrlKey)
+ changed = true
if (e.shiftKey) {
line (lex, last_point, point, erasing)
}
diff --git a/js/util.js b/js/util.js
index 2a4f86a..91055f9 100644
--- a/js/util.js
+++ b/js/util.js
@@ -83,6 +83,7 @@ function smoothstep(min,max,n){
return t * t * (3.0 - 2.0 * t)
}
+function toArray(a){ return Array.prototype.slice.call(a) }
function shuffle(a){
for (var i = a.length; i > 0; i--){
var r = randint(i)