Esempio n. 1
0
        /// <summary>
        ///     Sets up the Favorite-ContextMenu according to the current state
        /// </summary>
        private void mnuFavoritesContext_Opening(object sender, CancelEventArgs e)
        {
            if (lstFavorites.SelectedItem == null)
            {
                e.Cancel = true;
                return;
            }

            var fav = (Favorite)lstFavorites.SelectedItem;

            toolStripFullScreen.Checked = fav.Size == FavoriteSize.FullScreen;

            toolStripMuteInBackground.Checked   = fav.MuteInBackground;
            toolStripAutomaximize.Checked       = fav.ShouldMaximize;
            toolStripAlwaysOnTop.Checked        = fav.TopMost;
            toolStripHideMouseCursor.Checked    = fav.HideMouseCursor;
            toolStripHideWindowsTaskbar.Checked = fav.HideWindowsTaskbar;
            toolStripRemoveMenus.Checked        = fav.RemoveMenus;

            toolStripAutomaximize.Enabled       = fav.Size == FavoriteSize.FullScreen;
            toolStripAdjustWindowBounds.Enabled = fav.Size == FavoriteSize.FullScreen && !fav.ShouldMaximize;
            toolStripSetSetWindowSize.Enabled   = fav.Size != FavoriteSize.FullScreen;
            toolStripSetSetWindowSize.Checked   = fav.Size == FavoriteSize.SpecificSize;
            toolStripNoSizeChange.Checked       = fav.Size == FavoriteSize.NoChange;

            if (Screen.AllScreens.Length < 2)
            {
                contextFavScreen.Visible = false;
            }
            else
            {
                contextFavScreen.Visible = true;

                if (contextFavScreen.HasDropDownItems)
                {
                    contextFavScreen.DropDownItems.Clear();
                }

                var superSize = Screen.PrimaryScreen.Bounds;

                foreach (var screen in Screen.AllScreens)
                {
                    superSize = Tools.GetContainingRectangle(superSize, screen.Bounds);

                    // fix for a .net-bug on Windows XP
                    var idx             = screen.DeviceName.IndexOf('\0');
                    var fixedDeviceName = idx > 0 ? screen.DeviceName.Substring(0, idx) : screen.DeviceName;

                    var label = fixedDeviceName + (screen.Primary ? " (P)" : string.Empty);
                    var index = contextFavScreen.DropDownItems.Add(new ToolStripMenuItem
                    {
                        Text         = label,
                        CheckOnClick = true,
                        Checked      = fav.FavScreen?.Equals(PRectangle.ToPRectangle(screen.Bounds)) ?? false
                    });
                    contextFavScreen.DropDownItems[index].Click += (s, ea) =>
                    {
                        var tt = (ToolStripMenuItem)s;
                        fav.FavScreen = tt.Checked ? PRectangle.ToPRectangle(screen.Bounds) : new PRectangle();
                        Config.Save();
                    };
                }
                // add supersize Option
                var superIndex = contextFavScreen.DropDownItems.Add(new ToolStripMenuItem
                {
                    Text         = LanguageManager.Data("superSize"),
                    CheckOnClick = true,
                    Checked      = fav.FavScreen?.Equals(PRectangle.ToPRectangle(superSize)) ?? false
                });
                contextFavScreen.DropDownItems[superIndex].Click += (s, ea) =>
                {
                    fav.FavScreen = PRectangle.ToPRectangle(superSize);
                    Config.Save();
                };
            }
        }
Esempio n. 2
0
        /// <summary>
        ///     Sets up the Favorite-ContextMenu according to the current state
        /// </summary>
        private void mnuFavoritesContext_Opening(object sender, CancelEventArgs e)
        {
            if (lstFavorites.SelectedItem == null)
            {
                e.Cancel = true;
                return;
            }

            var fav = (Favorite)lstFavorites.SelectedItem;

            fullScreenToolStripMenuItem.Checked = fav.Size == FavoriteSize.FullScreen;

            muteInBackgroundToolStripMenuItem.Checked   = fav.MuteInBackground;
            automaximizeToolStripMenuItem.Checked       = fav.ShouldMaximize;
            alwaysOnTopToolStripMenuItem.Checked        = fav.TopMost;
            hideMouseCursorToolStripMenuItem.Checked    = fav.HideMouseCursor;
            hideWindowsTaskbarToolStripMenuItem.Checked = fav.HideWindowsTaskbar;
            removeMenusToolStripMenuItem.Checked        = fav.RemoveMenus;

            automaximizeToolStripMenuItem.Enabled       = fav.Size == FavoriteSize.FullScreen;
            adjustWindowBoundsToolStripMenuItem.Enabled = fav.Size == FavoriteSize.FullScreen && !fav.ShouldMaximize;
            setWindowSizeToolStripMenuItem.Enabled      = fav.Size != FavoriteSize.FullScreen;
            setWindowSizeToolStripMenuItem.Checked      = fav.Size == FavoriteSize.SpecificSize;
            noSizeChangeToolStripMenuItem.Checked       = fav.Size == FavoriteSize.NoChange;

            if (Screen.AllScreens.Length < 2)
            {
                contextFavScreen.Visible = false;
            }
            else
            {
                contextFavScreen.Visible = true;

                if (contextFavScreen.HasDropDownItems)
                {
                    contextFavScreen.DropDownItems.Clear();
                }

                var superSize = Screen.PrimaryScreen.Bounds;

                foreach (var screen in Screen.AllScreens)
                {
                    superSize = Tools.GetContainingRectangle(superSize, screen.Bounds);

                    // fix for a .net-bug on Windows XP
                    var idx             = screen.DeviceName.IndexOf('\0');
                    var fixedDeviceName = idx > 0 ? screen.DeviceName.Substring(0, idx) : screen.DeviceName;

                    var label = fixedDeviceName + (screen.Primary ? " (P)" : string.Empty);

                    var tsi = new ToolStripMenuItem(label);
                    tsi.Checked = fav.FavScreen?.Equals(PRectangle.ToPRectangle(screen.Bounds)) ?? false;
                    tsi.Click  += (s, ea) =>
                    {
                        if (tsi.Checked)
                        {
                            fav.FavScreen =
                                new PRectangle(); // Can't null a Rectangle, so can never fully un-favorite a screen without removing the favorite.
                        }
                        else
                        {
                            fav.FavScreen = PRectangle.ToPRectangle(screen.Bounds);
                        }
                        Config.Save();
                    };

                    contextFavScreen.DropDownItems.Add(tsi);
                }

                // add supersize Option
                var superSizeItem = new ToolStripMenuItem("SuperSize!");

                superSizeItem.Click += (s, ea) => { fav.FavScreen = PRectangle.ToPRectangle(superSize); };

                contextFavScreen.DropDownItems.Add(superSizeItem);
            }
        }