/// <summary>
///
/// </summary>
/// <param name="strType"></param>
/// <param name="data"></param>
/// <returns></returns>
public bool BroadcastEvent(string strType, object data)
{
EventContext context = EventContext.Get();
context.initiator = this;
context._stopsPropagation = false;
context._defaultPrevented = false;
context.type = strType;
context.data = data;
List <EventBridge> bubbleChain = context.callChain;
if (this is Container)
{
GetChildEventBridges(strType, (Container)this, bubbleChain);
}
else if (this is GComponent)
{
GetChildEventBridges(strType, (GComponent)this, bubbleChain);
}
int length = bubbleChain.Count;
for (int i = 0; i < length; ++i)
{
bubbleChain[i].CallInternal(context);
}
bubbleChain.Clear();
EventContext.Return(context);
context.initiator = null;
context.sender = null;
context.data = null;
return(context._defaultPrevented);
}