Method SaveState()
Local obj:=New JsonObject
Local docs:=New JsonArray
For Local doc:=Eachin _openDocs
docs.Add( New JsonString( doc.Path ) )
Next
obj["openDocuments"]=docs
Local recent:=New JsonArray
For Local path:=Eachin _recent
recent.Add( New JsonString( path ) )
End
obj["recentFiles"]=recent
Local projects:=New JsonArray
For Local dir:=Eachin _projects
projects.Add( New JsonString( dir ) )
Next
obj["openProjects"]=projects
obj["windowRect"]=ToJson( Frame )
obj["consoleSize"]=New JsonNumber( _docker.GetViewSize( _console ) )
obj["browserSize"]=New JsonNumber( _docker.GetViewSize( _browser ) )
obj["helpTreeSize"]=New JsonNumber( _helpView.GetViewSize( _helpView.HelpTree ) )
If _lockedDoc obj["lockedDocument"]=New JsonString( _lockedDoc.Path )
local k:Int
local out:string = ""
local str:string = ""
local chr:string
local tab:string = ""
local length:int
for k = 0 to obj.ToJson().Length
chr = obj.ToJson().Mid(k,1)
select chr
case "{", "["
str = str + chr
out = out + str + "~n"
tab = tab + " "
str = tab
case "}", "]"
out = out + str + "~n"
length = tab.Length
tab = tab.Left( length - 2 )
str = tab + chr
case ","
str = str + chr
out = out + str + "~n"
str = tab
default
str = str + chr
end
next
out = out + str + "~n"
SaveString( out,"bin/ted2.state.json" )
End