File: tkpalette.rb

package info (click to toggle)
ruby 1.4.3-6
  • links: PTS
  • area: main
  • in suites: potato
  • size: 4,068 kB
  • ctags: 7,509
  • sloc: ansic: 60,668; ruby: 23,106; yacc: 4,122; sh: 1,753; lisp: 997; makefile: 597; sed: 68; awk: 36; tcl: 31; perl: 17; python: 6
file content (48 lines) | stat: -rw-r--r-- 984 bytes parent folder | download
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
#
#   tkpalette.rb : methods for Tcl/Tk standard library 'palette.tcl'
#                     1998/06/21 by Hidetoshi Nagai <nagai@ai.kyutech.ac.jp>
#
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