1 #
2 # tk/clipboard.rb : methods to treat clipboard
3 #
4 require 'tk'
5
6 module TkClipboard
7 include Tk
8 extend Tk
9
10 TkCommandNames = ['clipboard'.freeze].freeze
11
12 def self.clear(win=nil)
13 if win
14 tk_call_without_enc('clipboard', 'clear', '-displayof', win)
15 else
16 tk_call_without_enc('clipboard', 'clear')
17 end
18 end
19 def self.clear_on_display(win)
20 tk_call_without_enc('clipboard', 'clear', '-displayof', win)
21 end
22
23 def self.get(type=nil)
24 if type
25 tk_call_without_enc('clipboard', 'get', '-type', type)
26 else
27 tk_call_without_enc('clipboard', 'get')
28 end
29 end
30 def self.get_on_display(win, type=nil)
31 if type
32 tk_call_without_enc('clipboard', 'get', '-displayof', win, '-type', type)
33 else
34 tk_call_without_enc('clipboard', 'get', '-displayof', win)
35 end
36 end
37
38 def self.set(data, keys=nil)
39 clear
40 append(data, keys)
41 end
42 def self.set_on_display(win, data, keys=nil)
43 clear(win)
44 append_on_display(win, data, keys)
45 end
46
47 def self.append(data, keys=nil)
48 args = ['clipboard', 'append']
49 args.concat(hash_kv(keys))
50 args.concat(['--', data])
51 tk_call(*args)
52 end
53 def self.append_on_display(win, data, keys=nil)
54 args = ['clipboard', 'append', '-displayof', win]
55 args.concat(hash_kv(keys))
56 args.concat(['--', data])
57 tk_call(*args)
58 end
59
60 def clear
61 TkClipboard.clear_on_display(self)
62 self
63 end
64 def get(type=nil)
65 TkClipboard.get_on_display(self, type)
66 end
67 def set(data, keys=nil)
68 TkClipboard.set_on_display(self, data, keys)
69 self
70 end
71 def append(data, keys=nil)
72 TkClipboard.append_on_display(self, data, keys)
73 self
74 end
75 end