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);
        }
Esempio n. 2
0
        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);
            }
        }