Example #1
0
        internal static Window Create(AutomationElement element, InitializeOption option, WindowSession windowSession)
        {
            SpecializedWindowFactory specializedWindowFactory = SpecializedWindowFactories.Find(factory => factory.DoesSpecializeInThis(element));

            if (specializedWindowFactory != null)
            {
                return(specializedWindowFactory.Create(element, option, windowSession));
            }

            var windowsFramework = new WindowsFramework(element.Current.FrameworkId);

            if (windowsFramework.WinForm)
            {
                return(new WinFormWindow(element, option, windowSession));
            }
            if (windowsFramework.WPF)
            {
                return(new WPFWindow(element, WindowFactory.Desktop, option, windowSession));
            }
            if (windowsFramework.Win32)
            {
                return(new Win32Window(element, WindowFactory.Desktop, option, windowSession));
            }
            if (windowsFramework.UIAutomationBug)
            {
                return(null);
            }
            throw new UIItemSearchException(string.Format("{0} is not supported yet.", windowsFramework));
        }
 public static void AddSpecializedWindowFactory(SpecializedWindowFactory specializedWindowFactory)
 {
     SpecializedWindowFactories.Add(specializedWindowFactory);
 }
Example #3
0
 public static void AddSpecializedWindowFactory(SpecializedWindowFactory specializedWindowFactory)
 {
     specializedWindowFactories.Add(specializedWindowFactory);
 }