1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
|
#
# style commands
# by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
#
require 'tk'
require 'tkextlib/tile.rb'
module Tk
module Tile
module Style
end
end
end
module Tk::Tile::Style
extend TkCore
end
class << Tk::Tile::Style
if Tk::Tile::TILE_SPEC_VERSION_ID < 8
TkCommandNames = ['style'.freeze].freeze
else
TkCommandNames = ['::ttk::style'.freeze].freeze
end
def configure(style=nil, keys=nil)
if style.kind_of?(Hash)
keys = style
style = nil
end
style = '.' unless style
if Tk::Tile::TILE_SPEC_VERSION_ID < 7
sub_cmd = 'default'
else
sub_cmd = 'configure'
end
if keys && keys != None
tk_call(TkCommandNames[0], sub_cmd, style, *hash_kv(keys))
else
tk_call(TkCommandNames[0], sub_cmd, style)
end
end
alias default configure
def map(style=nil, keys=nil)
if style.kind_of?(Hash)
keys = style
style = nil
end
style = '.' unless style
if keys && keys != None
if keys.kind_of?(Hash)
tk_call(TkCommandNames[0], 'map', style, *hash_kv(keys))
else
simplelist(tk_call(TkCommandNames[0], 'map', style, '-' << keys.to_s))
end
else
ret = {}
Hash[*(simplelist(tk_call(TkCommandNames[0], 'map', style)))].each{|k, v|
ret[k[1..-1]] = list(v)
}
ret
end
end
alias map_configure map
def map_configinfo(style=nil, key=None)
style = '.' unless style
map(style, key)
end
def map_default_configinfo(key=None)
map('.', key)
end
def lookup(style, opt, state=None, fallback_value=None)
tk_call(TkCommandNames[0], 'lookup', style,
'-' << opt.to_s, state, fallback_value)
end
include Tk::Tile::ParseStyleLayout
def layout(style=nil, spec=nil)
if style.kind_of?(Hash)
spec = style
style = nil
end
style = '.' unless style
if spec
tk_call(TkCommandNames[0], 'layout', style, spec)
else
_style_layout(list(tk_call(TkCommandNames[0], 'layout', style)))
end
end
def element_create(name, type, *args)
tk_call(TkCommandNames[0], 'element', 'create', name, type, *args)
end
def element_names()
list(tk_call(TkCommandNames[0], 'element', 'names'))
end
def element_options(elem)
simplelist(tk_call(TkCommandNames[0], 'element', 'options', elem))
end
def theme_create(name, keys=nil)
name = name.to_s
if keys && keys != None
tk_call(TkCommandNames[0], 'theme', 'create', name, *hash_kv(keys))
else
tk_call(TkCommandNames[0], 'theme', 'create', name)
end
name
end
def theme_settings(name, cmd=nil, &b)
name = name.to_s
cmd = Proc.new(&b) if !cmd && b
tk_call(TkCommandNames[0], 'theme', 'settings', name, cmd)
name
end
def theme_names()
list(tk_call(TkCommandNames[0], 'theme', 'names'))
end
def theme_use(name)
name = name.to_s
tk_call(TkCommandNames[0], 'theme', 'use', name)
name
end
end
|