Esempio n. 1
0
        private static RectangleDouble ScreenToSystemWindow(ScreenRectangle rectOnScreen, SystemWindow containingWindow)
        {
            ScreenRectangle screenPosition = new ScreenRectangle()
            {
                Left   = (int)rectOnScreen.Left,
                Top    = (int)rectOnScreen.Top,
                Right  = (int)rectOnScreen.Right,
                Bottom = (int)rectOnScreen.Bottom,
            };

            AbstractOsMappingWidget mappingWidget = containingWindow.Parent as AbstractOsMappingWidget;

            screenPosition.Left   -= mappingWidget.DesktopPosition.x;
            screenPosition.Top    -= (mappingWidget.DesktopPosition.y + mappingWidget.TitleBarHeight);
            screenPosition.Left   -= mappingWidget.DesktopPosition.x;
            screenPosition.Bottom -= (mappingWidget.DesktopPosition.y + mappingWidget.TitleBarHeight);

            screenPosition.Top    = (int)containingWindow.Height - screenPosition.Top;
            screenPosition.Bottom = (int)containingWindow.Height - screenPosition.Bottom;

            return(new RectangleDouble()
            {
                Left = screenPosition.Left,
                Bottom = screenPosition.Bottom,
                Right = screenPosition.Right,
                Top = screenPosition.Top,
            });
        }
        public override void ShowSystemWindow(SystemWindow systemWindow)
        {
            bool firstWindow = false;

            if (factoryToUse == null)
            {
                if (systemWindow.UseOpenGL)
                {
                    factoryToUse = new WindowsFormsOpenGLFactory();
                }
                else
                {
                    factoryToUse = new WindowsFormsBitmapFactory();
                }
                firstWindow = true;

                // When our top most window closes reset this so we can make a window in the future.
                systemWindow.Closed += (sender, e) =>
                {
                    factoryToUse = null;
                };
            }

            AbstractOsMappingWidget osMappingWindow = factoryToUse.CreateSurface(systemWindow);

            osMappingWindow.Caption = systemWindow.Title;
            osMappingWindow.AddChild(systemWindow);
            osMappingWindow.MinimumSize = systemWindow.MinimumSize;

            systemWindow.AbstractOsMappingWidget = osMappingWindow;

            if (pendingSetInitialDesktopPosition)
            {
                pendingSetInitialDesktopPosition = false;
                systemWindow.DesktopPosition     = InitialDesktopPosition;
            }

            systemWindow.AnchorAll();
            systemWindow.TitleChanged += new EventHandler(TitelChangedEventHandler);
            // and make sure the title is correct right now
            TitelChangedEventHandler(systemWindow, null);

            if (firstWindow)
            {
                osMappingWindow.Run();
            }
            else
            {
                if (systemWindow.IsModal)
                {
                    osMappingWindow.ShowModal();
                }
                else
                {
                    osMappingWindow.Show();
                    osMappingWindow.BringToFront();
                }
            }
        }
Esempio n. 3
0
        public override void ShowSystemWindow(SystemWindow systemWindow)
        {
            bool haveInitializedMainWindow = false;

            if (OsMappingWidgetFactory.PrimaryOsMappingWidget != null)
            {
                haveInitializedMainWindow = true;
            }

            if (!haveInitializedMainWindow)
            {
                if (systemWindow.UseOpenGL)
                {
                    OsMappingWidgetFactory.SetFactory(new WindowsFormsOpenGLFactory());
                }
                else
                {
                    OsMappingWidgetFactory.SetFactory(new WindowsFormsBitmapFactory());
                }
            }

            AbstractOsMappingWidget windowsFormsTopWindow = OsMappingWidgetFactory.CreateOsMappingWidget(systemWindow);

            windowsFormsTopWindow.Caption = systemWindow.Title;
            windowsFormsTopWindow.AddChild(systemWindow);
            windowsFormsTopWindow.MinimumSize = systemWindow.MinimumSize;

            systemWindow.AbstractOsMappingWidget = windowsFormsTopWindow;

            if (pendingSetInitialDesktopPosition)
            {
                pendingSetInitialDesktopPosition = false;
                systemWindow.DesktopPosition     = InitialDesktopPosition;
            }

            systemWindow.AnchorAll();
            systemWindow.TitleChanged += new EventHandler(TitelChangedEventHandler);
            // and make sure the title is correct right now
            TitelChangedEventHandler(systemWindow, null);

            if (haveInitializedMainWindow)
            {
                if (systemWindow.IsModal)
                {
                    windowsFormsTopWindow.ShowModal();
                }
                else
                {
                    windowsFormsTopWindow.Show();
                }
            }
            else
            {
                windowsFormsTopWindow.Run();
            }
        }
Esempio n. 4
0
        private static Point2D SystemWindowToScreen(Point2D pointOnWindow, SystemWindow containingWindow)
        {
            Point2D screenPosition = new Point2D(pointOnWindow.x, (int)containingWindow.Height - pointOnWindow.y);

            AbstractOsMappingWidget mappingWidget = containingWindow.Parent as AbstractOsMappingWidget;

            screenPosition.x += mappingWidget.DesktopPosition.x;
            screenPosition.y += mappingWidget.DesktopPosition.y + mappingWidget.TitleBarHeight;

            return(screenPosition);
        }
Esempio n. 5
0
        public static Point2D ScreenToSystemWindow(Point2D pointOnScreen, SystemWindow containingWindow)
        {
            Point2D screenPosition = pointOnScreen;
            AbstractOsMappingWidget mappingWidget = containingWindow.Parent as AbstractOsMappingWidget;

            screenPosition.x -= mappingWidget.DesktopPosition.x;
            screenPosition.y -= (mappingWidget.DesktopPosition.y + mappingWidget.TitleBarHeight);

            screenPosition.y = (int)containingWindow.Height - screenPosition.y;

            return(screenPosition);
        }
Esempio n. 6
0
        public static ScreenRectangle SystemWindowToScreen(RectangleDouble rectOnScreen, SystemWindow containingWindow)
        {
            ScreenRectangle screenPosition = new ScreenRectangle()
            {
                Left   = (int)rectOnScreen.Left,
                Top    = (int)rectOnScreen.Top,
                Right  = (int)rectOnScreen.Right,
                Bottom = (int)rectOnScreen.Bottom,
            };

            screenPosition.Top    = (int)containingWindow.Height - screenPosition.Top;
            screenPosition.Bottom = (int)containingWindow.Height - screenPosition.Bottom;

            AbstractOsMappingWidget mappingWidget = containingWindow.Parent as AbstractOsMappingWidget;

            screenPosition.Left   += mappingWidget.DesktopPosition.x;
            screenPosition.Top    += (mappingWidget.DesktopPosition.y + mappingWidget.TitleBarHeight);
            screenPosition.Right  += mappingWidget.DesktopPosition.x;
            screenPosition.Bottom += (mappingWidget.DesktopPosition.y + mappingWidget.TitleBarHeight);

            return(screenPosition);
        }