internal CodeExpression GenerateObjectBuild(GeneratorContext ctx) { string varName = ctx.NewId(); CodeVariableDeclarationStatement varDec = new CodeVariableDeclarationStatement(typeof(Gtk.IconSource), varName); varDec.InitExpression = new CodeObjectCreateExpression(typeof(Gtk.IconSource)); ctx.Statements.Add(varDec); CodeVariableReferenceExpression var = new CodeVariableReferenceExpression(varName); ctx.Statements.Add(new CodeAssignStatement( new CodePropertyReferenceExpression(var, "Pixbuf"), imageInfo.ToCodeExpression(ctx) )); if (!SizeWildcarded) { ctx.Statements.Add(new CodeAssignStatement( new CodePropertyReferenceExpression(var, "SizeWildcarded"), new CodePrimitiveExpression(false) )); ctx.Statements.Add(new CodeAssignStatement( new CodePropertyReferenceExpression(var, "Size"), new CodeFieldReferenceExpression( new CodeTypeReferenceExpression("Gtk.IconSize"), Size.ToString() ) )); } if (!StateWildcarded) { ctx.Statements.Add(new CodeAssignStatement( new CodePropertyReferenceExpression(var, "StateWildcarded"), new CodePrimitiveExpression(false) )); ctx.Statements.Add(new CodeAssignStatement( new CodePropertyReferenceExpression(var, "State"), new CodeFieldReferenceExpression( new CodeTypeReferenceExpression("Gtk.StateType"), State.ToString() ) )); } if (!DirectionWildcarded) { ctx.Statements.Add(new CodeAssignStatement( new CodePropertyReferenceExpression(var, "DirectionWildcarded"), new CodePrimitiveExpression(false) )); ctx.Statements.Add(new CodeAssignStatement( new CodePropertyReferenceExpression(var, "Direction"), new CodeFieldReferenceExpression( new CodeTypeReferenceExpression("Gtk.TextDirection"), Direction.ToString() ) )); } return(var); }