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