]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/xul/staff_client/chrome/content/util/clipboard.js
e03b3e370b267fe8f07f7b67da7def2f08808029
[working/Evergreen.git] / Open-ILS / xul / staff_client / chrome / content / util / clipboard.js
1 dump('entering util/clipboard.js\n');
2
3 if (typeof util == 'undefined') var util = {};
4 util.clipboard = {};
5
6 util.clipboard.EXPORT_OK    = [ 
7     'cut', 'copy', 'paste'
8 ];
9 util.clipboard.EXPORT_TAGS    = { ':all' : util.clipboard.EXPORT_OK };
10
11 util.clipboard.cut = function() {
12     try {
13         netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
14         var n = document.popupNode;
15         if (n.getAttribute('readonly')=='true') return;
16         var v = n.value;
17         var start = n.selectionStart;
18         var end = n.selectionEnd;
19         var clip = v.substring( start, end );
20         n.value = v.substring(0, start) + v.substring(end, v.length);
21         const gClipboardHelper = Components.classes["@mozilla.org/widget/clipboardhelper;1"]
22             .getService(Components.interfaces.nsIClipboardHelper);
23         gClipboardHelper.copyString(clip);
24         n.setSelectionRange(start,start);
25         dump('Copied ' + clip + '\n');
26     } catch(E) {
27         alert(E);
28     }
29 }
30
31 util.clipboard.copy = function() {
32     try {
33         netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
34         var n = document.popupNode;
35         var v = n.value;
36         var start = n.selectionStart;
37         var end = n.selectionEnd;
38         var clip = v.substring( start, end );
39         const gClipboardHelper = Components.classes["@mozilla.org/widget/clipboardhelper;1"]
40             .getService(Components.interfaces.nsIClipboardHelper);
41         gClipboardHelper.copyString(clip);
42         dump('Copied ' + clip + '\n');
43     } catch(E) {
44         alert(E);
45     }
46 }
47
48 util.clipboard.paste = function() {
49     try {
50         netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
51         var n = document.popupNode;
52         if (n.getAttribute('readonly')=='true') return;
53         var v = n.value;
54         var start = n.selectionStart;
55         var end = n.selectionEnd;
56         var cb = Components.classes["@mozilla.org/widget/clipboard;1"].getService(Components.interfaces.nsIClipboard); 
57         if (!cb) return false; 
58         var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable); 
59         if (!trans) return false; 
60         trans.addDataFlavor("text/unicode"); 
61         cb.getData(trans, cb.kGlobalClipboard);
62         var str = {}; var strLength = {};
63         trans.getTransferData("text/unicode",str,strLength);
64         if (str) str = str.value.QueryInterface(Components.interfaces.nsISupportsString);
65         var clip; if (str) clip = str.data.substring(0, strLength.value / 2);
66         n.value = v.substring(0, start) + clip + v.substring(end, v.length);
67         n.setSelectionRange(start + clip.length,start + clip.length);
68         dump('Pasted ' + clip + '\n');
69     } catch(E) {
70         alert(E);
71     }
72 }
73
74 dump('exiting util/clipboard.js\n');