# Slim template files generated by Cutter will have a first line
# of (commented) text that tells the ::Slim::RegisterLazyTemplates
# procedure in which menu the template should be placed. A typical
# first line might be,
#          # menuInfo fundza,MyColor#0 color MyColor utility
# This line of text has the effect of telling Slim that a template
# named "MyColor" implements a color node. As a menu item it 
# should be labelled "MyColor" and should appear in the "Utility"
# sub-menu of the "Colors" menu that is displayed by Slim.
#
# Author: Malcolm Kesson October 21 2007
#
  
set userdir FULL_PATH_TO_YOUR_SLIM_DIR/slim
  
  
if { [file exists $userdir] } {
    set slimfiles [glob -nocomplain -directory $userdir *slim]
    foreach item $slimfiles {
        
        set slimName [file tail $item]
  
        set fileID [open $userdir/$slimName r]
        # Read the first line of text
        gets $fileID info
        close $fileID
        
        # Remove the comment character and any leading white
        # space 
        set info [string trimleft $info "\# "]
    
        # Does the line begin with the "menuInfo" tag?
        if { [string equal -nocase -length 8 $info "menuInfo"] == 0} {
            continue
            }
        set info [string trimleft $info]
        # Remove the tag
        set info [string range $info 8 end]
        set info [string trimleft $info]
        
        set rltStr     "::Slim::RegisterLazyTemplates \{\n"
        append rltStr  "    $userdir/$slimName \{\n"
        append rltStr  "        \{ $info \}\n"
        append rltStr  "    \}\n"
        append rltStr  "\}"
        eval $rltStr
        }
    }