Ejemplo n.º 1
0
        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
            }
        }
Ejemplo n.º 2
0
        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);
 }