aboutsummaryrefslogtreecommitdiffstats
path: root/ext/tk/lib/tkextlib/ICONS/icons.rb
diff options
context:
space:
mode:
Diffstat (limited to 'ext/tk/lib/tkextlib/ICONS/icons.rb')
-rw-r--r--ext/tk/lib/tkextlib/ICONS/icons.rb46
1 files changed, 35 insertions, 11 deletions
diff --git a/ext/tk/lib/tkextlib/ICONS/icons.rb b/ext/tk/lib/tkextlib/ICONS/icons.rb
index fe8351fa52..275903f302 100644
--- a/ext/tk/lib/tkextlib/ICONS/icons.rb
+++ b/ext/tk/lib/tkextlib/ICONS/icons.rb
@@ -9,39 +9,63 @@ require 'tk'
require 'tkextlib/setup.rb'
# call setup script
-require File.join(File.dirname(File.expand_path(__FILE__)), 'setup.rb')
+require 'tkextlib/ICONS/setup.rb'
# TkPackage.require('icons', '1.0')
TkPackage.require('icons')
module Tk
class ICONS < TkImage
- def self.create(*args) # icon, icon, ..., keys
+ extend Tk
+
+ def self.package_version
+ begin
+ TkPackage.require('icons')
+ rescue
+ ''
+ end
+ end
+
+ def self.create(*args) # icon, icon, ..., ?option=>value, ...?
if args[-1].kind_of?(Hash)
keys = args.pop
icons = simplelist(tk_call('::icons::icons', 'create',
- *(hash_kv(keys).concat(args.flatten))))
+ *(hash_kv(keys) << (args.flatten))))
else
icons = simplelist(tk_call('::icons::icons', 'create',
- *(args.flatten)))
+ args.flatten))
end
icons.collect{|icon| self.new(icon, :without_creating=>true)}
end
- def self.delete(*icons)
+ def self.delete(*icons) # icon, icon, ...
+ icons = icons.flatten
return if icons.empty?
+ icons.map!{|icon|
+ if icon.kind_of?(Tk::ICONS)
+ Tk_IMGTBL.delete(icon.path)
+ icon.name
+ elsif icon.to_s =~ /^::icon::(.*)/
+ name = $1
+ Tk_IMGTBL.delete(icon)
+ name
+ else
+ Tk_IMGTBL.delete("::icon::#{icon}")
+ icon
+ end
+ }
tk_call('::icons::icons', 'delete', icons)
end
- def self.query(*args)
+ def self.query(*args) # icon, icon, ..., ?option=>value, ...?
if args[-1].kind_of?(Hash)
keys = args.pop
- list(tk_call('::icons::icons', 'query',
- *(hash_kv(keys).concat(args.flatten))))
+ simplelist(tk_call('::icons::icons', 'query',
+ *(hash_kv(keys) << (args.flatten))))
else
- list(tk_call('::icons::icons', 'query', *(args.flatten)))
- end
+ simplelist(tk_call('::icons::icons', 'query', args.flatten))
+ end . map{|inf| list(inf) }
end
##########################################
@@ -75,7 +99,7 @@ module Tk
self
end
- def query(keys)
+ def query(keys={})
list(simplelist(tk_call('::icons::icons', 'query',
*(hash_kv(keys) << @name))
)[0])