[PD-cvs] SF.net SVN: pure-data:[10523] branches/pd-devel/0.41.4/src

eighthave at users.sourceforge.net eighthave at users.sourceforge.net
Tue Jan 13 01:01:35 CET 2009


Revision: 10523
          http://pure-data.svn.sourceforge.net/pure-data/?rev=10523&view=rev
Author:   eighthave
Date:     2009-01-13 00:01:34 +0000 (Tue, 13 Jan 2009)

Log Message:
-----------
- made stricter checking of args to make sure pd-gui understands whether pd is
  starting it, or whether it should start pd

- added filetypes to proc init for each platform

- replaced [concat] with "" where appropriate

Modified Paths:
--------------
    branches/pd-devel/0.41.4/src/pd.tk
    branches/pd-devel/0.41.4/src/pd_menucommands.tcl

Modified: branches/pd-devel/0.41.4/src/pd.tk
===================================================================
--- branches/pd-devel/0.41.4/src/pd.tk	2009-01-12 23:01:33 UTC (rev 10522)
+++ branches/pd-devel/0.41.4/src/pd.tk	2009-01-13 00:01:34 UTC (rev 10523)
@@ -1,4 +1,4 @@
-#!/usr/bin/wish
+#!/usr/bin/env wish
 # For information on usage and redistribution, and for a DISCLAIMER OF ALL
 # WARRANTIES, see the file, "LICENSE.txt," in this distribution.
 # Copyright (c) 1997-2009 Miller Puckette.
@@ -92,11 +92,26 @@
 			catch {tk_getOpenFile -with-invalid-argument} 
 			set ::tk::dialog::file::showHiddenBtn 1
 			set ::tk::dialog::file::showHiddenVar 0
+			# set file types that open/save recognize
+			set filetypes {
+				{{pd files}         {.pd}  }
+				{{max text files}   {.pat} }
+			}
 		}
 		"aqua" {
+			# set file types that open/save recognize
+			set filetypes {
+				{{Pd Files}               {.pd}  }
+				{{Max Text Files (.pat)}  {.pat} }
+			}
 		}
 		"win32" {
 			font create menufont -family Tahoma -size -11
+			# set file types that open/save recognize
+			set filetypes {
+				{{Pd Files}         {.pd}  }
+				{{Max Text Files}   {.pat} }
+			}
 		}
 	}
 }
@@ -115,12 +130,19 @@
 # canvas support functions
 
 ##### routine to ask user if OK and, if so, send a message on to Pd ######
-proc pdtk_check {x message default} {
-    set answer [tk_messageBox \-message $x \-type yesno -default $default \
-        -icon question]
-    if {! [string compare $answer yes]}  {pd $message}
+proc pdtk_check {message reply_to_pd default} {
+	# TODO this should use -parent and -title, but the hard part is figuring
+	# out how to get the values for those without changing g_editor.c
+    set answer [tk_messageBox -type yesno -icon question \
+					-default $default -message $message]
+    if {$answer eq "yes"} {
+		pd $reply_to_pd
+	}
 }
 
+# TODO it probably makes sense to add a new function for -type yesnocancel
+# dialogs that would be useful for "Save, Discard, Cancel" dialogs
+
 proc pdtk_fixwindowmenu {} {
 	#TODO figure out how to do this cleanly
 	puts stderr "Running pdtk_fixwindowmenu"
@@ -173,14 +195,9 @@
 	label .placeholder.label -text "Pd window placeholder" -width 80 -height 15
 	pack .placeholder.label .placeholder -side top -expand yes -fill both
 
-	if {$argc == 1} {
-		# 'pd' is starting first, so get the port to connect to
-		set portnumber [lindex $argv 0]
-		if { ! [string is int $portnumber]} {
-			puts stderr "ERROR: port $portnumber is not an int, exiting!"
-			exit 2
-		}
-		::pd_connect::to_pd $portnumber
+	if { $argc == 1 && [string is int [lindex $argv 0]]} {
+		# 'pd' started first and launched us, so get the port to connect to
+		::pd_connect::to_pd [lindex $argv 0]
 	} else {
 		# the GUI is starting first, so create socket and exec 'pd'
 		set portnumber [::pd_connect::create_socket]

Modified: branches/pd-devel/0.41.4/src/pd_menucommands.tcl
===================================================================
--- branches/pd-devel/0.41.4/src/pd_menucommands.tcl	2009-01-12 23:01:33 UTC (rev 10522)
+++ branches/pd-devel/0.41.4/src/pd_menucommands.tcl	2009-01-13 00:01:34 UTC (rev 10523)
@@ -40,54 +40,72 @@
 }
 
 proc ::pd_menucommands::menu_open {} {
-	global pd_opendir
+	global pd_opendir filetypes
 	set filename [tk_getOpenFile -defaultextension .pd \
-			  -filetypes { {{pd files} {.pd}} {{max files} {.pat}}} \
-			  -initialdir $pd_opendir]
-	if {$filename != ""} {open_file $filename}
+					  -filetypes $filetypes \
+					  -initialdir $pd_opendir]
+	if {$filename ne ""} {
+		open_file $filename
+	}
 }
 
 proc ::pd_menucommands::menu_close {name} {
-    pd [concat $name menuclose 0 \;]
+    pd "$name menuclose 0 ;"
 }
 
+proc ::pd_menucommands::menu_save {name} {
+    pd "$name menusave ;"
+}
+
+proc ::pd_menucommands::menu_saveas {name} {
+    pd "$name menusaveas ;"
+}
+
+proc menu_really_quit {} {
+	pd "pd quit ;"
+}
+
+proc menu_quit {} {
+	pd "pd verifyquit ;"
+}
+
 # ------------------------------------------------------------------------------
 # functions called from Edit menu
 
 proc ::pd_menucommands::menu_cut {name} {
-    pd [concat $name cut \;]
+    pd "$name cut ;"
 }
 
 proc ::pd_menucommands::menu_copy {name} {
-    pd [concat $name copy \;]
+    pd "$name copy ;"
 }
 
 proc ::pd_menucommands::menu_paste {name} {
-    pd [concat $name paste \;]
+    pd "$name paste ;"
 }
 
 proc ::pd_menucommands::menu_duplicate {name} {
-    pd [concat $name duplicate \;]
+    pd "$name duplicate ;"
 }
 
 proc ::pd_menucommands::menu_selectall {name} {
-    pd [concat $name selectall \;]
+    pd "$name selectall ;"
 }
 
 proc ::pd_menucommands::menu_texteditor {name} {
-    pd [concat $name texteditor \;]
+    pd "$name texteditor ;"
 }
 
 proc ::pd_menucommands::menu_font {name} {
-    pd [concat $name menufont \;]
+    pd "$name menufont ;"
 }
 
 proc ::pd_menucommands::menu_tidyup {name} {
-    pd [concat $name tidy \;]
+    pd "$name tidy ;"
 }
 
 proc ::pd_menucommands::menu_editmode {name} {
-    pd [concat $name editmode 0 \;]
+    pd "$name editmode 0 ;"
 }
 
 proc ::pd_menucommands::menu_preferences {args} {
@@ -101,68 +119,68 @@
 # functions called from Put menu
 
 proc ::pd_menucommands::menu_object {name accel} {
-    pd [concat $name obj $accel \;]
+    pd "$name obj $accel ;"
 }
 
 proc ::pd_menucommands::menu_message {name accel} {
-    pd [concat $name msg $accel \;]
+    pd "$name msg $accel ;"
 }
 
 proc ::pd_menucommands::menu_floatatom {name accel} {
-    pd [concat $name floatatom $accel \;]
+    pd "$name floatatom $accel ;"
 }
 
 proc ::pd_menucommands::menu_symbolatom {name accel} {
-    pd [concat $name symbolatom $accel \;]
+    pd "$name symbolatom $accel ;"
 }
 
 proc ::pd_menucommands::menu_comment {name accel} {
-    pd [concat $name text $accel \;]
+    pd "$name text $accel ;"
 }
 
 proc ::pd_menucommands::menu_graph {name} {
-    pd [concat $name graph \;]
+    pd "$name graph ;"
 }
 
 proc ::pd_menucommands::menu_array {name} {
-    pd [concat $name menuarray \;]
+    pd "$name menuarray ;"
 }
 
 ############iemlib##################
 proc ::pd_menucommands::menu_bng {name accel} {
-    pd [concat $name bng $accel \;]
+    pd "$name bng $accel ;"
 }
 
 proc ::pd_menucommands::menu_toggle {name accel} {
-    pd [concat $name toggle $accel \;]
+    pd "$name toggle $accel ;"
 }
 
 proc ::pd_menucommands::menu_numbox {name accel} {
-    pd [concat $name numbox $accel \;]
+    pd "$name numbox $accel ;"
 }
 
 proc ::pd_menucommands::menu_vslider {name accel} {
-    pd [concat $name vslider $accel \;]
+    pd "$name vslider $accel ;"
 }
 
 proc ::pd_menucommands::menu_hslider {name accel} {
-    pd [concat $name hslider $accel \;]
+    pd "$name hslider $accel ;"
 }
 
 proc ::pd_menucommands::menu_hradio {name accel} {
-    pd [concat $name hradio $accel \;]
+    pd "$name hradio $accel ;"
 }
 
 proc ::pd_menucommands::menu_vradio {name accel} {
-    pd [concat $name vradio $accel \;]
+    pd "$name vradio $accel ;"
 }
 
 proc ::pd_menucommands::menu_vumeter {name accel} {
-    pd [concat $name vumeter $accel \;]
+    pd "$name vumeter $accel ;"
 }
 
 proc ::pd_menucommands::menu_mycnv {name accel} {
-    pd [concat $name mycnv $accel \;]
+    pd "$name mycnv $accel ;"
 }
 
 # ------------------------------------------------------------------------------


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