1 #
2 # tk/macpkg.rb : methods for Tcl/Tk packages for Macintosh
3 # 2000/11/22 by Hidetoshi Nagai <nagai@ai.kyutech.ac.jp>
4 #
5 # ATTENTION !!
6 # This is NOT TESTED. Because I have no test-environment.
7 #
8 #
9 require 'tk'
10
11 module Tk
12 def Tk.load_tclscript_rsrc(resource_name, file=None)
13 # Mac only
14 tk_call('source', '-rsrc', resource_name, file)
15 end
16
17 def Tk.load_tclscript_rsrcid(resource_id, file=None)
18 # Mac only
19 tk_call('source', '-rsrcid', resource_id, file)
20 end
21 end
22
23 module Tk::MacResource
24 end
25 #TkMacResource = Tk::MacResource
26 Tk.__set_toplevel_aliases__(:Tk, Tk::MacResource, :TkMacResource)
27
28 module Tk::MacResource
29 extend Tk
30 extend Tk::MacResource
31
32 TkCommandNames = ['resource'.freeze].freeze
33
34 PACKAGE_NAME = 'resource'.freeze
35 def self.package_name
36 PACKAGE_NAME
37 end
38
39 tk_call_without_enc('package', 'require', 'resource')
40
41 def close(rsrcRef)
42 tk_call('resource', 'close', rsrcRef)
43 end
44
45 def delete(rsrcType, opts=nil)
46 tk_call('resource', 'delete', *(hash_kv(opts) << rsrcType))
47 end
48
49 def files(rsrcRef=nil)
50 if rsrcRef
51 tk_call('resource', 'files', rsrcRef)
52 else
53 tk_split_simplelist(tk_call('resource', 'files'))
54 end
55 end
56
57 def list(rsrcType, rsrcRef=nil)
58 tk_split_simplelist(tk_call('resource', 'list', rsrcType, rsrcRef))
59 end
60
61 def open(fname, access=nil)
62 tk_call('resource', 'open', fname, access)
63 end
64
65 def read(rsrcType, rsrcID, rsrcRef=nil)
66 tk_call('resource', 'read', rsrcType, rsrcID, rsrcRef)
67 end
68
69 def types(rsrcRef=nil)
70 tk_split_simplelist(tk_call('resource', 'types', rsrcRef))
71 end
72
73 def write(rsrcType, data, opts=nil)
74 tk_call('resource', 'write', *(hash_kv(opts) << rsrcType << data))
75 end
76
77 module_function :close, :delete, :files, :list, :open, :read, :types, :write
78 end