private void UpdateIncludedAndExcluded(ScreenSave instance) { UpdateIncludedAndExcludedBase(instance); // instance may not be set yet, so we have to use the argument value IncludeMember("BaseScreen", typeof(ScreenSave), new AvailableScreenTypeConverter((ScreenSave)instance)); IncludeMember("NextScreen", typeof(ScreenSave), new AvailableScreenTypeConverter((ScreenSave)instance)); IncludeMember("Name", typeof(string), SetClassName, GetClassName, null, this.CategoryAttribute("\tScreen")); }
public SaveClasses.ScreenSave AddScreen(string screenName) { ScreenSave screenSave = new ScreenSave(); screenSave.Name = @"Screens\" + screenName; AddScreen(screenSave, suppressAlreadyExistingFileMessage: false); return(screenSave); }
private void CreateScreenTreeNodes() { for (int i = 0; i < ProjectManager.GlueProjectSave.Screens.Count; i++) { ScreenSave screenSave = ProjectManager.GlueProjectSave.Screens[i]; // This is so fast now that we don't even need to show the user // what's going on //SetInitWindowText("Creating Screens: " + screenSave.Name); ScreenTreeNode screenTreeNode = GlueState.Self.Find.ScreenTreeNode(ProjectManager.GlueProjectSave.Screens[i].Name); #region If there is no screenTreeNode if (screenTreeNode == null) { // See if the file exists string fileToSearchFor = FileManager.RelativeDirectory + screenSave.Name + ".cs"; if (System.IO.File.Exists(fileToSearchFor)) { // If we got here that means there's probably not a build item for this file MessageBox.Show("The Glue project has the following Screen:\n" + screenSave.Name + "\n" + "but this file is not part of Visual Studio. This file may have been removed manually or " + "there may have been some saving error. You should close Glue, manually add this and the Generated file " + "to Visual Studio, then restart Glue."); MainGlueWindow.Self.HasErrorOccurred = true; } else { System.Windows.Forms.MessageBox.Show("Could not create the ScreenSave for " + screenSave.Name); } //mGlueProjectSave.Screens.RemoveAt(i); //i--; continue; } #endregion screenTreeNode.SaveObject = ProjectManager.GlueProjectSave.Screens[i]; CheckForMissingCustomFile(screenTreeNode); if (ProjectManager.GlueProjectSave.Screens[i].IsRequiredAtStartup) { screenTreeNode.BackColor = ElementViewWindow.RequiredScreenColor; } screenTreeNode.UpdateReferencedTreeNodes(); screenTreeNode.SaveObject.UpdateCustomProperties(); } }
internal void SaveScreen(ScreenSave gumScreen) { string gumProjectFileName = GumProjectManager.Self.GetGumProjectFileName(); var directory = FileManager.GetDirectory(gumProjectFileName) + ElementReference.ScreenSubfolder + "/"; string screenFileName = directory + gumScreen.Name + "." + GumProjectSave.ScreenExtension; gumScreen.Save(screenFileName); }
private void CreateScreenSaves() { mScreenSave = new ScreenSave(); mScreenSave.Name = "NamedObjectSaveTestsScreen"; ObjectFinder.Self.GlueProject.Screens.Add(mScreenSave); mDerivedNos = new NamedObjectSave(); mDerivedNos.SourceType = SourceType.Entity; mDerivedNos.SourceClassType = mDerivedEntitySave.Name; mScreenSave.NamedObjects.Add(mDerivedNos); }
public static void RemoveScreen(ScreenSave screenToRemove) { for (int i = 0; i < mScreenNode.Nodes.Count; i++) { if (((BaseElementTreeNode)mScreenNode.Nodes[i]).SaveObject == screenToRemove) { mScreenNode.Nodes.RemoveAt(i); break; } } }
public bool IsScreenNameValid(string screenName, ScreenSave screen, out string whyNotValid) { IsNameValidCommon(screenName, out whyNotValid); if (string.IsNullOrEmpty(whyNotValid)) { IsNameAnExistingElement(screenName, screen, out whyNotValid); } return(string.IsNullOrEmpty(whyNotValid)); }
internal void RemoveScreen(ScreenSave asScreenSave) { GumProjectSave gps = ProjectManager.Self.GumProjectSave; string name = asScreenSave.Name; List <ElementReference> references = gps.ScreenReferences; RemoveElementReferencesFromList(name, references); gps.Screens.Remove(asScreenSave); }
private void AddTreeNodeFor(ScreenSave screenSave) { string fullName = screenSave.Name; string directory = FileManager.GetDirectory(fullName, RelativeType.Relative); TreeNode directoryNode = GetOrCreateDirectoryNode(directory, AllElementsTreeView.Nodes); TreeNode elementNode = new TreeNode(FileManager.RemovePath(screenSave.Name)); elementNode.Tag = screenSave; directoryNode.Nodes.Add(elementNode); }
public void AddScreenClick(object sender, EventArgs e) { if (ObjectFinder.Self.GumProjectSave == null || string.IsNullOrEmpty(ProjectManager.Self.GumProjectSave.FullFileName)) { MessageBox.Show("You must first save a project before adding Screens"); } else { TextInputWindow tiw = new TextInputWindow(); tiw.Message = "Enter new Screen name:"; if (tiw.ShowDialog() == System.Windows.Forms.DialogResult.OK) { string name = tiw.Result; string whyNotValid; if (!NameVerifier.Self.IsScreenNameValid(name, null, out whyNotValid)) { MessageBox.Show(whyNotValid); } else { TreeNode nodeToAddTo = ElementTreeViewManager.Self.SelectedNode; while (nodeToAddTo != null && nodeToAddTo.Tag is ScreenSave && nodeToAddTo.Parent != null) { nodeToAddTo = nodeToAddTo.Parent; } if (nodeToAddTo == null || !nodeToAddTo.IsPartOfScreensFolderStructure()) { nodeToAddTo = RootScreensTreeNode; } string path = nodeToAddTo.GetFullFilePath().FullPath; string relativeToScreens = FileManager.MakeRelative(path, FileLocations.Self.ScreensFolder); ScreenSave screenSave = ProjectCommands.Self.AddScreen(relativeToScreens + name); GumCommands.Self.GuiCommands.RefreshElementTreeView(); SelectedState.Self.SelectedScreen = screenSave; GumCommands.Self.FileCommands.TryAutoSaveElement(screenSave); GumCommands.Self.FileCommands.TryAutoSaveProject(); } } } }
bool IsLoadingScreen(IElement element, out ScreenSave screenSave) { screenSave = null; if (element is ScreenSave) { ScreenSave asScreenSave = element as ScreenSave; return(asScreenSave.IsLoadingScreen); } return(false); }
private static bool GetIfScreenHasTmxDirectly(ScreenSave screen) { var hasTmxFile = screen.ReferencedFiles.Any(item => FileManager.GetExtension(item.Name) == "tmx"); var hasTmx = hasTmxFile; if (!hasTmx) { hasTmx = screen.AllNamedObjects.Any(item => item.GetAssetTypeInfo()?.FriendlyName == "LayeredTileMap (.tmx)"); } return(hasTmx); }
internal void AddScreenToGumProject(ScreenSave gumScreen) { AppState.Self.GumProjectSave.Screens.Add(gumScreen); var elementReference = new ElementReference { ElementType = ElementType.Screen, Name = gumScreen.Name }; AppState.Self.GumProjectSave.ScreenReferences.Add(elementReference); AppState.Self.GumProjectSave.ScreenReferences.Sort((first, second) => first.Name.CompareTo(second.Name)); FlatRedBall.Glue.Plugins.PluginManager.ReceiveOutput("Added Gum screen " + gumScreen.Name); }
private void CreateScreen() { Screen = new ScreenSave(); Screen.Initialize(StandardElementsManager.Self.GetDefaultStateFor("Screen")); Screen.Name = "VariableTestScreen"; ButtonInstanceInScreen = new InstanceSave(); ButtonInstanceInScreen.Name = "ButtonInstance"; ButtonInstanceInScreen.BaseType = "VariableTestButton"; Screen.Instances.Add(ButtonInstanceInScreen); Screen.DefaultState.SetValue("ButtonInstance.ButtonText", null); }
string GetLevelsFolderAbsoluteForScreen(ScreenSave screen) { if (screen == null) { return(null); } else { string folder = screen.Name + "/Levels/"; return(GlueCommands.Self.GetAbsoluteFileName(folder, true)); } }
public static List <ExposableEvent> GetExposableEventsFor(ScreenSave screenSave, bool removeAlreadyExposed) { List <ExposableEvent> returnValues = new List <ExposableEvent>(); GetExposableEventsFor(screenSave, returnValues); returnValues.Sort(Sort); if (removeAlreadyExposed) { RemoveAlreadyExposed(screenSave, returnValues); } return(returnValues); }
public void AddScreen(ScreenSave screenSave) { screenSave.Initialize(StandardElementsManager.Self.GetDefaultStateFor("Screen")); ProjectManager.Self.GumProjectSave.ScreenReferences.Add(new ElementReference { Name = screenSave.Name, ElementType = ElementType.Screen }); ProjectManager.Self.GumProjectSave.ScreenReferences.Sort((first, second) => first.Name.CompareTo(second.Name)); ProjectManager.Self.GumProjectSave.Screens.Add(screenSave); GumCommands.Self.FileCommands.TryAutoSaveProject(); GumCommands.Self.FileCommands.TryAutoSaveElement(screenSave); Plugins.PluginManager.Self.ElementAdd(screenSave); }
private void CreateScreenTreeNodes() { for (int i = 0; i < ProjectManager.GlueProjectSave.Screens.Count; i++) { ScreenSave screenSave = ProjectManager.GlueProjectSave.Screens[i]; ScreenTreeNode screenTreeNode = GlueState.Self.Find.ScreenTreeNode(ProjectManager.GlueProjectSave.Screens[i].Name); if (ProjectManager.GlueProjectSave.Screens[i].IsRequiredAtStartup) { screenTreeNode.BackColor = ElementViewWindow.RequiredScreenColor; } screenTreeNode.UpdateReferencedTreeNodes(); } }
private void SetupFileAssociations(ScreenSave screen) { var fileSaves = screen.GetAllReferencedFileSavesRecursively().ToList(); var tmxCSVExists = fileSaves.Any( f => AppState.Self.TmxFileName.EndsWith(f.SourceFile, StringComparison.CurrentCultureIgnoreCase) && f.Name.EndsWith(".csv", StringComparison.CurrentCultureIgnoreCase)); if (!tmxCSVExists) { var otherfile = fileSaves.First( f => AppState.Self.TmxFileName.EndsWith(f.SourceFile, StringComparison.CurrentCultureIgnoreCase) && f.Name.EndsWith(".tilb")); var file = new ReferencedFileSave { CreatesDictionary = true, SourceFile = otherfile.SourceFile, Name = otherfile.Name.Replace(".tilb", "Properties.csv"), BuildTool = BuildToolAssociationManager.Self.TmxToCsv.ToString(), IsSharedStatic = true }; file.DestroyOnUnload = false; string fileName = FlatRedBall.Glue.ProjectManager.ContentDirectory + file.SourceFile; var errorMessage = BuildToolAssociationManager.Self.TmxToCsv.PerformBuildOn( fileName, FlatRedBall.Glue.ProjectManager.ContentDirectory + file.Name, null, FlatRedBall.Glue.Plugins.PluginManager.ReceiveOutput, PluginManager.ReceiveError); if (string.IsNullOrWhiteSpace(errorMessage)) { var tileMapInfoCustomClass = GlueState.Self.CurrentGlueProject.CustomClasses.FirstOrDefault(c => c.Name == "TileMapInfo"); if (tileMapInfoCustomClass != null) { tileMapInfoCustomClass.CsvFilesUsingThis.Add(file.Name); screen.ReferencedFiles.Add(file); } } } }
private void CreateScreenSave() { mScreenSave = new ScreenSave(); mScreenSave.Name = "ScreenSaveInVariableSettingTest"; ObjectFinder.Self.GlueProject.Screens.Add(mScreenSave); NamedObjectSave nos = new NamedObjectSave(); nos.SourceType = SourceType.Entity; nos.SourceClassType = mEntitySave.Name; nos.UpdateCustomProperties(); nos.InstanceName = "TestObject1"; nos.SetPropertyValue("X", 150); mScreenSave.NamedObjects.Add(nos); }
public bool IsScreenNameValid(string screenName, ScreenSave screen, out string whyNotValid) { IsNameValidCommon(screenName, out whyNotValid); //if (string.IsNullOrEmpty(whyNotValid)) //{ // IsNameValidVariable(screenName, out whyNotValid); //} if (string.IsNullOrEmpty(whyNotValid)) { IsNameAnExistingElement(screenName, null, screen, out whyNotValid); } return(string.IsNullOrEmpty(whyNotValid)); }
public ScreenSave AddScreen(string screenName) { ScreenSave screenSave = new ScreenSave(); screenSave.Initialize(StandardElementsManager.Self.GetDefaultStateFor("Screen")); screenSave.Name = screenName; ProjectManager.Self.GumProjectSave.ScreenReferences.Add(new ElementReference { Name = screenName, ElementType = ElementType.Screen }); ProjectManager.Self.GumProjectSave.ScreenReferences.Sort((first, second) => first.Name.CompareTo(second.Name)); ProjectManager.Self.GumProjectSave.Screens.Add(screenSave); return(screenSave); }
public static void UpdateNodeToListIndex(ScreenSave screenSave) { ScreenTreeNode screenTreeNode = GlueState.Self.Find.ScreenTreeNode(screenSave); bool wasSelected = MainGlueWindow.Self.ElementTreeView.SelectedNode == screenTreeNode; int desiredIndex = ProjectManager.GlueProjectSave.Screens.IndexOf(screenSave); mScreenNode.Nodes.Remove(screenTreeNode); mScreenNode.Nodes.Insert(desiredIndex, screenTreeNode); if (wasSelected) { MainGlueWindow.Self.ElementTreeView.SelectedNode = screenTreeNode; } }
public List <ScreenSave> GetAllScreensThatInheritFrom(string baseScreen) { List <ScreenSave> derivedScreens = new List <ScreenSave>(); for (int i = 0; i < GlueProject.Screens.Count; i++) { ScreenSave screenSave = GlueProject.Screens[i]; if (screenSave.InheritsFrom(baseScreen)) { derivedScreens.Add(screenSave); } } return(derivedScreens); }
public ScreenTreeNode ScreenTreeNode(ScreenSave screenSave) { for (int i = 0; i < ElementViewWindow.ScreensTreeNode.Nodes.Count; i++) { if (ElementViewWindow.ScreensTreeNode.Nodes[i] is ScreenTreeNode) { ScreenTreeNode asScreenTreeNode = ElementViewWindow.ScreensTreeNode.Nodes[i] as ScreenTreeNode; if (asScreenTreeNode.ScreenSave == screenSave) { return(asScreenTreeNode); } } } return(null); }
public void Initialize() { OverallInitializer.Initialize(); mEntitySave = new EntitySave(); mEntitySave.ImplementsIWindow = true; mEntitySave.Name = "EventTestEntity"; mEntitySave.ImplementsIWindow = true; ObjectFinder.Self.GlueProject.Entities.Add(mEntitySave); mScreenSave = new ScreenSave(); mScreenSave.Name = "EventTestScreen"; ObjectFinder.Self.GlueProject.Screens.Add(mScreenSave); NamedObjectSave nos = new NamedObjectSave(); nos.SourceType = SourceType.Entity; nos.SourceClassType = "EventTestEntity"; mScreenSave.NamedObjects.Add(nos); EventResponseSave ers = new EventResponseSave(); ers.SourceObject = "EventTestEntity"; ers.SourceObjectEvent = "Click"; ers.EventName = "EventTestEntityClick"; mScreenSave.Events.Add(ers); EventResponseSave pushErs = new EventResponseSave(); pushErs.SourceObject = "EventTestEntity"; pushErs.SourceObjectEvent = "Push"; pushErs.EventName = "EventTestEntityPush"; mScreenSave.Events.Add(pushErs); // Create a POList so we can expose its event(s) mListNos = new NamedObjectSave(); mListNos.SourceType = SourceType.FlatRedBallType; mListNos.SourceClassType = "PositionedObjectList<T>"; mListNos.SourceClassGenericType = "Sprite"; mScreenSave.NamedObjects.Add(mListNos); mDerivedEntitySave = new EntitySave(); mDerivedEntitySave.Name = "EventTestsDerivedEntity"; mDerivedEntitySave.BaseEntity = mEntitySave.Name; ObjectFinder.Self.GlueProject.Entities.Add(mDerivedEntitySave); }
public static string GetMemberTypeForScreen(string memberName, ScreenSave screen) { string toReturn; if (memberName == "CurrentState") { return("VariableState"); } else if (TryGetStateInCategory(memberName, screen, out toReturn)) { return(toReturn); } else { throw new InvalidOperationException(); } }
public ScreenSave GetScreenSaveUnqualified(string screenName) { if (GlueProject != null) { for (int i = 0; i < GlueProject.Screens.Count; i++) { ScreenSave screenSave = GlueProject.Screens[i]; if (FileManager.RemovePath(screenSave.Name) == screenName) { return(screenSave); } } } return(null); }
private static string GetGeneratedScreenCode(ScreenSave screenSave) { ICodeBlock topBlock = new CodeBlockBaseNoIndent(null); string screenNamespace = CodeGeneratorCommonLogic.GetElementNamespace(screenSave); ICodeBlock codeBlock = topBlock.Namespace(screenNamespace); codeBlock = codeBlock.Class("public partial", screenSave.GetStrippedName(), " : RedGrin.INetworkArena"); GenerateRequestCreateEntity(codeBlock); GenerateRequestDestroy(codeBlock); return(topBlock.ToString()); }
private void SetupEntityListInScreen(EntitySave entity, ScreenSave screen) { if (entity != null && screen != null) { var hasList = screen.AllNamedObjects.Any(o => o.ClassType == "PositionedObjectList<" + entity.ClassName + ">"); if (!hasList) { screen.NamedObjects.Add(new NamedObjectSave { AddToManagers = true, SourceClassGenericType = entity.Name, SourceClassType = "PositionedObjectList<T>", InstanceName = entity.ClassName + "List", SourceType = SourceType.FlatRedBallType }); } } }