/// <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(); }; } }
/// <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); } }