[PD-cvs] SF.net SVN: pure-data:[10462] branches/pd-devel/0.41.4/src/pd.tk
eighthave at users.sourceforge.net
eighthave at users.sourceforge.net
Thu Dec 25 08:54:48 CET 2008
Revision: 10462
http://pure-data.svn.sourceforge.net/pure-data/?rev=10462&view=rev
Author: eighthave
Date: 2008-12-25 07:54:48 +0000 (Thu, 25 Dec 2008)
Log Message:
-----------
flushed out the menus and created a menu for each window
Modified Paths:
--------------
branches/pd-devel/0.41.4/src/pd.tk
Modified: branches/pd-devel/0.41.4/src/pd.tk
===================================================================
--- branches/pd-devel/0.41.4/src/pd.tk 2008-12-25 06:17:02 UTC (rev 10461)
+++ branches/pd-devel/0.41.4/src/pd.tk 2008-12-25 07:54:48 UTC (rev 10462)
@@ -1,4 +1,8 @@
#!/usr/bin/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.
+#(c) 2008 WordTech Communications LLC. License: standard Tcl license, http://www.tcl.tk/software/tcltk/license.html
package require Tk
#package require tile
@@ -115,19 +119,15 @@
$rootmenu add command -label "Print..." -accelerator "$accelerator+P"
}
-proc menu_create_edit_aqua {rootmenu} {
-}
+# the "Edit", "Put", and "Find" menus do not have cross-platform differences
-# the "Put" and "Find" menus do not have cross-platform differences
-
proc menu_create_media_aqua {rootmenu} {
}
proc menu_create_window_aqua {rootmenu} {
}
-proc menu_create_help_aqua {rootmenu} {
-}
+# the "Help" does not have cross-platform differences
# ------------------------------------------------------------------------------
# menu building functions for UNIX/X11
@@ -139,7 +139,7 @@
$rootmenu add separator
$rootmenu add command -label "Save" -accelerator "$accelerator+S"
$rootmenu add command -label "Save As..." -accelerator "Shift+$accelerator+S"
- $rootmenu add command -label "Revert"
+# $rootmenu add command -label "Revert"
$rootmenu add separator
$rootmenu add command -label "Message" -accelerator "$accelerator+M"
$rootmenu add command -label "Print..." -accelerator "$accelerator+P"
@@ -149,19 +149,15 @@
-command {menu_quit}
}
-proc menu_create_edit_x11 {rootmenu} {
-}
+# the "Edit", "Put", and "Find" menus do not have cross-platform differences
-# the "Put" and "Find" menus do not have cross-platform differences
-
proc menu_create_media_x11 {rootmenu} {
}
proc menu_create_window_x11 {rootmenu} {
}
-proc menu_create_help_x11 {rootmenu} {
-}
+# the "Help" does not have cross-platform differences
# ------------------------------------------------------------------------------
# menu building functions for Windows/Win32
@@ -173,7 +169,7 @@
$rootmenu add separator
$rootmenu add command -label "Save" -accelerator "$accelerator+S"
$rootmenu add command -label "Save As..." -accelerator "Shift+$accelerator+S"
- $rootmenu add command -label "Revert"
+# $rootmenu add command -label "Revert"
$rootmenu add separator
$rootmenu add command -label "Message" -accelerator "$accelerator+M"
$rootmenu add command -label "Print..." -accelerator "$accelerator+P"
@@ -183,19 +179,15 @@
-command {menu_quit}
}
-proc menu_create_edit_win32 {rootmenu} {
-}
+# the "Edit", "Put", and "Find" menus do not have cross-platform differences
-# the "Put" and "Find" menus do not have cross-platform differences
-
proc menu_create_media_win32 {rootmenu} {
}
proc menu_create_window_win32 {rootmenu} {
}
-proc menu_create_help_win32 {rootmenu} {
-}
+# the "Help" does not have cross-platform differences
# ------------------------------------------------------------------------------
@@ -206,17 +198,51 @@
$rootmenu entryconfigure "Open" -command {menu_open}
$rootmenu entryconfigure "Save" -command {menu_save $name}
$rootmenu entryconfigure "Save As..." -command {menu_saveas $name}
- $rootmenu entryconfigure "Revert*" -command {menu_revert $name}
+# $rootmenu entryconfigure "Revert*" -command {menu_revert $name}
$rootmenu entryconfigure "Close" -command {menu_close $name}
$rootmenu entryconfigure "Message" -command {menu_send}
$rootmenu entryconfigure "Print..." -command {menu_print $name}
}
proc menu_create_edit {rootmenu name} {
-# [format menu_create_edit_%s [tk windowingsystem]] $rootmenu
-# $rootmenu entryconfigure "New" -command {menu_new}
+ global accelerator
+ $rootmenu add command -label "Undo" -accelerator "$accelerator+Z" \
+ -command {menu_undo $name}
+ $rootmenu add command -label "Redo" -accelerator "Shift+$accelerator+Z" \
+ -command {menu_redo $name}
+ $rootmenu add separator
+ $rootmenu add command -label "Cut" -accelerator "$accelerator+X" \
+ -command {menu_cut $name}
+ $rootmenu add command -label "Copy" -accelerator "$accelerator+C" \
+ -command {menu_copy $name}
+ $rootmenu add command -label "Paste" -accelerator "$accelerator+V" \
+ -command {menu_paste $name}
+ $rootmenu add command -label "Duplicate" -accelerator "$accelerator+D" \
+ -command {menu_duplicate $name}
+ $rootmenu add command -label "Select All" -accelerator "$accelerator+A" \
+ -command {menu_selectall $name}
+ $rootmenu add separator
+ $rootmenu add command -label "Text Editor" -accelerator "$accelerator+T" \
+ -command {menu_texteditor $name}
+ $rootmenu add command -label "Font" \
+ -command {menu_font $name}
+ $rootmenu add command -label "Tidy Up" \
+ -command {menu_tidyup $name}
+ $rootmenu add command -label "Toggle Console" -accelerator "Shift+$accelerator+R" \
+ -command {.controls.switches.console invoke}
+ $rootmenu add command -label "Clear Console" -accelerator "Shift+$accelerator+L" \
+ -command {menu_clear_console}
+ $rootmenu add separator
+ $rootmenu add radiobutton -label "Edit Mode" -accelerator "$accelerator+E" \
+ -indicatoron true -selectcolor grey85 \
+ -command {menu_editmode $name} \
+
+# if { $editable == 0 } {
+# $name.m.edit entryconfigure "Edit mode" -indicatoron false
+# }
}
+
proc menu_create_put {rootmenu name} {
global accelerator
$rootmenu add command -label "Object" -accelerator "$accelerator+1" \
@@ -253,10 +279,42 @@
$rootmenu add command -label Array -command {menu_array $name}
}
+proc menu_create_find {rootmenu name} {
+ global accelerator
+ $rootmenu add command -label "Find..." -accelerator "$accelerator+F" \
+ -command {menu_findobject $name}
+ $rootmenu add command -label "Find Again" -accelerator "$accelerator+G" \
+ -command {menu_findagain $name}
+ $rootmenu add command -label "Find last error" \
+ -command {menu_finderror}
+
+}
+
proc menu_create_media {rootmenu name} {
+ global accelerator
+ $rootmenu add radiobutton -label "Compute Audio On" -accelerator "$accelerator+/" \
+ -command {menu_audio 1}
+ $rootmenu add radiobutton -label "Compute Audio Off" -accelerator "$accelerator+." \
+ -command {menu_audio 0} -indicatoron true
+ $rootmenu add separator
+ $rootmenu add command -label "Test Audio and MIDI" \
+ -command {menu_doc_open doc/7.stuff/tools testtone.pd}
+ $rootmenu add command -label "Load Meter" \
+ -command {menu_doc_open doc/7.stuff/tools load-meter.pd}
}
proc menu_create_window {rootmenu name} {
+ global accelerator
+ if {[tk windowingsystem] eq "aqua"} {
+ $rootmenu add command -label "Minimize" -command {menu_minimize .} \
+ -accelerator "$accelerator+M"
+ $rootmenu add command -label "Zoom" -command {menu_zoom .}
+ $rootmenu add separator
+ }
+ $rootmenu add command -label "Parent Window" -state disabled
+ $rootmenu add command -label "Pd window" -command {menu_raise_console} \
+ -accelerator "$accelerator+R" -state disabled
+ $rootmenu add separator
}
proc menu_create_help {rootmenu name} {
@@ -286,7 +344,8 @@
}
proc menu_create {rootmenu} {
- set menulist "file edit put media window help"
+ menu $rootmenu
+ set menulist "file edit put find media window help"
if { [tk windowingsystem] eq "aqua" } {
set menulist "$menulist apple"
}
@@ -302,34 +361,21 @@
}
}
-proc menu_entryconfigure {menuname itemname} {
- set itemindex [$menuname ]
- $menuname entryconfigure
-}
-
-proc menu_configure {menubar window} {
- puts "menu_configure $window"
- set file_items_to_disable {"Save" "Save As..." "Revert" "Print..." "Close"}
- if {$window eq "."} {
- # these are meaningless for the Pd window, so disable them
- foreach item $file_items_to_disable {
- $menubar.file entryconfigure $item -state disabled
- }
- for {set i 0} {$i <= [$menubar.put index end]} {incr i} {
- # catch errors by trying to disable separators
- catch {$menubar.put entryconfigure $i -state disabled }
- }
- } else {
- foreach item $file_items_to_disable {
- $menubar.file entryconfigure $item -state normal
- }
- for {set i 0} {$i <= [$menubar.put index end]} {incr i} {
- # catch errors by trying to disable separators
- catch {$menubar.put entryconfigure $i -state normal }
- }
- # TODO re-enable menu items
- # TODO configure "parent on Window menu
+proc menu_configure_pdwindow {menubar} {
+ # these are meaningless for the Pd window, so disable them
+ set file_items_to_disable {"Save" "Save As..." "Print..." "Close"}
+ foreach item $file_items_to_disable {
+ $menubar.file entryconfigure $item -state disabled
}
+ set edit_items_to_disable {"Undo" "Redo" "Duplicate" "Tidy Up" "Edit Mode"}
+ foreach item $edit_items_to_disable {
+ $menubar.edit entryconfigure $item -state disabled
+ }
+ # disable everything on the Put menu
+ for {set i 0} {$i <= [$menubar.put index end]} {incr i} {
+ # catch errors by trying to disable separators
+ catch {$menubar.put entryconfigure $i -state disabled }
+ }
}
# ------------------------------------------------------------------------------
@@ -337,8 +383,9 @@
proc pdtk_canvas_new {canvas_name width height} {
if {$width < 300} {set width 300}
if {$height < 150} {set height 150}
- toplevel $canvas_name -menu .menubar -width $width -height $height
- bind $canvas_name <FocusIn> {menu_configure .menubar %W}
+ toplevel $canvas_name -width $width -height $height
+ menu_create $canvas_name.menubar
+ $canvas_name configure -menu $canvas_name.menubar
}
# ------------------------------------------------------------------------------
@@ -346,14 +393,12 @@
proc main {} {
init
- menu .menubar
+ wm title . "Pd-devel"
+ wm protocol . WM_DELETE_WINDOW menu_quit
+
menu_create .menubar
-
- wm title . "Pd-devel"
- #wm protocol . WM_DELETE_WINDOW menu_quit
. configure -menu .menubar -width 400 -height 250
- menu_configure .menubar .
- bind . <FocusIn> {menu_configure .menubar %W}
+ menu_configure_pdwindow .menubar
}
main
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