.============================================================
.  YOUR SUBROUTINES -- Calculator logic
.============================================================

:btn_mc_Left_Click
SetVar "[CalcMemory]" "0"
Return

:btn_mr_Left_Click
If "[CalcError]" "=" "1"
  Return
EndIf
SetVar "[CalcExpr]" "[CalcMemory]"
SetVar "[CalcJustEvaluated]" "1"
GoSub "Calc_UpdateDisplay"
Return

:btn_mplus_Left_Click
GoSub "Calc_GetExpressionValue"
If "[CalcError]" "=" "1"
  Return
EndIf
Math "[CalcMemory]+[CalcValue]" "[CalcMemory]"
Return

:btn_mminus_Left_Click
GoSub "Calc_GetExpressionValue"
If "[CalcError]" "=" "1"
  Return
EndIf
Math "[CalcMemory]-[CalcValue]" "[CalcMemory]"
Return

:btn_clear_Left_Click
GoSub "Calc_Reset"
Return

:btn_back_Left_Click
If "[CalcError]" "=" "1"
  GoSub "Calc_Reset"
  Return
EndIf
StrLen "[CalcExpr]" "[_Len]"
If "[_Len]" "<=" "1"
  SetVar "[CalcExpr]" "0"
Else
  SubStr "[CalcExpr]" "1" "[_Len]-1" "[CalcExpr]"
EndIf
SetVar "[CalcJustEvaluated]" "0"
GoSub "Calc_UpdateDisplay"
Return

:btn_percent_Left_Click
If "[CalcError]" "=" "1"
  Return
EndIf
GoSub "Calc_GetCurrentToken"
If "[CalcToken]" "=" ""
  Return
EndIf
Math "[CalcToken]/100" "[CalcToken]"
GoSub "Calc_NormalizeNumber"
If "[CalcPrevOpPos]" ">" "0"
  SubStr "[CalcExpr]" "1" "[CalcPrevOpPos]" "[_Left]"
  SetVar "[CalcExpr]" "[_Left][CalcToken]"
Else
  SetVar "[CalcExpr]" "[CalcToken]"
EndIf
SetVar "[CalcJustEvaluated]" "0"
GoSub "Calc_UpdateDisplay"
Return

:btn_divide_Left_Click
SetVar "[CalcAppendOp]" "/"
GoSub "Calc_AppendOperator"
Return

:btn_7_Left_Click
SetVar "[CalcAppendText]" "7"
GoSub "Calc_AppendDigit"
Return

:btn_8_Left_Click
SetVar "[CalcAppendText]" "8"
GoSub "Calc_AppendDigit"
Return

:btn_9_Left_Click
SetVar "[CalcAppendText]" "9"
GoSub "Calc_AppendDigit"
Return

:btn_multiply_Left_Click
SetVar "[CalcAppendOp]" "*"
GoSub "Calc_AppendOperator"
Return

:btn_4_Left_Click
SetVar "[CalcAppendText]" "4"
GoSub "Calc_AppendDigit"
Return

:btn_5_Left_Click
SetVar "[CalcAppendText]" "5"
GoSub "Calc_AppendDigit"
Return

:btn_6_Left_Click
SetVar "[CalcAppendText]" "6"
GoSub "Calc_AppendDigit"
Return

:btn_subtract_Left_Click
SetVar "[CalcAppendOp]" "-"
GoSub "Calc_AppendOperator"
Return

:btn_1_Left_Click
SetVar "[CalcAppendText]" "1"
GoSub "Calc_AppendDigit"
Return

:btn_2_Left_Click
SetVar "[CalcAppendText]" "2"
GoSub "Calc_AppendDigit"
Return

:btn_3_Left_Click
SetVar "[CalcAppendText]" "3"
GoSub "Calc_AppendDigit"
Return

:btn_add_Left_Click
SetVar "[CalcAppendOp]" "+"
GoSub "Calc_AppendOperator"
Return

:btn_negate_Left_Click
If "[CalcError]" "=" "1"
  Return
EndIf
GoSub "Calc_GetCurrentToken"
If "[CalcToken]" "=" ""
  Return
EndIf
SubStr "[CalcToken]" "1" "1" "[_First]"
If "[_First]" "=" "-"
  StrLen "[CalcToken]" "[_TL]"
  If "[_TL]" ">" "1"
    SubStr "[CalcToken]" "2" "[_TL]-1" "[CalcToken]"
  Else
    SetVar "[CalcToken]" "0"
  EndIf
Else
  SetVar "[CalcToken]" "-[CalcToken]"
EndIf
If "[CalcPrevOpPos]" ">" "0"
  SubStr "[CalcExpr]" "1" "[CalcPrevOpPos]" "[_Left]"
  SetVar "[CalcExpr]" "[_Left][CalcToken]"
Else
  SetVar "[CalcExpr]" "[CalcToken]"
EndIf
SetVar "[CalcJustEvaluated]" "0"
GoSub "Calc_UpdateDisplay"
Return

:btn_0_Left_Click
SetVar "[CalcAppendText]" "0"
GoSub "Calc_AppendDigit"
Return

:btn_decimal_Left_Click
If "[CalcError]" "=" "1"
  Return
EndIf
If "[CalcJustEvaluated]" "=" "1"
  SetVar "[CalcExpr]" "0."
  SetVar "[CalcJustEvaluated]" "0"
  GoSub "Calc_UpdateDisplay"
  Return
EndIf
GoSub "Calc_GetCurrentToken"
SearchStr "." "[CalcToken]" "[_Dot]" "CaseSensitive"
If "[_Dot]" ">" "0"
  Return
EndIf
If "[CalcExpr]" "=" "0"
  SetVar "[CalcExpr]" "0."
  GoSub "Calc_UpdateDisplay"
  Return
EndIf
StrLen "[CalcExpr]" "[_Len]"
SubStr "[CalcExpr]" "[_Len]" "1" "[_Last]"
If "[_Last]" "=" "+"
  SetVar "[CalcExpr]" "[CalcExpr]0."
  GoSub "Calc_UpdateDisplay"
  Return
EndIf
If "[_Last]" "=" "-"
  If "[CalcPrevOpPos]" "=" "[_Len]"
    SetVar "[CalcExpr]" "[CalcExpr]0."
    GoSub "Calc_UpdateDisplay"
    Return
  EndIf
EndIf
If "[_Last]" "=" "*"
  SetVar "[CalcExpr]" "[CalcExpr]0."
  GoSub "Calc_UpdateDisplay"
  Return
EndIf
If "[_Last]" "=" "/"
  SetVar "[CalcExpr]" "[CalcExpr]0."
  GoSub "Calc_UpdateDisplay"
  Return
EndIf
SetVar "[CalcExpr]" "[CalcExpr]."
GoSub "Calc_UpdateDisplay"
Return

:btn_equals_Left_Click
GoSub "Calc_EvaluateExpression"
If "[CalcError]" "=" "1"
  GoSub "Calc_ShowError"
  Return
EndIf
SetVar "[CalcExpr]" "[CalcResult]"
SetVar "[CalcJustEvaluated]" "1"
GoSub "Calc_UpdateDisplay"
Return

:Calculator_Enter
Return

:Calculator_OnEnter
GoSub "Calc_Reset"
Return

:Calculator_OnExit
Return

:NWID_OnReady
GoSub "Calc_Reset"
Return

:NWID_OnPageChanged
Return

:NWID_OnPropValue
Return

:Calc_Reset
SetVar "[CalcExpr]" "0"
SetVar "[CalcMemory]" "0"
SetVar "[CalcJustEvaluated]" "0"
SetVar "[CalcError]" "0"
GoSub "Calc_UpdateDisplay"
Return

:Calc_UpdateDisplay
SetVar "[lbl_display.caption]" "[CalcExpr]"
SetVar "[SetObjectProperty]" "lbl_display.caption"
GoSub "SetProp"
Return

:Calc_ShowError
SetVar "[CalcExpr]" "Error"
SetVar "[CalcJustEvaluated]" "1"
SetVar "[lbl_display.caption]" "Error"
SetVar "[SetObjectProperty]" "lbl_display.caption"
GoSub "SetProp"
Return

:Calc_AppendDigit
If "[CalcError]" "=" "1"
  GoSub "Calc_Reset"
EndIf
If "[CalcJustEvaluated]" "=" "1"
  SetVar "[CalcExpr]" "[CalcAppendText]"
  SetVar "[CalcJustEvaluated]" "0"
  GoSub "Calc_UpdateDisplay"
  Return
EndIf
If "[CalcExpr]" "=" "0"
  SetVar "[CalcExpr]" "[CalcAppendText]"
Else
  SetVar "[CalcExpr]" "[CalcExpr][CalcAppendText]"
EndIf
GoSub "Calc_UpdateDisplay"
Return

:Calc_AppendOperator
If "[CalcError]" "=" "1"
  Return
EndIf
If "[CalcExpr]" "=" ""
  Return
EndIf
StrLen "[CalcExpr]" "[_Len]"
SubStr "[CalcExpr]" "[_Len]" "1" "[_Last]"
If "[_Last]" "=" "+"
  SubStr "[CalcExpr]" "1" "[_Len]-1" "[CalcExpr]"
  SetVar "[CalcExpr]" "[CalcExpr][CalcAppendOp]"
  SetVar "[CalcJustEvaluated]" "0"
  GoSub "Calc_UpdateDisplay"
  Return
EndIf
If "[_Last]" "=" "-"
  SubStr "[CalcExpr]" "1" "[_Len]-1" "[CalcExpr]"
  SetVar "[CalcExpr]" "[CalcExpr][CalcAppendOp]"
  SetVar "[CalcJustEvaluated]" "0"
  GoSub "Calc_UpdateDisplay"
  Return
EndIf
If "[_Last]" "=" "*"
  SubStr "[CalcExpr]" "1" "[_Len]-1" "[CalcExpr]"
  SetVar "[CalcExpr]" "[CalcExpr][CalcAppendOp]"
  SetVar "[CalcJustEvaluated]" "0"
  GoSub "Calc_UpdateDisplay"
  Return
EndIf
If "[_Last]" "=" "/"
  SubStr "[CalcExpr]" "1" "[_Len]-1" "[CalcExpr]"
  SetVar "[CalcExpr]" "[CalcExpr][CalcAppendOp]"
  SetVar "[CalcJustEvaluated]" "0"
  GoSub "Calc_UpdateDisplay"
  Return
EndIf
If "[_Last]" "=" "."
  Return
EndIf
SetVar "[CalcExpr]" "[CalcExpr][CalcAppendOp]"
SetVar "[CalcJustEvaluated]" "0"
GoSub "Calc_UpdateDisplay"
Return

:Calc_GetCurrentToken
SetVar "[CalcToken]" ""
SetVar "[CalcPrevOpPos]" "0"
StrLen "[CalcExpr]" "[_Len]"
If "[_Len]" "<=" "0"
  Return
EndIf
Loop "1" "[_Len]" "[_I]"
  SubStr "[CalcExpr]" "[_I]" "1" "[_Ch]"
  If "[_Ch]" "=" "+"
    SetVar "[CalcPrevOpPos]" "[_I]"
  EndIf
  If "[_Ch]" "=" "*"
    SetVar "[CalcPrevOpPos]" "[_I]"
  EndIf
  If "[_Ch]" "=" "/"
    SetVar "[CalcPrevOpPos]" "[_I]"
  EndIf
  If "[_Ch]" "=" "-"
    If "[_I]" ">" "1"
      SubStr "[CalcExpr]" "[_I]-1" "1" "[_Prev]"
      If "[_Prev]" "<>" "+"
        If "[_Prev]" "<>" "-"
          If "[_Prev]" "<>" "*"
            If "[_Prev]" "<>" "/"
              SetVar "[CalcPrevOpPos]" "[_I]"
            EndIf
          EndIf
        EndIf
      EndIf
    EndIf
  EndIf
EndLoop
If "[CalcPrevOpPos]" ">" "0"
  SubStr "[CalcExpr]" "[CalcPrevOpPos]+1" "[_Len]" "[CalcToken]"
Else
  SetVar "[CalcToken]" "[CalcExpr]"
EndIf
Return

:Calc_GetExpressionValue
GoSub "Calc_EvaluateExpression"
If "[CalcError]" "=" "1"
  Return
EndIf
SetVar "[CalcValue]" "[CalcResult]"
Return

:Calc_EvaluateExpression
SetVar "[CalcError]" "0"
SetVar "[CalcResult]" "0"
SetVar "[CalcPendingOp]" ""
SetVar "[CalcToken]" ""
SetVar "[_Started]" "0"
SetVar "[_NeedNumber]" "0"

SetVar "[_WorkExpr]" "[CalcExpr]"
StrLen "[_WorkExpr]" "[_Len]"
If "[_Len]" "<=" "0"
  SetVar "[CalcResult]" "0"
  Return
EndIf

SubStr "[_WorkExpr]" "[_Len]" "1" "[_Last]"
If "[_Last]" "=" "+"
  SubStr "[_WorkExpr]" "1" "[_Len]-1" "[_WorkExpr]"
EndIf
If "[_Last]" "=" "-"
  If "[_Len]" ">" "1"
    SubStr "[_WorkExpr]" "[_Len]-1" "1" "[_PrevLast]"
    If "[_PrevLast]" "<>" "+"
      If "[_PrevLast]" "<>" "-"
        If "[_PrevLast]" "<>" "*"
          If "[_PrevLast]" "<>" "/"
            SubStr "[_WorkExpr]" "1" "[_Len]-1" "[_WorkExpr]"
          EndIf
        EndIf
      EndIf
    EndIf
  EndIf
EndIf
StrLen "[_WorkExpr]" "[_Len]"

Loop "1" "[_Len]" "[_I]"
  SubStr "[_WorkExpr]" "[_I]" "1" "[_Ch]"
  SetVar "[_IsBinaryOp]" "0"

  If "[_Ch]" "=" "+"
    SetVar "[_IsBinaryOp]" "1"
  EndIf
  If "[_Ch]" "=" "*"
    SetVar "[_IsBinaryOp]" "1"
  EndIf
  If "[_Ch]" "=" "/"
    SetVar "[_IsBinaryOp]" "1"
  EndIf
  If "[_Ch]" "=" "-"
    If "[_I]" ">" "1"
      SubStr "[_WorkExpr]" "[_I]-1" "1" "[_Prev]"
      If "[_Prev]" "<>" "+"
        If "[_Prev]" "<>" "-"
          If "[_Prev]" "<>" "*"
            If "[_Prev]" "<>" "/"
              SetVar "[_IsBinaryOp]" "1"
            EndIf
          EndIf
        EndIf
      EndIf
    EndIf
  EndIf

  If "[_IsBinaryOp]" "=" "1"
    If "[_Started]" "=" "0"
      SetVar "[CalcResult]" "[CalcToken]"
      SetVar "[_Started]" "1"
    Else
      GoSub "Calc_ApplyPending"
      If "[CalcError]" "=" "1"
        Return
      EndIf
    EndIf
    SetVar "[CalcPendingOp]" "[_Ch]"
    SetVar "[CalcToken]" ""
  Else
    SetVar "[CalcToken]" "[CalcToken][_Ch]"
  EndIf
EndLoop

If "[_Started]" "=" "0"
  SetVar "[CalcResult]" "[CalcToken]"
Else
  GoSub "Calc_ApplyPending"
  If "[CalcError]" "=" "1"
    Return
  EndIf
EndIf

GoSub "Calc_NormalizeNumber"
SetVar "[CalcResult]" "[CalcToken]"
Return

:Calc_ApplyPending
If "[CalcPendingOp]" "=" "+"
  Math "[CalcResult]+[CalcToken]" "[CalcResult]"
EndIf
If "[CalcPendingOp]" "=" "-"
  Math "[CalcResult]-[CalcToken]" "[CalcResult]"
EndIf
If "[CalcPendingOp]" "=" "*"
  Math "[CalcResult]*[CalcToken]" "[CalcResult]"
EndIf
If "[CalcPendingOp]" "=" "/"
  If "[CalcToken]" "=" "0"
    SetVar "[CalcError]" "1"
    Return
  EndIf
  Math "[CalcResult]/[CalcToken]" "[CalcResult]"
EndIf
Return

:Calc_NormalizeNumber
SetVar "[CalcToken]" "[CalcResult]"
SearchStr "." "[CalcToken]" "[_HasDot]" "CaseSensitive"
If "[_HasDot]" "=" "0"
  Return
EndIf

Loop "1" "24" "[_J]"
  StrLen "[CalcToken]" "[_TLen]"
  If "[_TLen]" "<=" "1"
    ExitLoop
  EndIf
  SubStr "[CalcToken]" "[_TLen]" "1" "[_LastChar]"
  If "[_LastChar]" "=" "0"
    SubStr "[CalcToken]" "1" "[_TLen]-1" "[CalcToken]"
  Else
    ExitLoop
  EndIf
EndLoop

StrLen "[CalcToken]" "[_TLen]"
If "[_TLen]" ">" "0"
  SubStr "[CalcToken]" "[_TLen]" "1" "[_LastChar]"
  If "[_LastChar]" "=" "."
    SubStr "[CalcToken]" "1" "[_TLen]-1" "[CalcToken]"
  EndIf
EndIf

If "[CalcToken]" "=" ""
  SetVar "[CalcToken]" "0"
EndIf
Return

.============================================================
.  NWID RUNTIME SUBROUTINES -- AUTO-GENERATED.============================================================
.  NWID RUNTIME SUBROUTINES -- AUTO-GENERATED
.  NeoWin Interface Designer
.
.  *** DO NOT EDIT ANYTHING BELOW THIS LINE ***
.  *** Re-export from NWID to regenerate      ***
.============================================================

.============================================================
.  INFRASTRUCTURE -- Do not edit
.============================================================

:Initialize
ezEdgeAvailable "[isEdgeAvailable]" "[Result]"
If "[isEdgeAvailable]" "=" "True"
  ezEdgeCreate "Rectangle1" "[TempDir]NWIDCache" "NWID_EdgeReady" "" "[Result]"
Else
  AlertBox "Error" "WebView2 Runtime is required.[#13]Please install it from Microsoft."
  Run "explorer.exe" "https://developer.microsoft.com/en-us/microsoft-edge/webview2/#download-section" "Normal" "" ""
  Exit "" ""
EndIf
Return

:NWID_EdgeReady
ezEdgeMessageReceived "Rectangle1" "[NWID.Msg]" "NWID_OnMessage" "[Result]"
ezEdgeNavComplete "Rectangle1" "[NWID.NavTitle]" "NWID_OnNavComplete" "[Result]"
SetVar "[NWID.Rect]" "Rectangle1"
. *** Load your exported runtime HTML below -- update the path ***
. ezEdgeGoTo "Rectangle1" "[PubDir]runtime.html" "[Result]"
Return

:NWID_OnNavComplete
ezEdgeMessageReceived "Rectangle1" "[NWID.Msg]" "NWID_OnMessage" "[Result]"
. NWID_OnReady fires when the runtime sends NWID_READY: (after JS initialises).
. Do NOT GoSub NWID_OnReady here -- controls are not set up yet at nav time.
Return

:NWID_OnMessage
SetVar "[NWID.Rect]" "Rectangle1"
SearchStr "NWID_ROWDATA:" "[NWID.Msg]" "[_NP]" "CaseSensitive"
If "[_NP]" "=" "1"
  StrLen "[NWID.Msg]" "[_NL]"
  SubStr "[NWID.Msg]" "14" "[_NL]-13" "[_RD]"
  SearchStr "|" "[_RD]" "[_RP]" "CaseSensitive"
  If "[_RP]" ">" "0"
    SubStr "[_RD]" "1" "[_RP]-1" "[NWID.Row]"
    SubStr "[_RD]" "[_RP]+1" "[_NL]" "[NWID.RowData]"
  Else
    SetVar "[NWID.Row]" "[_RD]"
    SetVar "[NWID.RowData]" ""
  EndIf
EndIf
SearchStr "NWID_GOSUB:" "[NWID.Msg]" "[_NP]" "CaseSensitive"
If "[_NP]" "=" "1"
  StrLen "[NWID.Msg]" "[_NL]"
  SubStr "[NWID.Msg]" "12" "[_NL]-11" "[_NP1]"
  SearchStr "|" "[_NP1]" "[_P1]" "CaseSensitive"
  If "[_P1]" ">" "0"
    SubStr "[_NP1]" "1" "[_P1]-1" "[NWID.SubName]"
    SubStr "[_NP1]" "[_P1]+1" "[_NL]" "[_NP2]"
    SearchStr "|" "[_NP2]" "[_P2]" "CaseSensitive"
    If "[_P2]" ">" "0"
      SubStr "[_NP2]" "1" "[_P2]-1" "[NWID.ObjName]"
      SubStr "[_NP2]" "[_P2]+1" "[_NL]" "[_NP3]"
      SearchStr "|" "[_NP3]" "[_P3]" "CaseSensitive"
      If "[_P3]" ">" "0"
        SubStr "[_NP3]" "1" "[_P3]-1" "[NWID.EventName]"
        SubStr "[_NP3]" "[_P3]+1" "[_NL]" "[_NP4]"
        SearchStr "|" "[_NP4]" "[_P4]" "CaseSensitive"
        If "[_P4]" ">" "0"
          SubStr "[_NP4]" "1" "[_P4]-1" "[NWID.Value]"
          SubStr "[_NP4]" "[_P4]+1" "[_NL]" "[_NP5]"
          SearchStr "|" "[_NP5]" "[_P5]" "CaseSensitive"
          If "[_P5]" ">" "0"
            SubStr "[_NP5]" "1" "[_P5]-1" "[NWID.Key]"
            SubStr "[_NP5]" "[_P5]+1" "[_NL]" "[_NP6]"
            SearchStr "|" "[_NP6]" "[_P6]" "CaseSensitive"
            If "[_P6]" ">" "0"
              SubStr "[_NP6]" "1" "[_P6]-1" "[NWID.KeyStr]"
              SubStr "[_NP6]" "[_P6]+1" "[_NL]" "[_NP7]"
              SearchStr "|" "[_NP7]" "[_P7]" "CaseSensitive"
              If "[_P7]" ">" "0"
                SubStr "[_NP7]" "1" "[_P7]-1" "[NWID.KeyCode]"
              EndIf
            EndIf
          EndIf
        Else
          SetVar "[NWID.Value]" "[_NP4]"
        EndIf
      EndIf
    EndIf
    If "[NWID.ObjName]" "=" "ctr_calc"
      SetVar "[ctr_calc.visible]" "[NWID.Value]"
      SetVar "[ctr_calc.name]" "ctr_calc"
      SetVar "[ctr_calc.event]" "[NWID.EventName]"
      SetVar "[ctr_calc.sub]"  ""
      SetVar "[ctr_calc.prop]" "visible"
    EndIf
    If "[NWID.ObjName]" "=" "lbl_display"
      SetVar "[lbl_display.caption]" "[NWID.Value]"
      SetVar "[lbl_display.name]" "lbl_display"
      SetVar "[lbl_display.event]" "[NWID.EventName]"
      SetVar "[lbl_display.sub]"  ""
      SetVar "[lbl_display.prop]" "caption"
    EndIf
    If "[NWID.ObjName]" "=" "btn_mc"
      SetVar "[btn_mc.caption]" "[NWID.Value]"
      SetVar "[btn_mc.name]" "btn_mc"
      SetVar "[btn_mc.event]" "[NWID.EventName]"
      SetVar "[btn_mc.sub]"  "btn_mc_Left_Click"
      SetVar "[btn_mc.prop]" "caption"
    EndIf
    If "[NWID.ObjName]" "=" "btn_mr"
      SetVar "[btn_mr.caption]" "[NWID.Value]"
      SetVar "[btn_mr.name]" "btn_mr"
      SetVar "[btn_mr.event]" "[NWID.EventName]"
      SetVar "[btn_mr.sub]"  "btn_mr_Left_Click"
      SetVar "[btn_mr.prop]" "caption"
    EndIf
    If "[NWID.ObjName]" "=" "btn_mplus"
      SetVar "[btn_mplus.caption]" "[NWID.Value]"
      SetVar "[btn_mplus.name]" "btn_mplus"
      SetVar "[btn_mplus.event]" "[NWID.EventName]"
      SetVar "[btn_mplus.sub]"  "btn_mplus_Left_Click"
      SetVar "[btn_mplus.prop]" "caption"
    EndIf
    If "[NWID.ObjName]" "=" "btn_mminus"
      SetVar "[btn_mminus.caption]" "[NWID.Value]"
      SetVar "[btn_mminus.name]" "btn_mminus"
      SetVar "[btn_mminus.event]" "[NWID.EventName]"
      SetVar "[btn_mminus.sub]"  "btn_mminus_Left_Click"
      SetVar "[btn_mminus.prop]" "caption"
    EndIf
    If "[NWID.ObjName]" "=" "btn_clear"
      SetVar "[btn_clear.caption]" "[NWID.Value]"
      SetVar "[btn_clear.name]" "btn_clear"
      SetVar "[btn_clear.event]" "[NWID.EventName]"
      SetVar "[btn_clear.sub]"  "btn_clear_Left_Click"
      SetVar "[btn_clear.prop]" "caption"
    EndIf
    If "[NWID.ObjName]" "=" "btn_back"
      SetVar "[btn_back.caption]" "[NWID.Value]"
      SetVar "[btn_back.name]" "btn_back"
      SetVar "[btn_back.event]" "[NWID.EventName]"
      SetVar "[btn_back.sub]"  "btn_back_Left_Click"
      SetVar "[btn_back.prop]" "caption"
    EndIf
    If "[NWID.ObjName]" "=" "btn_percent"
      SetVar "[btn_percent.caption]" "[NWID.Value]"
      SetVar "[btn_percent.name]" "btn_percent"
      SetVar "[btn_percent.event]" "[NWID.EventName]"
      SetVar "[btn_percent.sub]"  "btn_percent_Left_Click"
      SetVar "[btn_percent.prop]" "caption"
    EndIf
    If "[NWID.ObjName]" "=" "btn_divide"
      SetVar "[btn_divide.caption]" "[NWID.Value]"
      SetVar "[btn_divide.name]" "btn_divide"
      SetVar "[btn_divide.event]" "[NWID.EventName]"
      SetVar "[btn_divide.sub]"  "btn_divide_Left_Click"
      SetVar "[btn_divide.prop]" "caption"
    EndIf
    If "[NWID.ObjName]" "=" "btn_7"
      SetVar "[btn_7.caption]" "[NWID.Value]"
      SetVar "[btn_7.name]" "btn_7"
      SetVar "[btn_7.event]" "[NWID.EventName]"
      SetVar "[btn_7.sub]"  "btn_7_Left_Click"
      SetVar "[btn_7.prop]" "caption"
    EndIf
    If "[NWID.ObjName]" "=" "btn_8"
      SetVar "[btn_8.caption]" "[NWID.Value]"
      SetVar "[btn_8.name]" "btn_8"
      SetVar "[btn_8.event]" "[NWID.EventName]"
      SetVar "[btn_8.sub]"  "btn_8_Left_Click"
      SetVar "[btn_8.prop]" "caption"
    EndIf
    If "[NWID.ObjName]" "=" "btn_9"
      SetVar "[btn_9.caption]" "[NWID.Value]"
      SetVar "[btn_9.name]" "btn_9"
      SetVar "[btn_9.event]" "[NWID.EventName]"
      SetVar "[btn_9.sub]"  "btn_9_Left_Click"
      SetVar "[btn_9.prop]" "caption"
    EndIf
    If "[NWID.ObjName]" "=" "btn_multiply"
      SetVar "[btn_multiply.caption]" "[NWID.Value]"
      SetVar "[btn_multiply.name]" "btn_multiply"
      SetVar "[btn_multiply.event]" "[NWID.EventName]"
      SetVar "[btn_multiply.sub]"  "btn_multiply_Left_Click"
      SetVar "[btn_multiply.prop]" "caption"
    EndIf
    If "[NWID.ObjName]" "=" "btn_4"
      SetVar "[btn_4.caption]" "[NWID.Value]"
      SetVar "[btn_4.name]" "btn_4"
      SetVar "[btn_4.event]" "[NWID.EventName]"
      SetVar "[btn_4.sub]"  "btn_4_Left_Click"
      SetVar "[btn_4.prop]" "caption"
    EndIf
    If "[NWID.ObjName]" "=" "btn_5"
      SetVar "[btn_5.caption]" "[NWID.Value]"
      SetVar "[btn_5.name]" "btn_5"
      SetVar "[btn_5.event]" "[NWID.EventName]"
      SetVar "[btn_5.sub]"  "btn_5_Left_Click"
      SetVar "[btn_5.prop]" "caption"
    EndIf
    If "[NWID.ObjName]" "=" "btn_6"
      SetVar "[btn_6.caption]" "[NWID.Value]"
      SetVar "[btn_6.name]" "btn_6"
      SetVar "[btn_6.event]" "[NWID.EventName]"
      SetVar "[btn_6.sub]"  "btn_6_Left_Click"
      SetVar "[btn_6.prop]" "caption"
    EndIf
    If "[NWID.ObjName]" "=" "btn_subtract"
      SetVar "[btn_subtract.caption]" "[NWID.Value]"
      SetVar "[btn_subtract.name]" "btn_subtract"
      SetVar "[btn_subtract.event]" "[NWID.EventName]"
      SetVar "[btn_subtract.sub]"  "btn_subtract_Left_Click"
      SetVar "[btn_subtract.prop]" "caption"
    EndIf
    If "[NWID.ObjName]" "=" "btn_1"
      SetVar "[btn_1.caption]" "[NWID.Value]"
      SetVar "[btn_1.name]" "btn_1"
      SetVar "[btn_1.event]" "[NWID.EventName]"
      SetVar "[btn_1.sub]"  "btn_1_Left_Click"
      SetVar "[btn_1.prop]" "caption"
    EndIf
    If "[NWID.ObjName]" "=" "btn_2"
      SetVar "[btn_2.caption]" "[NWID.Value]"
      SetVar "[btn_2.name]" "btn_2"
      SetVar "[btn_2.event]" "[NWID.EventName]"
      SetVar "[btn_2.sub]"  "btn_2_Left_Click"
      SetVar "[btn_2.prop]" "caption"
    EndIf
    If "[NWID.ObjName]" "=" "btn_3"
      SetVar "[btn_3.caption]" "[NWID.Value]"
      SetVar "[btn_3.name]" "btn_3"
      SetVar "[btn_3.event]" "[NWID.EventName]"
      SetVar "[btn_3.sub]"  "btn_3_Left_Click"
      SetVar "[btn_3.prop]" "caption"
    EndIf
    If "[NWID.ObjName]" "=" "btn_add"
      SetVar "[btn_add.caption]" "[NWID.Value]"
      SetVar "[btn_add.name]" "btn_add"
      SetVar "[btn_add.event]" "[NWID.EventName]"
      SetVar "[btn_add.sub]"  "btn_add_Left_Click"
      SetVar "[btn_add.prop]" "caption"
    EndIf
    If "[NWID.ObjName]" "=" "btn_negate"
      SetVar "[btn_negate.caption]" "[NWID.Value]"
      SetVar "[btn_negate.name]" "btn_negate"
      SetVar "[btn_negate.event]" "[NWID.EventName]"
      SetVar "[btn_negate.sub]"  "btn_negate_Left_Click"
      SetVar "[btn_negate.prop]" "caption"
    EndIf
    If "[NWID.ObjName]" "=" "btn_0"
      SetVar "[btn_0.caption]" "[NWID.Value]"
      SetVar "[btn_0.name]" "btn_0"
      SetVar "[btn_0.event]" "[NWID.EventName]"
      SetVar "[btn_0.sub]"  "btn_0_Left_Click"
      SetVar "[btn_0.prop]" "caption"
    EndIf
    If "[NWID.ObjName]" "=" "btn_decimal"
      SetVar "[btn_decimal.caption]" "[NWID.Value]"
      SetVar "[btn_decimal.name]" "btn_decimal"
      SetVar "[btn_decimal.event]" "[NWID.EventName]"
      SetVar "[btn_decimal.sub]"  "btn_decimal_Left_Click"
      SetVar "[btn_decimal.prop]" "caption"
    EndIf
    If "[NWID.ObjName]" "=" "btn_equals"
      SetVar "[btn_equals.caption]" "[NWID.Value]"
      SetVar "[btn_equals.name]" "btn_equals"
      SetVar "[btn_equals.event]" "[NWID.EventName]"
      SetVar "[btn_equals.sub]"  "btn_equals_Left_Click"
      SetVar "[btn_equals.prop]" "caption"
    EndIf
    If "[NWID.SubName]" "<>" ""
      GoSub "[NWID.SubName]"
    EndIf
  EndIf
EndIf
SearchStr "NWID_VALUE:" "[NWID.Msg]" "[_NP]" "CaseSensitive"
If "[_NP]" "=" "1"
  StrLen "[NWID.Msg]" "[_NL]"
  SubStr "[NWID.Msg]" "12" "[_NL]-11" "[_VP]"
  SearchStr "|" "[_VP]" "[_PP]" "CaseSensitive"
  If "[_PP]" ">" "0"
    SubStr "[_VP]" "1" "[_PP]-1" "[NWID.PropName]"
    SubStr "[_VP]" "[_PP]+1" "[_NL]" "[NWID.PropValue]"
  Else
    SetVar "[NWID.PropName]" "[_VP]"
    SetVar "[NWID.PropValue]" ""
  EndIf
  GoSub "NWID_OnPropValue"
EndIf
SearchStr "NWID_READY:" "[NWID.Msg]" "[_NP]" "CaseSensitive"
If "[_NP]" "=" "1"
  StrLen "[NWID.Msg]" "[_NL]"
  SubStr "[NWID.Msg]" "12" "[_NL]-11" "[_DIMS]"
  SearchStr ":" "[_DIMS]" "[_CP]" "CaseSensitive"
  If "[_CP]" ">" "0"
    SubStr "[_DIMS]" "1" "[_CP]-1" "[NWID.CanvasW]"
    SubStr "[_DIMS]" "[_CP]+1" "[_NL]" "[NWID.CanvasH]"
  EndIf
  GoSub "_NWID_InitVars"
EndIf
SearchStr "NWID_PAGE_EXIT:" "[NWID.Msg]" "[_NP]" "CaseSensitive"
If "[_NP]" "=" "1"
  StrLen "[NWID.Msg]" "[_NL]"
  SubStr "[NWID.Msg]" "16" "[_NL]-15" "[_PP]"
  SearchStr "|" "[_PP]" "[_PS]" "CaseSensitive"
  If "[_PS]" ">" "0"
    SubStr "[_PP]" "1" "[_PS]-1" "[NWID.PageName]"
    SubStr "[_PP]" "[_PS]+1" "[_NL]" "[NWID.PageIndex]"
  EndIf
  GoSub "NWID_OnPageExit"
EndIf
SearchStr "NWID_PAGE_ENTER:" "[NWID.Msg]" "[_NP]" "CaseSensitive"
If "[_NP]" "=" "1"
  StrLen "[NWID.Msg]" "[_NL]"
  SubStr "[NWID.Msg]" "17" "[_NL]-16" "[_PP]"
  SearchStr "|" "[_PP]" "[_PS]" "CaseSensitive"
  If "[_PS]" ">" "0"
    SubStr "[_PP]" "1" "[_PS]-1" "[NWID.PageName]"
    SubStr "[_PP]" "[_PS]+1" "[_NL]" "[NWID.PageIndex]"
  EndIf
  GoSub "NWID_OnPageEnter"
EndIf
SearchStr "NWID_PAGE_CHANGED:" "[NWID.Msg]" "[_NP]" "CaseSensitive"
If "[_NP]" "=" "1"
  StrLen "[NWID.Msg]" "[_NL]"
  SubStr "[NWID.Msg]" "20" "[_NL]-19" "[_PP]"
  SearchStr "|" "[_PP]" "[_PS]" "CaseSensitive"
  If "[_PS]" ">" "0"
    SubStr "[_PP]" "1" "[_PS]-1" "[NWID.PageName]"
    SubStr "[_PP]" "[_PS]+1" "[_NL]" "[NWID.PageIndex]"
  EndIf
  GoSub "NWID_OnPageChanged"
EndIf
SearchStr "NWID_ERROR:" "[NWID.Msg]" "[_NP]" "CaseSensitive"
If "[_NP]" "=" "1"
  StrLen "[NWID.Msg]" "[_NL]"
  SubStr "[NWID.Msg]" "12" "[_NL]-11" "[NWID.ErrorMsg]"
  AlertBox "NWID Runtime Error" "[NWID.ErrorMsg]"
EndIf
Return

:_NWID_InitVars
. Internal  sets up per-control variables, then calls :NWID_OnReady
. [NWID.CanvasW] and [NWID.CanvasH] are set to the first page dimensions.
.
. Control name variables -- auto-generated from your layout.
. [ctrl_id.name]  = control ID string
. [ctrl_id.event] = name of the event that fired
. [ctrl_id.sub]   = primary event subroutine name
. [ctrl_id.prop]  = primary readable/writable property
. For tables: [ctrl_id.col1] [ctrl_id.col2] ... = auto-parsed row columns
. For tables: [ctrl_id.colCount] = number of columns in clicked row
.
. ctr_calc  (container)
SetVar "[ctr_calc.name]" "ctr_calc"
SetVar "[ctr_calc.sub]"  ""  . wire a Left_Click event to populate this
SetVar "[ctr_calc.prop]" "visible"
SetVar "[ctr_calc.propKey]" "visible"
. lbl_display  (label)
SetVar "[lbl_display.name]" "lbl_display"
SetVar "[lbl_display.sub]"  ""  . wire a Left_Click event to populate this
SetVar "[lbl_display.prop]" "caption"
SetVar "[lbl_display.propKey]" "caption"
. btn_mc  (button)
SetVar "[btn_mc.name]" "btn_mc"
SetVar "[btn_mc.sub]"  "btn_mc_Left_Click"
SetVar "[btn_mc.prop]" "caption"
SetVar "[btn_mc.propKey]" "caption"
. btn_mr  (button)
SetVar "[btn_mr.name]" "btn_mr"
SetVar "[btn_mr.sub]"  "btn_mr_Left_Click"
SetVar "[btn_mr.prop]" "caption"
SetVar "[btn_mr.propKey]" "caption"
. btn_mplus  (button)
SetVar "[btn_mplus.name]" "btn_mplus"
SetVar "[btn_mplus.sub]"  "btn_mplus_Left_Click"
SetVar "[btn_mplus.prop]" "caption"
SetVar "[btn_mplus.propKey]" "caption"
. btn_mminus  (button)
SetVar "[btn_mminus.name]" "btn_mminus"
SetVar "[btn_mminus.sub]"  "btn_mminus_Left_Click"
SetVar "[btn_mminus.prop]" "caption"
SetVar "[btn_mminus.propKey]" "caption"
. btn_clear  (button)
SetVar "[btn_clear.name]" "btn_clear"
SetVar "[btn_clear.sub]"  "btn_clear_Left_Click"
SetVar "[btn_clear.prop]" "caption"
SetVar "[btn_clear.propKey]" "caption"
. btn_back  (button)
SetVar "[btn_back.name]" "btn_back"
SetVar "[btn_back.sub]"  "btn_back_Left_Click"
SetVar "[btn_back.prop]" "caption"
SetVar "[btn_back.propKey]" "caption"
. btn_percent  (button)
SetVar "[btn_percent.name]" "btn_percent"
SetVar "[btn_percent.sub]"  "btn_percent_Left_Click"
SetVar "[btn_percent.prop]" "caption"
SetVar "[btn_percent.propKey]" "caption"
. btn_divide  (button)
SetVar "[btn_divide.name]" "btn_divide"
SetVar "[btn_divide.sub]"  "btn_divide_Left_Click"
SetVar "[btn_divide.prop]" "caption"
SetVar "[btn_divide.propKey]" "caption"
. btn_7  (button)
SetVar "[btn_7.name]" "btn_7"
SetVar "[btn_7.sub]"  "btn_7_Left_Click"
SetVar "[btn_7.prop]" "caption"
SetVar "[btn_7.propKey]" "caption"
. btn_8  (button)
SetVar "[btn_8.name]" "btn_8"
SetVar "[btn_8.sub]"  "btn_8_Left_Click"
SetVar "[btn_8.prop]" "caption"
SetVar "[btn_8.propKey]" "caption"
. btn_9  (button)
SetVar "[btn_9.name]" "btn_9"
SetVar "[btn_9.sub]"  "btn_9_Left_Click"
SetVar "[btn_9.prop]" "caption"
SetVar "[btn_9.propKey]" "caption"
. btn_multiply  (button)
SetVar "[btn_multiply.name]" "btn_multiply"
SetVar "[btn_multiply.sub]"  "btn_multiply_Left_Click"
SetVar "[btn_multiply.prop]" "caption"
SetVar "[btn_multiply.propKey]" "caption"
. btn_4  (button)
SetVar "[btn_4.name]" "btn_4"
SetVar "[btn_4.sub]"  "btn_4_Left_Click"
SetVar "[btn_4.prop]" "caption"
SetVar "[btn_4.propKey]" "caption"
. btn_5  (button)
SetVar "[btn_5.name]" "btn_5"
SetVar "[btn_5.sub]"  "btn_5_Left_Click"
SetVar "[btn_5.prop]" "caption"
SetVar "[btn_5.propKey]" "caption"
. btn_6  (button)
SetVar "[btn_6.name]" "btn_6"
SetVar "[btn_6.sub]"  "btn_6_Left_Click"
SetVar "[btn_6.prop]" "caption"
SetVar "[btn_6.propKey]" "caption"
. btn_subtract  (button)
SetVar "[btn_subtract.name]" "btn_subtract"
SetVar "[btn_subtract.sub]"  "btn_subtract_Left_Click"
SetVar "[btn_subtract.prop]" "caption"
SetVar "[btn_subtract.propKey]" "caption"
. btn_1  (button)
SetVar "[btn_1.name]" "btn_1"
SetVar "[btn_1.sub]"  "btn_1_Left_Click"
SetVar "[btn_1.prop]" "caption"
SetVar "[btn_1.propKey]" "caption"
. btn_2  (button)
SetVar "[btn_2.name]" "btn_2"
SetVar "[btn_2.sub]"  "btn_2_Left_Click"
SetVar "[btn_2.prop]" "caption"
SetVar "[btn_2.propKey]" "caption"
. btn_3  (button)
SetVar "[btn_3.name]" "btn_3"
SetVar "[btn_3.sub]"  "btn_3_Left_Click"
SetVar "[btn_3.prop]" "caption"
SetVar "[btn_3.propKey]" "caption"
. btn_add  (button)
SetVar "[btn_add.name]" "btn_add"
SetVar "[btn_add.sub]"  "btn_add_Left_Click"
SetVar "[btn_add.prop]" "caption"
SetVar "[btn_add.propKey]" "caption"
. btn_negate  (button)
SetVar "[btn_negate.name]" "btn_negate"
SetVar "[btn_negate.sub]"  "btn_negate_Left_Click"
SetVar "[btn_negate.prop]" "caption"
SetVar "[btn_negate.propKey]" "caption"
. btn_0  (button)
SetVar "[btn_0.name]" "btn_0"
SetVar "[btn_0.sub]"  "btn_0_Left_Click"
SetVar "[btn_0.prop]" "caption"
SetVar "[btn_0.propKey]" "caption"
. btn_decimal  (button)
SetVar "[btn_decimal.name]" "btn_decimal"
SetVar "[btn_decimal.sub]"  "btn_decimal_Left_Click"
SetVar "[btn_decimal.prop]" "caption"
SetVar "[btn_decimal.propKey]" "caption"
. btn_equals  (button)
SetVar "[btn_equals.name]" "btn_equals"
SetVar "[btn_equals.sub]"  "btn_equals_Left_Click"
SetVar "[btn_equals.prop]" "caption"
SetVar "[btn_equals.propKey]" "caption"
.
. Page variables -- auto-generated from your layout.
. [PageName.name]   = page name string
. [PageName.width]  = canvas width in pixels
. [PageName.height] = canvas height in pixels
. [PageName.index]  = zero-based page index
. [PageName.mode]   = "center" / "fill" / "custom"
.
. Calculator  (page 0: Calculator)
SetVar "[Calculator.name]"   "Calculator"
SetVar "[Calculator.width]"  "400"
SetVar "[Calculator.height]" "530"
SetVar "[Calculator.index]"  "0"
SetVar "[Calculator.mode]"   "center"
SetVar "[NWID.PageCount]" "1"
GoSub "NWID_OnReady"
Return


:NWID_OnPageExit
. Fires just before leaving a page.
. [NWID.PageName]  = name of the page being left
. [NWID.PageIndex] = 0-based index of the page being left
If "[NWID.PageName]" "=" "Calculator"
  GoSub "Calculator_OnExit"
EndIf
Return

:NWID_OnPageEnter
. Fires when arriving on a page.
. [NWID.PageName]  = name of the page just entered
. [NWID.PageIndex] = 0-based index of the page just entered
If "[NWID.PageName]" "=" "Calculator"
  GoSub "Calculator_OnEnter"
EndIf
Return

.============================================================
.  NWID MACROS -- Do not edit
.============================================================

:SetProp
. Generic property setter  uses per-control variable names.
. Usage:
.   SetVar "[btn_go.caption]" "My new caption!"
.   SetVar "[SetObjectProperty]" "btn_go.caption"
.   GoSub "SetProp"
SearchStr "." "[SetObjectProperty]" "[_SPDot]" "CaseSensitive"
If "[_SPDot]" ">" "0"
  SubStr "[SetObjectProperty]" "1" "[_SPDot]-1" "[NWID.TargetId]"
  StrLen "[SetObjectProperty]" "[_SPLen]"
  SubStr "[SetObjectProperty]" "[_SPDot]+1" "[_SPLen]" "[NWID.SetPropName]"
  SetVar "[NWID.SetPropValue]" "[[SetObjectProperty]]"
  GoSub "NWID_SetProp"
EndIf
Return

:NWID_SetProp
. Low-level property setter (used by :SetProp internally).
. [NWID.TargetId]     = control id
. [NWID.SetPropName]  = property name
. [NWID.SetPropValue] = value
StrReplace "[NWID.SetPropValue]" "'" "\\'" "[_SafeVal]" ""
ezEdgeExecScript "[NWID.Rect]" "window.NWID.setProp('[NWID.TargetId]','[NWID.SetPropName]','[_SafeVal]');" "" "[NWID.ExecResult]"
Return

:NWID_GetProp
. Get a control property -- response fires NWID_OnPropValue.
. [NWID.TargetId]    = control id
. [NWID.GetPropName] = property name
ezEdgeExecScript "[NWID.Rect]" "window.NWID.getProp('[NWID.TargetId]','[NWID.GetPropName]');" "" "[NWID.ExecResult]"
Return

:NWID_GetPropSync
. Read a property IMMEDIATELY -- result goes straight into a variable.
. No callback needed. Much simpler than NWID_GetProp for most uses.
. [NWID.TargetId]    = control id
. [NWID.GetPropName] = property name
. [NWID.PropResult]  = receives the value
ezEdgeExecScript "[NWID.Rect]" "window.NWID.getPropSync('[NWID.TargetId]','[NWID.GetPropName]');" "[NWID.PropResult]" "[NWID.ExecResult]"
Return

:NWID_Show
SetVar "[NWID.SetPropName]" "visible"
SetVar "[NWID.SetPropValue]" "true"
GoSub "NWID_SetProp"
Return

:NWID_Hide
SetVar "[NWID.SetPropName]" "visible"
SetVar "[NWID.SetPropValue]" "false"
GoSub "NWID_SetProp"
Return

:NWID_Enable
SetVar "[NWID.SetPropName]" "enabled"
SetVar "[NWID.SetPropValue]" "true"
GoSub "NWID_SetProp"
Return

:NWID_Disable
SetVar "[NWID.SetPropName]" "enabled"
SetVar "[NWID.SetPropValue]" "false"
GoSub "NWID_SetProp"
Return

:NWID_SetFocus
. Set keyboard focus to a control.
. [NWID.TargetId] = control ID
ezEdgeExecScript "[NWID.Rect]" "window.NWID.setFocus('[NWID.TargetId]');" "" "[NWID.ExecResult]"
Return

:NWID_ShowPage
. Switch to a named or indexed page in the runtime.
. [NWID.SetPropValue] = page name or 0-based index
ezEdgeExecScript "[NWID.Rect]" "window.NWID.showPage('[NWID.SetPropValue]');" "" "[NWID.ExecResult]"
Return

:NWID_NextPage
. Advance to the next page (wraps around).
ezEdgeExecScript "[NWID.Rect]" "window.NWID.nextPage();" "" "[NWID.ExecResult]"
Return

:NWID_PrevPage
. Go back to the previous page (wraps around).
ezEdgeExecScript "[NWID.Rect]" "window.NWID.prevPage();" "" "[NWID.ExecResult]"
Return

:NWID_LoadFile
. Load an HTML file into the runtime rectangle.
. [NWID.Rect]     = rectangle name (already set)
. [NWID.LoadPath] = full path to HTML file
ezEdgeGoTo "[NWID.Rect]" "[NWID.LoadPath]" "[Result]"
Return

:OnAppExit
. Kill all JS timers and silence the bridge before teardown
ezEdgeExecScript "[NWID.Rect]" "if(window.NWID_shutdown)window.NWID_shutdown();" "" "[NWID.ExecResult]"
Delay "300"
ezEdgeGoTo "[NWID.Rect]" "about:blank" "[Result]"
Delay "500"
ezEdgeDeleteCache "[NWID.Rect]" "[TempDir]NWIDCache" "[Result]"
ezEdgeDelete "[NWID.Rect]" "[Result]"
Delay "200"
Exit "" ""
Return


.============================================================
.  CONTROL-SPECIFIC HELPERS (auto-generated -- do not edit)
.  These are convenience wrappers for your layout controls.
.============================================================

.------------------------------------------------------------
. ctr_calc  (container)
.------------------------------------------------------------
:Set_ctr_calc
. Set "true"/"false" on ctr_calc
. Preferred: SetVar "[ctr_calc.visible]" "your value"
.            SetVar "[SetObjectProperty]" "ctr_calc.visible"
.            GoSub "SetProp"
. Legacy:    SetVar "[NWID.SetPropValue]" "your value"
.            GoSub "Set_ctr_calc"
SetVar "[NWID.TargetId]" "ctr_calc"
SetVar "[NWID.SetPropName]" "visible"
GoSub "NWID_SetProp"
Return

:Show_ctr_calc
. Show ctr_calc
SetVar "[NWID.TargetId]" "ctr_calc"
GoSub "NWID_Show"
Return

:Hide_ctr_calc
. Hide ctr_calc
SetVar "[NWID.TargetId]" "ctr_calc"
GoSub "NWID_Hide"
Return

:Get_ctr_calc
. Read "true"/"false" from ctr_calc into [NWID.PropResult].
. No callback -- value is available immediately after GoSub returns.
SetVar "[NWID.TargetId]" "ctr_calc"
SetVar "[NWID.GetPropName]" "visible"
GoSub "NWID_GetPropSync"
. [NWID.PropResult] now contains the value
Return

.------------------------------------------------------------
. lbl_display  (label)
.------------------------------------------------------------
:Set_lbl_display
. Set caption text on lbl_display
. Preferred: SetVar "[lbl_display.caption]" "your value"
.            SetVar "[SetObjectProperty]" "lbl_display.caption"
.            GoSub "SetProp"
. Legacy:    SetVar "[NWID.SetPropValue]" "your value"
.            GoSub "Set_lbl_display"
SetVar "[NWID.TargetId]" "lbl_display"
SetVar "[NWID.SetPropName]" "caption"
GoSub "NWID_SetProp"
Return

:Show_lbl_display
. Show lbl_display
SetVar "[NWID.TargetId]" "lbl_display"
GoSub "NWID_Show"
Return

:Hide_lbl_display
. Hide lbl_display
SetVar "[NWID.TargetId]" "lbl_display"
GoSub "NWID_Hide"
Return

:Get_lbl_display
. Read caption text from lbl_display into [NWID.PropResult].
. No callback -- value is available immediately after GoSub returns.
SetVar "[NWID.TargetId]" "lbl_display"
SetVar "[NWID.GetPropName]" "caption"
GoSub "NWID_GetPropSync"
. [NWID.PropResult] now contains the value
Return

.------------------------------------------------------------
. btn_mc  (button)
.------------------------------------------------------------
:Set_btn_mc
. Set caption text on btn_mc
. Preferred: SetVar "[btn_mc.caption]" "your value"
.            SetVar "[SetObjectProperty]" "btn_mc.caption"
.            GoSub "SetProp"
. Legacy:    SetVar "[NWID.SetPropValue]" "your value"
.            GoSub "Set_btn_mc"
SetVar "[NWID.TargetId]" "btn_mc"
SetVar "[NWID.SetPropName]" "caption"
GoSub "NWID_SetProp"
Return

:Show_btn_mc
. Show btn_mc
SetVar "[NWID.TargetId]" "btn_mc"
GoSub "NWID_Show"
Return

:Hide_btn_mc
. Hide btn_mc
SetVar "[NWID.TargetId]" "btn_mc"
GoSub "NWID_Hide"
Return

:Get_btn_mc
. Read caption text from btn_mc into [NWID.PropResult].
. No callback -- value is available immediately after GoSub returns.
SetVar "[NWID.TargetId]" "btn_mc"
SetVar "[NWID.GetPropName]" "caption"
GoSub "NWID_GetPropSync"
. [NWID.PropResult] now contains the value
Return

.------------------------------------------------------------
. btn_mr  (button)
.------------------------------------------------------------
:Set_btn_mr
. Set caption text on btn_mr
. Preferred: SetVar "[btn_mr.caption]" "your value"
.            SetVar "[SetObjectProperty]" "btn_mr.caption"
.            GoSub "SetProp"
. Legacy:    SetVar "[NWID.SetPropValue]" "your value"
.            GoSub "Set_btn_mr"
SetVar "[NWID.TargetId]" "btn_mr"
SetVar "[NWID.SetPropName]" "caption"
GoSub "NWID_SetProp"
Return

:Show_btn_mr
. Show btn_mr
SetVar "[NWID.TargetId]" "btn_mr"
GoSub "NWID_Show"
Return

:Hide_btn_mr
. Hide btn_mr
SetVar "[NWID.TargetId]" "btn_mr"
GoSub "NWID_Hide"
Return

:Get_btn_mr
. Read caption text from btn_mr into [NWID.PropResult].
. No callback -- value is available immediately after GoSub returns.
SetVar "[NWID.TargetId]" "btn_mr"
SetVar "[NWID.GetPropName]" "caption"
GoSub "NWID_GetPropSync"
. [NWID.PropResult] now contains the value
Return

.------------------------------------------------------------
. btn_mplus  (button)
.------------------------------------------------------------
:Set_btn_mplus
. Set caption text on btn_mplus
. Preferred: SetVar "[btn_mplus.caption]" "your value"
.            SetVar "[SetObjectProperty]" "btn_mplus.caption"
.            GoSub "SetProp"
. Legacy:    SetVar "[NWID.SetPropValue]" "your value"
.            GoSub "Set_btn_mplus"
SetVar "[NWID.TargetId]" "btn_mplus"
SetVar "[NWID.SetPropName]" "caption"
GoSub "NWID_SetProp"
Return

:Show_btn_mplus
. Show btn_mplus
SetVar "[NWID.TargetId]" "btn_mplus"
GoSub "NWID_Show"
Return

:Hide_btn_mplus
. Hide btn_mplus
SetVar "[NWID.TargetId]" "btn_mplus"
GoSub "NWID_Hide"
Return

:Get_btn_mplus
. Read caption text from btn_mplus into [NWID.PropResult].
. No callback -- value is available immediately after GoSub returns.
SetVar "[NWID.TargetId]" "btn_mplus"
SetVar "[NWID.GetPropName]" "caption"
GoSub "NWID_GetPropSync"
. [NWID.PropResult] now contains the value
Return

.------------------------------------------------------------
. btn_mminus  (button)
.------------------------------------------------------------
:Set_btn_mminus
. Set caption text on btn_mminus
. Preferred: SetVar "[btn_mminus.caption]" "your value"
.            SetVar "[SetObjectProperty]" "btn_mminus.caption"
.            GoSub "SetProp"
. Legacy:    SetVar "[NWID.SetPropValue]" "your value"
.            GoSub "Set_btn_mminus"
SetVar "[NWID.TargetId]" "btn_mminus"
SetVar "[NWID.SetPropName]" "caption"
GoSub "NWID_SetProp"
Return

:Show_btn_mminus
. Show btn_mminus
SetVar "[NWID.TargetId]" "btn_mminus"
GoSub "NWID_Show"
Return

:Hide_btn_mminus
. Hide btn_mminus
SetVar "[NWID.TargetId]" "btn_mminus"
GoSub "NWID_Hide"
Return

:Get_btn_mminus
. Read caption text from btn_mminus into [NWID.PropResult].
. No callback -- value is available immediately after GoSub returns.
SetVar "[NWID.TargetId]" "btn_mminus"
SetVar "[NWID.GetPropName]" "caption"
GoSub "NWID_GetPropSync"
. [NWID.PropResult] now contains the value
Return

.------------------------------------------------------------
. btn_clear  (button)
.------------------------------------------------------------
:Set_btn_clear
. Set caption text on btn_clear
. Preferred: SetVar "[btn_clear.caption]" "your value"
.            SetVar "[SetObjectProperty]" "btn_clear.caption"
.            GoSub "SetProp"
. Legacy:    SetVar "[NWID.SetPropValue]" "your value"
.            GoSub "Set_btn_clear"
SetVar "[NWID.TargetId]" "btn_clear"
SetVar "[NWID.SetPropName]" "caption"
GoSub "NWID_SetProp"
Return

:Show_btn_clear
. Show btn_clear
SetVar "[NWID.TargetId]" "btn_clear"
GoSub "NWID_Show"
Return

:Hide_btn_clear
. Hide btn_clear
SetVar "[NWID.TargetId]" "btn_clear"
GoSub "NWID_Hide"
Return

:Get_btn_clear
. Read caption text from btn_clear into [NWID.PropResult].
. No callback -- value is available immediately after GoSub returns.
SetVar "[NWID.TargetId]" "btn_clear"
SetVar "[NWID.GetPropName]" "caption"
GoSub "NWID_GetPropSync"
. [NWID.PropResult] now contains the value
Return

.------------------------------------------------------------
. btn_back  (button)
.------------------------------------------------------------
:Set_btn_back
. Set caption text on btn_back
. Preferred: SetVar "[btn_back.caption]" "your value"
.            SetVar "[SetObjectProperty]" "btn_back.caption"
.            GoSub "SetProp"
. Legacy:    SetVar "[NWID.SetPropValue]" "your value"
.            GoSub "Set_btn_back"
SetVar "[NWID.TargetId]" "btn_back"
SetVar "[NWID.SetPropName]" "caption"
GoSub "NWID_SetProp"
Return

:Show_btn_back
. Show btn_back
SetVar "[NWID.TargetId]" "btn_back"
GoSub "NWID_Show"
Return

:Hide_btn_back
. Hide btn_back
SetVar "[NWID.TargetId]" "btn_back"
GoSub "NWID_Hide"
Return

:Get_btn_back
. Read caption text from btn_back into [NWID.PropResult].
. No callback -- value is available immediately after GoSub returns.
SetVar "[NWID.TargetId]" "btn_back"
SetVar "[NWID.GetPropName]" "caption"
GoSub "NWID_GetPropSync"
. [NWID.PropResult] now contains the value
Return

.------------------------------------------------------------
. btn_percent  (button)
.------------------------------------------------------------
:Set_btn_percent
. Set caption text on btn_percent
. Preferred: SetVar "[btn_percent.caption]" "your value"
.            SetVar "[SetObjectProperty]" "btn_percent.caption"
.            GoSub "SetProp"
. Legacy:    SetVar "[NWID.SetPropValue]" "your value"
.            GoSub "Set_btn_percent"
SetVar "[NWID.TargetId]" "btn_percent"
SetVar "[NWID.SetPropName]" "caption"
GoSub "NWID_SetProp"
Return

:Show_btn_percent
. Show btn_percent
SetVar "[NWID.TargetId]" "btn_percent"
GoSub "NWID_Show"
Return

:Hide_btn_percent
. Hide btn_percent
SetVar "[NWID.TargetId]" "btn_percent"
GoSub "NWID_Hide"
Return

:Get_btn_percent
. Read caption text from btn_percent into [NWID.PropResult].
. No callback -- value is available immediately after GoSub returns.
SetVar "[NWID.TargetId]" "btn_percent"
SetVar "[NWID.GetPropName]" "caption"
GoSub "NWID_GetPropSync"
. [NWID.PropResult] now contains the value
Return

.------------------------------------------------------------
. btn_divide  (button)
.------------------------------------------------------------
:Set_btn_divide
. Set caption text on btn_divide
. Preferred: SetVar "[btn_divide.caption]" "your value"
.            SetVar "[SetObjectProperty]" "btn_divide.caption"
.            GoSub "SetProp"
. Legacy:    SetVar "[NWID.SetPropValue]" "your value"
.            GoSub "Set_btn_divide"
SetVar "[NWID.TargetId]" "btn_divide"
SetVar "[NWID.SetPropName]" "caption"
GoSub "NWID_SetProp"
Return

:Show_btn_divide
. Show btn_divide
SetVar "[NWID.TargetId]" "btn_divide"
GoSub "NWID_Show"
Return

:Hide_btn_divide
. Hide btn_divide
SetVar "[NWID.TargetId]" "btn_divide"
GoSub "NWID_Hide"
Return

:Get_btn_divide
. Read caption text from btn_divide into [NWID.PropResult].
. No callback -- value is available immediately after GoSub returns.
SetVar "[NWID.TargetId]" "btn_divide"
SetVar "[NWID.GetPropName]" "caption"
GoSub "NWID_GetPropSync"
. [NWID.PropResult] now contains the value
Return

.------------------------------------------------------------
. btn_7  (button)
.------------------------------------------------------------
:Set_btn_7
. Set caption text on btn_7
. Preferred: SetVar "[btn_7.caption]" "your value"
.            SetVar "[SetObjectProperty]" "btn_7.caption"
.            GoSub "SetProp"
. Legacy:    SetVar "[NWID.SetPropValue]" "your value"
.            GoSub "Set_btn_7"
SetVar "[NWID.TargetId]" "btn_7"
SetVar "[NWID.SetPropName]" "caption"
GoSub "NWID_SetProp"
Return

:Show_btn_7
. Show btn_7
SetVar "[NWID.TargetId]" "btn_7"
GoSub "NWID_Show"
Return

:Hide_btn_7
. Hide btn_7
SetVar "[NWID.TargetId]" "btn_7"
GoSub "NWID_Hide"
Return

:Get_btn_7
. Read caption text from btn_7 into [NWID.PropResult].
. No callback -- value is available immediately after GoSub returns.
SetVar "[NWID.TargetId]" "btn_7"
SetVar "[NWID.GetPropName]" "caption"
GoSub "NWID_GetPropSync"
. [NWID.PropResult] now contains the value
Return

.------------------------------------------------------------
. btn_8  (button)
.------------------------------------------------------------
:Set_btn_8
. Set caption text on btn_8
. Preferred: SetVar "[btn_8.caption]" "your value"
.            SetVar "[SetObjectProperty]" "btn_8.caption"
.            GoSub "SetProp"
. Legacy:    SetVar "[NWID.SetPropValue]" "your value"
.            GoSub "Set_btn_8"
SetVar "[NWID.TargetId]" "btn_8"
SetVar "[NWID.SetPropName]" "caption"
GoSub "NWID_SetProp"
Return

:Show_btn_8
. Show btn_8
SetVar "[NWID.TargetId]" "btn_8"
GoSub "NWID_Show"
Return

:Hide_btn_8
. Hide btn_8
SetVar "[NWID.TargetId]" "btn_8"
GoSub "NWID_Hide"
Return

:Get_btn_8
. Read caption text from btn_8 into [NWID.PropResult].
. No callback -- value is available immediately after GoSub returns.
SetVar "[NWID.TargetId]" "btn_8"
SetVar "[NWID.GetPropName]" "caption"
GoSub "NWID_GetPropSync"
. [NWID.PropResult] now contains the value
Return

.------------------------------------------------------------
. btn_9  (button)
.------------------------------------------------------------
:Set_btn_9
. Set caption text on btn_9
. Preferred: SetVar "[btn_9.caption]" "your value"
.            SetVar "[SetObjectProperty]" "btn_9.caption"
.            GoSub "SetProp"
. Legacy:    SetVar "[NWID.SetPropValue]" "your value"
.            GoSub "Set_btn_9"
SetVar "[NWID.TargetId]" "btn_9"
SetVar "[NWID.SetPropName]" "caption"
GoSub "NWID_SetProp"
Return

:Show_btn_9
. Show btn_9
SetVar "[NWID.TargetId]" "btn_9"
GoSub "NWID_Show"
Return

:Hide_btn_9
. Hide btn_9
SetVar "[NWID.TargetId]" "btn_9"
GoSub "NWID_Hide"
Return

:Get_btn_9
. Read caption text from btn_9 into [NWID.PropResult].
. No callback -- value is available immediately after GoSub returns.
SetVar "[NWID.TargetId]" "btn_9"
SetVar "[NWID.GetPropName]" "caption"
GoSub "NWID_GetPropSync"
. [NWID.PropResult] now contains the value
Return

.------------------------------------------------------------
. btn_multiply  (button)
.------------------------------------------------------------
:Set_btn_multiply
. Set caption text on btn_multiply
. Preferred: SetVar "[btn_multiply.caption]" "your value"
.            SetVar "[SetObjectProperty]" "btn_multiply.caption"
.            GoSub "SetProp"
. Legacy:    SetVar "[NWID.SetPropValue]" "your value"
.            GoSub "Set_btn_multiply"
SetVar "[NWID.TargetId]" "btn_multiply"
SetVar "[NWID.SetPropName]" "caption"
GoSub "NWID_SetProp"
Return

:Show_btn_multiply
. Show btn_multiply
SetVar "[NWID.TargetId]" "btn_multiply"
GoSub "NWID_Show"
Return

:Hide_btn_multiply
. Hide btn_multiply
SetVar "[NWID.TargetId]" "btn_multiply"
GoSub "NWID_Hide"
Return

:Get_btn_multiply
. Read caption text from btn_multiply into [NWID.PropResult].
. No callback -- value is available immediately after GoSub returns.
SetVar "[NWID.TargetId]" "btn_multiply"
SetVar "[NWID.GetPropName]" "caption"
GoSub "NWID_GetPropSync"
. [NWID.PropResult] now contains the value
Return

.------------------------------------------------------------
. btn_4  (button)
.------------------------------------------------------------
:Set_btn_4
. Set caption text on btn_4
. Preferred: SetVar "[btn_4.caption]" "your value"
.            SetVar "[SetObjectProperty]" "btn_4.caption"
.            GoSub "SetProp"
. Legacy:    SetVar "[NWID.SetPropValue]" "your value"
.            GoSub "Set_btn_4"
SetVar "[NWID.TargetId]" "btn_4"
SetVar "[NWID.SetPropName]" "caption"
GoSub "NWID_SetProp"
Return

:Show_btn_4
. Show btn_4
SetVar "[NWID.TargetId]" "btn_4"
GoSub "NWID_Show"
Return

:Hide_btn_4
. Hide btn_4
SetVar "[NWID.TargetId]" "btn_4"
GoSub "NWID_Hide"
Return

:Get_btn_4
. Read caption text from btn_4 into [NWID.PropResult].
. No callback -- value is available immediately after GoSub returns.
SetVar "[NWID.TargetId]" "btn_4"
SetVar "[NWID.GetPropName]" "caption"
GoSub "NWID_GetPropSync"
. [NWID.PropResult] now contains the value
Return

.------------------------------------------------------------
. btn_5  (button)
.------------------------------------------------------------
:Set_btn_5
. Set caption text on btn_5
. Preferred: SetVar "[btn_5.caption]" "your value"
.            SetVar "[SetObjectProperty]" "btn_5.caption"
.            GoSub "SetProp"
. Legacy:    SetVar "[NWID.SetPropValue]" "your value"
.            GoSub "Set_btn_5"
SetVar "[NWID.TargetId]" "btn_5"
SetVar "[NWID.SetPropName]" "caption"
GoSub "NWID_SetProp"
Return

:Show_btn_5
. Show btn_5
SetVar "[NWID.TargetId]" "btn_5"
GoSub "NWID_Show"
Return

:Hide_btn_5
. Hide btn_5
SetVar "[NWID.TargetId]" "btn_5"
GoSub "NWID_Hide"
Return

:Get_btn_5
. Read caption text from btn_5 into [NWID.PropResult].
. No callback -- value is available immediately after GoSub returns.
SetVar "[NWID.TargetId]" "btn_5"
SetVar "[NWID.GetPropName]" "caption"
GoSub "NWID_GetPropSync"
. [NWID.PropResult] now contains the value
Return

.------------------------------------------------------------
. btn_6  (button)
.------------------------------------------------------------
:Set_btn_6
. Set caption text on btn_6
. Preferred: SetVar "[btn_6.caption]" "your value"
.            SetVar "[SetObjectProperty]" "btn_6.caption"
.            GoSub "SetProp"
. Legacy:    SetVar "[NWID.SetPropValue]" "your value"
.            GoSub "Set_btn_6"
SetVar "[NWID.TargetId]" "btn_6"
SetVar "[NWID.SetPropName]" "caption"
GoSub "NWID_SetProp"
Return

:Show_btn_6
. Show btn_6
SetVar "[NWID.TargetId]" "btn_6"
GoSub "NWID_Show"
Return

:Hide_btn_6
. Hide btn_6
SetVar "[NWID.TargetId]" "btn_6"
GoSub "NWID_Hide"
Return

:Get_btn_6
. Read caption text from btn_6 into [NWID.PropResult].
. No callback -- value is available immediately after GoSub returns.
SetVar "[NWID.TargetId]" "btn_6"
SetVar "[NWID.GetPropName]" "caption"
GoSub "NWID_GetPropSync"
. [NWID.PropResult] now contains the value
Return

.------------------------------------------------------------
. btn_subtract  (button)
.------------------------------------------------------------
:Set_btn_subtract
. Set caption text on btn_subtract
. Preferred: SetVar "[btn_subtract.caption]" "your value"
.            SetVar "[SetObjectProperty]" "btn_subtract.caption"
.            GoSub "SetProp"
. Legacy:    SetVar "[NWID.SetPropValue]" "your value"
.            GoSub "Set_btn_subtract"
SetVar "[NWID.TargetId]" "btn_subtract"
SetVar "[NWID.SetPropName]" "caption"
GoSub "NWID_SetProp"
Return

:Show_btn_subtract
. Show btn_subtract
SetVar "[NWID.TargetId]" "btn_subtract"
GoSub "NWID_Show"
Return

:Hide_btn_subtract
. Hide btn_subtract
SetVar "[NWID.TargetId]" "btn_subtract"
GoSub "NWID_Hide"
Return

:Get_btn_subtract
. Read caption text from btn_subtract into [NWID.PropResult].
. No callback -- value is available immediately after GoSub returns.
SetVar "[NWID.TargetId]" "btn_subtract"
SetVar "[NWID.GetPropName]" "caption"
GoSub "NWID_GetPropSync"
. [NWID.PropResult] now contains the value
Return

.------------------------------------------------------------
. btn_1  (button)
.------------------------------------------------------------
:Set_btn_1
. Set caption text on btn_1
. Preferred: SetVar "[btn_1.caption]" "your value"
.            SetVar "[SetObjectProperty]" "btn_1.caption"
.            GoSub "SetProp"
. Legacy:    SetVar "[NWID.SetPropValue]" "your value"
.            GoSub "Set_btn_1"
SetVar "[NWID.TargetId]" "btn_1"
SetVar "[NWID.SetPropName]" "caption"
GoSub "NWID_SetProp"
Return

:Show_btn_1
. Show btn_1
SetVar "[NWID.TargetId]" "btn_1"
GoSub "NWID_Show"
Return

:Hide_btn_1
. Hide btn_1
SetVar "[NWID.TargetId]" "btn_1"
GoSub "NWID_Hide"
Return

:Get_btn_1
. Read caption text from btn_1 into [NWID.PropResult].
. No callback -- value is available immediately after GoSub returns.
SetVar "[NWID.TargetId]" "btn_1"
SetVar "[NWID.GetPropName]" "caption"
GoSub "NWID_GetPropSync"
. [NWID.PropResult] now contains the value
Return

.------------------------------------------------------------
. btn_2  (button)
.------------------------------------------------------------
:Set_btn_2
. Set caption text on btn_2
. Preferred: SetVar "[btn_2.caption]" "your value"
.            SetVar "[SetObjectProperty]" "btn_2.caption"
.            GoSub "SetProp"
. Legacy:    SetVar "[NWID.SetPropValue]" "your value"
.            GoSub "Set_btn_2"
SetVar "[NWID.TargetId]" "btn_2"
SetVar "[NWID.SetPropName]" "caption"
GoSub "NWID_SetProp"
Return

:Show_btn_2
. Show btn_2
SetVar "[NWID.TargetId]" "btn_2"
GoSub "NWID_Show"
Return

:Hide_btn_2
. Hide btn_2
SetVar "[NWID.TargetId]" "btn_2"
GoSub "NWID_Hide"
Return

:Get_btn_2
. Read caption text from btn_2 into [NWID.PropResult].
. No callback -- value is available immediately after GoSub returns.
SetVar "[NWID.TargetId]" "btn_2"
SetVar "[NWID.GetPropName]" "caption"
GoSub "NWID_GetPropSync"
. [NWID.PropResult] now contains the value
Return

.------------------------------------------------------------
. btn_3  (button)
.------------------------------------------------------------
:Set_btn_3
. Set caption text on btn_3
. Preferred: SetVar "[btn_3.caption]" "your value"
.            SetVar "[SetObjectProperty]" "btn_3.caption"
.            GoSub "SetProp"
. Legacy:    SetVar "[NWID.SetPropValue]" "your value"
.            GoSub "Set_btn_3"
SetVar "[NWID.TargetId]" "btn_3"
SetVar "[NWID.SetPropName]" "caption"
GoSub "NWID_SetProp"
Return

:Show_btn_3
. Show btn_3
SetVar "[NWID.TargetId]" "btn_3"
GoSub "NWID_Show"
Return

:Hide_btn_3
. Hide btn_3
SetVar "[NWID.TargetId]" "btn_3"
GoSub "NWID_Hide"
Return

:Get_btn_3
. Read caption text from btn_3 into [NWID.PropResult].
. No callback -- value is available immediately after GoSub returns.
SetVar "[NWID.TargetId]" "btn_3"
SetVar "[NWID.GetPropName]" "caption"
GoSub "NWID_GetPropSync"
. [NWID.PropResult] now contains the value
Return

.------------------------------------------------------------
. btn_add  (button)
.------------------------------------------------------------
:Set_btn_add
. Set caption text on btn_add
. Preferred: SetVar "[btn_add.caption]" "your value"
.            SetVar "[SetObjectProperty]" "btn_add.caption"
.            GoSub "SetProp"
. Legacy:    SetVar "[NWID.SetPropValue]" "your value"
.            GoSub "Set_btn_add"
SetVar "[NWID.TargetId]" "btn_add"
SetVar "[NWID.SetPropName]" "caption"
GoSub "NWID_SetProp"
Return

:Show_btn_add
. Show btn_add
SetVar "[NWID.TargetId]" "btn_add"
GoSub "NWID_Show"
Return

:Hide_btn_add
. Hide btn_add
SetVar "[NWID.TargetId]" "btn_add"
GoSub "NWID_Hide"
Return

:Get_btn_add
. Read caption text from btn_add into [NWID.PropResult].
. No callback -- value is available immediately after GoSub returns.
SetVar "[NWID.TargetId]" "btn_add"
SetVar "[NWID.GetPropName]" "caption"
GoSub "NWID_GetPropSync"
. [NWID.PropResult] now contains the value
Return

.------------------------------------------------------------
. btn_negate  (button)
.------------------------------------------------------------
:Set_btn_negate
. Set caption text on btn_negate
. Preferred: SetVar "[btn_negate.caption]" "your value"
.            SetVar "[SetObjectProperty]" "btn_negate.caption"
.            GoSub "SetProp"
. Legacy:    SetVar "[NWID.SetPropValue]" "your value"
.            GoSub "Set_btn_negate"
SetVar "[NWID.TargetId]" "btn_negate"
SetVar "[NWID.SetPropName]" "caption"
GoSub "NWID_SetProp"
Return

:Show_btn_negate
. Show btn_negate
SetVar "[NWID.TargetId]" "btn_negate"
GoSub "NWID_Show"
Return

:Hide_btn_negate
. Hide btn_negate
SetVar "[NWID.TargetId]" "btn_negate"
GoSub "NWID_Hide"
Return

:Get_btn_negate
. Read caption text from btn_negate into [NWID.PropResult].
. No callback -- value is available immediately after GoSub returns.
SetVar "[NWID.TargetId]" "btn_negate"
SetVar "[NWID.GetPropName]" "caption"
GoSub "NWID_GetPropSync"
. [NWID.PropResult] now contains the value
Return

.------------------------------------------------------------
. btn_0  (button)
.------------------------------------------------------------
:Set_btn_0
. Set caption text on btn_0
. Preferred: SetVar "[btn_0.caption]" "your value"
.            SetVar "[SetObjectProperty]" "btn_0.caption"
.            GoSub "SetProp"
. Legacy:    SetVar "[NWID.SetPropValue]" "your value"
.            GoSub "Set_btn_0"
SetVar "[NWID.TargetId]" "btn_0"
SetVar "[NWID.SetPropName]" "caption"
GoSub "NWID_SetProp"
Return

:Show_btn_0
. Show btn_0
SetVar "[NWID.TargetId]" "btn_0"
GoSub "NWID_Show"
Return

:Hide_btn_0
. Hide btn_0
SetVar "[NWID.TargetId]" "btn_0"
GoSub "NWID_Hide"
Return

:Get_btn_0
. Read caption text from btn_0 into [NWID.PropResult].
. No callback -- value is available immediately after GoSub returns.
SetVar "[NWID.TargetId]" "btn_0"
SetVar "[NWID.GetPropName]" "caption"
GoSub "NWID_GetPropSync"
. [NWID.PropResult] now contains the value
Return

.------------------------------------------------------------
. btn_decimal  (button)
.------------------------------------------------------------
:Set_btn_decimal
. Set caption text on btn_decimal
. Preferred: SetVar "[btn_decimal.caption]" "your value"
.            SetVar "[SetObjectProperty]" "btn_decimal.caption"
.            GoSub "SetProp"
. Legacy:    SetVar "[NWID.SetPropValue]" "your value"
.            GoSub "Set_btn_decimal"
SetVar "[NWID.TargetId]" "btn_decimal"
SetVar "[NWID.SetPropName]" "caption"
GoSub "NWID_SetProp"
Return

:Show_btn_decimal
. Show btn_decimal
SetVar "[NWID.TargetId]" "btn_decimal"
GoSub "NWID_Show"
Return

:Hide_btn_decimal
. Hide btn_decimal
SetVar "[NWID.TargetId]" "btn_decimal"
GoSub "NWID_Hide"
Return

:Get_btn_decimal
. Read caption text from btn_decimal into [NWID.PropResult].
. No callback -- value is available immediately after GoSub returns.
SetVar "[NWID.TargetId]" "btn_decimal"
SetVar "[NWID.GetPropName]" "caption"
GoSub "NWID_GetPropSync"
. [NWID.PropResult] now contains the value
Return

.------------------------------------------------------------
. btn_equals  (button)
.------------------------------------------------------------
:Set_btn_equals
. Set caption text on btn_equals
. Preferred: SetVar "[btn_equals.caption]" "your value"
.            SetVar "[SetObjectProperty]" "btn_equals.caption"
.            GoSub "SetProp"
. Legacy:    SetVar "[NWID.SetPropValue]" "your value"
.            GoSub "Set_btn_equals"
SetVar "[NWID.TargetId]" "btn_equals"
SetVar "[NWID.SetPropName]" "caption"
GoSub "NWID_SetProp"
Return

:Show_btn_equals
. Show btn_equals
SetVar "[NWID.TargetId]" "btn_equals"
GoSub "NWID_Show"
Return

:Hide_btn_equals
. Hide btn_equals
SetVar "[NWID.TargetId]" "btn_equals"
GoSub "NWID_Hide"
Return

:Get_btn_equals
. Read caption text from btn_equals into [NWID.PropResult].
. No callback -- value is available immediately after GoSub returns.
SetVar "[NWID.TargetId]" "btn_equals"
SetVar "[NWID.GetPropName]" "caption"
GoSub "NWID_GetPropSync"
. [NWID.PropResult] now contains the value
Return
