/usr/lib/ruby/2.0.0/tk/spinbox.rb is in ruby2.0-tcltk 2.0.0.484-1ubuntu2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 139 140 141 142 143 144 | #
# tk/spinbox.rb - Tk spinbox classes
# by Yukihiro Matsumoto <matz@caelum.co.jp>
#
require 'tk'
require 'tk/entry'
class Tk::Spinbox<Tk::Entry
TkCommandNames = ['spinbox'.freeze].freeze
WidgetClassName = 'Spinbox'.freeze
WidgetClassNames[WidgetClassName] ||= self
class SpinCommand < TkValidateCommand
class ValidateArgs < TkUtil::CallbackSubst
KEY_TBL = [
[ ?d, ?s, :direction ],
[ ?s, ?e, :current ],
[ ?W, ?w, :widget ],
nil
]
PROC_TBL = [
[ ?s, TkComm.method(:string) ],
[ ?w, TkComm.method(:window) ],
[ ?e, proc{|val|
#enc = Tk.encoding
enc = ((Tk.encoding)? Tk.encoding : Tk.encoding_system)
if enc
Tk.fromUTF8(TkComm::string(val), enc)
else
TkComm::string(val)
end
}
],
nil
]
=begin
# for Ruby m17n :: ?x --> String --> char-code ( getbyte(0) )
KEY_TBL.map!{|inf|
if inf.kind_of?(Array)
inf[0] = inf[0].getbyte(0) if inf[0].kind_of?(String)
inf[1] = inf[1].getbyte(0) if inf[1].kind_of?(String)
end
inf
}
PROC_TBL.map!{|inf|
if inf.kind_of?(Array)
inf[0] = inf[0].getbyte(0) if inf[0].kind_of?(String)
end
inf
}
=end
_setup_subst_table(KEY_TBL, PROC_TBL);
def self.ret_val(val)
(val)? '1': '0'
end
end
def self._config_keys
['command']
end
end
def __validation_class_list
super() << SpinCommand
end
Tk::ValidateConfigure.__def_validcmd(binding, SpinCommand)
#def create_self(keys)
# tk_call_without_enc('spinbox', @path)
# if keys and keys != None
# configure(keys)
# end
#end
#private :create_self
def __boolval_optkeys
super() << 'wrap'
end
private :__boolval_optkeys
def __strval_optkeys
super() << 'buttonbackground' << 'format'
end
private :__strval_optkeys
def __listval_optkeys
super() << 'values'
end
private :__listval_optkeys
def identify(x, y)
tk_send_without_enc('identify', x, y)
end
def invoke(elem)
tk_send_without_enc('invoke', elem)
self
end
def spinup
begin
tk_send_without_enc('invoke', 'buttonup')
rescue RuntimeError => e
# old version of element?
begin
tk_send_without_enc('invoke', 'spinup')
rescue
fail e
end
end
self
end
def spindown
begin
tk_send_without_enc('invoke', 'buttondown')
rescue RuntimeError => e
# old version of element?
begin
tk_send_without_enc('invoke', 'spinup')
rescue
fail e
end
end
self
end
def set(str)
_fromUTF8(tk_send_without_enc('set', _get_eval_enc_str(str)))
end
end
#TkSpinbox = Tk::Spinbox unless Object.const_defined? :TkSpinbox
#Tk.__set_toplevel_aliases__(:Tk, Tk::Spinbox, :TkSpinbox)
Tk.__set_loaded_toplevel_aliases__('tk/spinbox.rb', :Tk, Tk::Spinbox,
:TkSpinbox)
|