public List <EventSave> GetExposedChildrenEvents(ElementSave elementSave) { var exposeEventsAsObject = elementSave.GetValueFromThisOrBase("ExposeChildrenEvents"); bool exposeChildrenEvents = false; if (exposeEventsAsObject is bool) { exposeChildrenEvents = (bool)elementSave.GetValueFromThisOrBase("ExposeChildrenEvents"); } List <EventSave> exposedChildrenEvents = new List <EventSave>(); if (exposeChildrenEvents) { var defaultState = elementSave.DefaultState; if (defaultState != null) { foreach (var child in elementSave.Instances) { var hasEvents = (bool)defaultState.GetValueRecursive(child.Name + ".HasEvents"); if (hasEvents) { EventSave eventSave = new EventSave(); eventSave.Name = $"{child.MemberNameInCode()}.Click"; eventSave.ExposedAsName = $"{child.MemberNameInCode()}Click"; exposedChildrenEvents.Add(eventSave); } } } } return(exposedChildrenEvents); }
private static void ApplyChangedVariable(ElementSave gumElement, GumInstance gumInstance, string variableName, FlatRedBall.Glue.SaveClasses.GlueProjectSave glueProject, bool save) { var glueElement = GluePluginObjectFinder.Self.GetGlueElementFrom(gumElement); /////////////////// early out if (glueElement == null) { return; } ///////////////endn early out var fullVariableName = variableName; FlatRedBall.Glue.SaveClasses.NamedObjectSave foundNos = null; if (gumInstance != null) { fullVariableName = $"{gumInstance.Name}.{variableName}"; foundNos = glueElement.AllNamedObjects .FirstOrDefault(item => item.InstanceName == gumInstance.Name); } var gumValue = gumElement.GetValueFromThisOrBase(fullVariableName); if (foundNos != null) { var handled = TryHandleAssigningMultipleVariables(gumElement, gumInstance, variableName, glueElement, foundNos, gumValue); if (!handled) { HandleIndividualVariableAssignment(gumElement, gumInstance, variableName, glueElement, foundNos, gumValue); } } if (save) { FileManager.XmlSerialize(glueProject, GluePluginState.Self.GlueProjectFilePath.StandardizedCaseSensitive); } }