[PD-cvs] packages/darwin_app/patches extended-help-menu.patch, 1.2, 1.3

Hans-Christoph Steiner eighthave at users.sourceforge.net
Sat Nov 12 01:48:50 CET 2005


Update of /cvsroot/pure-data/packages/darwin_app/patches
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26409

Modified Files:
	extended-help-menu.patch 
Log Message:
cleaned up the help menu; fixed the browser/openpanel item so that it works with symlinks rather than copying the whole thing;  made the nested menu function recursive

Index: extended-help-menu.patch
===================================================================
RCS file: /cvsroot/pure-data/packages/darwin_app/patches/extended-help-menu.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** extended-help-menu.patch	6 Jun 2005 23:47:18 -0000	1.2
--- extended-help-menu.patch	12 Nov 2005 00:48:48 -0000	1.3
***************
*** 1,41 ****
  Index: u_main.tk
  ===================================================================
! RCS file: /cvsroot/pure-data/pd/src/u_main.tk,v
! retrieving revision 1.9
! diff -u -w -r1.9 u_main.tk
! --- u_main.tk	18 May 2005 04:28:51 -0000	1.9
! +++ u_main.tk	6 Jun 2005 23:43:45 -0000
! @@ -531,6 +531,34 @@
!  	 doc_submenu $mbar.$helpmenuname 4.fft.examples
!  	 doc_submenu $mbar.$helpmenuname 5.reference
!  	 doc_submenu $mbar.$helpmenuname 6.externs
! +    $mbar.$helpmenuname add separator
! +    doc_submenu $mbar.$helpmenuname 7.stuff/audio-playpen
! +    doc_submenu $mbar.$helpmenuname 7.stuff/data-structures
! +    doc_submenu $mbar.$helpmenuname 7.stuff/pd-msg
! +    doc_submenu $mbar.$helpmenuname 7.stuff/soundfile-tools
! +    doc_submenu $mbar.$helpmenuname 7.stuff/synth
! +    doc_submenu $mbar.$helpmenuname 7.stuff/tools
! +    $mbar.$helpmenuname add separator
! +    $mbar.$helpmenuname add command -label {Gem manual...} \
! +             -command {menu_doc_open doc/Gem/00.manual index.html} 
! +    $mbar.$helpmenuname add separator
! +    $mbar.$helpmenuname add command -label {RRADical manual...} \
! +             -command {menu_doc_open doc/rradical rradicalpd.html} 
! +    doc_submenu $mbar.$helpmenuname rradical
! +    $mbar.$helpmenuname add separator
! +    $mbar.$helpmenuname add command -label {Building Drums in Pd...} \
! +             -command {menu_doc_open doc/tutorials/footils/pddrums pddrums.html} 
! +    doc_submenu $mbar.$helpmenuname tutorials/footils/pddrums
! +    doc_submenu $mbar.$helpmenuname abstractions/footils/angriff
! +    $mbar.$helpmenuname add separator
! +    $mbar.$helpmenuname add command -label {serendiPd info...} \
! +             -command {menu_doc_open doc/serendipd home.html} 
! +    $mbar.$helpmenuname add command -label {serendiPd client} \
! +             -command {menu_doc_open doc/serendipd serendiPd-gui.pd} 
! +    $mbar.$helpmenuname add command -label {serendiPd server} \
! +             -command {menu_doc_open doc/serendipd serendiPd-server.pd} 
! +    $mbar.$helpmenuname add separator
! +    doc_submenu $mbar.$helpmenuname tutorials/playnow
   }
   
--- 1,156 ----
  Index: u_main.tk
  ===================================================================
! --- u_main.tk	Sun Feb 20 20:03:36 2005
! +++ u_main.tk	Fri Nov 11 19:40:51 2005
! @@ -374,22 +374,40 @@
!  set help_directory $pd_guidir/doc
!  set help_top_directory $pd_guidir/doc
!  
! +################## generate_menu_doc_link #########################
! +# This procedure generates a temporary mirror of the documentation directory
! +# in /tmp so that it can be opened from the Help->Pure Documentation... menu
! +# under Mac OS X.  It is meant to be run at startup.
! +# Damn you Apple and your "we know best" "features".  <hans at at.or.at.>
! +proc generate_menu_doc_link {} {
! +    global help_directory
! +	 
! +	 regsub -all "/" $help_directory "_" help_directory_alias
! +	 set help_directory_alias /tmp/$help_directory_alias
! +	 set help_directory_tmpdir $help_directory_alias/doc
! +	 # if something other than a directory exists, delete it
! +	 if [file exists $help_directory_alias] {
! +		  file delete -force -- $help_directory_alias
! +	 }
! +	 if { ! [ file isdirectory $help_directory_tmpdir ] } {
! +		  file mkdir -p $help_directory_tmpdir
! +	 }
! +	 foreach file [ lsort [ glob -dir $help_directory * ] ] {
! +		  regsub -all ".*/" $file "" link_file_name
! +		  file link -symbolic [file join $help_directory_tmpdir $link_file_name ] $file 
! +	 }
! +	 set help_directory $help_directory_tmpdir
! +}
! +
! +################## menu_documentation #########################
!  proc menu_documentation {} {
!      global help_directory
!      global pd_nt
!      global pd_guidir
!  
! -    if {$pd_nt == 2} {
! -    	exec rm -rf /tmp/pd-documentation
! -    	exec cp -pr $pd_guidir/doc /tmp/pd-documentation
! -	set filename [tk_getOpenFile -defaultextension .pd \
! -	-filetypes { {{documentation} {.pd .txt .htm}} } \
! -	-initialdir /tmp/pd-documentation]
! -    } else {
!  	set filename [tk_getOpenFile -defaultextension .pd \
!  	-filetypes { {{documentation} {.pd .txt .htm}} } \
!  	-initialdir $help_directory]
! -    }    
!      if {$filename != ""} {
!      	if {[string first .txt $filename] >= 0} {
!      	    menu_opentext $filename
! @@ -421,25 +439,41 @@
!      }
!  }
!  
! -proc doc_submenu {helpmenu subdir} {
! -	 global help_top_directory pd_tearoff
!  
! -	 set menudir $help_top_directory/$subdir
! +################## menu_doc_submenu #########################
! +
! +# this is a recursive function to generation a nested menu in the help menu
! +# which shows the complete contents of the doc directory <hans at at.or.at>
! +proc menu_doc_submenu {helpmenu base_dir sub_dir} {
! +	 global pd_tearoff
! +	 global help_top_directory
! +
! +	 set menu_dir $help_top_directory/$base_dir/$sub_dir
!  
! -    regsub -all "\\\." $subdir "" submenu
! +    regsub -all "\\\." $sub_dir "" submenu
!  
!  	 menu $helpmenu.$submenu -tearoff $pd_tearoff
! -    regsub -all "\\\." $subdir " " submenuname
! +    regsub -all "\\\." $sub_dir " " submenuname
!  	 $helpmenu add cascade -label $submenuname \
!  		  -menu $helpmenu.$submenu
!  
! -# use this glob pattern to exclude the supporting files
! -#	 foreach file [ lsort [ glob -dir $menudir {*[0-9][0-9]*} ] ] 
! -	 foreach file [ lsort [ glob -dir $menudir * ] ] {
! -		  set filename ""
! -		  regsub {.*/(.*\..+$)} $file {\1} filename
! -		  $helpmenu.$submenu add command -label $filename \
! -				-command "menu_doc_open doc/$subdir $filename"
! +	 foreach file [ lsort [ glob -dir $menu_dir * ] ] {
! +		  set file_type [file type $file]
! +# If links are going to be used then there needs to be a check to see if each
! +# link might cause this function to recurse forever  <hans at at.or.at>
! +#		  if { $file_type == "link"} {
! +#				puts stderr "LINK: $file"
! +#		  }
! +		  if { $file_type == "file" } {
! +				set file_name ""
! +				regsub {.*/.*\.(.+$)} $file {\1} file_extension
! +				regsub {.*/(.*\..+$)} $file {\1} file_name
! +				# test by file_extension so that only .htm .html .c .pd and .txt get put on the menu
! +				$helpmenu.$submenu add command -label $file_name \
! +					 -command "menu_doc_open doc/$base_dir/$sub_dir $file_name"
! +		  } elseif { $file_type == "directory" } {
! +				menu_doc_submenu $helpmenu.$submenu $base_dir/$sub_dir [file tail $file]
! +		  }
!  	 }
!  }
!  
! @@ -494,7 +528,23 @@
!  
!  
!  #          the "Help" menu
! -	 if {$pd_nt != 2} {
! +	 if {$pd_nt == 2} {
! +# Apple doesn't allow cascading menus in their Help so I had to call this 
! +# one "docs"  <hans at at.or.at>
! +		  generate_menu_doc_link
! +		  $mbar.docs add command -label {Browse Documentation...} \
! +				-command {menu_documentation} 
! +	 # the help menu only really works well on Mac OS X <hans at at.or.at>
! +		  $mbar.docs add separator
! +		  $mbar.docs add command -label {1 manual...} \
! +				-command {menu_doc_open doc/1.manual index.htm} 
! +		  menu_doc_submenu $mbar.docs "." 2.control.examples
! +		  menu_doc_submenu $mbar.docs "." 3.audio.examples
! +		  menu_doc_submenu $mbar.docs "." 4.fft.examples
! +		  menu_doc_submenu $mbar.docs "." 5.reference
! +		  menu_doc_submenu $mbar.docs "." 6.externs
! +		  menu_doc_submenu $mbar.docs "." 7.stuff
! +	 } else {
!  # a menu on the main menubar named "$whatever.help" while be treated
!  # as a special menu with specific behaviors on different platforms.
!  # See SPECIAL MENUS IN MENUBARS http://www.tcl.tk/man/tcl8.4/TkCmd/menu.htm
! @@ -502,22 +552,9 @@
!  	-command {menu_doc_open doc/1.manual 1.introduction.txt} 
!      $mbar.help add command -label {Pure Documentation...} \
!  	-command {menu_documentation} 
! -		  # add menu items for each section instead of using Pd patches
! -		  $mbar.help add separator
! -		  set helpmenuname help
! -	 } else {
! -# Apple doesn't allow cascading menus in their Help so I had to call this 
! -# one "docs"  <hans at at.or.at>
! -		  set helpmenuname docs
! -	 }
! -
! -	 $mbar.$helpmenuname add command -label {1 manual...} \
! +		  $mbar.help add command -label {1 manual...} \
!  		  -command {menu_doc_open doc/1.manual index.htm} 
! -	 doc_submenu $mbar.$helpmenuname 2.control.examples
! -	 doc_submenu $mbar.$helpmenuname 3.audio.examples
! -	 doc_submenu $mbar.$helpmenuname 4.fft.examples
! -	 doc_submenu $mbar.$helpmenuname 5.reference
! -	 doc_submenu $mbar.$helpmenuname 6.externs
! +	 }
   }
   





More information about the Pd-cvs mailing list