# Menu entry creation module.
# Rick Smereka, Copyright (C) 2004-2005.

# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

# You should have received a copy of the GNU General Public License
# along with this program; if not, get a copy via the Internet at
# http://gnu.org/copyleft/gpl.html or write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA

# You can contact the author via email at rsmereka@future-lab.com

# Initial tcl version. Feb/2004, Rick Smereka
# This version based on code in the book 'Graphical Applications with
# Tcl & Tk' second edition by Eric Foster-Johnson.
# The top level menu bar must have already been created using
# 'createmenubar'.
#
# used to hide menubutton names for old Tk
set menu_count 0
global menu_count
#
proc createmenu {menubar basename text mnemonic} {
   # Create a menu on a menubar, using the
   # new and old Tk methods.
   #
   # menubar = name of parent menubar
   # basename = base name of menu (eg: "file")
   # text = text to display
   # mnemonic = which letter to underline in $text
   #
   # Returns the menu name so you can use this in your
   # code to create menu choices. YOU MUST USE THIS NAME!
   global tk_version menu_count


   if {$tk_version >= 8.0} {
      # set up menu name
      set menu_name "$menubar.$basename"
      $menubar add cascade -label $text -menu $menu_name \
         -underline $mnemonic
   } else {
      # old method
      # set up menu name
      set menu_name "$menubar.menu$menu_count.$basename"

      menubutton $menubar.$menu_count -text $text \
         -menu $menu_name -underline $mnemonic

      pack $menubar.$menu_count -side left

      # increment count of menubuttons
      set menu_count [expr $menu_count + 1]
   }

   menu $menu_name
   return $menu_name
}
