summaryrefslogtreecommitdiff
path: root/ext/tk/lib/tk/menuspec.rb
diff options
context:
space:
mode:
authornagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-07-15 01:18:57 +0000
committernagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-07-15 01:18:57 +0000
commit1ac70e2f77eefc3662e6561d6d8864bb9ec00f32 (patch)
tree537e86474ae310bdbc357b331a580cd42583a745 /ext/tk/lib/tk/menuspec.rb
parent6e918be6b182ac121412bdd53c78ec1b54b14593 (diff)
* ext/tk/, ext/tcltklib/: bug fix
* ext/tk/lib/tk.rb: better operation for SIGINT when processing callbacks. * ext/tk/lib/tk/msgcat.rb: ditto. * ext/tk/lib/tk/variable.rb: ditto. * ext/tk/lib/tk/timer.rb: ditto. * ext/tk/lib/tk/validation.rb: add Tk::ValidateConfigure.__def_validcmd() to define validatecommand methods easier * ext/tk/lib/tk.rb (_genobj_for_tkwidget): support autoload Tk ext classes * ext/tk/lib/tk/canvas.rb and so on: remove the parent widget type check for items (e.g. canvas items; depends on the class) to avoid some troubles on Tk extension widget class definition. * ext/tk/lib/tkextlib/: add Iwidget and TkTable extension support * ext/tk/sample/tkextlib/: add samples of Iwidget and TkTable git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6630 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/tk/lib/tk/menuspec.rb')
-rw-r--r--ext/tk/lib/tk/menuspec.rb32
1 files changed, 27 insertions, 5 deletions
diff --git a/ext/tk/lib/tk/menuspec.rb b/ext/tk/lib/tk/menuspec.rb
index b2d66befa7..dfc1871ba9 100644
--- a/ext/tk/lib/tk/menuspec.rb
+++ b/ext/tk/lib/tk/menuspec.rb
@@ -144,6 +144,30 @@ module TkMenuSpec
end
private :_create_menu
+ def _use_menubar?(parent)
+ use_menubar = false
+ if parent.kind_of?(TkRoot) || parent.kind_of?(TkToplevel)
+ return true
+ else
+ begin
+ parent.cget('menu')
+ return true
+ rescue
+ end
+ end
+ false
+ end
+ private :_use_menubar?
+
+ def _create_menu_for_menubar(parent)
+ unless (mbar = parent.menu).kind_of?(TkMenu)
+ mbar = TkMenu.new(parent, :tearoff=>false)
+ parent.menu(mbar)
+ end
+ mbar
+ end
+ private :_create_menu_for_menubar
+
def _create_menubutton(parent, menu_info, tearoff=false, default_opts = nil)
btn_info = menu_info[0]
@@ -160,12 +184,10 @@ module TkMenuSpec
tearoff = keys.delete('tearoff') if keys.key?('tearoff')
- if parent.kind_of?(TkRoot) || parent.kind_of?(TkToplevel)
+ if _use_menubar?(parent)
# menubar by menu entries
- unless (mbar = parent.menu).kind_of?(TkMenu)
- mbar = TkMenu.new(parent, :tearoff=>false)
- parent.menu(mbar)
- end
+
+ mbar = _create_menu_for_menubar(parent)
menu_name = nil