diff options
author | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-08-09 06:44:45 +0000 |
---|---|---|
committer | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-08-09 06:44:45 +0000 |
commit | a8a06ed07b6e69bd1e88ef59f997229e25a0d78c (patch) | |
tree | 51d384de3922135bc42514af63da8aa4587a44cb /ext/tk/sample/demos-jp/puzzle.rb | |
parent | 67500ff75b76a07e90b9a6e72025083cd72105f5 (diff) | |
download | ruby-a8a06ed07b6e69bd1e88ef59f997229e25a0d78c.tar.gz |
* ext/tk: Tk is removed from stdlib. [Feature #8539]
https://github.com/ruby/tk is the new upstream.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55844 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/tk/sample/demos-jp/puzzle.rb')
-rw-r--r-- | ext/tk/sample/demos-jp/puzzle.rb | 132 |
1 files changed, 0 insertions, 132 deletions
diff --git a/ext/tk/sample/demos-jp/puzzle.rb b/ext/tk/sample/demos-jp/puzzle.rb deleted file mode 100644 index 8a0803ad3d..0000000000 --- a/ext/tk/sample/demos-jp/puzzle.rb +++ /dev/null @@ -1,132 +0,0 @@ -# -*- coding: utf-8 -*- -# frozen_string_literal: false -# -# widget demo 'puzzle' (called by 'widget') -# - -# toplevel widget が存在すれば削除する -if defined?($puzzle_demo) && $puzzle_demo - $puzzle_demo.destroy - $puzzle_demo = nil -end - -# demo 用の toplevel widget を生成 -$puzzle_demo = TkToplevel.new {|w| - title("15-Puzzle Demonstration") - iconname("15-Puzzle") - positionWindow(w) -} - -base_frame = TkFrame.new($puzzle_demo).pack(:fill=>:both, :expand=>true) - -# label 生成 -msg = TkLabel.new(base_frame) { - font $font - wraplength '4i' - justify 'left' - text "下の15-パズルはボタンを集めてできています。空いている所の隣のピースをクリックすると、そのピースがその空いている場所にスライドします。この操作を続け、ピースがその数の順に上から下、左から右に並ぶようにしてください。" -} -msg.pack('side'=>'top') - -# frame 生成 -TkFrame.new(base_frame) {|frame| - TkButton.new(frame) { - #text '了解' - text '閉じる' - command proc{ - tmppath = $puzzle_demo - $puzzle_demo = nil - tmppath.destroy - } - }.pack('side'=>'left', 'expand'=>'yes') - - TkButton.new(frame) { - text 'コード参照' - command proc{showCode 'puzzle'} - }.pack('side'=>'left', 'expand'=>'yes') - -}.pack('side'=>'bottom', 'fill'=>'x', 'pady'=>'2m') - -# frame 生成 -# -# Special trick: scrollbar widget を生成してその trough color を用いることで -# 空白部分のための暗色を選択し,設定する -# -begin - if Tk.windowingsystem() == 'aqua' - frameWidth = 168 - frameHeight = 168 - elsif Tk.default_widget_set == :Ttk - frameWidth = 148 - frameHeight = 124 - else - frameWidth = 120 - frameHeight = 120 - end -rescue - frameWidth = 120 - frameHeight = 120 -end - -# depend_on_button_width = true -depend_on_button_width = false - -s = TkScrollbar.new(base_frame) -base = TkFrame.new(base_frame) { - width frameWidth - height frameHeight - borderwidth 2 - relief 'sunken' - bg s['troughcolor'] -} -s.destroy -base.pack('side'=>'top', 'padx'=>'1c', 'pady'=>'1c') - -# proc のスコープを閉じるため,proc 生成メソッドを用意 -# こうしておかねば,ループ中で値が変化する num の影響を受けて -# puzzleSwitch の第 2 引数が変化してしまい,期待通りにはならない. -def def_puzzleswitch_proc(w, num) - proc{puzzleSwitch w, num} -end - -$xpos = {} -$ypos = {} -order = [3,1,6,2,5,7,15,13,4,11,8,9,14,10,12] -(0..14).each{|i| - num = order[i] - $xpos[num] = (i % 4) * 0.25 - $ypos[num] = (i / 4) * 0.25 - TkButton.new(base) {|w| - relief 'raised' - text num - highlightthickness 0 - command def_puzzleswitch_proc(w, num) - if depend_on_button_width && (w.winfo_reqwidth * 4 > base.width) - base.width = w.winfo_reqwidth * 4 - end - }.place('relx'=>$xpos[num], 'rely'=>$ypos[num], - 'relwidth'=>0.25, 'relheight'=>0.25) -} -$xpos['space'] = 0.75 -$ypos['space'] = 0.75 - -############ -def puzzleSwitch(w, num) - if ( ($ypos[num] >= ($ypos['space'] - 0.01)) \ - && ($ypos[num] <= ($ypos['space'] + 0.01)) \ - && ($xpos[num] >= ($xpos['space'] - 0.26)) \ - && ($xpos[num] <= ($xpos['space'] + 0.26))) \ - || (($xpos[num] >= ($xpos['space'] - 0.01)) \ - && ($xpos[num] <= ($xpos['space'] + 0.01)) \ - && ($ypos[num] >= ($ypos['space'] - 0.26)) \ - && ($ypos[num] <= ($ypos['space'] + 0.26))) - tmp = $xpos['space'] - $xpos['space'] = $xpos[num] - $xpos[num] = tmp - tmp = $ypos['space'] - $ypos['space'] = $ypos[num] - $ypos[num] = tmp - w.place('relx'=>$xpos[num], 'rely'=>$ypos[num]) - end -end - |