ToCodeExpression() public method

public ToCodeExpression ( GeneratorContext ctx ) : System.CodeDom.CodeExpression
ctx GeneratorContext
return System.CodeDom.CodeExpression
Exemplo n.º 1
0
        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);
        }