public static void LoadWindowLayout(List <string> windowNamesToRemove) { try { string fileName = WindowLayoutFileName; if (FileManager.FileExists(fileName)) { WindowSaveCollection wsc = WindowSaveCollection.FromFile(fileName); if (windowNamesToRemove != null) { foreach (string nameToRemove in windowNamesToRemove) { wsc.RemoveWindow(nameToRemove); } } List <bool> moveswhenGrabbed = new List <bool>(); foreach (Window window in GuiManager.Windows) { moveswhenGrabbed.Add(window.MovesWhenGrabbed); } GuiManager.SetLayout(wsc); for (int i = 0; i < moveswhenGrabbed.Count; i++) { GuiManager.Windows[i].MovesWhenGrabbed = moveswhenGrabbed[i]; } } } catch { // do nothing } }
public static void SaveWindowLayout() { WindowSaveCollection wsc = GuiManager.GetCurrentLayout(); string fileName = WindowLayoutFileName; wsc.Save(fileName); }
public static WindowSaveCollection GetCurrentLayout() { // First, make sure that each window is uniquely named for (int i = 0; i < mWindowArray.Count; i++) { IWindow window = mWindowArray[i]; if (!StringFunctions.IsNameUnique(window, mWindowArray)) { throw new InvalidOperationException("The Window of type " + window.GetType() + " has a non-unique name"); } } WindowSaveCollection wsc = WindowSaveCollection.FromRuntime(mWindowArray); return(wsc); }
public static void SetLayout(WindowSaveCollection windowSaveCollection, VisibilityPreservation visibilityPreservation) { Dictionary <IWindow, Vector2> scaleDictionary = null; WindowSave.ApplyVisible = false; WindowSave.ApplyMinimumScales = false; bool preservePropertyGridScales = true; if (preservePropertyGridScales) { scaleDictionary = new Dictionary <IWindow, Vector2>(); for (int i = 0; i < mWindowArray.Count; i++) { if (mWindowArray[i] is PropertyGrid) { scaleDictionary.Add(mWindowArray[i], new Vector2(mWindowArray[i].ScaleX, mWindowArray[i].ScaleY)); } } } windowSaveCollection.ApplyTo(mWindowArray, FlatRedBallServices.GlobalContentManager); for (int i = 0; i < mWindowArray.Count; i++) { if (mWindowArray[i] is Window) { ((Window)mWindowArray[i]).KeepInScreen(); } } if (scaleDictionary != null) { foreach (KeyValuePair <IWindow, Vector2> kvp in scaleDictionary) { kvp.Key.ScaleX = kvp.Value.X; kvp.Key.ScaleY = kvp.Value.Y; } } }
public static void SetLayout(WindowSaveCollection windowSaveCollection) { SetLayout(windowSaveCollection, VisibilityPreservation.PreserveVisibility); }