public static void AddChild(this IInputConsumer consumer, ProcessInputDelegate processInput, string name = "") { consumer.children.Add(new InputEventTree { name = name , processInput = processInput }); }
public void UnregisterConsumer(IInputConsumer consumer) { lock (featureSyncObject) { InputConsumers.Remove(consumer); } Logger.Debug("{0}: Input consumer has been unregistered", Name); }
public void RegisterConsumer(IInputConsumer consumer) { lock (featureSyncObject) { InputConsumers.Add(consumer); } Logger.Debug("{0}: New input consumer registered", Name); }
private void EndFrame(IInputConsumer consumer) { foreach (var child in consumer.children) { EndFrame(child); } var callback = consumer.endFrame; if (callback != null) { callback(); } }
private void BeginFrame(IInputConsumer consumer) { var callback = consumer.beginFrame; if (callback != null) { callback(); } foreach (var child in consumer.children) { BeginFrame(child); } }
protected static bool ProcessEventRecursive(IInputConsumer consumer, InputEvent inputEvent) { var callback = consumer.processInput; if (callback != null) { if (callback(inputEvent)) { return(true); } } // Iterate in reverse order to get stack behavior. if (consumer.isStack) { for (int i = consumer.children.Count - 1; i >= 0; i--) { if (ProcessEventRecursive(consumer.children[i], inputEvent)) { return(true); } } } else { for (int i = 0; i < consumer.children.Count; i++) { if (ProcessEventRecursive(consumer.children[i], inputEvent)) { return(true); } } } return(false); }