70 lines
2.2 KiB
JavaScript
70 lines
2.2 KiB
JavaScript
'use strict';
|
|
|
|
/*@
|
|
Ox.Clipboard <o> Basic clipboard handler
|
|
add <f> Add items to clipboard
|
|
(items[, type]) -> <n> Number of items
|
|
clear <f> Clear clipboard
|
|
() -> <n> Number of items
|
|
copy <f> Copy items to clipboard
|
|
(items[, type]) -> <n> Number of items
|
|
paste <f> Paste items from clipboard
|
|
() -> <a> Items
|
|
type <f> Get item type
|
|
() -> <s|undefined> Item type
|
|
@*/
|
|
Ox.Clipboard = function() {
|
|
var clipboard = {items: [], type: void 0},
|
|
$element;
|
|
return {
|
|
_print: function() {
|
|
Ox.print(JSON.stringify(clipboard));
|
|
},
|
|
add: function(items, type) {
|
|
items = Ox.makeArray(items);
|
|
if (items.length) {
|
|
if (type != clipboard.type) {
|
|
Ox.Clipboard.clear();
|
|
}
|
|
clipboard = {
|
|
items: Ox.unique(clipboard.items.concat(items)),
|
|
type: type
|
|
};
|
|
$element && $element.triggerEvent('add');
|
|
}
|
|
return clipboard.items.length;
|
|
},
|
|
bindEvent: function() {
|
|
if (!$element) {
|
|
$element = Ox.Element();
|
|
}
|
|
$element.bindEvent.apply($element, arguments);
|
|
},
|
|
clear: function() {
|
|
clipboard = {items: [], type: void 0};
|
|
$element && $element.triggerEvent('clear');
|
|
return clipboard.items.length;
|
|
},
|
|
copy: function(items, type) {
|
|
items = Ox.makeArray(items);
|
|
if (items.length) {
|
|
clipboard = {items: items, type: type};
|
|
$element && $element.triggerEvent('copy');
|
|
}
|
|
return clipboard.items.length;
|
|
},
|
|
items: function(type) {
|
|
return !type || type == clipboard.type ? clipboard.items.length : 0;
|
|
},
|
|
paste: function(type) {
|
|
$element && $element.triggerEvent('paste');
|
|
return !type || type == clipboard.type ? clipboard.items : [];
|
|
},
|
|
type: function() {
|
|
return clipboard.type;
|
|
},
|
|
unbindEvent: function() {
|
|
$element && $element.unbindEvent.apply($element, arguments);
|
|
}
|
|
};
|
|
};
|