中村です。

質問です。ruby/tk で cascade menu は
どう書いたら良いのでしょうか?

たとえば、Tcl/Tk でこんなやつです。


#!/usr/local/bin/wish4.2jp

frame .mbar -relief raised -bd 2
pack .mbar -side top -fill x

menubutton .mbar.file -text {File} -underline 0 -menu .mbar.file.menu
pack .mbar.file -side left

menu .mbar.file.menu
.mbar.file.menu add cascade -label {Cascades} \
		-menu .mbar.file.menu.hoge
.mbar.file.menu add command -label {Quit} -command {exit}

menu .mbar.file.menu.hoge
.mbar.file.menu.hoge add command -label hoge -command {puts hoge}
.mbar.file.menu.hoge add command -label hoge^2 -command {puts hogehoge}


途中まで ruby/tk で書いてみたのですが、
cascade をどうやって書けば良いのか
分かりませんでした。


#!/usr/local/bin/ruby

require "tk"

mbar = TkFrame.new {
  relief 'raised'
  borderwidth 2
}
mbar.pack('fill' => 'x')

TkMenubutton.new(mbar) {|mb|
  text "File"
  underline 0
  menu TkMenu.new(mb) {
    add 'cascade', 'label' => 'Cascades', 'underline' => 0
	add 'command', 'label' => 'hoge',
	  'command' => proc{print "hoge\n"}
	add 'command', 'label' => 'hoge^2',
	  'command' => proc{print "hogehoge\n"}
    add 'command', 'label' => 'Quit',
	  'underline' => 0, 'command' => proc{exit}
  }
  pack('side' => 'left')
}

Tk.mainloop


よろしくお願いいたします。

# はやく lib/ruby/tk*.rb 読めるようになりたい…

       中村典嗣  E-mail: nnakamur / mxq.meshnet.or.jp