/// <summary> /// Create the specified parameters. /// </summary> /// <param name="parameters">Parameters.</param> /// <typeparam name="T">The 1st type parameter.</typeparam> public static T Create <T>(System.Action <WindowBase> onParametersPassCall, out bool ignoreActions, params object[] parameters) where T : WindowBase { ignoreActions = false; var source = WindowSystem.instance.windows.FirstOrDefault(w => w is T) as T; if (source == null) { return(null); } return(WindowSystem.CreateWithIgnore_INTERNAL(source, onParametersPassCall, out ignoreActions, parameters) as T); }
/// <summary> /// Shows window of T type. /// Returns null if window not registered. /// </summary> /// <param name="afterGetInstance">On create predicate.</param> /// <param name="transition">Transition.</param> /// <param name="source">Source.</param> /// <param name="parameters">OnParametersPass() values.</param> /// <typeparam name="T">The 1st type parameter.</typeparam> public static T ShowWithParameters <T>(System.Action <T> afterGetInstance, AttachItem transitionItem, T source, System.Action <T> onParametersPassCall, params object[] parameters) where T : WindowBase { System.Action <WindowBase> parametersPassCall = null; if (onParametersPassCall != null) { parametersPassCall = (WindowBase window) => { if (onParametersPassCall != null) { onParametersPassCall(window as T); } }; } var ignoreActions = false; var instance = (source != null) ? WindowSystem.CreateWithIgnore_INTERNAL(source, parametersPassCall, out ignoreActions, parameters) as T : WindowSystem.Create <T>(parametersPassCall, out ignoreActions, parameters); if (instance != null) { if (afterGetInstance != null) { afterGetInstance(instance); } if (ignoreActions == false) { if (transitionItem != null && transitionItem.transition != null && transitionItem.transitionParameters != null) { instance.Show(transitionItem); } else { instance.Show(); } } } return(instance); }
internal WindowBase Create_INTERNAL(WindowBase source, System.Action <WindowBase> onParametersPassCall, params object[] parameters) { bool ignoreActions; return(WindowSystem.CreateWithIgnore_INTERNAL(source, onParametersPassCall, out ignoreActions, parameters)); }