OSDN Git Service

2c19a01e129eafac660c6037cc545fc285cebf47
[ring-lang-081/ring.git] / applications / rnote / source / rnoteoutputwindow.ring
1 # The Ring Notepad Application (RNote)
2 # Author : Mahmoud Fayed <msfclipper@yahoo.com>
3
4 class RNoteOutputWindow
5
6         func RunProcess cProgram,cArg,cGetDataFunc
7                 aPara = split(cArg,",")
8                 oStringList = new qStringlist() {
9                         for cPara in aPara 
10                                 append(cPara)
11                         next
12                 }
13                 oProcess = new qprocess(NULL) {
14                         setprogram( cProgram)
15                         setarguments(ostringlist)
16                         setreadyreadstandardoutputevent(cGetDataFunc)
17                         start_3(  QIODevice_ReadWrite )
18                 }
19                 return oProcess
20
21         func GetProcessData 
22                 if ISNULL(oProcess) return ok
23                 cText = oProcess.readallstandardoutput().data()
24                 if isWindows()
25                         cText += WindowsNl()
26                 ok
27                 # Set the font
28                         oTFont.fromstring(cFont)
29                         oProcessEditbox.setFont(oTFont)
30                 oProcessEditbox.insertplaintext(cText)
31                 oCursor = oProcessEditbox.textcursor()
32                 nPos = max(len(oProcessEditbox.toplaintext())-1,0)
33                 oCursor.setPosition(nPos,QTextCursor_KeepAnchor)
34                 oCursor.setPosition(nPos,QTextCursor_MoveAnchor)
35                 oProcessEditbox.setTextCursor(oCursor)
36
37         func SendProcessData
38                 if ISNULL(oProcess) return ok
39                 if isWindows()
40                         cText = oProcessText.text() + windowsnl()
41                 else 
42                         cText = oProcessText.text() + nl
43                 ok
44                 oProcess.write(cText ,len(cText))
45                 oProcessEditbox.insertplaintext(cText)
46                 oProcessText.setText("")
47
48         func ClearProcess
49                 oProcessEditbox.setPlainText("")