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