checkin from browser
authorClaus Gittinger <cg@exept.de>
Thu, 29 Apr 1999 11:29:30 +0200
changeset 1347 a98c0c7ff8c8
parent 1346 c0e475767be6
child 1348 b4bf740ec2fc
checkin from browser
TerminalView.st
--- a/TerminalView.st	Wed Apr 28 20:11:11 1999 +0200
+++ b/TerminalView.st	Thu Apr 29 11:29:30 1999 +0200
@@ -2,7 +2,8 @@
 	instanceVariableNames:'inStream outStream readerProcess shellPid kbdSequences
 		escapeSequenceTree currentSequence kbdMap escapeLeadingChars
 		numberOfColumns numberOfLines shellTerminateAction rangeStartLine
-		rangeEndLine state savedCursor shellCommand shellDirectory'
+		rangeEndLine state savedCursor shellCommand shellDirectory
+		filterStream'
 	classVariableNames:''
 	poolDictionaries:''
 	category:'Views-TerminalViews'
@@ -1105,7 +1106,7 @@
 editMenu
     "return the views middleButtonMenu"
 
-    <resource: #keyboard (#Copy #Paste #Print)>
+    <resource: #keyboard (#Copy #Paste #Print #SaveAs #Print)>
     <resource: #programMenu>
 
     |items m sub shortKeys sensor|
@@ -1126,6 +1127,22 @@
                         ('save as ...'  save             SaveAs )
                         ('print'        doPrint          Print  )
                   ).
+
+"/ disabled - for now;
+"/ need a more intelligent filtering of control characters.
+"/
+"/        filterStream isNil ifTrue:[
+"/           items := items , #(
+"/                        ('-'                                    )
+"/                        ('start save as ...'  startSaveAs       )
+"/                        ('start print'        startPrint        )
+"/                             )
+"/        ] ifFalse:[
+"/           items := items , #(
+"/                        ('-'                                    )
+"/                        ('stop filter'  stopFilter              )
+"/                             )
+"/        ].
     ].
 
     m := PopUpMenu itemList:items resources:resources.
@@ -1135,7 +1152,30 @@
     ].
     ^ m.
 
-    "Modified: / 12.6.1998 / 22:33:33 / cg"
+    "Modified: / 29.4.1999 / 11:12:56 / cg"
+!
+
+startSaveAs
+    "start saving all received data to some file"
+
+    |fn|
+
+    fn := Dialog requestFileName:'Save received data in file:'.
+    fn size > 0 ifTrue:[
+        filterStream := fn asFilename writeStream
+    ].
+
+    "Created: / 29.4.1999 / 11:06:29 / cg"
+!
+
+stopFilter
+    "stop saving/printing of received data"
+
+    filterStream close.
+    filterStream := nil.
+
+    "Created: / 29.4.1999 / 11:07:49 / cg"
+    "Modified: / 29.4.1999 / 11:09:52 / cg"
 ! !
 
 !TerminalView methodsFor:'misc'!
@@ -1157,6 +1197,10 @@
 processInput:buffer n:count
     |sensor|
 
+    filterStream notNil ifTrue:[
+        filterStream nextPutAll:(buffer copyTo:count).
+    ].
+
 "/    self hideCursor.
 
     "/ the following may not be too clean, but adds a lot of speed.
@@ -1284,7 +1328,7 @@
     ].
 
     "Created: / 10.6.1998 / 17:26:09 / cg"
-    "Modified: / 14.8.1998 / 13:43:35 / cg"
+    "Modified: / 29.4.1999 / 11:08:48 / cg"
 !
 
 sync
@@ -1366,5 +1410,5 @@
 !TerminalView class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libwidg2/TerminalView.st,v 1.74 1999-04-28 12:30:08 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libwidg2/TerminalView.st,v 1.75 1999-04-29 09:29:30 cg Exp $'
 ! !