[PD-cvs] SF.net SVN: pure-data:[10632] branches/pd-devel/0.41.4/src
eighthave at users.sourceforge.net
eighthave at users.sourceforge.net
Sun Jan 25 07:42:32 CET 2009
Revision: 10632
http://pure-data.svn.sourceforge.net/pure-data/?rev=10632&view=rev
Author: eighthave
Date: 2009-01-25 06:42:32 +0000 (Sun, 25 Jan 2009)
Log Message:
-----------
- worked on font code started by mescalinum to make it receive the font family
and weight from pd as well as standardizing variable and proc names
- created dummy font panel
- renamed pdtk_canvas_map/unmap to pdsend_map/unmap since it is not called
from 'pd', it only send to 'pd'
- renamed enquote_filename to enquote_path for the sake of clarity
- updated version test to properly create Mac OS X preferences in Apple menu
- if a saved directory (pd_opendir, etc) has disappeared, use $HOME
Modified Paths:
--------------
branches/pd-devel/0.41.4/src/pd.tk
branches/pd-devel/0.41.4/src/pd_bindings.tcl
branches/pd-devel/0.41.4/src/pd_menucommands.tcl
branches/pd-devel/0.41.4/src/pd_menus.tcl
branches/pd-devel/0.41.4/src/pdtk_canvas.tcl
branches/pd-devel/0.41.4/src/s_main.c
branches/pd-devel/0.41.4/src/wheredoesthisgo.tcl
Modified: branches/pd-devel/0.41.4/src/pd.tk
===================================================================
--- branches/pd-devel/0.41.4/src/pd.tk 2009-01-25 02:06:22 UTC (rev 10631)
+++ branches/pd-devel/0.41.4/src/pd.tk 2009-01-25 06:42:32 UTC (rev 10632)
@@ -25,13 +25,23 @@
# for testing which platform we are running on ("aqua", "win32", or "x11")
set windowingsystem ""
-# FONT STUFF:
-# default font family/weight, changed later in 'init' (if needed)
-set font_family {Bitstream Vera Sans Mono}
-set font_weight {normal}
-# this contains the font metric that Pd expects (we have to respect those
-# when creating fonts in proc pdtk_init_fonts)
-set font_fixed_metrics {8 5 10 9 6 11 10 6 13 12 7 15 14 8 17 16 10 20 18 11 22 24 14 30 30 18 37 36 22 45}
+# canvas font, received from pd in pdtk_pd_startup, set in s_main.c
+set font_family ""
+set font_weight ""
+# sizes of chars for each of the Pd fixed font sizes:
+# fontsize width(pixels) height(pixels)
+set font_fixed_metrics {
+ 8 5 10
+ 9 6 11
+ 10 6 13
+ 12 7 15
+ 14 8 17
+ 16 10 20
+ 18 11 22
+ 24 14 30
+ 30 18 37
+ 36 22 45
+}
set pd_opendir [pwd]
set pd_untitleddir [pwd]
@@ -115,7 +125,6 @@
{{Max Patch Files (.pat)} {.pat} }
{{Max Text Files (.mxt)} {.mxt} }
}
- set ::font_family {Monaco}
}
"win32" {
font create menufont -family Tahoma -size -11
@@ -137,24 +146,28 @@
# this proc creates all the needed fonts so that they fit
# into the metrics given by $::font_fixed_metrics
-proc pdtk_init_fonts {} {
+proc fit_font_into_metrics {} {
foreach {size width height} $::font_fixed_metrics {
- set fnt [pdtk_font_name $size]
- font create $fnt -family $::font_family -weight $::font_weight \
+ set myfont [pdtk_font_name $size]
+ font create $myfont -family $::font_family -weight $::font_weight \
-size [expr {-$height}]
- while {[font measure $fnt M] > $width} {
+ while {[font measure $myfont M] > $width} {
incr height -1
- font configure $fnt -size [expr {-$height}]
+ font configure $myfont -size [expr {-$height}]
}
}
}
proc pdtk_pd_startup {version {args ""}} {
- pdtk_post "version: $version"
- pdtk_post "args: $args"
+ pdtk_post "pdtk_pd_startup $version $args"
+ pdtk_post "\tversion: $version"
+ pdtk_post "\targs: $args"
set oldtclversion 0
- pdtk_init_fonts
- pdsend "pd init [enquote_filename [pwd]] $oldtclversion $::font_fixed_metrics"
+ pdsend "pd init [enquote_path [pwd]] $oldtclversion $::font_fixed_metrics"
+ set ::font_family [lindex $args 2]
+ set ::font_weight [lindex $args 3]
+ puts "setting font to: $::font_family $::font_weight"
+ fit_font_into_metrics
# TODO what else is needed from the original?
}
Modified: branches/pd-devel/0.41.4/src/pd_bindings.tcl
===================================================================
--- branches/pd-devel/0.41.4/src/pd_bindings.tcl 2009-01-25 02:06:22 UTC (rev 10631)
+++ branches/pd-devel/0.41.4/src/pd_bindings.tcl 2009-01-25 06:42:32 UTC (rev 10632)
@@ -113,7 +113,7 @@
if {$::windowingsystem eq "aqua"} {
bind $mytoplevel <$modifier-Key-m> "menu_minimize $mytoplevel"
- bind $mytoplevel <$modifier-Key-t> "menu_font $mytoplevel"
+ bind $mytoplevel <$modifier-Key-t> "menu_font_panel $mytoplevel"
bind $mytoplevel <$modifier-quoteleft> "menu_raisenextwindow"
} else {
bind $mytoplevel <$modifier-Key-m> "menu_message_panel"
@@ -152,8 +152,8 @@
#TODO bind $mytoplevel <MouseWheel>
# event bindings -----------------------------------------------------------
- bind $mytoplevel <Map> "pdtk_canvas_map %W"
- bind $mytoplevel <Unmap> "pdtk_canvas_unmap %W"
+ bind $mytoplevel <Map> "pdsend_map %W"
+ bind $mytoplevel <Unmap> "pdsend_unmap %W"
#TODO bind $mytoplevel <Configure> "pdtk_canvas_getscroll %W"
# do window maintenance when entering a window (Window menu, scrollbars...)
Modified: branches/pd-devel/0.41.4/src/pd_menucommands.tcl
===================================================================
--- branches/pd-devel/0.41.4/src/pd_menucommands.tcl 2009-01-25 02:06:22 UTC (rev 10631)
+++ branches/pd-devel/0.41.4/src/pd_menucommands.tcl 2009-01-25 06:42:32 UTC (rev 10632)
@@ -15,15 +15,15 @@
proc ::pd_menucommands::menu_new {} {
variable untitled_number
- if { ! [file isdirectory $::pd_untitleddir]} {set ::pd_untitleddir [pwd]}
- pdsend "pd filename Untitled-$untitled_number [enquote_filename $::pd_untitleddir]"
+ if { ! [file isdirectory $::pd_untitleddir]} {set ::pd_untitleddir $::env(HOME)}
+ pdsend "pd filename Untitled-$untitled_number [enquote_path $::pd_untitleddir]"
pdsend "#N canvas"
pdsend "#X pop 1"
- set untitled_number [expr $untitled_number + 1]
+ incr untitled_number
}
proc ::pd_menucommands::menu_open {} {
- if { ! [file isdirectory $::pd_opendir]} {set ::pd_opendir [pwd]}
+ if { ! [file isdirectory $::pd_opendir]} {set ::pd_opendir $::env(HOME)}
set files [tk_getOpenFile -defaultextension .pd \
-multiple true \
-filetypes $::filetypes \
@@ -80,6 +80,20 @@
# console text. hmm that would be nice!
}
+proc ::pd_menucommands::menu_font_panel {mytoplevel} {
+ if {[winfo exists .font]} {
+ raise .font
+ } else {
+ # TODO insert real preference panel here
+ toplevel .font
+ wm title .font "Font"
+ ::pd_bindings::panel_bindings .font
+ frame .font.frame
+ label .font.label -text "font" -width 30 -height 15
+ pack .font.label .font.frame -side top -expand yes -fill both
+ }
+}
+
proc ::pd_menucommands::menu_preferences_panel {} {
if {[winfo exists .preferences]} {
raise .preferences
Modified: branches/pd-devel/0.41.4/src/pd_menus.tcl
===================================================================
--- branches/pd-devel/0.41.4/src/pd_menus.tcl 2009-01-25 02:06:22 UTC (rev 10631)
+++ branches/pd-devel/0.41.4/src/pd_menus.tcl 2009-01-25 06:42:32 UTC (rev 10632)
@@ -110,12 +110,12 @@
$mymenu add command -label [say "Text Editor"] \
-command "menu_texteditor $mytoplevel"
$mymenu add command -label [say "Font"] -accelerator "$accelerator+T" \
- -command "menu_font $mytoplevel"
+ -command "menu_font_panel $mytoplevel"
} else {
$mymenu add command -label [say "Text Editor"] -accelerator "$accelerator+T"\
-command "menu_texteditor $mytoplevel"
$mymenu add command -label [say "Font"] \
- -command "menu_font $mytoplevel"
+ -command "menu_font_panel $mytoplevel"
}
$mymenu add command -label [say "Tidy Up"] \
-command "pdsend \"$mytoplevel tidy\""
@@ -240,9 +240,10 @@
$mymenu add cascade -label "Apple" -menu $mymenu.apple
$mymenu.apple add separator
# starting in 8.4.14, this is created automatically
- if {[regsub -- {[0-9]\.[0-9]\.([0-9][0-9]*)} [info patchlevel] {\1}] < 14} {
+ set patchlevel [split [info patchlevel] .]
+ if {[lindex $patchlevel 1] < 5 && [lindex $patchlevel 2] < 14} {
$mymenu.apple add command -label [say "Preferences..."] \
- -command "menu_preferences" -accelerator "Cmd+,"
+ -command "menu_preferences_panel" -accelerator "Cmd+,"
}
}
Modified: branches/pd-devel/0.41.4/src/pdtk_canvas.tcl
===================================================================
--- branches/pd-devel/0.41.4/src/pdtk_canvas.tcl 2009-01-25 02:06:22 UTC (rev 10631)
+++ branches/pd-devel/0.41.4/src/pdtk_canvas.tcl 2009-01-25 06:42:32 UTC (rev 10632)
@@ -44,7 +44,7 @@
}
proc pdtk_canvas_saveas {name initialfile initialdir} {
- if { ! [file isdirectory $initialdir]} {set initialdir [pwd]}
+ if { ! [file isdirectory $initialdir]} {set initialdir $::env(HOME)}
set filename [tk_getSaveFile -initialfile $initialfile -initialdir $initialdir \
-defaultextension .pd -filetypes $::filetypes]
if {$filename eq ""} return; # they clicked cancel
@@ -63,7 +63,7 @@
}
set dirname [file dirname $filename]
set basename [file tail $filename]
- pdsend "$name savetofile [enquote_filename $basename] [enquote_filename $dirname]"
+ pdsend "$name savetofile [enquote_path $basename] [enquote_path $dirname]"
set ::pd_untitleddir $dirname
}
@@ -105,11 +105,13 @@
# "map" event tells us when the canvas becomes visible (arg is "0") or
# invisible (arg is ""). Invisibility means the Window Manager has minimized
# us. We don't get a final "unmap" event when we destroy the window.
-proc pdtk_canvas_map {mytoplevel} {
+proc pdsend_map {mytoplevel} {
pdsend "$mytoplevel map 1"
+ #[regsub -- "" [wm title $mytoplevel]]
+ #set ::pd_untitleddir $dirname
}
-proc pdtk_canvas_unmap {mytoplevel} {
+proc pdsend_unmap {mytoplevel} {
pdsend "$mytoplevel map 0"
}
Modified: branches/pd-devel/0.41.4/src/s_main.c
===================================================================
--- branches/pd-devel/0.41.4/src/s_main.c 2009-01-25 02:06:22 UTC (rev 10631)
+++ branches/pd-devel/0.41.4/src/s_main.c 2009-01-25 06:42:32 UTC (rev 10632)
@@ -65,9 +65,9 @@
#ifdef MSW
"Courier";
#else
- "Courier";
+ "Andale Mono";
#endif
-char sys_fontweight[] = "bold "; /* currently only used for iemguis */
+char sys_fontweight[] = "normal "; /* currently only used for iemguis */
static int sys_main_srate;
static int sys_main_advance;
static int sys_main_callback;
Modified: branches/pd-devel/0.41.4/src/wheredoesthisgo.tcl
===================================================================
--- branches/pd-devel/0.41.4/src/wheredoesthisgo.tcl 2009-01-25 02:06:22 UTC (rev 10631)
+++ branches/pd-devel/0.41.4/src/wheredoesthisgo.tcl 2009-01-25 06:42:32 UTC (rev 10632)
@@ -25,7 +25,7 @@
set directory [file dirname $filename]
set basename [file tail $filename]
if {[regexp -nocase -- "\.(pd|pat|mxt)$" $filename]} {
- pdsend "pd open [enquote_filename $basename] [enquote_filename $directory]"
+ pdsend "pd open [enquote_path $basename] [enquote_path $directory]"
set ::pd_opendir $directory
}
}
@@ -34,7 +34,7 @@
# quoting functions
# enquote a filename to send it to pd, " isn't handled properly tho...
-proc enquote_filename {message} {
+proc enquote_path {message} {
string map {"," "\\," ";" "\\;" " " "\\ "} $message
}
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