summaryrefslogtreecommitdiff
path: root/js/clipboard.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/clipboard.js')
-rw-r--r--js/clipboard.js114
1 files changed, 72 insertions, 42 deletions
diff --git a/js/clipboard.js b/js/clipboard.js
index 501b189..97261bc 100644
--- a/js/clipboard.js
+++ b/js/clipboard.js
@@ -1,49 +1,79 @@
var clipboard = (function () {
- var format;
- var disabled = false;
- var contentType = 'text/plain;charset=utf-8'
- document.body.addEventListener('copy', function (e) {
- if (disabled) { return }
- if (e.clipboardData) {
- e.preventDefault();
- e.clipboardData.setData(contentType, canvas.irssi());
- }
- if (window.clipboardData) {
- e.returnValue = false;
- window.clipboardData.setData(contentType, canvas.irssi());
- }
- }, false);
-
- function import_data () {
- var data = import_textarea.value
- lines = data.split("\n")
- }
- function export_data () {
- var output
- switch (format) {
- case 'ascii':
- output = canvas.ascii()
- break
- case 'mirc':
- output = canvas.mirc()
- break
- case 'irssi':
- output = canvas.irssi()
- break
- }
- }
+ var exports = {
+ format: "irssi",
+ importing: false,
+ visible: false,
+
+ bind: 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)
+ export_button.addEventListener("click", exports.export_data)
+ import_textarea.addEventListener("focus", exports.focus)
+ import_textarea.addEventListener("blur", exports.blur)
+ import_irssi.setAttribute("checked", true)
+ },
+ setFormat: function (name) {
+ return function () {
+ clipboard.format = name
+ if (! clipboard.importing) { clipboard.export_data() }
+ }
+ },
+ show: function () { import_rapper.style.display = "block"; clipboard.visible = true },
+ hide: function () { import_rapper.style.display = "none"; clipboard.visible = false },
+ focus: function () {
+ if (! clipboard.importing) {
+ import_textarea.focus()
+ import_textarea.select()
+ }
+ },
+ blur: function () {
+ },
- import_ascii.addEventListener("click", function(){ format = "ascii" })
- import_irssi.addEventListener("click", function(){ format = "irssi" })
- import_mirc.addEventListener("click", function(){ format = "mirc" })
- import_button.addEventListener("click", import_data)
- export_button.addEventListener("click", export_data)
- // import_textarea
+ import_mode: function () {
+ focus()
+ clipboard.importing = true
+ import_button.style.display = "inline-block"
+ export_button.style.display = format_group.display = "none"
+ import_textarea.value = ""
+ },
+ export_mode: function () {
+ focus()
+ clipboard.importing = false
+ import_button.style.display = "none"
+ export_button.style.display = format_group.display = "inline-block"
+ clipboard.export_data()
+ },
+ import_data: function () {
+ var data = import_textarea.value
+ lines = data.split("\n")
+ var width = lines.reduce(function(a,b){ return Math.max(a, b.length) })
+ var height = lines.length
+ },
+ export_data: function () {
+ var output
+ switch (clipboard.format) {
+ case 'ascii':
+ output = canvas.ascii()
+ break
+ case 'mirc':
+ output = canvas.mirc()
+ break
+ case 'irssi':
+ output = canvas.irssi()
+ break
+ }
+ import_textarea.value = output
+ clipboard.focus()
+ return output
+ },
- return {
- enable: function(){ disabled = false },
- disable: function(){ disabled = true }
}
+ exports.bind()
+
+ return exports
+
})() \ No newline at end of file