From 9ff1e787f915539b1980654e3d3d2013ff5c81d2 Mon Sep 17 00:00:00 2001 From: shyouhei Date: Mon, 7 Jul 2008 07:38:25 +0000 Subject: wrong commit; sorry git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/tags/v1_8_6_269@17938 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ruby_1_8_6/ext/tk/sample/demos-jp/aniwave.rb | 116 --------------------------- 1 file changed, 116 deletions(-) delete mode 100644 ruby_1_8_6/ext/tk/sample/demos-jp/aniwave.rb (limited to 'ruby_1_8_6/ext/tk/sample/demos-jp/aniwave.rb') diff --git a/ruby_1_8_6/ext/tk/sample/demos-jp/aniwave.rb b/ruby_1_8_6/ext/tk/sample/demos-jp/aniwave.rb deleted file mode 100644 index 81e2d76b30..0000000000 --- a/ruby_1_8_6/ext/tk/sample/demos-jp/aniwave.rb +++ /dev/null @@ -1,116 +0,0 @@ -# -# animated wave demo (called by 'widget') -# -# based on Tcl/Tk8.5a2 widget demos - -# destroy toplevel widget for this demo script -if defined?($aniwave_demo) && $aniwave_demo - $aniwave_demo.destroy - $aniwave_demo = nil -end - -# create toplevel widget -$aniwave_demo = TkToplevel.new {|w| - title("Animated Wave Demonstration") - iconname("aniwave") - positionWindow(w) -} - -# create label -msg = TkLabel.new($aniwave_demo) { - font $font - wraplength '4i' - justify 'left' - text 'このデモでは、ラインアイテムが一つだけ描かれたキャンバスウィジェットが表示されています。アニメーション処理は、そのラインアイテムの座標値を変更することで実現しています。' -} -msg.pack('side'=>'top') - -# create frame -TkFrame.new($aniwave_demo) {|frame| - TkButton.new(frame) { - #text '了解' - text '閉じる' - command proc{ - tmppath = $aniwave_demo - $aniwave_demo = nil - tmppath.destroy - } - }.pack('side'=>'left', 'expand'=>'yes') - - TkButton.new(frame) { - text 'コード参照' - command proc{showCode 'aniwave'} - }.pack('side'=>'left', 'expand'=>'yes') - -}.pack('side'=>'bottom', 'fill'=>'x', 'pady'=>'2m') - -# animated wave -class AnimatedWaveDemo - def initialize(frame, dir=:left) - @direction = dir - - # create canvas widget - @c = TkCanvas.new(frame, :width=>300, :height=>200, - :background=>'black') - @c.pack(:padx=>10, :pady=>10, :expand=>true) - - # Creates a coordinates list of a wave. - @waveCoords = [] - @backupCoords = [] - n = 0 - (-10..300).step(5){|n| @waveCoords << [n, 100]; @backupCoords << [n, 100] } - @waveCoords << [n, 0]; @backupCoords << [n, 0] - @waveCoords << [n+5, 200]; @backupCoords << [n+5, 200] - @coordsLen = @waveCoords.length - - # Create a smoothed line and arrange for its coordinates to be the - # contents of the variable waveCoords. - @line = TkcLine.new(@c, @waveCoords, - :width=>1, :fill=>'green', :smooth=>true) - - # Main animation "loop". - # Theoretically 100 frames-per-second (==10ms between frames) - @timer = TkTimer.new(10){ basicMotion; reverser } - - # Arrange for the animation loop to stop when the canvas is deleted - @c.bindtags_unshift(TkBindTag.new('Destroy'){ @timer.stop }) - end - - # Basic motion handler. Given what direction the wave is travelling - # in, it advances the y coordinates in the coordinate-list one step in - # that direction. - def basicMotion - @backupCoords, @waveCoords = @waveCoords, @backupCoords - (0...@coordsLen).each{|idx| - if @direction == :left - @waveCoords[idx][1] = @backupCoords[(idx+1 == @coordsLen)? 0: idx+1][1] - else - @waveCoords[idx][1] = @backupCoords[(idx == 0)? -1: idx-1][1] - end - } - @line.coords(@waveCoords) - end - - # Oscillation handler. This detects whether to reverse the direction - # of the wave by checking to see if the peak of the wave has moved off - # the screen (whose size we know already.) - def reverser - if @waveCoords[0][1] < 10 - @direction = :right - elsif @waveCoords[-1][1] < 10 - @direction = :left - end - end - - # animation control - def move - @timer.start - end - - def stop - @timer.stop - end -end - -# Start the animation processing -AnimatedWaveDemo.new($aniwave_demo, :left).move -- cgit v1.2.3