/// Capture SEs produced by changes on a control. static void CaptureSideEffectsRec(Control c, ValueStore values, Lane lane) { foreach (Control ctrl in c.Controls) { if (HasChanged(ctrl, values)) { DieUnless(UpdateValueStore(ctrl, values), "Fail to update values."); PrintChange(ctrl, se: true); lane.GetLastMove().Change.RecordSide(ctrl.Name, ctrl.Text); } CaptureSideEffectsRec(ctrl, values, lane); } }
/// Inits the capture of a new frame. static void CaptureFrame(Form f, Control sender, ValueStore values, Lane lane) { BeginFrame(values, sender, lane); Unless(sender == null, () => { DieUnless(UpdateValueStore(sender, values), "Fail to update vals."); PrintChange(sender); lane.GetLastMove().RecordChange(sender.Text); }); // Register dependencies changes. CaptureSideEffectsRec(f, values, lane); EndFrame(); }