1 #
2 # tk/selection.rb : control selection
3 #
4 require 'tk'
5
6 module TkSelection
7 include Tk
8 extend Tk
9
10 TkCommandNames = ['selection'.freeze].freeze
11
12 def self.clear(sel=nil)
13 if sel
14 tk_call_without_enc('selection', 'clear', '-selection', sel)
15 else
16 tk_call_without_enc('selection', 'clear')
17 end
18 end
19 def self.clear_on_display(win, sel=nil)
20 if sel
21 tk_call_without_enc('selection', 'clear',
22 '-displayof', win, '-selection', sel)
23 else
24 tk_call_without_enc('selection', 'clear', '-displayof', win)
25 end
26 end
27 def clear(sel=nil)
28 TkSelection.clear_on_display(self, sel)
29 self
30 end
31
32 def self.get(keys=nil)
33 #tk_call('selection', 'get', *hash_kv(keys))
34 _fromUTF8(tk_call_without_enc('selection', 'get', *hash_kv(keys)))
35 end
36 def self.get_on_display(win, keys=nil)
37 #tk_call('selection', 'get', '-displayof', win, *hash_kv(keys))
38 _fromUTF8(tk_call_without_enc('selection', 'get', '-displayof',
39 win, *hash_kv(keys)))
40 end
41 def get(keys=nil)
42 TkSelection.get_on_display(self, sel)
43 end
44
45 def self.handle(win, func=Proc.new, keys=nil, &b)
46 if func.kind_of?(Hash) && keys == nil
47 keys = func
48 func = Proc.new(&b)
49 end
50 args = ['selection', 'handle']
51 args.concat(hash_kv(keys))
52 args.concat([win, func])
53 tk_call_without_enc(*args)
54 end
55 def handle(func=Proc.new, keys=nil, &b)
56 TkSelection.handle(self, func, keys, &b)
57 end
58
59 def self.get_owner(sel=nil)
60 if sel
61 window(tk_call_without_enc('selection', 'own', '-selection', sel))
62 else
63 window(tk_call_without_enc('selection', 'own'))
64 end
65 end
66 def self.get_owner_on_display(win, sel=nil)
67 if sel
68 window(tk_call_without_enc('selection', 'own',
69 '-displayof', win, '-selection', sel))
70 else
71 window(tk_call_without_enc('selection', 'own', '-displayof', win))
72 end
73 end
74 def get_owner(sel=nil)
75 TkSelection.get_owner_on_display(self, sel)
76 self
77 end
78
79 def self.set_owner(win, keys=nil)
80 tk_call_without_enc('selection', 'own', *(hash_kv(keys) << win))
81 end
82 def set_owner(keys=nil)
83 TkSelection.set_owner(self, keys)
84 self
85 end
86 end