Parcourir la source

Add files via upload

Capitan Cloud il y a 1 an
Parent
commit
b5cc32d550
6 fichiers modifiés avec 242 ajouts et 31 suppressions
  1. 177 2
      edit.tcl
  2. 9 0
      file.tcl
  3. 11 1
      menu.tcl
  4. 10 6
      radxide.tcl
  5. 7 1
      tree.tcl
  6. 28 21
      win.tcl

+ 177 - 2
edit.tcl

@@ -72,9 +72,63 @@ namespace eval edit {
 		    -head "Go to line:" {*}$args] res}
     }
 	}
-	
+
+# ________________________ Indent _________________________ #
+
+
+	proc Indent {} {
+		# Indent selected lines of text.
+
+		namespace upvar ::radxide dan dan
+
+		#tk_messageBox -title $dan(TITLE) -icon info -message "Indent start"   
+
+		set indent $dan(TAB_IN_SPACE)
+		set len [string length $dan(TAB_IN_SPACE)]
+		set sels [SelectedLines]
+		set wtxt [lindex $sels 0]
+		#::apave::undoIn $wtxt
+		foreach {l1 l2} [lrange $sels 1 end] {
+		  for {set l $l1} {$l<=$l2} {incr l} {
+		    set line [$wtxt get $l.0 $l.end]
+		    if {[string trim $line] eq {}} {
+		      $wtxt replace $l.0 $l.end {}
+		    } else {
+		      set leadsp [leadingSpaces $line]
+		      set sp [expr {$leadsp % $len}]
+		      # align by the indent edge
+		      if {$sp==0} {
+		        set ind $indent
+		      } else {
+		        set ind [string repeat " " [expr {$len - $sp}]]
+		      }
+		      $wtxt insert $l.0 $ind
+		    }
+		  }
+		}
+		#::apave::undoOut $wtxt
+		#alited::main::HighlightLine
+		
+		focus $dan(TEXT)
+		
+		#tk_messageBox -title $dan(TITLE) -icon info -message "Indent end"   
+		
+	}
+
+# ________________________ leadingSpaces _________________________ #
+
+
+	proc leadingSpaces {line} {
+		# Returns a number of leading spaces of a line
+		#   line - the line
+
+		return [expr {[string length $line]-[string length [string trimleft $line]]}]
+	}
+
+
 # ________________________ makeCopy _________________________ #
 
+
 	proc makeCopy {} {
     # Copy from the editor to the clipboard
     #clipboard clear
@@ -99,6 +153,10 @@ namespace eval edit {
     set t $dan(TEXT)
     
     tk_textCut $t
+    
+    after 200 [::radxide::win::fillGutter .danwin.fra.pan.fra2.text .danwin.fra.pan.fra2.gutText 5 1 "#FFFFFF" "#222223"]
+    $dan(TEXT) yview [$dan(TEXT) index insert] 
+    $dan(GUTTEXT) yview moveto [lindex [$dan(TEXT) yview] 1] 
 	}
 	
 #_________________________ makePaste ________________________ #
@@ -113,10 +171,91 @@ namespace eval edit {
     set t $dan(TEXT)
     
     tk_textPaste $t    
+    
+    after 1000 [::radxide::win::fillGutter .danwin.fra.pan.fra2.text .danwin.fra.pan.fra2.gutText 5 1 "#FFFFFF" "#222223"] 
+    $dan(TEXT) yview [$dan(TEXT) index insert] 
+    $dan(GUTTEXT) yview moveto [lindex [$dan(TEXT) yview] 1] 
+
+	}
+
+#_________________________ makeRedo ________________________ #
+
+
+	proc makeRedo {} {
+    # Paste from the clipboard to the editor
+    #set canvas %W
+    #eval [clipboard get -type TkCanvasItem]
+    
+    namespace upvar ::radxide dan dan
+    
+    set t $dan(TEXT)
+    
+    catch {$t edit redo}
+    
+    after idle [::radxide::win::fillGutter .danwin.fra.pan.fra2.text .danwin.fra.pan.fra2.gutText 5 1 "#FFFFFF" "#222223"] 
+    $dan(TEXT) yview [$dan(TEXT) index insert] 
+    $dan(GUTTEXT) yview moveto [lindex [$dan(TEXT) yview] 1] 
+
+	}
+
+#_________________________ makeUndo ________________________ #
+
+
+	proc makeUndo {} {
+    # Paste from the clipboard to the editor
+    #set canvas %W
+    #eval [clipboard get -type TkCanvasItem]
+    
+    namespace upvar ::radxide dan dan
+    
+    set t $dan(TEXT)
+    
+    catch {$t edit undo}   
+    
+    after idle [::radxide::win::fillGutter .danwin.fra.pan.fra2.text .danwin.fra.pan.fra2.gutText 5 1 "#FFFFFF" "#222223"]
+    $dan(TEXT) yview [$dan(TEXT) index insert] 
+    $dan(GUTTEXT) yview moveto [lindex [$dan(TEXT) yview] 1] 
+
+	}
+
+# ________________________ SelectedLines _________________________ #
+
+
+	proc SelectedLines {{wtxt ""} {strict no}} {
+		# Gets a range of lines of text that are selected at least partly.
+		#   wtxt - text's path
+		#   strict - if yes, only a real selection is counted
+		# Returns a list of the text widget's path and ranges of selected lines.
+
+		namespace upvar ::radxide dan dan
+
+		if {$wtxt eq {}} {set wtxt $dan(TEXT)}
+		set res [list $wtxt]
+		if {[catch {$wtxt tag ranges sel} sels] || ![llength $sels]} {
+		  if {$strict} {
+		    set sels [list]
+		  } else {
+		    set pos1 [set pos2 [$wtxt index insert]]
+		    set sels [list $pos1 $pos2]
+		  }
+		}
+		foreach {pos1 pos2} $sels {
+		  if {$pos1 ne {}} {
+		    set pos21 [$wtxt index "$pos2 linestart"]
+		    if {[$wtxt get $pos21 $pos2] eq {}} {
+		      set pos2 [$wtxt index "$pos2 - 1 line"]
+		    }
+		  }
+		  set l1 [expr {int($pos1)}]
+		  set l2 [expr {max($l1,int($pos2))}]
+		  lappend res $l1 $l2
+		}
+		return $res
 	}
 
 #_________________________ setup ________________________ #
 
+
 	proc setup {} {
     # Open the Options window
     
@@ -124,7 +263,43 @@ namespace eval edit {
     
     tk_messageBox -title $dan(TITLE) -icon info -message "Please check 'radxide.tcl' for any variable to customize."   
 	}
-	
+
+# ________________________ UnIndent _________________________ #
+
+
+	proc UnIndent {} {
+		# Unindent selected lines of text.
+
+		namespace upvar ::radxide dan dan
+
+    #tk_messageBox -title $dan(TITLE) -icon info -message "start UnIndent"   
+
+		set len [string length $dan(TAB_IN_SPACE)]
+		set spaces [list { } \t]
+		set sels [SelectedLines]
+		set wtxt [lindex $sels 0]
+		#::apave::undoIn $wtxt
+		foreach {l1 l2} [lrange $sels 1 end] {
+		  for {set l $l1} {$l<=$l2} {incr l} {
+		    set line [$wtxt get $l.0 $l.end]
+		    if {[string trim $line] eq {}} {
+		      $wtxt replace $l.0 $l.end {}
+		    } elseif {[string index $line 0] in $spaces} {
+		      set leadsp [leadingSpaces $line]
+		      # align by the indent edge
+		      set sp [expr {$leadsp % $len}]
+		      if {$sp==0} {set sp $len}
+		      $wtxt delete $l.0 "$l.0 + ${sp}c"
+		    }
+		  }
+		}
+		#::apave::undoOut $wtxt
+		
+		focus $dan(TEXT)
+		
+    #tk_messageBox -title $dan(TITLE) -icon info -message "end UnIndent"   
+	}
+
 #_______________________
 
 }

+ 9 - 0
file.tcl

@@ -58,9 +58,13 @@ namespace eval file {
 	  $menu(FILE) entryconfigure $menu(SAVE_AS_ENTRY_IDX) -state disabled
 	  $menu(FILE) entryconfigure $menu(SAVE_ENTRY_IDX) -state disabled
 	  $menu(FILE) entryconfigure $menu(CLOSE_ENTRY_IDX) -state disabled
+    $menu(EDIT) entryconfigure $menu(UNDO_ENTRY_IDX) -state disabled
+	  $menu(EDIT) entryconfigure $menu(REDO_ENTRY_IDX) -state disabled  
     $menu(EDIT) entryconfigure $menu(COPY_ENTRY_IDX) -state disabled
 	  $menu(EDIT) entryconfigure $menu(PASTE_ENTRY_IDX) -state disabled
 	  $menu(EDIT) entryconfigure $menu(CUT_ENTRY_IDX) -state disabled
+	  $menu(EDIT) entryconfigure $menu(INDENT_ENTRY_IDX) -state disabled
+    $menu(EDIT) entryconfigure $menu(UNINDENT_ENTRY_IDX) -state disabled		  
 	  $menu(EDIT) entryconfigure $menu(FIND_ENTRY_IDX) -state disabled
 	  $menu(EDIT) entryconfigure $menu(GOTO_ENTRY_IDX) -state disabled
 	  
@@ -98,8 +102,13 @@ namespace eval file {
 	  $menu(FILE) entryconfigure $menu(SAVE_ENTRY_IDX) -state disabled		  
 	  $menu(FILE) entryconfigure $menu(CLOSE_ENTRY_IDX) -state disabled
     $menu(FILE) entryconfigure $menu(CLOSE_PROJECT_ENTRY_IDX) -state disabled
+    $menu(EDIT) entryconfigure $menu(UNDO_ENTRY_IDX) -state disabled
+	  $menu(EDIT) entryconfigure $menu(REDO_ENTRY_IDX) -state disabled  
+    $menu(EDIT) entryconfigure $menu(COPY_ENTRY_IDX) -state disabled	  
 	  $menu(EDIT) entryconfigure $menu(PASTE_ENTRY_IDX) -state disabled
 	  $menu(EDIT) entryconfigure $menu(CUT_ENTRY_IDX) -state disabled
+	  $menu(EDIT) entryconfigure $menu(INDENT_ENTRY_IDX) -state disabled
+    $menu(EDIT) entryconfigure $menu(UNINDENT_ENTRY_IDX) -state disabled	    
 	  $menu(EDIT) entryconfigure $menu(FIND_ENTRY_IDX) -state disabled
 	  $menu(EDIT) entryconfigure $menu(GOTO_ENTRY_IDX) -state disabled
 

+ 11 - 1
menu.tcl

@@ -62,10 +62,16 @@ namespace eval menu {
 		set m2 [menu $m.edit -tearoff 0]
 		set menu(EDIT) $m2
 		$m add cascade -label Help -menu $m.help
+		$m2 add command -label Undo -command { ::radxide::menu::edit::makeUndo } -accelerator Ctrl+Z -state disabled
+		$m2 add command -label Redo -command { ::radxide::menu::edit::makeRedo } -accelerator Ctrl+Shift+Z -state disabled
+  	$m2 add separator
 		$m2 add command -label Copy -command { ::radxide::menu::edit::makeCopy }  -accelerator Ctrl+C -state disabled
 		$m2 add command -label Paste -command { ::radxide::menu::edit::makePaste } -accelerator Ctrl+P -state disabled
 		$m2 add command -label Cut -command { ::radxide::menu::edit::makeCut } -accelerator Ctrl+X -state disabled
 		$m2 add separator
+		$m2 add command -label Indent -command { ::radxide::menu::edit::Indent } -accelerator Ctrl+T -state disabled
+		$m2 add command -label UnIndent -command { ::radxide::menu::edit::UnIndent } -accelerator Alt+T -state disabled
+		$m2 add separator
 		$m2 add command -label Find -command { ::radxide::menu::edit::find } -accelerator Ctrl+F -state disabled
 		$m2 add command -label "Go to Line" -command { ::radxide::menu::edit::GotoLine } -accelerator Ctrl+G -state disabled
 		$m2 add separator
@@ -86,13 +92,17 @@ namespace eval menu {
  	  bind $ctrl "<Control-s>" { ::radxide::menu::file::saveFile }
  	  bind $ctrl "<Control-Alt-x>" { ::radxide::menu::file::closeProject }
  	  bind $ctrl "<Control-q>" { ::radxide::menu::file::quit }
+ 		bind $ctrl "<Control-t>" { ::radxide::menu::edit::Indent }
+ 		bind $ctrl "<Alt-t>" { ::radxide::menu::edit::UnIndent } 		
+    bind $ctrl "<Control-z>" "::radxide::menu::edit::makeUndo"
+    bind $ctrl "<Control-Shift-z>" "::radxide::menu::edit::makeRedo"    
  	  bind $ctrl "<Control-c>" "::radxide::menu::edit::makeCopy"
  	  bind $ctrl "<Control-p>" "::radxide::menu::edit::makePaste"
  	  bind $ctrl "<Control-x>" "::radxide::menu::edit::makeCut"
  	  bind $ctrl "<Control-f>" "::radxide::menu::edit::find"
 		bind $ctrl "<Control-g>" "::radxide::menu::edit::GotoLine"
 		bind $ctrl "<Return>" "::radxide::win::setNewLineWithIndent" 
-		bind $ctrl "<Tab>" "::radxide::win::insertTab"
+		#bind $ctrl "<Tab>" "::radxide::win::insertTab"
 		
 	}	
 	

+ 10 - 6
radxide.tcl

@@ -28,7 +28,7 @@
 #
 ###########################################################
 
-set version "1.3.1" 
+set version "1.3.5" 
 set os "$::tcl_platform(os) $::tcl_platform(osVersion)"
 
 package provide radxide $version
@@ -175,11 +175,15 @@ namespace eval radxide {
   set menu(SAVE_ENTRY_IDX) 5;
   set menu(CLOSE_ENTRY_IDX) 7;
   set menu(CLOSE_PROJECT_ENTRY_IDX) 8;      
-  set menu(COPY_ENTRY_IDX) 0;
-  set menu(PASTE_ENTRY_IDX) 1;
-  set menu(CUT_ENTRY_IDX) 2;
-  set menu(FIND_ENTRY_IDX) 4;    
-  set menu(GOTO_ENTRY_IDX) 5;
+  set menu(UNDO_ENTRY_IDX) 0;
+  set menu(REDO_ENTRY_IDX) 1;
+  set menu(COPY_ENTRY_IDX) 3;
+  set menu(PASTE_ENTRY_IDX) 4;
+  set menu(CUT_ENTRY_IDX) 5;
+  set menu(INDENT_ENTRY_IDX) 7;
+  set menu(UNINDENT_ENTRY_IDX) 8;
+  set menu(FIND_ENTRY_IDX) 10;    
+  set menu(GOTO_ENTRY_IDX) 11;
   
   # a couplle of extension definitions..
   set dan(PhpExts) {.php .php2 .php3 .php4 .php5 .funny .inc}     ;# extensions of php files

+ 7 - 1
tree.tcl

@@ -651,14 +651,20 @@ namespace eval tree {
 	    $menu(FILE) entryconfigure $menu(SAVE_ENTRY_IDX) -state normal
 	    $menu(FILE) entryconfigure $menu(SAVE_AS_ENTRY_IDX) -state normal
 	    $menu(FILE) entryconfigure $menu(CLOSE_ENTRY_IDX) -state normal
+	    $menu(EDIT) entryconfigure $menu(UNDO_ENTRY_IDX) -state normal
+	    $menu(EDIT) entryconfigure $menu(REDO_ENTRY_IDX) -state normal
 	    $menu(EDIT) entryconfigure $menu(COPY_ENTRY_IDX) -state normal
 	    $menu(EDIT) entryconfigure $menu(PASTE_ENTRY_IDX) -state normal
-	    $menu(EDIT) entryconfigure $menu(CUT_ENTRY_IDX) -state normal	    
+	    $menu(EDIT) entryconfigure $menu(CUT_ENTRY_IDX) -state normal	
+	    $menu(EDIT) entryconfigure $menu(INDENT_ENTRY_IDX) -state normal
+	    $menu(EDIT) entryconfigure $menu(UNINDENT_ENTRY_IDX) -state normal	    
 	    $menu(EDIT) entryconfigure $menu(FIND_ENTRY_IDX) -state normal
 	    $menu(EDIT) entryconfigure $menu(GOTO_ENTRY_IDX) -state normal	    
 	    
 	    set project(CUR_FILE_PATH) $fname
 	    
+	    $dan(TEXT) edit reset
+	    
 	    focus $dan(TEXT)
 	    ::tk::TextSetCursor $dan(TEXT) @0,0
 	    

+ 28 - 21
win.tcl

@@ -907,7 +907,7 @@ namespace eval win {
 
     $canvas configure -state disabled
     
-    return 2
+    #return 2
   }
 
 
@@ -1883,7 +1883,7 @@ namespace eval win {
   # Scrollbars amenities
   proc Yset {widgets master sb args} {
    
-    #if {$master eq "master"} {
+    if {$master eq "master"} {
       #list $sb set [expr [lindex $args 0]] [expr [lindex $args 1]]
       
       set sb1 [lrange $sb 0 0]
@@ -1893,19 +1893,27 @@ namespace eval win {
       $sb2 set {*}$args
       
       set myw [lrange $widgets 1 end]
-    #} else {
-    #  set myw [lrange $widgets 0 0]		    
-    #} 
+    } else {
+      set myw [lrange $widgets 0 0]		    
+    } 
     
-    ::radxide::win::Yview $myw moveto [lindex $args 0]
+    #::radxide::win::Yview $myw moveto [lindex $args 0]
     #::radxide::win::Yview [lrange $widgets 0 0] moveto [lindex $args 0]
+    ::radxide::win::Yview $widgets no moveto [lindex $args 0]
 
   }
   
-  proc Yview {widgets args} {
+  proc Yview {widgets callfromsbmaster args} {
+  
+    namespace upvar ::radxide dan dan
+  
     foreach w $widgets {
       $w yview {*}$args
     }
+    
+    if ($callfromsbmaster) {
+      catch {list $w2.gutText yview moveto [lindex [$dan(TEXT) yview] 1]}
+    }  
   } 
   
   proc makeMainWindow {win ttl bg fg} {
@@ -1943,18 +1951,19 @@ namespace eval win {
 		  pack [set w2 [ttk::panedwindow $pan.fra2 -orient horizontal]] -side left -fill both -expand 1
 		  set panR [$pan add $pan.fra2]
 		  text $w2.gutText -background "lightgray" -foreground "#222223" -font "Monospace 10" -width 5
-		  text $w2.text -font "monospace 10" -bd 0 -padx 13 -spacing1 0 -spacing2 0 -spacing3 0 -exportselection yes -width 115 -wrap none
+		  text $w2.text -font "monospace 10" -bd 0 -padx 13 -spacing1 0 -spacing2 0 -spacing3 0 -exportselection yes -width 115 -wrap none -undo yes
 		  set ww [list .danwin.fra.pan.fra2.text .danwin.fra.pan.fra2.gutText]
 		  $w2.text configure -xscrollcommand [list $w2.xscroll set]
 		  scrollbar $w2.xscroll -orient horizontal \
 		    -command [list $w2.text xview]
 		  scrollbar $w2.yscroll1 -orient vertical \
-		    -command [list ::radxide::win::Yview $ww]
+		    -command [list ::radxide::win::Yview $ww yes]
 		  scrollbar $w2.yscroll2 -orient vertical \
 		    -command [list $w2.gutText yview]		    
 		  set ssbb [list .danwin.fra.pan.fra2.yscroll1 .danwin.fra.pan.fra2.yscroll2]  
 		  $w2.text configure -yscrollcommand [list ::radxide::win::Yset $ww master $ssbb]
 		  $w2.gutText configure -yscrollcommand [list .danwin.fra.pan.fra2.yscroll2 set]		    
+		  #$w2.gutText configure -yscrollcommand [list ::radxide::win::Yset $ww slave $ssbb]		    
 		  grid $w2.gutText $w2.text $w2.yscroll1 -sticky nsew
 	   	grid $w2.xscroll -columnspan 2 -sticky nsew
 		  grid rowconfigure $w2 0 -weight 1
@@ -1976,10 +1985,9 @@ namespace eval win {
 		  ::radxide::eglib::create $w3
 		  
 		  # update gutter, key bindings     
-      bind $dan(TEXT) "<Return>" {::radxide::win::fillGutter .danwin.fra.pan.fra2.text .danwin.fra.pan.fra2.gutText 5 1 "#FFFFFF" "#222223"}
-      bind $dan(TEXT) "<BackSpace>" {::radxide::win::fillGutter .danwin.fra.pan.fra2.text .danwin.fra.pan.fra2.gutText 5 1 "#FFFFFF" "#222223"}
-      bind $dan(TEXT) "<Cancel>" {::radxide::win::fillGutter .danwin.fra.pan.fra2.text .danwin.fra.pan.fra2.gutText 5 1 "#FFFFFF" "#222223" ;::radxide::win::Yview {.danwin.fra.pan.fra2.text .danwin.fra.pan.fra2.gutText} scroll -0 units ;::radxide::win::Yview {.danwin.fra.pan.fra2.text .danwin.fra.pan.fra2.gutText} scroll 1 units}
-      bind $dan(TEXT) "<Delete>" {::radxide::win::fillGutter .danwin.fra.pan.fra2.text .danwin.fra.pan.fra2.gutText 5 1 "#FFFFFF" "#222223" ;::radxide::win::Yview {.danwin.fra.pan.fra2.text .danwin.fra.pan.fra2.gutText} scroll -1 units ;::radxide::win::Yview {.danwin.fra.pan.fra2.text .danwin.fra.pan.fra2.gutText} scroll 1 units}
+      bind $dan(TEXT) "<Return>" {::radxide::win::fillGutter .danwin.fra.pan.fra2.text .danwin.fra.pan.fra2.gutText 5 1 "#FFFFFF" "#222223" ;$dan(TEXT) yview [$dan(TEXT) index insert] ;$dan(GUTTEXT) yview moveto [lindex [$dan(TEXT) yview] 1] }
+      bind $dan(TEXT) "<BackSpace>" {::radxide::win::fillGutter .danwin.fra.pan.fra2.text .danwin.fra.pan.fra2.gutText 5 1 "#FFFFFF" "#222223" ;$dan(TEXT) yview [$dan(TEXT) index insert] ;$dan(GUTTEXT) yview moveto [lindex [$dan(TEXT) yview] 1] }
+      bind $dan(TEXT) "<Delete>" {::radxide::win::fillGutter .danwin.fra.pan.fra2.text .danwin.fra.pan.fra2.gutText 5 1 "#FFFFFF" "#222223" ;$dan(TEXT) yview [$dan(TEXT) index insert] ;$dan(GUTTEXT) yview moveto [lindex [$dan(TEXT) yview] 1] }
       bind $tree "<ButtonPress>" {after idle {::radxide::tree::buttonPress %b %x %y %X %Y}}
       bind $tree "<ButtonRelease>" {after idle {::radxide::tree::buttonRelease %b %s %x %y %X %Y}}      
       
@@ -1990,7 +1998,6 @@ namespace eval win {
     set canvas $w2.gutText 	  
  	  ::radxide::menu::defWinShortcuts $dan(TEXT) $canvas  
  	  ::radxide::menu::defWinShortcuts $dan(TREEVIEW) $canvas  
-
   }
 
 # ________________________ MakeWidgetName _________________________ #
@@ -3238,10 +3245,10 @@ namespace eval win {
       set $newlength 0
       set nindent 0   
       
-      ::radxide::win::fillGutter .danwin.fra.pan.fra2.text .danwin.fra.pan.fra2.gutText 5 1 "#FFFFFF" "#222223"
-      ::radxide::win::Yview {.danwin.fra.pan.fra2.text .danwin.fra.pan.fra2.gutText} scroll -1 units 
-      ::radxide::win::Yview {.danwin.fra.pan.fra2.text .danwin.fra.pan.fra2.gutText} scroll 1 units
-            
+      ::radxide::win::fillGutter .danwin.fra.pan.fra2.text .danwin.fra.pan.fra2.gutText 5 1 "#FFFFFF" "#222223" ;
+      $dan(TEXT) yview [$dan(TEXT) index insert] 
+      $dan(GUTTEXT) yview moveto [lindex [$dan(TEXT) yview] 1]             
+      
       return 0
     } else {
     
@@ -3253,9 +3260,9 @@ namespace eval win {
 		  set idx4 [$wt index "$idx3 +1 line"]
 		  ::tk::TextSetCursor $wt $idx3
 		  
-		  ::radxide::win::fillGutter .danwin.fra.pan.fra2.text .danwin.fra.pan.fra2.gutText 5 1 "#FFFFFF" "#222223"
-      ::radxide::win::Yview {.danwin.fra.pan.fra2.text .danwin.fra.pan.fra2.gutText} scroll -1 units 
-      ::radxide::win::Yview {.danwin.fra.pan.fra2.text .danwin.fra.pan.fra2.gutText} scroll 1 units
+      ::radxide::win::fillGutter .danwin.fra.pan.fra2.text .danwin.fra.pan.fra2.gutText 5 1 "#FFFFFF" "#222223" ;
+      $dan(TEXT) yview [$dan(TEXT) index insert] 
+      $dan(GUTTEXT) yview moveto [lindex [$dan(TEXT) yview] 1]             
 		  
       return -code break
     }