# # tkpalette.rb : methods for Tcl/Tk standard library 'palette.tcl' # 1998/06/21 by Hidetoshi Nagai # require 'tk' module TkPalette include Tk extend Tk def TkPalette.set(*args) args = args.to_a.flatten if args.kind_of? Hash tk_call 'tk_setPalette', *args end def TkPalette.setPalette(*args) TkPalette.set(*args) end def TkPalette.bisque tk_call 'tk_bisque' end def TkPalette.darken(color, percent) tk_call 'tkDarken', color, percent end def TkPalette.recolorTree(window, colors) if not colors.kind_of?(Hash) fail "2nd arg need to be Hash" end colors.each{|key, value| begin if window.cget(key) == tk_call('set', "tkPalette(#{key})") window[key] = colors[key] end rescue # ignore end } TkWinfo.children(window).each{|w| TkPalette.recolorTree(w, colors)} end def recolorTree(colors) TkPalette.recolorTree(self, colors) end end