Exemple #1
0
        public void ToggleVisibility()
        {
            ThreadPool.QueueUserWorkItem(o =>
            {
                lock (Lock)
                {
                    if (_hiddenWindows.All(Closed))
                    {
                        foreach (var window in _hiddenWindows)
                        {
                            window.Dispose();
                        }
                        _hiddenWindows.Clear();
                    }

                    if (_hiddenWindows.Any())
                    {
                        ShowHiddenWindows();
                    }
                    else
                    {
                        foreach (var window in WindowEnumeration.GetCurrentWindows())
                        {
                            if (!window.IsPopup || !window.IsVisible)
                            {
                                window.Dispose();
                                continue;
                            }
                            window.Hide();
                            _hiddenWindows.Add(window);
                        }
                    }
                }
            });
        }
Exemple #2
0
        /// <summary>
        /// This doesn't work very well on WPF windows, as they have weird container windows that retain opacity.
        /// </summary>
        public void ToggleFade()
        {
            lock (Lock)
            {
                if (_fadedWindows.All(Closed))
                {
                    _fadedWindows.Clear();
                    foreach (var window in _fadedWindows)
                    {
                        window.Dispose();
                    }
                    _fadedWindows.Clear();
                }
                if (_fadedWindows.Any())
                {
                    foreach (var window in _fadedWindows)
                    {
                        window.SetOpaque();
                        window.Dispose();
                    }
                    _fadedWindows.Clear();
                }
                else
                {
                    foreach (var window in WindowEnumeration.GetCurrentWindows())
                    {
                        // Not filtered to popups until it's working properly

                        /*if (!window.IsPopup || !window.IsVisible)
                         * {
                         *  window.Dispose();
                         *  continue;
                         * }*/

                        window.SetTranslucent(70);

                        _fadedWindows.Add(window);
                    }
                }
            }
        }
Exemple #3
0
 IEnumerable <Window> FilteredWindowList()
 {
     return(WindowEnumeration.GetCurrentWindows()
            .Where(w => (!w.IsPopup) || _showingPopups)
            .Where(NotInIgnoreList));
 }