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;
}