[PD-cvs] pd/src desire.tk,1.1.2.600.2.137,1.1.2.600.2.138
chunlee
chunlee at users.sourceforge.net
Tue Dec 26 18:28:07 CET 2006
Update of /cvsroot/pure-data/pd/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22818
Modified Files:
Tag: desiredata
desire.tk
Log Message:
preparing firefox style find widget
Index: desire.tk
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/desire.tk,v
retrieving revision 1.1.2.600.2.137
retrieving revision 1.1.2.600.2.138
diff -C2 -d -r1.1.2.600.2.137 -r1.1.2.600.2.138
*** desire.tk 24 Dec 2006 15:52:30 -0000 1.1.2.600.2.137
--- desire.tk 26 Dec 2006 17:28:02 -0000 1.1.2.600.2.138
***************
*** 1777,1783 ****
def Canvas find_canvas= {canvas} {set @find_canvas $canvas}; #used for find in nested [pd]
def Canvas find {} {
$self find_break= 0
$self find_canvas= $self
! FindDialog new_as find $self
}
def Canvas find_again {} {
--- 1777,1792 ----
def Canvas find_canvas= {canvas} {set @find_canvas $canvas}; #used for find in nested [pd]
def Canvas find {} {
+ set c [$self widget]
$self find_break= 0
$self find_canvas= $self
! #FindDialog new_as find $self
! if {[winfo exists .$self.yscroll]} {set w .$self.yscroll} else {set w .$self.c}
! if {[winfo exists .$self.find]} {
! focus .$self.find.text
! } else {
! set @findbar [FindBar new $self]
! pack [$@findbar widget] -side bottom -fill x -before $w
! }
!
}
def Canvas find_again {} {
***************
*** 2863,2866 ****
--- 2872,2950 ----
}
+ #-----------------------------------------------------------------------------------#
+ class_new FindBar {Thing} ;# no, using View is wrong here. View is for tk canvas item collections.
+
+ def FindBar widget {} {return .$@canvas.find}
+
+ def FindBar addw {type label args} {
+ set f [$self widget]
+ if {$label!=""} {
+ eval [concat [list pack [label $f.${type}_l -text $label -font {helvetica -10} -pady 0] -side left]]
+ }
+ switch $type {
+ text {
+ text $f.$type -height 1 -width 10 -relief flat -bg white -borderwidth 0 \
+ -highlightthickness 0
+ pack $f.$type -side left
+ bind $f.$type <Escape> "$self remove"
+ }
+ checkbutton {
+ checkbutton $f.$type
+ pack $f.$type -side left
+ }
+ button {
+ button $f.$type -border 1 -command " $self remove" -bitmap gray75 -height 8 -width 8
+ pack $f.$type -side left
+ }
+ }
+ }
+
+ def FindBar remove {} {
+ set f [$self widget]
+ destroy $f
+ focus .$@canvas.c
+ }
+
+ def FindBar init {canvas} {
+ super
+ set @canvas $canvas
+ set f [$self widget]
+ frame $f -border 1 -relief ridge
+ $self addw text "Find:" ""
+ $self addw checkbutton "Recursive:" ""
+ $self addw button "Close" ""
+ focus $f.text
+ }
+
+ def FindBar draw {x y} {
+ if {$x == "??"} {return}
+ set c [$@canvas widget]
+ set f [$self widget]
+ set zoom [$@canvas zoom]
+ set x [expr [$c canvasx $x]/$zoom]
+ set y [expr [$c canvasy $y]/$zoom]
+ set tags [$c gettags [lindex [$c find overlapping \
+ [expr $x-2] [expr $y-2] [expr $x+2] [expr $y+2]] end]]
+ set target [$@canvas identify_target $x $y -1]
+ mset {type id detail} $target
+ set t $target
+ switch -- $type {
+ object {
+ if {[info exists _($id:pdclass)]} {set class $_($id:pdclass)} {set class unknown}
+ append t " \[$class\]"
+ }
+ }
+ set action [$@canvas action]
+ if {[regexp ^o $action]} {set action [$action class]}
+ if {[string length [$@canvas focus]]} {set t "focus: [$@canvas focus]"}
+ $f.px configure -text [format "%4d" [expr round($x)]]
+ $f.py configure -text [format "%4d" [expr round($y)]]
+ $f.what configure -text $t
+ $f.action configure -text $action
+ $f.sel configure -text [llength [$@canvas selection]]
+ $f.focus configure -text [$@canvas focus]
+ }
+
+
def Canvas index {child} {
# this could be O(1) if the proper database were maintained.
More information about the Pd-cvs
mailing list