in Tools/UIRecorder/UIRecorder/XmlNodePathRecorder.cs [87:159]
public static void HandleUiEvent(ref string strXml, EnumUiTaskName uiTaskName, int deltaX, int deltaY)
{
List<string> nodesRootToLeaf = null;
if (uiTaskName == EnumUiTaskName.Inspect)
{
nodesRootToLeaf = GetRootToLeafNodes(strXml);
if (nodesRootToLeaf != null && nodesRootToLeaf.Count > 0)
{
MainWindow.AddInspectUi(new RecordedUiTask(nodesRootToLeaf, uiTaskName));
}
return;
}
if (uiTaskName != EnumUiTaskName.KeyboardInput)
{
nodesRootToLeaf = GetRootToLeafNodes(strXml);
strXml = null;
}
RecordedUiTask lastRecordedUi = null;
lock (RecordedUiTask.s_lockRecordedUi)
{
if (RecordedUiTask.s_listRecordedUi.Count > 0)
{
lastRecordedUi = RecordedUiTask.s_listRecordedUi.Last();
}
}
bool bAddNewTask = true;
// Completing last UI
if (uiTaskName == EnumUiTaskName.LeftDblClick && lastRecordedUi != null)
{
lastRecordedUi.ChangeClickToDoubleClick();
bAddNewTask = false;
}
else if (uiTaskName == EnumUiTaskName.MouseWheel)
{
if (lastRecordedUi == null || lastRecordedUi.UiTaskName != EnumUiTaskName.MouseWheel)
{
if (nodesRootToLeaf != null && nodesRootToLeaf.Count > 0)
{
lastRecordedUi = new RecordedUiTask(nodesRootToLeaf, uiTaskName);
MainWindow.AddRecordedUi(lastRecordedUi);
}
}
if (lastRecordedUi != null && lastRecordedUi.UiTaskName == EnumUiTaskName.MouseWheel)
{
lastRecordedUi.UpdateWheelData(deltaX);
}
bAddNewTask = false;
}
if (bAddNewTask)
{
if (nodesRootToLeaf != null && nodesRootToLeaf.Count > 0)
{
MainWindow.AddRecordedUi(new RecordedUiTask(nodesRootToLeaf, uiTaskName));
}
}
else if (lastRecordedUi != null)
{
//MouseWheel, DoubleClick
MainWindow.UpdateLastUi(lastRecordedUi);
}
NativeMethods.PostMessage(MainWindow.s_windowHandle, (int)MainWindow.UiThreadTask.ActionAdded, 0, 0);
AppInsights.LogEvent("HandleUiEvent", uiTaskName.ToString());
}