1# 2# tk/clipboard.rb : methods to treat clipboard 3# 4require 'tk' 5 6module 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 75end 76