diff --git a/pd/src/pd.tk b/pd/src/pd.tk index df8d4e61001b5fdbae5e9eb0c0bb539a56738743..2c165f6db6091d5767042515fbd510200edbfafb 100644 --- a/pd/src/pd.tk +++ b/pd/src/pd.tk @@ -432,6 +432,7 @@ variable duplicate_tags -1 variable current_window 0 variable nlet_color 0 variable autotips 0 +#variable magicglass 0 variable tooltip_visible 0 # x:y location tooltip during dragging @@ -1909,7 +1910,7 @@ proc menu_mycnv {name accel} { ############iemlib################## -# correct edit menu, enabling or disabling undo/redo/cut/copy/paste +# correct edit menu, enabling or disabling undo/redo/cut/copy/paste/tooltips/cord inspector proc menu_fixeditmenu {name} { if { [winfo exists $name] } { catch { @@ -1923,6 +1924,12 @@ proc menu_fixeditmenu {name} { global global_clipboard global last_clipboard + global autotips + #global magicglass + + pdtk_canvas_tooltips $name $autotips + #pdtk_canvas_magicglassval $name $magicglass + # investigate if we have already something copied from an external source set current_clipboard 0 catch {set current_clipboard [clipboard get]} @@ -2199,6 +2206,8 @@ proc pdtk_canvas_new {name width height geometry editable} { global global_selection global k12_mode global k12_saveas_on_new + global autotips + #global magicglass #retaining window-specific preferences global window_prefs @@ -2712,12 +2721,17 @@ proc pdtk_canvas_new {name width height geometry editable} { if { $editable == 1 } { $name.m.edit entryconfigure "Edit mode" -background "#7dd37d" - #if { $ctrl_l_down == 0 $ctrl_r_down == 0 } { - # $name configure -cursor $cursor_editmode_nothing - #pd [concat $name editmode 1 \;] - #} } + if { $autotips == 1 } { + $name.m.edit entryconfigure "Autotips" -background "#7dd37d" + } + + #if { $magicglass == 1 } { + # $name.m.edit entryconfigure "Cord Inspector" -background "#7dd37d" + # menu_magicglass $name + #} + #if { $editable == 0 } { # $name.m.edit entryconfigure "Edit mode" -indicatoron false #} @@ -5991,12 +6005,15 @@ proc pdtk_canvas_tooltips {name value} { #####################iemlib####################### proc pdtk_canvas_magicglassval {name value} { + #variable magicglass #global colors if { $value } { $name.m.edit entryconfigure "Cord Inspector" -indicatoron false -background "#7dd37d" + #set magicglass 1 } else { $name.m.edit entryconfigure "Cord Inspector" -indicatoron false -background {} + #set magicglass 0 } } @@ -7971,7 +7988,7 @@ proc pdtk_tip {w fromc show args} { if {$show == 0} { catch { destroy $w.tiplabel - #$w delete tiparrow + $w delete tiparrow $w delete $w.tipwindow } set tooltip_visible 0 @@ -8018,35 +8035,35 @@ proc pdtk_tip {w fromc show args} { if { [string match "\{Inlet*" $args] } { set yoffset 0 set anchor "nw" - set top_bottom [expr -10 - [winfo reqheight $w.tiplabel]] - set yreal_offset -5 + set top_bottom [expr -15 - [winfo reqheight $w.tiplabel]] + set yreal_offset -10 set xreal_offset 0 } else { set yoffset [winfo height $w] set anchor "sw" set top_bottom [expr 20 + [winfo reqheight $w.tiplabel]] - set yreal_offset 5 + set yreal_offset 14 set xreal_offset 0 } - set x [expr $xreal + rand()*10] + set x [expr $xreal - 10] set y [expr $yreal + $top_bottom] # now check if there is enough room to do the default above/below (if not redo behavior) if { $top_bottom < 0 && $y < [expr [$w canvasy 0] + $yoffset] } { set yoffset [winfo height $w] set anchor "sw" - set top_bottom [expr 35 + [winfo reqheight $w.tiplabel]] - set yreal_offset 15 + set top_bottom [expr 25 + [winfo reqheight $w.tiplabel]] + set yreal_offset 20 set xreal_offset 0 } if { $top_bottom > 0 && $y > [expr [$w canvasy 0] + $yoffset] } { set yoffset 0 set anchor "nw" - set top_bottom [expr -25 - [winfo reqheight $w.tiplabel]] - set yreal_offset -5 + set top_bottom [expr -20 - [winfo reqheight $w.tiplabel]] + set yreal_offset -15 set xreal_offset 0 } - set x [expr $xreal + rand()*10] + set x [expr $xreal - 10] set y [expr $yreal + $top_bottom] # if we still cannot fit things, let's now stick them as close to the side we selected last @@ -8067,24 +8084,30 @@ proc pdtk_tip {w fromc show args} { } #now do the arrow - #if { $right } { - # if { $xarrow > [expr [$w canvasx 0] + [winfo width $w] - 13] } { - # set xarrow [expr [$w canvasx 0] + [winfo width $w] - 13] - # } - #} - - #if { $top_bottom < 0 } { - # set yarrow [expr $y + [winfo reqheight $w.tiplabel] - 1] - #} else { - # set yarrow [expr $y - [winfo reqheight $w.tiplabel] + 1] - #} - - #if {$exists} { - #$w coords tiparrow [expr $xreal+$xreal_offset] [expr $yreal+$yreal_offset] $xarrow $yarrow [expr $xarrow+7] $yarrow - #} else { - #$w create polygon [expr $xreal+$xreal_offset] [expr $yreal+$yreal_offset] $xarrow $yarrow [expr $xarrow+7] $yarrow -fill $nlet_color -width 4 -tags tiparrow - #update - #} + if { $right } { + if { $xarrow > [expr [$w canvasx 0] + [winfo width $w] - 10] } { + set xarrow [expr [$w canvasx 0] + [winfo width $w] - 10] + } + } else { + if { $xarrow < [$w canvasx 0] } { + set xarrow [$w canvasx 0] + } + } + + if { $top_bottom < 0 } { + set yarrow [expr $y + [winfo reqheight $w.tiplabel] - 1] + } else { + set yarrow [expr $y - [winfo reqheight $w.tiplabel] + 0] + } + + if {$exists} { + #$w coords tiparrow [expr $xreal+$xreal_offset] [expr $yreal+$yreal_offset] $xarrow $yarrow [expr $xarrow+10] $yarrow + $w coords tiparrow [expr $xarrow+5] [expr $yreal+$yreal_offset] $xarrow $yarrow [expr $xarrow+10] $yarrow + } else { + #$w create polygon [expr $xreal+$xreal_offset] [expr $yreal+$yreal_offset] $xarrow $yarrow [expr $xarrow+10] $yarrow -fill $nlet_color -width 4 -tags tiparrow + $w create polygon [expr $xarrow+5] [expr $yreal+$yreal_offset] $xarrow $yarrow [expr $xarrow+10] $yarrow -fill $nlet_color -width 4 -tags tiparrow + #update (bad idea--avoid this) + } } set tags $w.tipwindow