value__ntId__ntName  __ntTemplate viewBounds stepChildren declareSelf viewJustifyviewSetupFormScriptviewSetupDoneScriptcmdFunc afterScript  __ntDatatype __ntFlagsÿÐ PROT@    RECTlefttoprightbottomÿÿÿÿ¼ÿXÿÈ    ARAY     __ntDeclare   viewChangedScript viewFormat   ÿ fsSpec Ravenna¯öšÚBD…\ formula.proto…ž°xß;PRTONTP1 Common Files…\…S å GIRavenna:Sine of the Times:Projects:Formula 0.7:Common Files:formula.protoÿÿ USER@    RECT    Xÿÿÿÿàÿ„   À NUMB   ÿ†func(slot, view) begin //return true or nil local textout:=""; foreach element in datain do textout:=textout && element; Print(datain); local info:=getcaretinfo().info; ted.flag:=nil; setvalue(ted,'text,textout); ted.flag:=true; if info then setcaretinfo(ted,info); // inherited:?ViewChangedScript(); end SCPT   ÿÄ NUMB userProto child        copy     " $@    RECT    hÿÿÿÿàÿT   ÿ‚À NUMB    BOOL   ÿ D NUMB /child2        viewFlagsviewFont viewLineSpacingViewDragFeedbackScript viewStrokeScriptviewgesturescriptflag   ÿä PROT@    RECT    ÿÿÿÿä´    NUMBÿ ¸    EVAL*ROM_fontsystem10bold    NÿÅD    NP   ÿXfunc(dragInfo, dragPoint, show) begin local ourBox := :LocalBox(); // For our feedback, we draw a thick gray rectangle using the Xor transfer mode. // By using Xor, calling this with show=true and then show=nil will erase the // feedback rectangle. Note that we use DoDrawing to ensure correct clipping. :DoDrawing('DrawShape, [MakeRect(ourBox.left + 1, ourBox.top + 1, ourBox.right - 1, ourBox.bottom - 1), {transferMode: modeXor, penSize:3, penPattern:vfGray}]); true; // let the Drag and Drop system know that you did draw something. end SCPT   ÿ‚À N   ÿÖfunc(slot, view) begin if flag then begin child.datain:=[]; fn := StrTokenize(ted.text, $ ); while ts := call fn with () do addarrayslot(child.datain,ts); child:redochildren(); // :refresh(); end; end SCPT   ¶func(unit) begin // Return true if stroke has been completely handled, nil otherwise end SCPT   Òfunc(unit, gestureKind) begin // Return true if gesture has been completely handled, nil otherwise end SCPT    BOOLprotoInputLineted    yes   ÿ # Ravenna¯öšÚBD…\ taskbar.protoŽz°‡³üPRTONTP1 Common Files…\…S å GIRavenna:Sine of the Times:Projects:Formula 0.7:Common Files:taskbar.protoÿÿ USER@   ¦func(confirmed) begin if confirmed then begin setvalue(ted,'text,""); end; end EVAL /    buttonClickScripttext labelspickActionScript B A   ÿˆ PROT@    SCPTZfunc() begin dopopup(labels,15,0,self); end    EVAL"f"    RECT    ÿÿÿÿˆÿÿÿÿ¤ÿÿÿÿ¸ÿÿÿÿÌ   [] EVAL    func(item) begin if getcaretinfo() then postkeystring(ted,labels[item]); end SCPT   ÿ˜ NUMB    ROM_fontSystem9 EVAL   øfunc() begin labels:=[]; foreach index,element in child.drawframe do addarrayslot(labels,sprintobject(index)); end SCPT    NUMBprotoTextButton funcs    q  viewTransferMode    ÿh PROT@    EVAL0"Works Formula Builder"    RECT    ÿÿÿÿèÿÿÿÿøÿh<   ÿ 8 NUMB    NUMB   ÿ( NUMBprotoStaticText      labelCommands q alwaysCallPickActionScriptlabelActionScript pickedType   ÿø PROT@    EVAL´["Symbols","Operator","Delimiters","Calculus","Relations","Matrices","Functions","Other"]    EVAL "Symbol Class:"   RECT gtÍ    BOOL   ÿfunc(cmd) begin if cmd = 0 then self.pickedType := "Symbols"; if cmd = 1 then self.pickedType := "Operator"; if cmd = 2 then self.pickedType := "Delimiters"; if cmd = 3 then self.pickedType := "Calculus"; if cmd = 4 then self.pickedType := "Relations"; if cmd = 5 then self.pickedType := "Matrices"; if cmd = 6 then self.pickedType := "Functions"; if cmd = 7 then self.pickedType := "Other"; child.datain:=[]; child2.datain:=[]; foreach index,element in child2.drawframe do begin if strEqual(element.type, self.pickedType) then addarrayslot(child2.datain,element.example); end; child2:redoChildren(); end SCPT   "Symbols" TEXTprotoLabelPickertypePicker ÿ    'base EVAL   ÿ@ NUMB   ÿª// be sure to call inherited:?ViewSetupFormScript() func() begin // reset the child arrays child.datain:=[]; child2.datain:=[]; foreach index,element in child2.drawframe do begin if strEqual(element.type,"Symbols") then addarrayslot(child2.datain,element.example); end; inherited:?ViewSetupFormScript(); end SCPT   €func() begin child:redochildren(); child2:redochildren(); end SCPT   "func() begin end SCPT   ÿif kappsymbol='|worksformula:soft| then partData.mainView := thisView; //nil // this code will be executed after the template is processed SCPT€ protoFloatNGohomeboy