diff options
Diffstat (limited to 'ext/tk/sample/demos-jp/entry3.rb')
-rw-r--r-- | ext/tk/sample/demos-jp/entry3.rb | 74 |
1 files changed, 37 insertions, 37 deletions
diff --git a/ext/tk/sample/demos-jp/entry3.rb b/ext/tk/sample/demos-jp/entry3.rb index 4dff97a93a..f57dc13553 100644 --- a/ext/tk/sample/demos-jp/entry3.rb +++ b/ext/tk/sample/demos-jp/entry3.rb @@ -18,8 +18,8 @@ $entry3_demo = TkToplevel.new {|w| } TkLabel.new($entry3_demo, - :font=>$font, :wraplength=>'5i', :justify=>:left, - :text=><<EOL).pack(:side=>:top) + :font=>$font, :wraplength=>'5i', :justify=>:left, + :text=><<EOL).pack(:side=>:top) 以下には4種類のエントリボックスが表示されています.各エントリボックスは,\ マウスクリックで選択し文字を打ち込むことが可能ですが,それぞれがどのような\ 入力を受け付けることができるかには制約が設けられています.\ @@ -42,13 +42,13 @@ TkFrame.new($entry3_demo){|f| pack(:side=>:bottom, :fill=>:x, :pady=>'2m') TkButton.new(f, :text=>'閉じる', :width=>15, :command=>proc{ - $entry3_demo.destroy - $entry3_demo = nil - }).pack(:side=>:left, :expand=>true) + $entry3_demo.destroy + $entry3_demo = nil + }).pack(:side=>:left, :expand=>true) TkButton.new(f, :text=>'コード参照', :width=>15, :command=>proc{ - showCode 'entry3' - }).pack(:side=>:left, :expand=>true) + showCode 'entry3' + }).pack(:side=>:left, :expand=>true) } # focusAndFlash -- @@ -58,32 +58,32 @@ TkFrame.new($entry3_demo){|f| # 2.5Hz). # # Arguments: -# widget - entry widget to flash -# fg - Initial foreground colour -# bg - Initial background colour -# count - Counter to control the number of times flashed +# widget - entry widget to flash +# fg - Initial foreground colour +# bg - Initial background colour +# count - Counter to control the number of times flashed def focusAndFlash(widget, fg, bg, count=5) return if count <= 0 TkTimer.new(100, count, - proc{widget.configure(:foreground=>bg, :background=>fg)}, - proc{widget.configure(:foreground=>fg, :background=>bg)} - ).start + proc{widget.configure(:foreground=>bg, :background=>fg)}, + proc{widget.configure(:foreground=>fg, :background=>bg)} + ).start widget.focus(true) end l1 = TkLabelFrame.new($entry3_demo, :text=>"整数エントリ") TkEntry.new(l1, :validate=>:focus, - :vcmd=>[ - proc{|s| s == '' || /^[+-]?\d+$/ =~ s }, '%P' - ]) {|e| + :vcmd=>[ + proc{|s| s == '' || /^[+-]?\d+$/ =~ s }, '%P' + ]) {|e| invalidcommand [proc{|w| focusAndFlash(w, e.fg, e.bg)}, '%W'] pack(:fill=>:x, :expand=>true, :padx=>'1m', :pady=>'1m') } l2 = TkLabelFrame.new($entry3_demo, :text=>"長さ制約付きエントリ") TkEntry.new(l2, :validate=>:key, :invcmd=>proc{Tk.bell}, - :vcmd=>[proc{|s| s.length < 10}, '%P'] - ).pack(:fill=>:x, :expand=>true, :padx=>'1m', :pady=>'1m') + :vcmd=>[proc{|s| s.length < 10}, '%P'] + ).pack(:fill=>:x, :expand=>true, :padx=>'1m', :pady=>'1m') ### PHONE NUMBER ENTRY ### # Note that the source to this is quite a bit longer as the behaviour @@ -105,7 +105,7 @@ Hash[*(%w(abc 2 def 3 ghi 4 jkl 5 mno 6 pqrs 7 tuv 8 wxyz 9))].each{|chars, n| # Skip over fixed characters in a phone-number string when moving left. # # Arguments: -# widget - The entry widget containing the phone-number. +# widget - The entry widget containing the phone-number. def phoneSkipLeft(widget) idx = widget.index('insert') if idx == 8 @@ -125,7 +125,7 @@ end # Skip over fixed characters in a phone-number string when moving right. # # Arguments: -# widget - The entry widget containing the phone-number. +# widget - The entry widget containing the phone-number. # add - Offset to add to index before calculation (used by validation.) def phoneSkipRight(widget, add = 0) idx = widget.index('insert') @@ -149,14 +149,14 @@ end # # widget - entry widget to validate # vmode - The widget's validation mode -# idx - The index where replacement is to occur +# idx - The index where replacement is to occur # char - The character (or string, though that will always be -# refused) to be overwritten at that point. +# refused) to be overwritten at that point. def validatePhoneChange(widget, vmode, idx, char) return true if idx == nil Tk.after_idle(proc{widget.configure(:validate=>vmode, - :invcmd=>proc{Tk.bell})}) + :invcmd=>proc{Tk.bell})}) if !(idx<3 || idx==6 || idx==7 || idx==11 || idx>15) && char =~ /[0-9A-Za-z]/ widget.delete(idx) widget.insert(idx, $phoneNumberMap[char] || char) @@ -171,17 +171,17 @@ end l3 = TkLabelFrame.new($entry3_demo, :text=>"米国電話番号エントリ") TkEntry.new(l3, :validate=>:key, :invcmd=>proc{Tk.bell}, - :textvariable=>entry3content, - :vcmd=>[ - proc{|w,v,i,s| validatePhoneChange(w,v,i,s)}, - "%W %v %i %S" - ]){|e| + :textvariable=>entry3content, + :vcmd=>[ + proc{|w,v,i,s| validatePhoneChange(w,v,i,s)}, + "%W %v %i %S" + ]){|e| # Click to focus goes to the first editable character... bind('FocusIn', proc{|d,w| - if d != "NotifyAncestor" - w.cursor = 3 - Tk.after_idle(proc{w.selection_clear}) - end + if d != "NotifyAncestor" + w.cursor = 3 + Tk.after_idle(proc{w.selection_clear}) + end }, '%d %W') bind('Left', proc{|w| phoneSkipLeft(w)}, '%W') bind('Right', proc{|w| phoneSkipRight(w)}, '%W') @@ -190,10 +190,10 @@ TkEntry.new(l3, :validate=>:key, :invcmd=>proc{Tk.bell}, l4 = TkLabelFrame.new($entry3_demo, :text=>"パスワードエントリ") TkEntry.new(l4, :validate=>:key, :show=>'*', - :vcmd=>[ - proc{|s| s.length <= 8}, - '%P' - ]).pack(:fill=>:x, :expand=>true, :padx=>'1m', :pady=>'1m') + :vcmd=>[ + proc{|s| s.length <= 8}, + '%P' + ]).pack(:fill=>:x, :expand=>true, :padx=>'1m', :pady=>'1m') TkFrame.new($entry3_demo){|f| lower |