# # tkmenubar.rb # # Copyright (C) 1998 maeda shugo. All rights reserved. # This file can be distributed under the terms of the Ruby. # Usage: # # menu_spec = [ # [['File', 0], # ['Open', proc{puts('Open clicked')}, 0], # '---', # ['Quit', proc{exit}, 0]], # [['Edit', 0], # ['Cut', proc{puts('Cut clicked')}, 2], # ['Copy', proc{puts('Copy clicked')}, 0], # ['Paste', proc{puts('Paste clicked')}, 0]] # ] # menubar = TkMenubar.new(nil, menu_spec, # 'tearoff'=>false, # 'foreground'=>'grey40', # 'activeforeground'=>'red', # 'font'=>'-adobe-helvetica-bold-r-*--12-*-iso8859-1') # menubar.pack('side'=>'top', 'fill'=>'x') # # # OR # # # menubar = TkMenubar.new # menubar.add_menu([['File', 0], # ['Open', proc{puts('Open clicked')}, 0], # '---', # ['Quit', proc{exit}, 0]]) # menubar.add_menu([['Edit', 0], # ['Cut', proc{puts('Cut clicked')}, 2], # ['Copy', proc{puts('Copy clicked')}, 0], # ['Paste', proc{puts('Paste clicked')}, 0]]) # menubar.configure('tearoff', false) # menubar.configure('foreground', 'grey40') # menubar.configure('activeforeground', 'red') # menubar.configure('font', '-adobe-helvetica-bold-r-*--12-*-iso8859-1') # menubar.pack('side'=>'top', 'fill'=>'x') # The format of the menu_spec is: # [ # [ # [button text, underline, accelerator], # [menu label, command, underline, accelerator], # '---', # separator # ... # ], # ... # ] # underline and accelerator are optional parameters. # Hashes are OK instead of Arrays. # To use add_menu, configuration must be done by calling configure after # adding all menus by add_menu, not by the constructor arguments. require "tk" class TkMenubar item_info) end end mbtn.menu(menu) @menus.push([mbtn, menu]) delegate('tearoff', menu) delegate('foreground', mbtn, menu) delegate('background', mbtn, menu) delegate('disabledforeground', mbtn, menu) delegate('activeforeground', mbtn, menu) delegate('activebackground', mbtn, menu) delegate('font', mbtn, menu) delegate('kanjifont', mbtn, menu) mbtn.pack('side' => 'left') end def [](index) return @menus[index] end end