# File tk/lib/tkextlib/winico/winico.rb, line 54
def self.icon_info(id)
simplelist(Tk.tk_call('winico', 'info', id)).collect{|inf|
h = Hash[*list(inf)]
h.keys.each{|k| h[k[1..-1]] = h.delete(k)}
}
end
# File tk/lib/tkextlib/winico/winico.rb, line 42
def self.id2obj(id)
WinicoID_TBL.mutex.synchronize{
(WinicoID_TBL.key?(id))? WinicoID_TBL[id] : id
}
end
# File tk/lib/tkextlib/winico/winico.rb, line 48
def self.info
simplelist(Tk.tk_call('winico', 'info')).collect{|id|
Tk::Winico.id2obj(id)
}
end
# File tk/lib/tkextlib/winico/winico.rb, line 71
def initialize(file_name, resource_name=nil, winico_id=nil)
if resource_name
# from resource
if file_name
@id = Tk.tk_call('winico', 'load', resource_name, file_name)
else
@id = Tk.tk_call('winico', 'load', resource_name)
end
elsif file_name
# from .ico file
@id = Tk.tk_call('winico', 'createfrom', file_name)
elsif winico_id
@id = winico_id
else
fail ArgumentError,
"must be given proper information from where loading icons"
end
@path = @id
WinicoID_TBL.mutex.synchronize{
WinicoID_TBL[@id] = self
}
end
# File tk/lib/tkextlib/winico/winico.rb, line 63
def self.new_from_file(file_name)
self.new(file_name)
end
# File tk/lib/tkextlib/winico/winico.rb, line 67
def self.new_from_resource(resource_name, file_name = nil)
self.new(file_name, resource_name)
end
# File tk/lib/tkextlib/winico/winico.rb, line 185
def add_to_taskbar(keys = {})
keys = _symbolkey2str(keys)
Winico_callback._config_keys.each{|k|
if keys[k].kind_of?(Array)
cmd, *args = keys[k]
#keys[k] = Winico_callback.new(cmd, args.join(' '))
keys[k] = Winico_callback.new(cmd, *args)
# elsif keys[k].kind_of?(Proc)
elsif TkComm._callback_entry?(keys[k])
keys[k] = Winico_callback.new(keys[k])
end
}
tk_call('winico', 'taskbar', 'add', @id, *(hash_kv(keys)))
self
end
# File tk/lib/tkextlib/winico/winico.rb, line 104
def delete
tk_call('winico', 'delete', @id)
WinicoID_TBL.mutex.synchronize{
WinicoID_TBL.delete(@id)
}
self
end
# File tk/lib/tkextlib/winico/winico.rb, line 219
def delete_from_taskbar
tk_call('winico', 'taskbar', 'delete', @id)
self
end
# File tk/lib/tkextlib/winico/winico.rb, line 113
def info
Tk::Winico.icon_info(@id)
end
# File tk/lib/tkextlib/winico/winico.rb, line 202
def modify_taskbar(keys = {})
keys = _symbolkey2str(keys)
Winico_callback._config_keys.each{|k|
if keys[k].kind_of?(Array)
cmd, *args = keys[k]
#keys[k] = Winico_callback.new(cmd, args.join(' '))
keys[k] = Winico_callback.new(cmd, *args)
# elsif keys[k].kind_of?(Proc)
elsif TkComm._callback_entry?(keys[k])
keys[k] = Winico_callback.new(keys[k])
end
}
tk_call('winico', 'taskbar', 'modify', @id, *(hash_kv(keys)))
self
end
# File tk/lib/tkextlib/winico/winico.rb, line 98
def set_window(win_id, *opts) # opts := ?'big'|'small'?, ?pos?
# NOTE:: the window, which is denoted by win_id, MUST BE MAPPED.
# If not, then this may fail or crash.
tk_call('winico', 'setwindow', win_id, @id, *opts)
end