diff options
Diffstat (limited to 'trunk/ext/tk/lib/tk/menubar.rb')
-rw-r--r-- | trunk/ext/tk/lib/tk/menubar.rb | 131 |
1 files changed, 0 insertions, 131 deletions
diff --git a/trunk/ext/tk/lib/tk/menubar.rb b/trunk/ext/tk/lib/tk/menubar.rb deleted file mode 100644 index ef9da809b9..0000000000 --- a/trunk/ext/tk/lib/tk/menubar.rb +++ /dev/null @@ -1,131 +0,0 @@ -# -# tk/menubar.rb -# -# Original version: -# 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') -# -# -# OR -# -# radio_var = TkVariable.new('y') -# menu_spec = [ -# [['File', 0], -# {:label=>'Open', :command=>proc{puts('Open clicked')}, :underline=>0}, -# '---', -# ['Check_A', TkVariable.new(true), 6], -# {:type=>'checkbutton', :label=>'Check_B', -# :variable=>TkVariable.new, :underline=>6}, -# '---', -# ['Radio_X', [radio_var, 'x'], 6], -# ['Radio_Y', [radio_var, 'y'], 6], -# ['Radio_Z', [radio_var, 'z'], 6], -# '---', -# ['cascade', [ -# ['sss', proc{p 'sss'}, 0], -# ['ttt', proc{p 'ttt'}, 0], -# ['uuu', proc{p 'uuu'}, 0], -# ['vvv', proc{p 'vvv'}, 0], -# ], 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'=>'Helvetia 12 bold') -# menubar.pack('side'=>'top', 'fill'=>'x') - -# See tk/menuspce.rb about the format of the menu_spec - -# 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' -require 'tk/frame' -require 'tk/composite' -require 'tk/menuspec' - -class TkMenubar<Tk::Frame - include TkComposite - include TkMenuSpec - - def initialize(parent = nil, spec = nil, options = nil) - if parent.kind_of? Hash - options = _symbolkey2str(parent) - spec = options.delete('spec') - super(options) - else - super(parent, options) - end - - @menus = [] - - spec.each{|info| add_menu(info)} if spec - - options.each{|key, value| configure(key, value)} if options - end - - def add_menu(menu_info) - mbtn, menu = _create_menubutton(@frame, menu_info) - - submenus = _get_cascade_menus(menu).flatten - - @menus.push([mbtn, menu]) - delegate('tearoff', menu, *submenus) - delegate('foreground', mbtn, menu, *submenus) - delegate('background', mbtn, menu, *submenus) - delegate('disabledforeground', mbtn, menu, *submenus) - delegate('activeforeground', mbtn, menu, *submenus) - delegate('activebackground', mbtn, menu, *submenus) - delegate('font', mbtn, menu, *submenus) - delegate('kanjifont', mbtn, menu, *submenus) - end - - def [](index) - return @menus[index] - end -end |