value__ntID__ntName __ntTemplatetitle viewBounds stepChildrenviewSetupFormScriptTheStoreTheSoupTheIndexTheLevelTheEntryGetEntry PrintObjectPrintOneObjectAppend TheCursorviewScrollUpScriptviewScrollDownScriptTheData CountSoup TheSoupCount TheCurrent prefsEntrySpaces  __ntDatatype __ntFlagsÿt PROT@    TEXTSouped-Up   RECTlefttoprightbottomÿÀÿ@    ARAY     __ntDeclare  viewflags viewFormat   viewJustify viewOriginYviewMaxYViewScrollAmount   ÿ( CLAS@    NUMBÿ„    NUMBÿ@    RECT ' & ( )xÿÿÿÿÄÿ¼    ARAY     .  viewfont 0 1 2texttabs   ÿh PROT@    RECT ' & ( )ÿÿÿÿøÿô   EVAL ROM_fontSystem9   , NUMB   ÿ NUMB   À NUMB   Entry Info TEXT    [70] EVALprotostatictext List ÿ   À NUMB   NUMB  nil EVAL   100 EVALclViewListView     .   labelCommandsviewSetupDoneScriptlabelActionScript E   ÿø PROT@    RECT & ' ( )ÿ|ÿÄÿÄÿü    EVAL$["1","2","3","4"]   ºfunc() begin TheLevel:=prefsEntry.LevelNr; :UpdateText(Labelcommands[TheLevel-1]); end SCPT   ²func(cmd) begin TheLevel:=cmd+1; prefsEntry.LevelNr:=TheLevel; :GetEntry(); end SCPT    Level TEXTprotolabelpicker Level     .   k E m l   ÿø PROT@    RECT g    EVAL["Internal"]    Store TEXT   ÿ¶func(cmd) begin TheStore:=GetStores()[cmd]; prefsEntry.StoreNr:=cmd; prefsEntry.SoupNr:=0; prefsEntry.IndexNr:=0; prefsEntry.EntryNr:=1; Soup:Getsoups(); Index:GetIndexes(); Index:GetData(); end SCPT   ÿÞfunc() begin local Counter, Stores:=array(0,Nil), NrStores:=Length(GetStores())-1; for Counter:=0 to NrStores do AddArraySlot(Stores,GetStores()[Counter]:GetName()); LabelCommands:=Stores; if prefsEntry.StoreNr>NrStores then prefsEntry.StoreNr:=0; :Updatetext(LabelCommands[prefsEntry.StoreNr]); TheStore:=GetStores()[prefsEntry.StoreNr]; end SCPT  Store     .   k EGetSoups l m   ÿø PROT@    RECT iñ    EVAL["System"]    Soup TEXT   ÿúfunc() begin LabelCommands:=TheStore:GetSoupNames(); if prefsEntry.SoupNr > (Length(LabelCommands)-1) then prefsEntry.SoupNr:=0; TheSoup:=TheStore:GetSoup(LabelCommands[prefsEntry.SoupNr]); :Updatetext(LabelCommands[prefsEntry.SoupNr]); end SCPT   Bfunc() begin :GetSoups(); end SCPT   ÿ€func(cmd) begin TheSoup:=TheStore:GetSoup(LabelCommands[cmd]); prefsEntry.SoupNr:=cmd; prefsEntry.IndexNr:=0; prefsEntry.EntryNr:=1; Index:GetIndexes(); Index:GetData(); end SCPT  Soup     .   k GetIndexes m E lGetData   ÿø PROT@    RECT & ' ( ) ÿÄÿtÿü    EVAL,["index 1","index 2"]   ÿ†func() begin local List:=array(0,Nil), Counter, Indexes:=TheSoup:GetIndexes(); if Indexes <> nil then for Counter:=0 to length(Indexes)-1 do AddArraySlot(List,sPrintobject(Indexes[Counter].path)); else List:=[""]; Labelcommands:=list; if prefsEntry.IndexNr>(Length(Indexes)-1) then prefsEntry.IndexNr:=0; :UpdateText(List[prefsEntry.IndexNr]); TheIndex:=if Indexes = nil then nil else List[prefsEntry.IndexNr]; end SCPT   ôfunc(cmd) begin TheIndex:=labelcommands[cmd]; prefsEntry.IndexNr:=cmd; prefsEntry.EntryNr:=1; :GetData(); end SCPT    Index TEXT   dfunc() begin :GetIndexes(); :GetData(); end SCPT   ÿrfunc() begin TheCursor:=query(TheSoup,{type:'index, indexpath: (if TheIndex then intern(TheIndex) else 'uniqueID)}); :CountSoup(); if prefsEntry.EntryNr> TheSoupCount then prefsEntry.EntryNr:=1; TheCurrent:=prefsEntry.EntryNr; if TheCurrent>1 then TheCursor:Move(TheCurrent-1); :GetEntry(); end SCPT  Index    __ntExternFile  .     ntLinkedSubview PROT@   RECT Òò LinkedSubview âFSSpecâ Theo Intern¨£ìBD!ÐSUAbout!Õ¨»ÖÅFLFMNTP1 Souped-Up!Ðo)Theo Intern:N E W T O N:Souped-Up:SUAboutÿÿ About     .  buttonClickScript 2icon   ÿ PROT@    RECT ' & ( )ÿÿÿÿÀ Ôÿÿÿÿô    SCPTDfunc() begin About:Open(); end   ÿ NUMB    __ntResID__ntCreateMask __ntPictName Êÿ  Infoâ Ôâ Theo Intern¨£ìBD!ÐSU.Picts!Ô¨°çrsrcRSED Souped-Up!Ðo*Theo Intern:N E W T O N:Souped-Up:SU.Pictsÿÿ PICTprotopicturebutton Info     .   E 2 1   ÿh PROT@    RECT ' & ( )ÿÿÿÿÀðÿÿÿÿô    TEXT1 of x   ÿX NUMB   ÿD NUMB [ Count     .   1buttonPressedScript AfterScript   ÿ PROT@   RECT ’â¢ò    NUMB   ÿ¶func() begin if ListView.ViewOriginY>0 then begin local NewY:=ListView.ViewOriginY-ListView.ViewScrollAmount; if NewY < 0 then NewY:=0; ListView:SetOrigin(0,NewY); Refreshviews(); end; end SCPT   ^begin thisview.icon:=ROM_uparrowbitmap; end EVAL ìUp     .   ÿ 1 ÿÿ   ÿ PROT@   RECT §â·ò   bbegin thisview.icon:=ROM_downarrowbitmap; end EVAL    NUMB   ÿfunc() begin if ListView.ViewOriginY<ListView.ViewMaxY then begin local NewY:=ListView.ViewOriginY+ListView.ViewScrollAmount; if NewY > ListView.ViewMaxY then NewY:=ListView.ViewMaxY; ListView:SetOrigin(0,NewY); Refreshviews(); end; end SCPT ì Down ÿ   ÿ"func() begin Title:=kTitle; local sysSoup := GetStores()[0]:GetSoup(ROM_SystemSoupName); local cursor := Query(sysSoup,{type: 'index, indexPath: 'tag, startKey: kPackageName}); prefsEntry := cursor:Entry(); if NOT (prefsEntry AND StrEqual(prefsEntry.tag,kPackageName)) then prefsEntry := sysSoup:Add({tag: kPackageName, StoreNr:0, SoupNr:0, IndexNr:0, EntryNr:1, LevelNr:1}); end SCPT  nil EVAL   ÿ# EVAL   ÿ# EVAL   1 EVAL   ÿ# EVAL   ÿJfunc() begin :Append(nil,nil); prefsEntry.EntryNr:=TheCurrent; TheEntry:=clone(TheCursor:Entry()); if TheEntry = nil then Count.Text:="No Data"; else begin foreach slot,value in TheEntry do begin :PrintOneObject(sPrintObject(Slot),Value,1); if StrLen(TheData) >1000 then begin :Append("------------",UnicodeCR); :Append("<More Slots here>",UnicodeCR); :Append("<Due to Memory problem, have to stop here>",nil); Break; end; end; EntryUndoChanges(TheEntry); Count.Text:=NumberStr(TheCurrent)&" of "&NumberStr(TheSoupCount); end; ListView.ViewOriginY:=0; setvalue(List,'text,TheData & " "); TheData:=nil; TheEntry:=nil; setvalue(List,'viewbounds,List.viewbounds); //to force recalc of bounds (bug in clparagraphview) ListView.ViewMaxY := List:LocalBox().bottom - ListView:LocalBox().bottom + 1; Count:Dirty(); EntryChange(prefsEntry); // save at the end, so in case of a memory error, previous prefs is restored end SCPT   öfunc(object) begin if object = nil then return "NIL"; if object = true then "TRUE" else sPrintObject(Object); end SCPT   ÿ >func(Slot,Object,Level) begin if Level <= TheLevel then begin if StrLen(TheData) >1000 then return; local Temp,Prefix; local PrimeClass:=PrimClassOf(Object); local Class:=ClassOf(Object); Prefix:=if Slot = nil then "" else :Spaces(Level) & Slot & ":" & unicodeHT; if PrimeClass='Immediate or Class='String or Class='Symbol then begin //check if it could be a date (range 1923-2018) Temp:=if Class='Int and Object > 10000000 and Object < 60000000 then ShortDate(Object) && date(Object).year else Object; :Append(Prefix & :PrintObject(Temp),if Slot then unicodeCR else ", "); end; else if Class = 'Array or PrimeClass = 'Array then begin :Append(Prefix & length(object) & "[",nil); foreach value in Object do :PrintOneObject(nil,Value,Level+1); :Append("]",unicodeCR); end; else if Class = 'Frame or PrimeClass = 'Frame then begin :Append(Prefix & length(object) & "{Frame}",unicodeCR); foreach slotname,value in Object do :PrintOneObject(sPrintObject(Slotname),Value,Level+1); end; else begin Temp:=:PrintObject(object); if strEqual(Temp,"") then :Append(Prefix & "<Unknown: " & sPrintObject(PrimeClass) & ", " & sPrintObject(Class) & ">",if Slot then unicodeCR else ", "); else :Append(Prefix & Temp,if Slot then unicodeCR else ", "); end; end; end SCPT   ÿnfunc(String,Suffix) begin if String=nil then TheData:=""; else begin TheData:=Stringer([TheData,if Suffix then Stringer([String,Suffix]) else String]); end; end SCPT  nil EVAL   ÿfunc() begin if TheCurrent>1 then begin TheCursor:Prev(); TheCurrent:=TheCurrent-1; :GetEntry(); end; end SCPT   ÿfunc() begin if TheCurrent<TheSoupCount then begin TheCursor:Next(); TheCurrent:=TheCurrent+1; :GetEntry(); end; end SCPT   ÿ; EVAL   ÿøfunc () begin local count:=1, cursor:=TheCursor:Clone(); cursor:Reset(); if cursor:Entry() = NIL then TheSoupCount:= 0; else begin while cursor:Next() do count := count + 1; TheSoupCount:=Count; end; end  SCPT   ÿ; EVAL   ÿ; EVAL   b EVAL   ÿ func(LevelNr) begin if LevelNr=1 then "" else SubStr(" ",0,(LevelNr-2)*6) & "--"; end SCPT€protoapp Main