Ejemplo n.º 1
0
        public void CanGetAListOfActiveWindows_VerifyTestProcess()
        {
            using (var app = new GivenAnApp("GoToWindow.CanGetAListOfActiveWindows_VerifyTestProcess"))
            {
                var windowsList = WindowsListFactory.Load();
                var windows     = windowsList.Windows;

                AssertExists(windows, app.ExpectedWindow);
            }
        }
Ejemplo n.º 2
0
        public void resetData()
        {
            var isNeedRest = false;
            var wins       = WindowsListFactory.Load();

            if (mWins == null)
            {
                isNeedRest = true;
                mWins      = wins;
                int i = 0;
                foreach (var win in wins.Windows)
                {
                    i++;
                    var btn = buildBtn(win, setElementWidth, setElementMargin);
                    if (i == 2)
                    {
                        mFocusBtn = btn;
                    }
                    stackPanel.Children.Add(btn);
                }
            }
            else
            {
                for (int i = 0; i < wins.Windows.Count; i++)
                {
                    var win = wins.Windows.ElementAt(i);
                    //Console.WriteLine(i + "   " + win.ProcessName);
                    int findIndex = -1;
                    for (int j = 0; j < mWins.Windows.Count; j++)
                    {
                        var mWin = mWins.Windows.ElementAt(j);
                        if (win.HWnd == mWin.HWnd)
                        {
                            findIndex = j;
                            break;
                        }
                    }
                    if (findIndex > -1)
                    {
                        // 需要交换位置
                        if (i != findIndex)
                        {
                            isNeedRest = true;
                            var first  = stackPanel.Children[i];
                            var second = stackPanel.Children[findIndex];
                            stackPanel.Children.Remove(first);
                            stackPanel.Children.Remove(second);
                            stackPanel.Children.Insert(i, second);
                            stackPanel.Children.Insert(findIndex, first);

                            var firstL  = mWins.Windows.ElementAt(i);
                            var secondL = mWins.Windows.ElementAt(findIndex);
                            mWins.Windows.Remove(firstL);
                            mWins.Windows.Remove(secondL);
                            mWins.Windows.Insert(i, secondL);
                            mWins.Windows.Insert(findIndex, firstL);
                        }
                    }
                    else
                    {
                        isNeedRest = true;
                        mWins.Windows.Insert(i, win);
                        stackPanel.Children.Insert(i, buildBtn(win, setElementWidth, setElementMargin));
                    }
                    if (i == 1)
                    {
                        mFocusBtn = stackPanel.Children[1] as Button;
                    }
                    // 去掉多余的
                    if (i == wins.Windows.Count - 1)
                    {
                        if (mWins.Windows.Count > wins.Windows.Count)
                        {
                            isNeedRest = true;
                            stackPanel.Children.RemoveRange(wins.Windows.Count, mWins.Windows.Count - wins.Windows.Count);
                        }
                    }
                }
            }

            if (isNeedRest)
            {
                resetWindowSize();
            }
        }
Ejemplo n.º 3
0
 public void BuildList(List <ISearchResult> list)
 {
     list.AddRange(WindowsListFactory.Load().Windows.Select(ConvertWindowEntryToSearchResult));
     list.Add(new WindowSearchCommandResult());
 }
Ejemplo n.º 4
0
        public void resetData()
        {
            var isNeedRest = false;
            var wins       = WindowsListFactory.Load();

            // 如果为空则增加Empty提示
            if (wins.Windows.Count == 0)
            {
                IWindowEntry entry = new WindowEntry();
                entry.ProcessName = "Empty";
                wins.Windows.Add(entry);
            }
            // remove hide window
            if (mListHideWin.Count > 0)
            {
                for (int i = 0; i < wins.Windows.Count; i++)
                {
                    var win = wins.Windows.ElementAt(i);
                    for (int j = 0; j < mListHideWin.Count; j++)
                    {
                        if (win.ProcessName.Equals(mListHideWin.ElementAt(j).name) && win.Title.Equals(mListHideWin.ElementAt(j).title))
                        {
                            wins.Windows.RemoveAt(i--);
                            break;
                        }
                    }
                }
            }

            if (mWins == null)
            {
                isNeedRest = true;
                mWins      = wins;
                int i = 0;
                foreach (var win in wins.Windows)
                {
                    i++;
                    var btn = buildBtn(win, setElementWidth, setElementMargin);
                    stackPanel.Children.Add(btn);
                }
            }
            else
            {
                for (int i = 0; i < wins.Windows.Count; i++)
                {
                    var win = wins.Windows.ElementAt(i);
                    //Console.WriteLine(i + "   " + win.ProcessName);
                    int findIndex = -1;
                    for (int j = 0; j < mWins.Windows.Count; j++)
                    {
                        var mWin = mWins.Windows.ElementAt(j);
                        if (win.HWnd == mWin.HWnd)
                        {
                            findIndex = j;
                            break;
                        }
                    }
                    if (findIndex > -1)
                    {
                        // 需要交换位置
                        if (i != findIndex)
                        {
                            isNeedRest = true;
                            var first  = stackPanel.Children[i];
                            var second = stackPanel.Children[findIndex];
                            stackPanel.Children.Remove(first);
                            stackPanel.Children.Remove(second);
                            stackPanel.Children.Insert(i, second);
                            stackPanel.Children.Insert(findIndex, first);

                            var firstL  = mWins.Windows.ElementAt(i);
                            var secondL = mWins.Windows.ElementAt(findIndex);
                            mWins.Windows.Remove(firstL);
                            mWins.Windows.Remove(secondL);
                            mWins.Windows.Insert(i, secondL);
                            mWins.Windows.Insert(findIndex, firstL);
                        }
                    }
                    else
                    {
                        isNeedRest = true;
                        mWins.Windows.Insert(i, win);
                        stackPanel.Children.Insert(i, buildBtn(win, setElementWidth, setElementMargin));
                    }
                }
                // 去掉多余的
                while (mWins.Windows.Count > wins.Windows.Count)
                {
                    isNeedRest = true;
                    stackPanel.Children.RemoveAt(mWins.Windows.Count - 1);
                    mWins.Windows.RemoveAt(mWins.Windows.Count - 1);
                }
            }

            if (stackPanel.Children.Count > 0)
            {
                mFocusBtn = stackPanel.Children[stackPanel.Children.Count > 1 ? 1 : 0] as Button;
            }

            if (isNeedRest)
            {
                resetWindowSize();
            }
        }