diff options
Diffstat (limited to 'ext/tk/sample/demos-jp')
-rw-r--r-- | ext/tk/sample/demos-jp/README | 14 | ||||
-rw-r--r-- | ext/tk/sample/demos-jp/browse1 | 22 | ||||
-rw-r--r-- | ext/tk/sample/demos-jp/browse2 | 22 | ||||
-rw-r--r-- | ext/tk/sample/demos-jp/doc.org/license.terms | 2 | ||||
-rw-r--r-- | ext/tk/sample/demos-jp/doc.org/license.terms.tk80 | 2 | ||||
-rw-r--r-- | ext/tk/sample/demos-jp/ixset | 30 | ||||
-rw-r--r-- | ext/tk/sample/demos-jp/ixset2 | 56 | ||||
-rw-r--r-- | ext/tk/sample/demos-jp/rmt | 68 | ||||
-rw-r--r-- | ext/tk/sample/demos-jp/rolodex | 6 | ||||
-rw-r--r-- | ext/tk/sample/demos-jp/rolodex-j | 4 | ||||
-rw-r--r-- | ext/tk/sample/demos-jp/square | 12 | ||||
-rw-r--r-- | ext/tk/sample/demos-jp/tcolor | 18 | ||||
-rw-r--r-- | ext/tk/sample/demos-jp/timer | 2 | ||||
-rw-r--r-- | ext/tk/sample/demos-jp/widget | 208 |
14 files changed, 233 insertions, 233 deletions
diff --git a/ext/tk/sample/demos-jp/README b/ext/tk/sample/demos-jp/README index 42bec16c60..6375800232 100644 --- a/ext/tk/sample/demos-jp/README +++ b/ext/tk/sample/demos-jp/README @@ -1,11 +1,11 @@ - Ruby/Tk widget-demo + Ruby/Tk widget-demo version 1.2 ( 2000/04/08 ) 永井@知能.九工大 (nagai@ai.kyutech.ac.jp) -標準配布の Tcl/Tk 拡張パッケージを取り込んだ Ruby (以下 Ruby/Tk と呼びます) +標準配布の Tcl/Tk 拡張パッケージを取り込んだ Ruby (以下 Ruby/Tk と呼びます) では,Tk widget を用いた GUI の作成を行うことができます.実際に GUI を作成 -していく場合には様々な実例がサンプルとして存在すると便利なのですが,Ruby/Tk +していく場合には様々な実例がサンプルとして存在すると便利なのですが,Ruby/Tk にはそのような適当なサンプルスクリプト集合は存在しませんでした.それに対し, 拡張パッケージの元である Tcl/Tk には,Tk widget を用いてどのようなことがで きるかを示すものとして widget-demo が存在しおり,Tcl/Tk を用いた GUI の作成 @@ -34,21 +34,21 @@ Tcl/Tk には適当な参考書が何冊か存在していますから,Ruby/Tk スクリプトを作成 でしょう.Ruby/Tk 版の記述を widget-demo を Tcl/Tk 版の記述に近いものにして おけば,その対比によって,Ruby/Tk の理解を早めることができると考えられます. 一旦 Ruby/Tk での 各 widget の使用方法を習得してしまえば,Ruby らしいスクリ -プトを作成することは難しくないでしょう.本アーカイブのスクリプトは,Ruby/Tk +プトを作成することは難しくないでしょう.本アーカイブのスクリプトは,Ruby/Tk を最初に習得するまでの踏台として利用していただければ幸いです. widget-demo の移植にあたっては,次の方にも移植したスクリプトを提供していただ きました.ここに感謝の意を表します. - 立石@JAIST (ttate@jaist.ac.jp) さん + 立石@JAIST (ttate@jaist.ac.jp) さん 平松祥史 (hiramatu@cdrom.co.jp) さん -平松さんによる Ruby/Tk 入門の Web page (http://www.cdrom.co.jp/~hiramatu/) +平松さんによる Ruby/Tk 入門の Web page (http://www.cdrom.co.jp/~hiramatu/) も Ruby/Tk の習得に有用と思えますので,ぜひご参照ください. また,前橋 (maebashi@iij.ad.jp) さんをはじめとして,widget-demo の移植に際し て必要となった Ruby の Tk 関連ライブラリ修正について,問題点,バグの指摘をし ていただいた方々にも感謝致します. -そして最後に最大の感謝を Ruby 設計者の まつもと ゆきひろ (matz@netlab.co.jp) +そして最後に最大の感謝を Ruby 設計者の まつもと ゆきひろ (matz@netlab.co.jp) さんに捧げたいと思います. diff --git a/ext/tk/sample/demos-jp/browse1 b/ext/tk/sample/demos-jp/browse1 index 03e251035a..568892e4a8 100644 --- a/ext/tk/sample/demos-jp/browse1 +++ b/ext/tk/sample/demos-jp/browse1 @@ -1,16 +1,16 @@ #!/usr/bin/env ruby # browse -- -# This script generates a directory browser, which lists the working -# directory and allow you to open files or subdirectories by -# double-clicking. +# This script generates a directory browser, which lists the working +# directory and allow you to open files or subdirectories by +# double-clicking. require 'tk' -# Create a scrollbar on the right side of the main window and a listbox +# Create a scrollbar on the right side of the main window and a listbox # on the left side. -listbox = TkListbox.new(nil, 'relief'=>'sunken', +listbox = TkListbox.new(nil, 'relief'=>'sunken', 'width'=>20, 'height'=>20, 'setgrid'=>'yes') {|l| TkScrollbar.new(nil, 'command'=>proc{|*args| l.yview *args}) {|s| pack('side'=>'right', 'fill'=>'y') @@ -23,10 +23,10 @@ listbox = TkListbox.new(nil, 'relief'=>'sunken', root = TkRoot.new root.minsize(1,1) -# The procedure below is invoked to open a browser on a given file; if the -# file is a directory then another instance of this program is invoked; if -# the file is a regular file then the Mx editor is invoked to display -# the file. +# The procedure below is invoked to open a browser on a given file; if the +# file is a directory then another instance of this program is invoked; if +# the file is a regular file then the Mx editor is invoked to display +# the file. def browse (dir, file) file = dir + File::Separator + file if dir != '.' @@ -46,7 +46,7 @@ def browse (dir, file) end end -# Fill the listbox with a list of all the files in the directory (run +# Fill the listbox with a list of all the files in the directory (run # the "ls" command to get that information). dir = ARGV[0] ? ARGV[0] : '.' @@ -57,7 +57,7 @@ open("|ls -a #{dir}", 'r'){|fid| fid.readlines}.each{|fname| # Set up bindings for the browser. Tk.bind_all('Control-c', proc{root.destroy}) -listbox.bind('Double-Button-1', +listbox.bind('Double-Button-1', proc{TkSelection.get.each{|f| browse dir, f}}) Tk.mainloop diff --git a/ext/tk/sample/demos-jp/browse2 b/ext/tk/sample/demos-jp/browse2 index edad04dbcb..1a511c8d29 100644 --- a/ext/tk/sample/demos-jp/browse2 +++ b/ext/tk/sample/demos-jp/browse2 @@ -1,9 +1,9 @@ #!/usr/bin/env ruby # browse -- -# This script generates a directory browser, which lists the working -# directory and allow you to open files or subdirectories by -# double-clicking. +# This script generates a directory browser, which lists the working +# directory and allow you to open files or subdirectories by +# double-clicking. require 'tk' @@ -19,9 +19,9 @@ class Browse title('Browse : ' + dir) } - # Create a scrollbar on the right side of the main window and a listbox + # Create a scrollbar on the right side of the main window and a listbox # on the left side. - list = TkListbox.new(base, 'relief'=>'sunken', + list = TkListbox.new(base, 'relief'=>'sunken', 'width'=>20, 'height'=>20, 'setgrid'=>'yes') {|l| TkScrollbar.new(base, 'command'=>proc{|*args| l.yview *args}) {|s| pack('side'=>'right', 'fill'=>'y') @@ -30,7 +30,7 @@ class Browse pack('side'=>'left', 'fill'=>'both', 'expand'=>'yes') - # Fill the listbox with a list of all the files in the directory (run + # Fill the listbox with a list of all the files in the directory (run # the "ls" command to get that information). open("|ls -a #{dir}", 'r'){|fid| fid.readlines}.each{|fname| l.insert('end', fname.chomp) @@ -44,14 +44,14 @@ class Browse Browse::BROWSE_WIN_COUNTER.to_i - 1 }) base.bind('Control-c', proc{base.destroy}) - list.bind('Double-Button-1', + list.bind('Double-Button-1', proc{TkSelection.get.each{|f| self.browse dir, f}}) end - # The method below is invoked to open a browser on a given file; if the - # file is a directory then another instance of this program is invoked; if - # the file is a regular file then the Mx editor is invoked to display - # the file. + # The method below is invoked to open a browser on a given file; if the + # file is a directory then another instance of this program is invoked; if + # the file is a regular file then the Mx editor is invoked to display + # the file. def browse (dir, file) file = dir + File::Separator + file if dir != '.' type = File.ftype(file) diff --git a/ext/tk/sample/demos-jp/doc.org/license.terms b/ext/tk/sample/demos-jp/doc.org/license.terms index 03ca6fcb31..c0a44d3fc2 100644 --- a/ext/tk/sample/demos-jp/doc.org/license.terms +++ b/ext/tk/sample/demos-jp/doc.org/license.terms @@ -28,7 +28,7 @@ MODIFICATIONS. GOVERNMENT USE: If you are acquiring this software on behalf of the U.S. government, the Government shall have only "Restricted Rights" -in the software and related documentation as defined in the Federal +in the software and related documentation as defined in the Federal Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2). If you are acquiring the software on behalf of the Department of Defense, the software shall be classified as "Commercial Computer Software" and the diff --git a/ext/tk/sample/demos-jp/doc.org/license.terms.tk80 b/ext/tk/sample/demos-jp/doc.org/license.terms.tk80 index 03ca6fcb31..c0a44d3fc2 100644 --- a/ext/tk/sample/demos-jp/doc.org/license.terms.tk80 +++ b/ext/tk/sample/demos-jp/doc.org/license.terms.tk80 @@ -28,7 +28,7 @@ MODIFICATIONS. GOVERNMENT USE: If you are acquiring this software on behalf of the U.S. government, the Government shall have only "Restricted Rights" -in the software and related documentation as defined in the Federal +in the software and related documentation as defined in the Federal Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2). If you are acquiring the software on behalf of the Department of Defense, the software shall be classified as "Commercial Computer Software" and the diff --git a/ext/tk/sample/demos-jp/ixset b/ext/tk/sample/demos-jp/ixset index 46c2378073..40a77f487c 100644 --- a/ext/tk/sample/demos-jp/ixset +++ b/ext/tk/sample/demos-jp/ixset @@ -164,9 +164,9 @@ class Xsettings # bell = TkFrame.new(@root, 'relief'=>'raised', 'borderwidth'=>2) l = TkLabel.new(bell, 'text'=>'Bell Settings') - @w_bellvol = TkScale.new(bell, 'from'=>0, 'to'=>100, 'length'=>200, - 'tickinterval'=>20, 'orient'=>'horizontal', - 'label'=>"Volume (%)") + @w_bellvol = TkScale.new(bell, 'from'=>0, 'to'=>100, 'length'=>200, + 'tickinterval'=>20, 'orient'=>'horizontal', + 'label'=>"Volume (%)") f = TkFrame.new(bell) @w_bellpit = LabelEntry.new(f, "Pitch (Hz)", 6) @@ -180,13 +180,13 @@ class Xsettings # # Keyboard settings - # + # kbdonoff = nil kbdcli = nil kbd = TkFrame.new(@root, 'relief'=>'raised', 'borderwidth'=>2) l = TkLabel.new(kbd, 'text'=>'Keyboard Repeat Settings') f = TkFrame.new(kbd) - @w_kbdonoff = TkCheckButton.new(f, 'text'=>'On', 'relief'=>'flat', + @w_kbdonoff = TkCheckButton.new(f, 'text'=>'On', 'relief'=>'flat', 'onvalue'=>'on', 'offvalue'=>'off', 'variable'=>@w_kbdrep ) { def self.set(value) @@ -198,8 +198,8 @@ class Xsettings end pack('side'=>'left', 'expand'=>'yes', 'fill'=>'both') } - @w_kbdcli = TkScale.new(f, 'from'=>0, 'to'=>100, 'length'=>200, - 'tickinterval'=>20, 'orient'=>'horizontal', + @w_kbdcli = TkScale.new(f, 'from'=>0, 'to'=>100, 'length'=>200, + 'tickinterval'=>20, 'orient'=>'horizontal', 'label'=>'Click Volume (%)') @w_kbdcli.pack('side'=>'left', 'expand'=>'yes') l.pack('side'=>'top', 'expand'=>'yes') @@ -225,9 +225,9 @@ class Xsettings l = TkLabel.new(screen, 'text'=>'Screen-saver Settings') f = TkFrame.new(screen) ff1 = TkFrame.new(f) - [ @w_screenblank = TkRadioButton.new(ff1, 'text'=>'Blank', - 'relief'=>'flat', - 'variable'=>@w_screenbla, + [ @w_screenblank = TkRadioButton.new(ff1, 'text'=>'Blank', + 'relief'=>'flat', + 'variable'=>@w_screenbla, 'value'=>'blank') { def self.set(value) if value == 'blank' @@ -236,10 +236,10 @@ class Xsettings self.deselect end end - }, - @w_screenpat = TkRadioButton.new(ff1, 'text'=>'Pattern', - 'relief'=>'flat', - 'variable'=>@w_screenbla, + }, + @w_screenpat = TkRadioButton.new(ff1, 'text'=>'Pattern', + 'relief'=>'flat', + 'variable'=>@w_screenbla, 'value'=>'noblank') { def self.set(value) if value != 'blank' @@ -252,7 +252,7 @@ class Xsettings ].each {|w| w.pack('side'=>'top', 'pady'=>2, 'anchor'=>'w') } ff2 = TkFrame.new(f) - [ @w_screentim = LabelEntry.new(ff2, 'Timeout (s)', 5), + [ @w_screentim = LabelEntry.new(ff2, 'Timeout (s)', 5), @w_screencyc = LabelEntry.new(ff2, 'Cycle (s)', 5) ].each{|w| w.pack('side'=>'top', 'pady'=>2, 'anchor'=>'e') } diff --git a/ext/tk/sample/demos-jp/ixset2 b/ext/tk/sample/demos-jp/ixset2 index 5b816e40b1..5011dfe640 100644 --- a/ext/tk/sample/demos-jp/ixset2 +++ b/ext/tk/sample/demos-jp/ixset2 @@ -135,8 +135,8 @@ class Xsettings def initialize(parent, text, length, range=[]) @frame = TkFrame.new(parent) TkLabel.new(@frame, 'text'=>text).pack('side'=>'left') - if range.size > 0 - @entry = TkSpinbox.new(@frame, 'width'=>length, 'relief'=>'sunken', + if range.size > 0 + @entry = TkSpinbox.new(@frame, 'width'=>length, 'relief'=>'sunken', 'from'=>range[0], 'to'=>range[1]) else @entry = TkEntry.new(@frame, 'width'=>length, 'relief'=>'sunken') @@ -165,16 +165,16 @@ class Xsettings # Buttons # btn_frame = TkFrame.new(@root) - buttons = [ - @btn_OK = TkButton.new(btn_frame, 'command'=>proc{win.ok}, + buttons = [ + @btn_OK = TkButton.new(btn_frame, 'command'=>proc{win.ok}, 'default'=>'active', 'text'=>'了解'), - @btn_APPLY = TkButton.new(btn_frame, 'command'=>proc{win.writesettings}, - 'default'=>'normal', 'text'=>'適用', + @btn_APPLY = TkButton.new(btn_frame, 'command'=>proc{win.writesettings}, + 'default'=>'normal', 'text'=>'適用', 'state'=>'disabled'), - @btn_CANCEL = TkButton.new(btn_frame, 'command'=>proc{win.cancel}, - 'default'=>'normal', 'text'=>'取消', + @btn_CANCEL = TkButton.new(btn_frame, 'command'=>proc{win.cancel}, + 'default'=>'normal', 'text'=>'取消', 'state'=>'disabled'), - @btn_QUIT = TkButton.new(btn_frame, 'command'=>proc{win.quit}, + @btn_QUIT = TkButton.new(btn_frame, 'command'=>proc{win.quit}, 'default'=>'normal', 'text'=>'中止') ] buttons.each{|b| b.pack('side'=>'left', 'expand'=>'yes', 'pady'=>5) } @@ -202,10 +202,10 @@ class Xsettings # # Bell settings # - bell = TkLabelframe.new(@root, 'text'=>'ベル設定', + bell = TkLabelframe.new(@root, 'text'=>'ベル設定', 'padx'=>'1.5m', 'pady'=>'1.5m') - @w_bellvol = TkScale.new(bell, 'from'=>0, 'to'=>100, 'length'=>200, - 'tickinterval'=>20, 'orient'=>'horizontal', + @w_bellvol = TkScale.new(bell, 'from'=>0, 'to'=>100, 'length'=>200, + 'tickinterval'=>20, 'orient'=>'horizontal', 'label'=>"音量 (%)") f = TkFrame.new(bell) @@ -219,14 +219,14 @@ class Xsettings # # Keyboard settings - # + # kbdonoff = nil kbdcli = nil - kbd = TkLabelframe.new(@root, 'text'=>'キーボードリピート設定', + kbd = TkLabelframe.new(@root, 'text'=>'キーボードリピート設定', 'padx'=>'1.5m', 'pady'=>'1.5m') f = TkFrame.new(kbd) - @w_kbdonoff = TkCheckButton.new(f, 'text'=>'クリック音あり', - 'relief'=>'flat', + @w_kbdonoff = TkCheckButton.new(f, 'text'=>'クリック音あり', + 'relief'=>'flat', 'onvalue'=>'on', 'offvalue'=>'off', 'variable'=>@w_kbdrep ) { def self.set(value) @@ -238,17 +238,17 @@ class Xsettings end pack('side'=>'left', 'expand'=>'yes', 'fill'=>'x', 'padx'=>[0, '1m']) } - @w_kbdcli = TkScale.new(f, 'from'=>0, 'to'=>100, 'length'=>200, - 'tickinterval'=>20, 'orient'=>'horizontal', + @w_kbdcli = TkScale.new(f, 'from'=>0, 'to'=>100, 'length'=>200, + 'tickinterval'=>20, 'orient'=>'horizontal', 'label'=>'クリック音量 (%)') - @w_kbdcli.pack('side'=>'left', 'expand'=>'yes', + @w_kbdcli.pack('side'=>'left', 'expand'=>'yes', 'fill'=>'x', 'padx'=>['1m', 0]) f.pack('side'=>'top', 'expand'=>'yes', 'pady'=>2, 'fill'=>'x') # # Mouse settings # - mouse = TkLabelframe.new(@root, 'text'=>'マウス設定', + mouse = TkLabelframe.new(@root, 'text'=>'マウス設定', 'padx'=>'1.5m', 'pady'=>'1.5m') f = TkFrame.new(mouse) @w_mouseacc = LabelEntry.new(f, '加速量', 5) @@ -260,11 +260,11 @@ class Xsettings # # Screen Saver settings # - screen = TkLabelframe.new(@root, 'text'=>'スクリーンセーバ設定', + screen = TkLabelframe.new(@root, 'text'=>'スクリーンセーバ設定', 'padx'=>'1.5m', 'pady'=>'1.5m') - @w_screenblank = TkRadioButton.new(screen, 'text'=>'ブランク表示', - 'relief'=>'flat', 'anchor'=>'w', - 'variable'=>@w_screenbla, + @w_screenblank = TkRadioButton.new(screen, 'text'=>'ブランク表示', + 'relief'=>'flat', 'anchor'=>'w', + 'variable'=>@w_screenbla, 'value'=>'blank') { def self.set(value) if value == 'blank' @@ -275,9 +275,9 @@ class Xsettings end } - @w_screenpat = TkRadioButton.new(screen, 'text'=>'パターン表示', - 'relief'=>'flat', 'anchor'=>'w', - 'variable'=>@w_screenbla, + @w_screenpat = TkRadioButton.new(screen, 'text'=>'パターン表示', + 'relief'=>'flat', 'anchor'=>'w', + 'variable'=>@w_screenbla, 'value'=>'noblank') { def self.set(value) if value != 'blank' @@ -299,7 +299,7 @@ class Xsettings # Main window # param = { - 'side'=>'top', 'fill'=>'both', 'expand'=>'yes', + 'side'=>'top', 'fill'=>'both', 'expand'=>'yes', 'padx'=>'1m', 'pady'=>'1m' } btn_frame.pack('side'=>'top', 'fill'=>'both') diff --git a/ext/tk/sample/demos-jp/rmt b/ext/tk/sample/demos-jp/rmt index 73f631180a..dcfb328fc8 100644 --- a/ext/tk/sample/demos-jp/rmt +++ b/ext/tk/sample/demos-jp/rmt @@ -1,9 +1,9 @@ #!/usr/bin/env ruby -# rmt -- -# This script implements a simple remote-control mechanism for -# Tk applications. It allows you to select an application and -# then type commands to that application. +# rmt -- +# This script implements a simple remote-control mechanism for +# Tk applications. It allows you to select an application and +# then type commands to that application. require 'tk' @@ -17,41 +17,41 @@ class Rmt root = TkWinfo.toplevel(parent) root.minsize(1,1) - # The instance variable below keeps track of the remote application - # that we're sending to. If it's an empty string then we execute - # the commands locally. + # The instance variable below keeps track of the remote application + # that we're sending to. If it's an empty string then we execute + # the commands locally. @app = 'local' @mode = 'Ruby' - # The instance variable below keeps track of whether we're in the - # middle of executing a command entered via the text. + # The instance variable below keeps track of whether we're in the + # middle of executing a command entered via the text. @executing = 0 - # The instance variable below keeps track of the last command executed, - # so it can be re-executed in response to !! commands. + # The instance variable below keeps track of the last command executed, + # so it can be re-executed in response to !! commands. @lastCommand = "" - # Create menu bar. Arrange to recreate all the information in the - # applications sub-menu whenever it is cascaded to. + # Create menu bar. Arrange to recreate all the information in the + # applications sub-menu whenever it is cascaded to. TkFrame.new(root, 'relief'=>'raised', 'bd'=>2) {|f| pack('side'=>'top', 'fill'=>'x') TkMenubutton.new(f, 'text'=>'File', 'underline'=>0) {|mb| TkMenu.new(mb) {|mf| mb.menu(mf) - TkMenu.new(mf) {|ma| + TkMenu.new(mf) {|ma| postcommand proc{win.fillAppsMenu ma} - mf.add('cascade', 'label'=>'Select Application', + mf.add('cascade', 'label'=>'Select Application', 'menu'=>ma, 'underline'=>0) } - add('command', 'label'=>'Quit', + add('command', 'label'=>'Quit', 'command'=>proc{root.destroy}, 'underline'=>0) } pack('side'=>'left') } } - # Create text window and scrollbar. + # Create text window and scrollbar. @txt = TkText.new(root, 'relief'=>'sunken', 'bd'=>2, 'setgrid'=>true) { yscrollbar(TkScrollbar.new(root){pack('side'=>'right', 'fill'=>'y')}) @@ -60,9 +60,9 @@ class Rmt @promptEnd = TkTextMark.new(@txt, 'insert') - # Create a binding to forward commands to the target application, - # plus modify many of the built-in bindings so that only information - # in the current command can be deleted (can still set the cursor + # Create a binding to forward commands to the target application, + # plus modify many of the built-in bindings so that only information + # in the current command can be deleted (can still set the cursor # earlier in the text and select and insert; just can't delete). @txt.bindtags([@txt, TkText, root, 'all']) @@ -151,8 +151,8 @@ class Rmt w.see('insert') end - # The method below is used to print out a prompt at the - # insertion point (which should be at the beginning of a line + # The method below is used to print out a prompt at the + # insertion point (which should be at the beginning of a line # right now). def prompt @@ -162,8 +162,8 @@ class Rmt @txt.tag_add('bold', "#{@promptEnd.path} linestart", @promptEnd) end - # The method below executes a command (it takes everything on the - # current line after the prompt and either sends it to the remote + # The method below executes a command (it takes everything on the + # current line after the prompt and either sends it to the remote # application or executes it locally, depending on "app". def invoke @@ -200,8 +200,8 @@ class Rmt if complete @lastCommand = cmd begin -# msg = Tk.appsend(@app, false, -# 'ruby', +# msg = Tk.appsend(@app, false, +# 'ruby', # '"(' + cmd.gsub(/[][$"]/, '\\\\\&') + ').to_s"') msg = Tk.rb_appsend(@app, false, cmd) rescue @@ -218,10 +218,10 @@ class Rmt end # The following method is invoked to change the application that - # we're talking to. It also updates the prompt for the current - # command, unless we're in the middle of executing a command from - # the text item (in which case a new prompt is about to be output - # so there's no need to change the old one). + # we're talking to. It also updates the prompt for the current + # command, unless we're in the middle of executing a command from + # the text item (in which case a new prompt is about to be output + # so there's no need to change the old one). def newApp(appName, mode) @app = appName @@ -236,7 +236,7 @@ class Rmt end # The method below will fill in the applications sub-menu with a list - # of all the applications that currently exist. + # of all the applications that currently exist. def fillAppsMenu(menu) win = self @@ -251,14 +251,14 @@ class Rmt else mode = 'Ruby' end - menu.add('command', 'label'=>format("%s (#{mode}/Tk)", ip), + menu.add('command', 'label'=>format("%s (#{mode}/Tk)", ip), 'command'=>proc{win.newApp ip, mode}) rescue - menu.add('command', 'label'=>format("%s (unknown Tk)", ip), + menu.add('command', 'label'=>format("%s (unknown Tk)", ip), 'command'=>proc{win.newApp ip, mode}, 'state'=>'disabled') end } - menu.add('command', 'label'=>format("local (Ruby/Tk)"), + menu.add('command', 'label'=>format("local (Ruby/Tk)"), 'command'=>proc{win.newApp 'local', 'Ruby'}) end end diff --git a/ext/tk/sample/demos-jp/rolodex b/ext/tk/sample/demos-jp/rolodex index 9f87ae2829..2cc73e128f 100644 --- a/ext/tk/sample/demos-jp/rolodex +++ b/ext/tk/sample/demos-jp/rolodex @@ -2,7 +2,7 @@ # # rolodex -- # This script is a part of Tom LaStrange's rolodex -# +# # Copyright (C) 1998 by Takaaki Tateishi <ttate@jaist.ac.jp> # Time-stamp: "03/08/02 12:45:21 nagai" # @@ -17,7 +17,7 @@ def show_help(topic,x=0,y=0) topic = w end end - + if( $helpTopics.include?(topic) ) msg = $helpTopics[topic] else @@ -81,7 +81,7 @@ class RolodexFrame < TkFrame def initialize(parent=nil,keys=nil) super(parent,keys) self["relief"] = "flat" - + @i = [] @label = [] @entry = [] diff --git a/ext/tk/sample/demos-jp/rolodex-j b/ext/tk/sample/demos-jp/rolodex-j index 6c3ea7a484..ee8dd110bc 100644 --- a/ext/tk/sample/demos-jp/rolodex-j +++ b/ext/tk/sample/demos-jp/rolodex-j @@ -3,7 +3,7 @@ # # rolodex -- # このスクリプトは Tom LaStrange の rolodex の一部です。 -# +# # Copyright (C) 1998 by Takaaki Tateishi <ttate@jaist.ac.jp> # Time-stamp: "04/04/09 00:32:12 nagai" # @@ -20,7 +20,7 @@ def show_help(topic,x=0,y=0) end end end - + if( $helpTopics.include?(topic) ) msg = $helpTopics[topic] else diff --git a/ext/tk/sample/demos-jp/square b/ext/tk/sample/demos-jp/square index 00bfde59ff..bb66282154 100644 --- a/ext/tk/sample/demos-jp/square +++ b/ext/tk/sample/demos-jp/square @@ -1,10 +1,10 @@ #!/usr/bin/env ruby # square -- -# This script generates a demo application containing only -# a "square" widget. It's only usable if Tk has been compiled -# with tkSquare.c and with the -DSQUARE_DEMO compiler switch. -# This demo arranges the following bindings for the widget: +# This script generates a demo application containing only +# a "square" widget. It's only usable if Tk has been compiled +# with tkSquare.c and with the -DSQUARE_DEMO compiler switch. +# This demo arranges the following bindings for the widget: # # Button-1 press/drag: moves square to mouse # "a": toggle size animation on/off @@ -19,7 +19,7 @@ class TkSquare<TkWindow tk_call 'square', path rescue STDERR.print "\nSorry. Your Tk interpreter does not contain " + - 'a "square" demonstration widget.' + + 'a "square" demonstration widget.' + "\n ( See documents included the Tcl/Tk source archive. )\n\n" exit end @@ -53,7 +53,7 @@ def center(x,y) end # The procedures below provide a simple form of animation where -# the box changes size in a pulsing pattern: larger, smaller, larger, +# the box changes size in a pulsing pattern: larger, smaller, larger, # and so on. $inc = 0 diff --git a/ext/tk/sample/demos-jp/tcolor b/ext/tk/sample/demos-jp/tcolor index 17f7e1347e..1c83a4b10b 100644 --- a/ext/tk/sample/demos-jp/tcolor +++ b/ext/tk/sample/demos-jp/tcolor @@ -130,7 +130,7 @@ def _null_binding end private :_null_binding -def doUpdate +def doUpdate newCmd = $command.to_s.gsub("%%","\"#{$color}\"") eval(newCmd, _null_binding) end @@ -138,7 +138,7 @@ end def tc_scaleChanged if( $updating.to_i == 1 ) - return + return end $master = :scale if $master == nil @@ -155,7 +155,7 @@ def tc_scaleChanged when :cmy $red = (65535 - scale1.get * 65.535).to_i $green = (65535 - scale2.get * 65.535).to_i - $blue = (65535 - scale3.get * 65.535).to_i + $blue = (65535 - scale3.get * 65.535).to_i when :hsb list = hsbToRgb(scale1.get / 1000.0, scale2.get / 1000.0, @@ -183,7 +183,7 @@ def tc_setScales scale1 = $root.middle.middle.scale1 scale2 = $root.middle.middle.scale2 scale3 = $root.middle.middle.scale3 - + case $colorSpace.value.intern when :rgb scale1.set($red / 65.535) @@ -209,7 +209,7 @@ end def tc_loadNamedColor(name) $name.value = name $master = :name if $master == nil - if name[0,1] != "#" + if name[0,1] != "#" list = TkWinfo.rgb($root.middle.right.swatch,name) $red = list[0] $green = list[1] @@ -243,7 +243,7 @@ def tc_loadNamedColor(name) $green = $green << shift $blue = $blue << shift end - + tc_setScales $color = format("#%04x%04x%04x",$red,$green,$blue) $root.middle.right.set_color($color) @@ -325,7 +325,7 @@ class TkColorMenuFrame<TkFrame "underline" => "0", "command" => proc{exit} } - + # FileメニューとFileボタンを関連付ける menu @file_menu @@ -361,7 +361,7 @@ class TkColorBotFrame<TkFrame self end -end +end # 中段左のフレーム @@ -467,7 +467,7 @@ class TkColorMiddleRightFrame<TkFrame super(parent) @swatch = TkFrame.new(self, "width"=>"2c", "height"=>"5c", "background"=>$color) - @value = TkLabel.new(self, + @value = TkLabel.new(self, "text"=>$color, "width"=>"13", "font"=>"-Adobe-Courier-Medium-R-Normal--*-120-*-*-*-*-*-*") diff --git a/ext/tk/sample/demos-jp/timer b/ext/tk/sample/demos-jp/timer index 58a41d00c0..6cb7c87e09 100644 --- a/ext/tk/sample/demos-jp/timer +++ b/ext/tk/sample/demos-jp/timer @@ -69,7 +69,7 @@ class CountFrame < TkFrame def initialize(parent=nil,keys=nil) super(parent,keys) @counter = TkLabel.new(self, - 'text'=>$time, + 'text'=>$time, 'relief'=>'raised') @counter.pack('fill'=>'both') self diff --git a/ext/tk/sample/demos-jp/widget b/ext/tk/sample/demos-jp/widget index dfaa9c004e..fc3c084e9a 100644 --- a/ext/tk/sample/demos-jp/widget +++ b/ext/tk/sample/demos-jp/widget @@ -125,16 +125,16 @@ end # メニュー設定 if $tk_major_ver >= 8 - $root.add_menubar([[['File', 0], + $root.add_menubar([[['File', 0], ['About ... ', proc{aboutBox}, 0, '<F1>'], - '---', + '---', ['Quit', proc{exit}, 0, 'Ctrl-Q'] ]]) else - TkMenubar.new($root, - [[['File', 0], + TkMenubar.new($root, + [[['File', 0], ['About ... ', proc{aboutBox}, 0, '<F1>'], - '---', + '---', ['Quit', proc{exit}, 0, 'Ctrl-Q'] ]]).pack('side'=>'top', 'fill'=>'x') end @@ -171,7 +171,7 @@ if $tk_version =~ /^4\.[01]/ txt.pack('expand'=>'yes', 'fill'=>'both') else textFrame = TkFrame.new($root) - scr = TkScrollbar.new($root, 'orient'=>'vertical', + scr = TkScrollbar.new($root, 'orient'=>'vertical', 'highlightthickness'=>0, 'takefocus'=>1) { pack('in'=>textFrame, 'side'=>'right', 'fill'=>'y', 'padx'=>1) } @@ -206,10 +206,10 @@ else statusfont = 'Helvetica 10' end $statusBarLabel = \ - TkLabel.new(f, 'text'=>" ", 'relief'=>'sunken', 'bd'=>1, 'anchor'=>'w', + TkLabel.new(f, 'text'=>" ", 'relief'=>'sunken', 'bd'=>1, 'anchor'=>'w', 'font'=>statusfont) \ .pack('side'=>'left', 'padx'=>2, 'expand'=>'yes', 'fill'=>'both') - TkLabel.new(f, 'width'=>8, 'relief'=>'sunken', 'bd'=>1, 'anchor'=>'w', + TkLabel.new(f, 'width'=>8, 'relief'=>'sunken', 'bd'=>1, 'anchor'=>'w', 'font'=>statusfont) \ .pack('side'=>'left', 'padx'=>2) }.pack('side'=>'bottom', 'fill'=>'x', 'pady'=>2) @@ -228,23 +228,23 @@ tag_middle = TkTextTag.new(txt, 'font'=>$kanji_font) tag_demospace = TkTextTag.new(txt, 'lmargin1'=>'1c', 'lmargin2'=>'1c') if TkWinfo.depth($root) == 1 - tag_demo = TkTextTag.new(txt, 'lmargin1'=>'1c', 'lmargin2'=>'1c', + tag_demo = TkTextTag.new(txt, 'lmargin1'=>'1c', 'lmargin2'=>'1c', 'underline'=>1) - $tag_visited = TkTextTag.new(txt, 'lmargin1'=>'1c', 'lmargin2'=>'1c', + $tag_visited = TkTextTag.new(txt, 'lmargin1'=>'1c', 'lmargin2'=>'1c', 'underline'=>1) tag_hot = TkTextTag.new(txt, 'background'=>'black', 'foreground'=>'white') else - tag_demo = TkTextTag.new(txt, 'lmargin1'=>'1c', 'lmargin2'=>'1c', + tag_demo = TkTextTag.new(txt, 'lmargin1'=>'1c', 'lmargin2'=>'1c', 'foreground'=>'blue', 'underline'=>1) - $tag_visited = TkTextTag.new(txt, 'lmargin1'=>'1c', 'lmargin2'=>'1c', + $tag_visited = TkTextTag.new(txt, 'lmargin1'=>'1c', 'lmargin2'=>'1c', 'foreground'=>'#303080', 'underline'=>1) -# tag_hot = TkTextTag.new(txt, 'relief'=>'raised', 'borderwidth'=>1, +# tag_hot = TkTextTag.new(txt, 'relief'=>'raised', 'borderwidth'=>1, # 'background'=>'SeaGreen3') tag_hot = TkTextTag.new(txt, 'borderwidth'=>1, 'foreground'=>'red') end #tag_demo.bind('Button-1', proc{invoke txt, txt.index('current')}) -tag_demo.bind('ButtonRelease-1', +tag_demo.bind('ButtonRelease-1', proc{|x,y|invoke txt, txt.index("@#{x},#{y}")}, '%x %y') lastLine = TkVariable.new("") @@ -255,7 +255,7 @@ tag_demo.bind('Enter', proc{|x,y| showStatus txt, txt.index("@#{x},#{y}") }, '%x %y') -tag_demo.bind('Leave', +tag_demo.bind('Leave', proc{ tag_hot.remove('1.0','end') txt.configure('cursor','xterm') @@ -266,10 +266,10 @@ tag_demo.bind('Motion', proc{|x, y| if newLine.value != lastLine.value tag_hot.remove('1.0','end') lastLine.value = newLine.value - if ( txt.tag_names("@#{x},#{y}").find{|t| + if ( txt.tag_names("@#{x},#{y}").find{|t| t.kind_of?(String) && t =~ /^demo-/ } ) - tag_hot.add(lastLine.value, + tag_hot.add(lastLine.value, "#{lastLine.value} lineend -1 chars") end end @@ -321,50 +321,50 @@ Ttk 拡張は、Tk8.5 以上では標準の機能として組み込まれています。 EOT #txt.insert('end',"ラベル, ボタン, チェックボタン, ラジオボタン\n",tag_middle) -txt.insert('end', "ラベル, ボタン, チェックボタン, ラジオボタン\n", +txt.insert('end', "ラベル, ボタン, チェックボタン, ラジオボタン\n", tag_kanji_title) txt.insert('end', " \n ", tag_demospace) -txt.insert('end', "1. ラベル (テキスト, ビットマップ)\n", +txt.insert('end', "1. ラベル (テキスト, ビットマップ)\n", tag_demo, "demo-label") txt.insert('end', " \n ", tag_demospace) txt.insert('end', "2. ラベルとUNICODEテキスト (機能に対応したバージョンのTkが必要)\n", tag_demo, "demo-unicodeout") txt.insert('end', " \n ", tag_demospace) txt.insert('end', "3. ボタン \n", tag_demo, "demo-button") txt.insert('end', " \n ", tag_demospace) -txt.insert('end', "4. チェックボタン (複数を選択可能)\n", +txt.insert('end', "4. チェックボタン (複数を選択可能)\n", tag_demo, "demo-check") txt.insert('end', " \n ", tag_demospace) -txt.insert('end', "5. 3状態チェックボタン (機能に対応したバージョンのTkが必要)\n", +txt.insert('end', "5. 3状態チェックボタン (機能に対応したバージョンのTkが必要)\n", tag_demo, "demo-check2") txt.insert('end', " \n ", tag_demospace) -txt.insert('end', "6. ラジオボタン (任意の一つを選択可能)\n", +txt.insert('end', "6. ラジオボタン (任意の一つを選択可能)\n", tag_demo, "demo-radio") txt.insert('end', " \n ", tag_demospace) -txt.insert('end', "7. ラジオボタン (機能に対応したバージョンのTkが必要)\n", +txt.insert('end', "7. ラジオボタン (機能に対応したバージョンのTkが必要)\n", tag_demo, "demo-radio2") txt.insert('end', " \n ", tag_demospace) -txt.insert('end', "8. 3状態ラジオボタン (機能に対応したバージョンのTkが必要)\n", +txt.insert('end', "8. 3状態ラジオボタン (機能に対応したバージョンのTkが必要)\n", tag_demo, "demo-radio3") txt.insert('end', " \n ", tag_demospace) -txt.insert('end', "9. ボタンで作られた15-パズルゲーム\n", +txt.insert('end', "9. ボタンで作られた15-パズルゲーム\n", tag_demo, "demo-puzzle") txt.insert('end', " \n ", tag_demospace) -txt.insert('end', "10. ビットマップを使用したアイコンボタン\n", +txt.insert('end', "10. ビットマップを使用したアイコンボタン\n", tag_demo, "demo-icon") txt.insert('end', " \n ", tag_demospace) -txt.insert('end', "11. 画像を表示する二つのラベル\n", +txt.insert('end', "11. 画像を表示する二つのラベル\n", tag_demo, "demo-image1") txt.insert('end', " \n ", tag_demospace) -txt.insert('end', "12. 画像を見るための簡単なユーザインターフェース\n", +txt.insert('end', "12. 画像を見るための簡単なユーザインターフェース\n", tag_demo, "demo-image2") txt.insert('end', " \n ", tag_demospace) -txt.insert('end', "13. 画像を見るための簡単なユーザインターフェース (機能に対応したバージョンのTkが必要)\n", +txt.insert('end', "13. 画像を見るための簡単なユーザインターフェース (機能に対応したバージョンのTkが必要)\n", tag_demo, "demo-image3") txt.insert('end', " \n ", tag_demospace) -txt.insert('end', "14. ラベル付きフレーム (機能に対応したバージョンのTkが必要)\n", +txt.insert('end', "14. ラベル付きフレーム (機能に対応したバージョンのTkが必要)\n", tag_demo, "demo-labelframe") txt.insert('end', " \n ", tag_demospace) -txt.insert('end', "15. テーマに対応したウィジェットの簡単な例 (Tile/Ttk拡張への対応が必要)\n", +txt.insert('end', "15. テーマに対応したウィジェットの簡単な例 (Tile/Ttk拡張への対応が必要)\n", tag_demo, "demo-ttkbut") txt.insert('end', " \n ", tag_demospace) @@ -374,15 +374,15 @@ txt.insert('end', "リストボックス\n", tag_kanji_title) txt.insert('end', " \n ", tag_demospace) txt.insert('end', "1. 都道府県.\n", tag_demo, "demo-states") txt.insert('end', " \n ", tag_demospace) -txt.insert('end', "2. 色: アプリケーションのための配色を変える\n", +txt.insert('end', "2. 色: アプリケーションのための配色を変える\n", "#{tag_demo.id} demo-colors") txt.insert('end', " \n ", tag_demospace) txt.insert('end', "3. 格言集\n", tag_demo, "demo-sayings") txt.insert('end', " \n ", tag_demospace) -txt.insert('end', "4. 国についてのマルチカラムリスト (Tile/Ttk拡張への対応が必要)\n", +txt.insert('end', "4. 国についてのマルチカラムリスト (Tile/Ttk拡張への対応が必要)\n", tag_demo, "demo-mclist") txt.insert('end', " \n ", tag_demospace) -txt.insert('end', "5. ディレクトリブラウザ (Tile/Ttk拡張への対応が必要)\n", +txt.insert('end', "5. ディレクトリブラウザ (Tile/Ttk拡張への対応が必要)\n", tag_demo, "demo-tree") txt.insert('end', " \n ", tag_demospace) @@ -394,13 +394,13 @@ txt.insert('end', "1. スクロールバーなし\n", tag_demo, "demo-entry1") txt.insert('end', " \n ", tag_demospace) txt.insert('end', "2. スクロールバーあり\n", tag_demo, "demo-entry2") txt.insert('end', " \n ", tag_demospace) -txt.insert('end', "3. 認証処理付きのエントリボックスとパスワードフィールド (機能に対応したバージョンのTkが必要)\n", +txt.insert('end', "3. 認証処理付きのエントリボックスとパスワードフィールド (機能に対応したバージョンのTkが必要)\n", tag_demo, "demo-entry3") txt.insert('end', " \n ", tag_demospace) -txt.insert('end', "4. スピンボックス (機能に対応したバージョンのTkが必要)\n", +txt.insert('end', "4. スピンボックス (機能に対応したバージョンのTkが必要)\n", tag_demo, "demo-spin") txt.insert('end', " \n ", tag_demospace) -txt.insert('end', "5. コンボボックス (Tile/Ttk拡張への対応が必要)\n", +txt.insert('end', "5. コンボボックス (Tile/Ttk拡張への対応が必要)\n", tag_demo, "demo-combo") txt.insert('end', " \n ", tag_demospace) txt.insert('end', "6. 簡単なフォーム\n", tag_demo, "demo-form") @@ -414,13 +414,13 @@ txt.insert('end', "1. 基本的なテキスト\n", tag_demo, "demo-text") txt.insert('end', " \n ", tag_demospace) txt.insert('end', "2. 表示スタイル.\n", tag_demo, "demo-style") txt.insert('end', " \n ", tag_demospace) -txt.insert('end', "3. ハイパーテキスト(タグバインド).\n", +txt.insert('end', "3. ハイパーテキスト(タグバインド).\n", tag_demo, "demo-bind") txt.insert('end', " \n ", tag_demospace) -txt.insert('end', "4. ウィンドウを埋め込んだテキスト\n", +txt.insert('end', "4. ウィンドウを埋め込んだテキスト\n", tag_demo, "demo-twind") txt.insert('end', " \n ", tag_demospace) -txt.insert('end', "5. ウィンドウを埋め込んだテキスト (機能に対応したバージョンのTkが必要)\n", +txt.insert('end', "5. ウィンドウを埋め込んだテキスト (機能に対応したバージョンのTkが必要)\n", tag_demo, "demo-twind2") txt.insert('end', " \n ", tag_demospace) txt.insert('end', "6. 検索\n", tag_demo, "demo-search") @@ -446,10 +446,10 @@ txt.insert('end', "6. フロアプラン\n", tag_demo, "demo-floor") txt.insert('end', " \n ", tag_demospace) txt.insert('end', "7. フロアプラン (異なるキャンバスアイテム作成方法を使用)\n", tag_demo, "demo-floor2") txt.insert('end', " \n ", tag_demospace) -txt.insert('end', "8. スクロール可能なキャンバス\n", +txt.insert('end', "8. スクロール可能なキャンバス\n", tag_demo, "demo-cscroll") txt.insert('end', " \n ", tag_demospace) -txt.insert('end', "9. チェスボード上の騎士の巡回 (Tile/Ttk拡張への対応が必要)\n", +txt.insert('end', "9. チェスボード上の騎士の巡回 (Tile/Ttk拡張への対応が必要)\n", tag_demo, "demo-knightstour") txt.insert('end', " \n ", tag_demospace) @@ -467,16 +467,16 @@ txt.insert('end', " \n ", tag_demospace) txt.insert('end', "\n") txt.insert('end', "ペインドウィンドウとノートブック\n", tag_kanji_title) txt.insert('end', " \n ", tag_demospace) -txt.insert('end', "1. 水平方向 (機能に対応したバージョンのTkが必要)\n", +txt.insert('end', "1. 水平方向 (機能に対応したバージョンのTkが必要)\n", tag_demo.id, "demo-paned1") txt.insert('end', " \n ", tag_demospace) -txt.insert('end', "2. 垂直方向 (機能に対応したバージョンのTkが必要)\n", +txt.insert('end', "2. 垂直方向 (機能に対応したバージョンのTkが必要)\n", tag_demo.id, "demo-paned2") txt.insert('end', " \n ", tag_demospace) -txt.insert('end', "3. テーマに対応した埋め込みペイン (Tile/Ttk拡張への対応が必要)\n", +txt.insert('end', "3. テーマに対応した埋め込みペイン (Tile/Ttk拡張への対応が必要)\n", tag_demo.id, "demo-ttkpane") txt.insert('end', " \n ", tag_demospace) -txt.insert('end', "4. ノートブックウィジェット (Tile/Ttk拡張への対応が必要)\n", +txt.insert('end', "4. ノートブックウィジェット (Tile/Ttk拡張への対応が必要)\n", tag_demo.id, "demo-ttknote") txt.insert('end', " \n ", tag_demospace) @@ -484,22 +484,22 @@ txt.insert('end', "\n") #txt.insert('end', "メニューとツールバー\n", tag_middle) txt.insert('end', "メニューとツールバー\n", tag_kanji_title) txt.insert('end', " \n ", tag_demospace) -txt.insert('end', "1. メニューとカスケードを含んだウィンドウ\n", +txt.insert('end', "1. メニューとカスケードを含んだウィンドウ\n", tag_demo, "demo-menu") txt.insert('end', " \n ", tag_demospace) -txt.insert('end', "2. メニューとカスケードを含んだウィンドウ (Tk8.x 専用)\n", +txt.insert('end', "2. メニューとカスケードを含んだウィンドウ (Tk8.x 専用)\n", tag_demo, "demo-menu8x") txt.insert('end', " \n ", tag_demospace) -txt.insert('end', "3. 〃 (機能に対応したバージョンのTkが必要)\n", +txt.insert('end', "3. 〃 (機能に対応したバージョンのTkが必要)\n", tag_demo, "demo-menu84") txt.insert('end', " \n ", tag_demospace) -txt.insert('end', "4. メニューボタン (Tk8.x 専用)\n", +txt.insert('end', "4. メニューボタン (Tk8.x 専用)\n", tag_demo, "demo-menubu") txt.insert('end', " \n ", tag_demospace) -txt.insert('end', "5. テーマに対応したメニューボタン (Tile/Ttk拡張への対応が必要)\n", +txt.insert('end', "5. テーマに対応したメニューボタン (Tile/Ttk拡張への対応が必要)\n", tag_demo.id, "demo-ttkmenu") txt.insert('end', " \n ", tag_demospace) -txt.insert('end', "6. テーマに対応したツールバー (Tile/Ttk拡張への対応が必要)\n", +txt.insert('end', "6. テーマに対応したツールバー (Tile/Ttk拡張への対応が必要)\n", tag_demo.id, "demo-toolbar") txt.insert('end', " \n ", tag_demospace) @@ -534,10 +534,10 @@ txt.insert('end', "その他\n", tag_kanji_title) txt.insert('end', " \n ", tag_demospace) txt.insert('end', "1. 組み込みのビットマップ\n", tag_demo, "demo-bitmap") txt.insert('end', " \n ", tag_demospace) -txt.insert('end', "2. モーダルダイアログ(ローカルグラブ)\n", +txt.insert('end', "2. モーダルダイアログ(ローカルグラブ)\n", tag_demo, "demo-dialog1") txt.insert('end', " \n ", tag_demospace) -txt.insert('end', "3. モーダルダイアログ(グローバルグラブ)\n", +txt.insert('end', "3. モーダルダイアログ(グローバルグラブ)\n", tag_demo, "demo-dialog2") txt.insert('end', " \n ", tag_demospace) @@ -556,7 +556,7 @@ $showVarsWin = {} def showVars1(parent, *args) if $showVarsWin[parent.path] begin - $showVarsWin[parent.path].destroy + $showVarsWin[parent.path].destroy rescue end end @@ -596,7 +596,7 @@ end def showVars2(parent, *args) if $showVarsWin[parent.path] begin - $showVarsWin[parent.path].destroy + $showVarsWin[parent.path].destroy rescue end end @@ -605,11 +605,11 @@ def showVars2(parent, *args) base = TkFrame.new(top).pack(:fill=>:both, :expand=>true) - TkLabelFrame.new(base, :text=>"変数値:", + TkLabelFrame.new(base, :text=>"変数値:", :font=>{:family=>'Helvetica', :size=>14}){|f| args.each{|vnam,vbody| - TkGrid(TkLabel.new(f, :text=>"#{vnam}: ", :anchor=>'w'), - TkLabel.new(f, :textvariable=>vbody, :anchor=>'w'), + TkGrid(TkLabel.new(f, :text=>"#{vnam}: ", :anchor=>'w'), + TkLabel.new(f, :textvariable=>vbody, :anchor=>'w'), :padx=>2, :pady=>2, :sticky=>'w') } @@ -617,7 +617,7 @@ def showVars2(parent, *args) f.grid_columnconfig(1, :weight=>1) f.grid_rowconfig(100, :weight=>1) } - TkButton.new(base, :text=>"了解", :width=>8, :default=>:active, + TkButton.new(base, :text=>"了解", :width=>8, :default=>:active, :command=>proc{top.destroy}){|b| top.bind('Return', proc{b.invoke}) top.bind('Escape', proc{b.invoke}) @@ -667,9 +667,9 @@ class Object def method_missing(id, *args) begin - has_top = (top = Thread.current[:TOPLEVEL]) && - top.respond_to?(:pseudo_toplevel_evaluable?) && - top.pseudo_toplevel_evaluable? && + has_top = (top = Thread.current[:TOPLEVEL]) && + top.respond_to?(:pseudo_toplevel_evaluable?) && + top.pseudo_toplevel_evaluable? && top.respond_to?(id) rescue Exception => e has_top = false @@ -733,9 +733,9 @@ def eval_samplecode(code, file=nil) end rescue Exception=>e #p e - TkBgError.show(e.message + "\n" + - "\n---< backtrace of Ruby side >-----\n" + - e.backtrace.join("\n") + + TkBgError.show(e.message + "\n" + + "\n---< backtrace of Ruby side >-----\n" + + e.backtrace.join("\n") + "\n---< backtrace of Tk side >-------") end } @@ -785,7 +785,7 @@ def showStatus (txt, index) newcursor = 'xterm' else demoname = tag[5..-1] - $statusBarLabel.configure('text', + $statusBarLabel.configure('text', "サンプルプログラム \"#{demoname}\" の実行 ") newcursor = 'hand2' end @@ -841,9 +841,9 @@ def showCode1(demo) TkFrame.new($code_window) {|f| pack('expand'=>'yes', 'fill'=>'both', 'padx'=>1, 'pady'=>1) - hs = TkScrollbar.new($code_window, 'highlightthickness'=>0, + hs = TkScrollbar.new($code_window, 'highlightthickness'=>0, 'orient'=>'horizontal') - vs = TkScrollbar.new($code_window, 'highlightthickness'=>0, + vs = TkScrollbar.new($code_window, 'highlightthickness'=>0, 'orient'=>'vertical') $code_text = TkText.new($code_window) {|t| height 40 @@ -859,11 +859,11 @@ def showCode1(demo) vs.command(proc{|*args| $code_text.yview(*args)}) } - $code_text.grid('in'=>f, 'padx'=>1, 'pady'=>1, 'row'=>0, 'column'=>0, + $code_text.grid('in'=>f, 'padx'=>1, 'pady'=>1, 'row'=>0, 'column'=>0, 'rowspan'=>1, 'columnspan'=>1, 'sticky'=>'news') - vs.grid('in'=>f, 'padx'=>1, 'pady'=>1, 'row'=>0, 'column'=>1, + vs.grid('in'=>f, 'padx'=>1, 'pady'=>1, 'row'=>0, 'column'=>1, 'rowspan'=>1, 'columnspan'=>1, 'sticky'=>'news') -# xs.grid('in'=>f, 'padx'=>1, 'pady'=>1, 'row'=>1, 'column'=>0, +# xs.grid('in'=>f, 'padx'=>1, 'pady'=>1, 'row'=>1, 'column'=>0, # 'rowspan'=>1, 'columnspan'=>1, 'sticky'=>'news') TkGrid.rowconfigure(f, 0, 'weight'=>1, 'minsize'=>0) TkGrid.columnconfigure(f, 0, 'weight'=>1, 'minsize'=>0) @@ -900,8 +900,8 @@ def showCode2(demo) if $code_window == nil || TkWinfo.exist?($code_window) == false $code_window = TkToplevel.new(nil) tf = TkFrame.new($code_window) - $code_text = TkText.new(tf, :font=>'Courier 10', :height=>30, - :wrap=>'word', :bd=>1, :setgrid=>true, + $code_text = TkText.new(tf, :font=>'Courier 10', :height=>30, + :wrap=>'word', :bd=>1, :setgrid=>true, :highlightthickness=>0, :pady=>2, :padx=>3) xscr = TkScrollbar.new(tf, :bd=>1){assign($code_text)} yscr = TkScrollbar.new(tf, :bd=>1){assign($code_text)} @@ -924,21 +924,21 @@ def showCode2(demo) posnum.text = pos } - #b_dis = TkButton.new(bf, :text=>'了解', :default=>:active, - b_dis = TkButton.new(bf, :text=>'閉じる', :default=>:active, + #b_dis = TkButton.new(bf, :text=>'了解', :default=>:active, + b_dis = TkButton.new(bf, :text=>'閉じる', :default=>:active, :command=>proc{ $code_window.destroy $code_window = nil - }, + }, :image=>$image['delete'], :compound=>:left) - b_prn = TkButton.new(bf, :text=>'印刷', - :command=>proc{printCode($code_text, file)}, + b_prn = TkButton.new(bf, :text=>'印刷', + :command=>proc{printCode($code_text, file)}, :image=>$image['print'], :compound=>:left) - b_run = TkButton.new(bf, :text=>'再実行', + b_run = TkButton.new(bf, :text=>'再実行', :command=>proc{ # eval($code_text.get('1.0','end'), _null_binding) eval_samplecode($code_text.get('1.0','end'), '<viewer>') - }, + }, :image=>$image['refresh'], :compound=>:left) TkGrid(lf, 'x', b_run, b_prn, b_dis, :padx=>4, :pady=>[6,4]) @@ -1011,27 +1011,27 @@ def printCode(txt, file) when 'unix' msg = `lp -c #{fname}` unless $?.exitstatus == 0 - Tk.messageBox(:title=>'Print spooling failure', - :message=>'エラーが発生しました.' + + Tk.messageBox(:title=>'Print spooling failure', + :message=>'エラーが発生しました.' + '印刷に失敗したものと思われます : ' + msg) end when 'windows' begin printTextWin32(fname) rescue => e - Tk.messageBox(:title=>'Print spooling failure', - :message=>'エラーが発生しました.' + - '印刷に失敗したものと思われます : ' + + Tk.messageBox(:title=>'Print spooling failure', + :message=>'エラーが発生しました.' + + '印刷に失敗したものと思われます : ' + e.message) - end + end when 'macintosh' - Tk.messageBox(:title=>'Operation not Implemented', + Tk.messageBox(:title=>'Operation not Implemented', :message=>'印刷機能はまだ実装されていません') else - Tk.messageBox(:title=>'Operation not Implemented', - :message=>'検出された環境 ' + - Tk::TCL_PLATFORM('platform') + - ' は未知の環境であるため,' + + Tk.messageBox(:title=>'Operation not Implemented', + :message=>'検出された環境 ' + + Tk::TCL_PLATFORM('platform') + + ' は未知の環境であるため,' + '印刷機能は実装されていません: ') end ensure @@ -1061,7 +1061,7 @@ def printTextWin32(fname) pcmd.gsub!('%1', fname) puts pcmd cmd = Tk.tk_call('auto_execok', 'start') + ' /min ' + pcmd - + msg = `#{cmd}` unless $?.exitstatus == 0 fail RuntimeError, msg @@ -1073,16 +1073,16 @@ end # Pops up a message box with an "about" message # def aboutBox - Tk.messageBox('icon'=>'info', 'type'=>'ok', 'title'=>'About Widget Demo', - 'message'=>"Ruby/Tk ウィジェットデモ Ver.1.7.1-jp\n\n" + - "based on demos of Tk8.1 -- 8.5 " + - "( Copyright of Tcl/Tk demos:: " + - "(c) 1996-1997 Sun Microsystems, Inc. / " + - "(c) 1997-2000 Ajuba Solutions, Inc. / " + - "(c) 2001-2007 Donal K. Fellows / " + + Tk.messageBox('icon'=>'info', 'type'=>'ok', 'title'=>'About Widget Demo', + 'message'=>"Ruby/Tk ウィジェットデモ Ver.1.7.1-jp\n\n" + + "based on demos of Tk8.1 -- 8.5 " + + "( Copyright of Tcl/Tk demos:: " + + "(c) 1996-1997 Sun Microsystems, Inc. / " + + "(c) 1997-2000 Ajuba Solutions, Inc. / " + + "(c) 2001-2007 Donal K. Fellows / " + "(c) 2002-2007 Daniel A. Steffen )\n\n" + - "Your Ruby & Tk Version ::\n" + - "Ruby#{RUBY_VERSION}(#{RUBY_RELEASE_DATE})[#{RUBY_PLATFORM}] / Tk#{$tk_patchlevel}#{(Tk::JAPANIZED_TK)? '-jp': ''}\n\n" + + "Your Ruby & Tk Version ::\n" + + "Ruby#{RUBY_VERSION}(#{RUBY_RELEASE_DATE})[#{RUBY_PLATFORM}] / Tk#{$tk_patchlevel}#{(Tk::JAPANIZED_TK)? '-jp': ''}\n\n" + "Ruby/Tk release date :: tcltklib #{TclTkLib::RELEASE_DATE}; tk #{Tk::RELEASE_DATE}") end @@ -1096,11 +1096,11 @@ else # show the root widget to make it lower then demo windows Tk.update end -ARGV.each{|cmd| +ARGV.each{|cmd| if cmd =~ /(.*).rb/ cmd = $1 end - #eval(IO.readlines("#{[$demo_dir, cmd].join(File::Separator)}.rb").join, + #eval(IO.readlines("#{[$demo_dir, cmd].join(File::Separator)}.rb").join, # _null_binding) eval_samplecode(IO.readlines("#{[$demo_dir, cmd].join(File::Separator)}.rb").join, cmd + '.rb') } |