Exemple #1
0
        private void AppButton_OnContextMenuOpening(object sender, ContextMenuEventArgs e)
        {
            if (Window == null)
            {
                return;
            }

            NativeMethods.WindowShowStyle wss = Window.ShowStyle;
            int ws = Window.WindowStyles;

            // disable window operations depending on current window state. originally tried implementing via bindings but found there is no notification we get regarding maximized state
            MaximizeMenuItem.IsEnabled = (wss != NativeMethods.WindowShowStyle.ShowMaximized && (ws & (int)NativeMethods.WindowStyles.WS_MAXIMIZEBOX) != 0);
            MinimizeMenuItem.IsEnabled = (wss != NativeMethods.WindowShowStyle.ShowMinimized && (ws & (int)NativeMethods.WindowStyles.WS_MINIMIZEBOX) != 0);
            if (RestoreMenuItem.IsEnabled = (wss != NativeMethods.WindowShowStyle.ShowNormal))
            {
                CloseMenuItem.FontWeight   = FontWeights.Normal;
                RestoreMenuItem.FontWeight = FontWeights.Bold;
            }
            if (!RestoreMenuItem.IsEnabled || RestoreMenuItem.IsEnabled && !MaximizeMenuItem.IsEnabled)
            {
                CloseMenuItem.FontWeight   = FontWeights.Bold;
                RestoreMenuItem.FontWeight = FontWeights.Normal;
            }
            MoveMenuItem.IsEnabled = wss == NativeMethods.WindowShowStyle.ShowNormal;
            SizeMenuItem.IsEnabled = (wss == NativeMethods.WindowShowStyle.ShowNormal && (ws & (int)NativeMethods.WindowStyles.WS_MAXIMIZEBOX) != 0);
        }
Exemple #2
0
        public void ConfigureContextMenu()
        {
            if (Window != null)
            {
                Visibility vis = Visibility.Collapsed;
                NativeMethods.WindowShowStyle wss = Window.ShowStyle;
                int ws = Window.WindowStyles;

                // show pin option if this app is not yet in quick launch
                if (Window.QuickLaunchAppInfo == null)
                {
                    vis = Visibility.Visible;
                }

                miPin.Visibility          = vis;
                miPinSeparator.Visibility = vis;

                // disable window operations depending on current window state. originally tried implementing via bindings but found there is no notification we get regarding maximized state
                miMaximize.IsEnabled = (wss != NativeMethods.WindowShowStyle.ShowMaximized && (ws & (int)NativeMethods.WindowStyles.WS_MAXIMIZEBOX) != 0);
                miMinimize.IsEnabled = (wss != NativeMethods.WindowShowStyle.ShowMinimized && (ws & (int)NativeMethods.WindowStyles.WS_MINIMIZEBOX) != 0);
                miRestore.IsEnabled  = (wss != NativeMethods.WindowShowStyle.ShowNormal);
                miMove.IsEnabled     = wss == NativeMethods.WindowShowStyle.ShowNormal;
                miSize.IsEnabled     = (wss == NativeMethods.WindowShowStyle.ShowNormal && (ws & (int)NativeMethods.WindowStyles.WS_MAXIMIZEBOX) != 0);
            }
        }
Exemple #3
0
        /// <summary>
        /// Handler that adjusts the visibility and usability of menu items depending on window state and app's inclusion in Quick Launch.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ContextMenu_Opening(object sender, ContextMenuEventArgs e)
        {
            var Window = (DataContext as WindowsTasks.ApplicationWindow);

            if (Window != null)
            {
                Visibility vis = Visibility.Collapsed;
                NativeMethods.WindowShowStyle wss = Window.ShowStyle;
                int ws = Window.WindowStyles;

                // show pin option if this app is not yet in quick launch
                if (Window.QuickLaunchAppInfo == null)
                {
                    vis = Visibility.Visible;
                }

                miPin.Visibility          = vis;
                miPinSeparator.Visibility = vis;

                // disable window operations depending on current window state. originally tried implementing via bindings but found there is no notification we get regarding maximized state
                miMaximize.IsEnabled = (wss != NativeMethods.WindowShowStyle.ShowMaximized && (ws & (int)NativeMethods.WindowStyles.WS_MAXIMIZEBOX) != 0);
                miMinimize.IsEnabled = (wss != NativeMethods.WindowShowStyle.ShowMinimized && (ws & (int)NativeMethods.WindowStyles.WS_MINIMIZEBOX) != 0);
                miRestore.IsEnabled  = (wss != NativeMethods.WindowShowStyle.ShowNormal);
            }
        }
        private void UserControl_ContextMenuOpening(object sender, ContextMenuEventArgs e)
        {
            ThumbWindow.IsContextMenuOpen = true;

            if (_window == null)
            {
                return;
            }

            NativeMethods.WindowShowStyle wss = _window.ShowStyle;
            int ws = _window.WindowStyles;

            miMaximize.IsEnabled = wss != NativeMethods.WindowShowStyle.ShowMaximized && (ws & (int)NativeMethods.WindowStyles.WS_MAXIMIZEBOX) != 0;
            miMinimize.IsEnabled = wss != NativeMethods.WindowShowStyle.ShowMinimized && (ws & (int)NativeMethods.WindowStyles.WS_MINIMIZEBOX) != 0;
            miRestore.IsEnabled  = wss != NativeMethods.WindowShowStyle.ShowNormal;
            miMove.IsEnabled     = wss == NativeMethods.WindowShowStyle.ShowNormal;
            miSize.IsEnabled     = wss == NativeMethods.WindowShowStyle.ShowNormal && (ws & (int)NativeMethods.WindowStyles.WS_MAXIMIZEBOX) != 0;
        }
Exemple #5
0
        private static void SetSecondaryTaskbarVisibility(NativeMethods.WindowShowStyle shw)
        {
            bool   complete       = false;
            IntPtr secTaskbarHwnd = NativeMethods.FindWindowEx(IntPtr.Zero, IntPtr.Zero, "Shell_SecondaryTrayWnd", null);

            // if we have 3+ monitors there may be multiple secondary taskbars
            while (!complete)
            {
                if (secTaskbarHwnd != IntPtr.Zero)
                {
                    NativeMethods.ShowWindowAsync(secTaskbarHwnd, shw);
                    secTaskbarHwnd = NativeMethods.FindWindowEx(IntPtr.Zero, secTaskbarHwnd, "Shell_SecondaryTrayWnd", null);
                }
                else
                {
                    complete = true;
                }
            }
        }
        private void ContextMenu_Opening(object sender, RoutedEventArgs e)
        {
            ApplicationWindow window = getWindow();

            if (window == null)
            {
                return;
            }

            Visibility pinVisibility = Visibility.Collapsed;
            Visibility singleWindowVisibility = _isGroup ? Visibility.Collapsed : Visibility.Visible;
            NativeMethods.WindowShowStyle wss = window.ShowStyle;
            int ws = window.WindowStyles;

            // show pin option if this app is not yet in quick launch
            if (ParentTaskbar._appGrabber.QuickLaunchManager.GetQuickLaunchApplicationInfo(window) == null)
            {
                pinVisibility = Visibility.Visible;
            }

            miPin.Visibility = pinVisibility;
            miPinSeparator.Visibility = pinVisibility;

            // show/hide single window controls
            miMaximize.Visibility = singleWindowVisibility;
            miMinimize.Visibility = singleWindowVisibility;
            miRestore.Visibility = singleWindowVisibility;
            miMove.Visibility = singleWindowVisibility;
            miSize.Visibility = singleWindowVisibility;
            miSingleWindowSeparator.Visibility = singleWindowVisibility;

            if (!_isGroup)
            {
                // disable window operations depending on current window state. originally tried implementing via bindings but found there is no notification we get regarding maximized state
                miMaximize.IsEnabled = wss != NativeMethods.WindowShowStyle.ShowMaximized && (ws & (int)NativeMethods.WindowStyles.WS_MAXIMIZEBOX) != 0;
                miMinimize.IsEnabled = wss != NativeMethods.WindowShowStyle.ShowMinimized && (ws & (int)NativeMethods.WindowStyles.WS_MINIMIZEBOX) != 0;
                miRestore.IsEnabled = wss != NativeMethods.WindowShowStyle.ShowNormal;
                miMove.IsEnabled = wss == NativeMethods.WindowShowStyle.ShowNormal;
                miSize.IsEnabled = wss == NativeMethods.WindowShowStyle.ShowNormal && (ws & (int)NativeMethods.WindowStyles.WS_MAXIMIZEBOX) != 0;
            }
        }
Exemple #7
0
 /// <summary>
 /// Make the referenced Internet Explorer full screen, minimized, maximized and more.
 /// </summary>
 /// <param name="showStyle">The style to apply.</param>
 public virtual void ShowWindow(NativeMethods.WindowShowStyle showStyle)
 {
     NativeMethods.ShowWindow(hWnd, (int) showStyle);
 }
 public void ShowWindow(NativeMethods.WindowShowStyle showStyle)
 {
     throw new NotImplementedException();
 }
Exemple #9
0
 internal static extern bool ShowWindow(IntPtr hWnd, NativeMethods.WindowShowStyle nCmdShow);