[PD-cvs] SF.net SVN: pure-data: [9724] branches/pd-extended/v0-40/pd/src/u_main.tk

eighthave at users.sourceforge.net eighthave at users.sourceforge.net
Fri Apr 25 21:41:17 CEST 2008


Revision: 9724
          http://pure-data.svn.sourceforge.net/pure-data/?rev=9724&view=rev
Author:   eighthave
Date:     2008-04-25 12:41:16 -0700 (Fri, 25 Apr 2008)

Log Message:
-----------
- implemented hack to make Cmd-M minimize on Mac OS X

- removed Edit->"Raise Pd Window" and merged that into Window->"Pd Window"

- tried to add missing standard elements to the Pd window's "Window" menu, but
  they didn't show up.  I am guessing that Tk treats the Window menu as
  something special, and it autmoatically handles the list of windows, but
  somehow that is turned off...

Modified Paths:
--------------
    branches/pd-extended/v0-40/pd/src/u_main.tk

Modified: branches/pd-extended/v0-40/pd/src/u_main.tk
===================================================================
--- branches/pd-extended/v0-40/pd/src/u_main.tk	2008-04-25 11:25:23 UTC (rev 9723)
+++ branches/pd-extended/v0-40/pd/src/u_main.tk	2008-04-25 19:41:16 UTC (rev 9724)
@@ -448,7 +448,7 @@
     pack .sendpanel.entry -side bottom -fill both -ipadx 100
     .sendpanel.entry select from 0
     .sendpanel.entry select adjust end
-    if{$pd_nt == 2} {
+    if {$pd_nt == 2} {
         bind .sendpanel <Mod1-Key-w> {destroy .sendpanel}
     } else {
         bind .sendpanel <Control-Key-w> {destroy .sendpanel}
@@ -460,11 +460,23 @@
     focus .sendpanel.entry
 }
 
+
+################## menu commands for Mac OS X #########################
+
+proc menu_minimize {window} {
+	if {$window eq ""} { #Pd Window
+		wm iconify [winfo toplevel .printout]
+	} else {
+		wm iconify [winfo toplevel $window]
+	}
+}
+
 ################## menu commands for console #########################
 
 proc menu_raise_console {} {
-	set pd_window [winfo toplevel .printout]
+	set pd_window .
 	set top_window [lindex [wm stackorder $pd_window] end]
+	puts stderr "if $pd_window eq $top_window" 
 	if {$pd_window eq $top_window} {
 		lower $pd_window
 	} else {
@@ -481,9 +493,6 @@
 
 proc menu_quit {} {pd {pd verifyquit;}}
 
-######### the "Pd" menu command, which puts the Pd window on top ########
-proc menu_pop_pd {} {raise .}
-
 ######### the "audio" menu command  ###############
 proc menu_audio {flag} {pd [concat pd dsp $flag \;]}
 
@@ -543,10 +552,10 @@
 	set top_window [lindex [wm stackorder .] end]
 	set window_title [wm title $top_window]
 	set helpfile [regsub {(.*)-help.*} $window_title {\1}]
-	if {[string compare $helpfile $window_title]} {
+	if {$helpfile eq $window_title} {
+		menu_openhtml "http://wiki.puredata.info/"
+	} else {
 		menu_openhtml "http://wiki.puredata.info/en/$helpfile"
-	} else {
-		menu_openhtml "http://wiki.puredata.info/"
 	}
 }
 
@@ -734,15 +743,18 @@
 .mbar.file add command -label Open -command {menu_open} \
     -accelerator [accel_munge "Ctrl+o"]
 .mbar.file add  separator
-.mbar.file add command -label Message -command {menu_send} \
-    -accelerator [accel_munge "Ctrl+m"]
-# On MacOS X, these are in the standard HIG locations
-# i.e. the Preferences menu under "Pd"
 if {$pd_nt != 2} {
+	.mbar.file add command -label Message -command {menu_send} \
+		-accelerator [accel_munge "Ctrl+m"]
+	# On MacOS X, follow the standard Human Interface Guidelines
+	# i.e. the Preferences menu under "Pd"
     .mbar.file add command -label Path... \
         -command {pd pd start-path-dialog \;}
     .mbar.file add command -label Startup... \
         -command {pd pd start-startup-dialog \;}
+} else { # Mac OS X
+	# Cmd-m is minimize window on Mac OS X, so remove binding
+	.mbar.file add command -label Message -command {menu_send}
 }
 .mbar.file add  separator
 .mbar.file add command -label Close -accelerator [accel_munge "Ctrl+w"] \
@@ -787,10 +799,8 @@
 }
 .mbar.edit add command -label Font -state disabled
 .mbar.edit add command -label {Tidy Up} -state disabled
-.mbar.edit add command -label "Raise Pd window" -accelerator [accel_munge "Ctrl+r"]\
-	-command menu_raise_console
-.mbar.edit add command -label "Toggle console" -accelerator [accel_munge "Shift+Ctrl+r"]\
-	-command menu_toggle_console
+.mbar.edit add command -label "Toggle console" \
+	-accelerator [accel_munge "Shift+Ctrl+r"] -command menu_toggle_console
 .mbar.edit add command -label "Clear console" \
     -accelerator [accel_munge "Shift+Ctrl+l"] -command menu_clear_console
 .mbar.edit add separator
@@ -813,6 +823,16 @@
     -state disabled
 .mbar.find add command -label {Find last error} -command {menu_finderror} 
 
+#################### the "Window" menu for the Pd window ##############
+
+# this does not show up on the Window menu, probably because it is a special
+# menu that is supposed to be automatically managed by Tcl/Tk
+#.mbar.find add command -label {parent window} -state disabled
+#.mbar.windows add command -label {Pd window} -command menu_raise_console \
+#	-accelerator [accel_munge "Ctrl+r"]
+#.mbar.windows add separator
+
+
 ###########  functions for menu functions on document windows ########
 
 proc menu_save {name} {
@@ -1151,18 +1171,20 @@
         -accelerator [accel_munge "Ctrl+o"]
 
     $name.m.file add  separator
-    $name.m.file add command -label Message -command {menu_send} \
-        -accelerator [accel_munge "Ctrl+m"]
 
     # arrange menus according to Apple HIG
-    # these are now part of Preferences...
     if {$pd_nt != 2 } {
+		$name.m.file add command -label Message -command {menu_send} \
+			-accelerator [accel_munge "Ctrl+m"]
+		# these are now part of Preferences... on Mac OS X
         $name.m.file add command -label Path... \
             -command {pd pd start-path-dialog \;} 
-
         $name.m.file add command -label Startup... \
             -command {pd pd start-startup-dialog \;} 
-    }
+    } else { 
+		# Cmd-m is minimize window on Mac OS X		
+		$name.m.file add command -label Message -command {menu_send}
+	}
 
     $name.m.file add  separator
     $name.m.file add command -label Close \
@@ -1230,10 +1252,6 @@
     $name.m.edit add command -label {Tidy Up} \
         -command [concat menu_tidyup $name]
 
-    $name.m.edit add command -label "Raise Pd window" \
-        -accelerator [accel_munge "Ctrl+r"] \
-        -command [concat menu_raise_console]
-
     $name.m.edit add command -label "Toggle console" \
         -accelerator [accel_munge "Shift+Ctrl+r"] \
         -command [concat .controls.switches.console invoke]
@@ -1371,7 +1389,8 @@
 
     $name.m.windows add command -label {parent window}\
         -command [concat menu_windowparent $name] 
-    $name.m.windows add command -label {Pd window} -command menu_pop_pd
+    $name.m.windows add command -label {Pd window} -command menu_raise_console \
+		-accelerator [accel_munge "Ctrl+r"]
     $name.m.windows add separator
 
     # the audio menu
@@ -1928,7 +1947,6 @@
         if {$key == "b" || $key == "B"} {menu_doc_browser}
         if {$key == "n" || $key == "N"} {menu_new}
         if {$key == "o" || $key == "O"} {menu_open}
-        if {$key == "m" || $key == "M"} {menu_send}
         if {$key == "w" || $key == "W"} {menu_close $topname}
         if {$key == "p" || $key == "P"} {menu_print $topname}
         if {$key == "r" || $key == "R"} {menu_raise_console}
@@ -1937,10 +1955,14 @@
         if {$key == "v" || $key == "V"} {menu_paste $topname}
         if {$key == "d" || $key == "D"} {menu_duplicate $topname}
         if {$key == "a" || $key == "A"} {menu_selectall $topname}
-        if {$pd_nt == 2} { # by default, Cmd-T opens the font panel on Mac OS X
+        if {$pd_nt == 2} { 
+			# by default, Cmd-T opens the font panel on Mac OS X
             if {$key == "t" || $key == "T"} {menu_font $topname}
+			if {$key == "m" || $key == "M"} {menu_minimize $topname}
         } else {
             if {$key == "t" || $key == "T"} {menu_texteditor $topname}
+			# minimize window on Mac OS X
+			if {$key == "m" || $key == "M"} {menu_send}
         }
         if {$key == "f" || $key == "F"} {menu_findobject $topname}
         if {$key == "g" || $key == "G"} {menu_findagain $topname}
@@ -3619,9 +3641,14 @@
     #    .dummy itemconfig goo -text [concat ---> control-key event $key];
     if {$key == "n" || $key == "N"} {menu_new}
     if {$key == "o" || $key == "O"} {menu_open}
-    if {$key == "m" || $key == "M"} {menu_send}
+	if {$pd_nt != 2} {
+		# Cmd-m is minimize window on Mac OS X
+		if {$key == "m" || $key == "M"} {menu_send}
+	} else {
+		if {$key == "m" || $key == "M"} {menu_minimize}
+	}
     if {$key == "q" || $key == "Q"} {
-        if {$shift == 1} {menu_really_quit} else    {menu_quit}
+        if {$shift == 1} {menu_really_quit} else {menu_quit}
     }
     if {$key == "slash"} {menu_audio 1}
     if {$key == "period"} {menu_audio 0}


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Pd-cvs mailing list