private void ShowDisplayDiagnostics()
        {
            var details = DisplayDetails.GetMonitorDetails();

            #region Diagnostics
            Debug.WriteLine("****************** GetWorkingArea: {0}", Screen.GetWorkingArea(new System.Drawing.Point(0, 0)));
            Debug.WriteLine("****************** GetBounds: {0}", Screen.GetBounds(new System.Drawing.Point(0, 0)));
            Debug.WriteLine("****************** Primary Screen: {0}", Screen.PrimaryScreen.DeviceName, 0);
            Debug.WriteLine("****************** EntireDesktop Res: {0}", ScreenHelpers.GetEntireDesktopArea(), 0);
            foreach (var displayDetails in details)
            {
                Debug.WriteLine("DETAILS:");
                Debug.WriteLine("\t\tAvailability: {0}", displayDetails.Availability);
                Debug.WriteLine("\t\tModel: {0}", displayDetails.Model, 0);
                Debug.WriteLine("\t\tMonitorID: {0}", displayDetails.MonitorID, 0);
                Debug.WriteLine("\t\tPixelHeight: {0}", displayDetails.PixelHeight, 0);
                Debug.WriteLine("\t\tPixelWidth: {0}", displayDetails.PixelWidth);
                Debug.WriteLine("\t\tPnPID: {0}", displayDetails.PnPID, 0);
                Debug.WriteLine("\t\tSerialNumber: {0}", displayDetails.SerialNumber, 0);
            }
            Debug.WriteLine("********* SCREENS *********");
            var screens = Screen.AllScreens;
            foreach (var screen in screens)
            {
                Debug.WriteLine("SCREEN:");
                Debug.WriteLine("\t\tBitsPerPixel: {0}", screen.BitsPerPixel, 0);
                Debug.WriteLine("\t\tBounds: {0}", screen.Bounds, 0);
                Debug.WriteLine("\t\tDeviceName: {0}", screen.DeviceName, 0);
                Debug.WriteLine("\t\tPrimary: {0}", screen.Primary, 0);
                Debug.WriteLine("\t\tWorkingArea: {0}", screen.WorkingArea, 0);
            }
            #endregion
        }
Example #2
0
        private void ScaleBtn_Click(object sender, RoutedEventArgs e)
        {
            var dpi   = ScreenHelpers.GetScreenDPIFromWPFWindow(this);
            var scale = ScreenHelpers.GetScreenScalingFromWPFWindow(this);

            MessageBox.Show($"DPI: {dpi}\nScale: {scale}");
        }
        public bool IsGazeInScreenRegion(Rect region)
        {
            var gazeScreenPoint = ScreenHelpers.GetGazePointInScreenPixels(_eyetracker);

            //Logger.Log($"Gaze point: {gazeScreenPoint}");

            return(region.Contains(gazeScreenPoint));
        }
        public static bool IsLookingAt(this IEyetracker eyetracker, EnvDTE.Window window)
        {
            var gazePixels = ScreenHelpers.GetGazePointInScreenPixels(eyetracker);

            ThreadHelper.ThrowIfNotOnUIThread();

            var x = gazePixels.X - window.Left;
            var y = gazePixels.Y - window.Top;

            return(x > 0 && x < window.Width && y > 0 && y < window.Height);
        }
Example #5
0
        public void ShowWindow(IProgramContext context)
        {
            if (IsVisible == true)
            {
                return;
            }
            System.Windows.Forms.Screen[] screens = System.Windows.Forms.Screen.AllScreens;
            List <uint> dpis        = ScreenHelpers.GetScreenDpis(screens);
            RECT        position    = context.WindowPosition;
            double      ttop        = position.Top + 50;
            double      windowWidth = ActualWidth;

            if (windowWidth <= 0)
            {
                windowWidth = Width;
            }
            uint scale = dpis[0] / 96;

            windowWidth *= scale;
            double halfwidthdiff = ((position.Right - position.Left) - windowWidth) / 2;
            double tleft         = position.Left + halfwidthdiff;

            if (tleft < 0 && tleft + windowWidth > 0)
            {
                tleft = -(windowWidth + 50);
            }

            if (ttop < 50)
            {
                ttop = 50;
            }
            Left = tleft / scale;
            Top  = ttop / scale;
            Show();
            Activate();
            textbox_input.Focus();
            SetWindowPos(hwnd, HWND_TOPMOST, 0, 0, 0, 0, 3);
        }
Example #6
0
        private void ShowDropDown()
        {
            var rect     = RectangleToScreen(ClientRectangle);
            var location = new Point(rect.X, rect.Y + Height);

            _dropDownControl.Size = new Size(rect.Width, _checkedListBox.Items.Count * _checkedListBox.ItemHeight + ScreenHelpers.ScaleByCurrentDPI(5));
            _dropDownControl.Show(location);

            _dropDownClosing = true;
            _dropDownControl.Focus();
        }
        public Point GetRelativeGazePoint(FrameworkElement element)
        {
            var gazeScreenPoint = ScreenHelpers.GetGazePointInScreenPixels(_eyetracker);

            return(element.PointFromScreen(gazeScreenPoint));
        }