static private GenerateEventsForVariable ( ICodeBlock codeBlock, string variableName, bool isEventNew = false ) : void | ||
codeBlock | ICodeBlock | |
variableName | string | |
isEventNew | bool | |
return | void |
internal static void TryGenerateEventsForVariable(ICodeBlock codeBlock, CustomVariable customVariable, IElement container) { var shouldGenerate = ShouldGenerateEventsForVariable(customVariable, container); // Currently we don't support events on static variables if (shouldGenerate) { EventCodeGenerator.GenerateEventsForVariable(codeBlock, customVariable.Name); } }
private static void GenerateEnabledVariable(ICodeBlock codeBlock, IElement element) { CustomVariable exposedEnabledVariable = element.CustomVariables.FirstOrDefault(item => item.Name == "Enabled" && item.Type == "bool"); bool isEnableVariableExposed = exposedEnabledVariable != null; bool hasEvents = exposedEnabledVariable != null && exposedEnabledVariable.CreatesEvent && element.Events.Any(item => item.SourceVariable == exposedEnabledVariable.Name); if (hasEvents) { EventCodeGenerator.GenerateEventsForVariable(codeBlock, exposedEnabledVariable.Name); } string prefix; string propertyName; if (isEnableVariableExposed) { prefix = "public bool"; propertyName = "Enabled"; } else { prefix = "bool"; propertyName = "FlatRedBall.Gui.IWindow.Enabled"; } codeBlock.Line(Resources.Resource1.IWindowTemplate); var property = codeBlock.Property(prefix, propertyName); property.Get().Line("return mEnabled;"); var setBlock = property.Set(); if (hasEvents) { EventCodeGenerator.GenerateEventRaisingCode(setBlock, BeforeOrAfter.Before, exposedEnabledVariable.Name, element); } var setIf = setBlock.If("mEnabled != value"); setIf.Line("mEnabled = value;"); setIf.Line("EnabledChange?.Invoke(this);"); if (hasEvents) { EventCodeGenerator.GenerateEventRaisingCode(setIf, BeforeOrAfter.After, exposedEnabledVariable.Name, element); } }
public override ICodeBlock GenerateFields(ICodeBlock codeBlock, IElement element) { EntitySave entitySave = element as EntitySave; if (entitySave != null && entitySave.ImplementsIVisible) { #region Comments on the history of events // CustomVariable visibleCustomVariable = entitySave.GetCustomVariable("Visible"); // September 22, 2011 (Victor Chelaru) // We used to only create events if the // user set them in Glue. We're changing // the approach for events now to always have // them available in code, but then have them be // exposed in Glue. This enables us to centralize // event code generation instead of spreading it out // through every module that may create events. //bool createsVisibleEvent = // visibleCustomVariable != null && visibleCustomVariable.CreatesEvent; //if (createsVisibleEvent) //{ #endregion bool isNew = entitySave.GetInheritsFromIVisible(); EventCodeGenerator.GenerateEventsForVariable(codeBlock, "Visible", isNew); GenerateVisibleProperty(codeBlock, element, entitySave); GenerateIgnoresParentVisibility(codeBlock, entitySave); GenerateAbsoluteVisible(codeBlock, entitySave); GenerateIVisibleParent(codeBlock, entitySave); } return(codeBlock); }