Example #1
0
        protected HassiumControl()
        {
            Attributes.Add("backColor", new HassiumProperty("backColor", x => new HassiumColor(Value.BackColor),
                                                            x => { Value.BackColor = ((HassiumColor)x[0]).Value;
                                                                   return(null); }));

            Attributes.Add("backImage", new HassiumProperty("backImage", x => new HassiumImage(Value.BackgroundImage),
                                                            x => {
                Value.BackgroundImage = ((HassiumImage)x[0]).Value;
                return(null);
            }));

            Attributes.Add("controls", new HassiumProperty("controls", x =>
            {
                var ret = new HassiumArray(Value.Controls.Cast <Control>().Select(y => new HassiumControl(y)));
                ret.Attributes["add"] = new InternalFunction(y =>
                {
                    Value.Controls.Add(((HassiumControl)y[0]).Value);
                    return(null);
                }, 1);

                ret.Attributes["remove"] = new InternalFunction(y =>
                {
                    Value.Controls.Remove(((HassiumControl)y[0]).Value);
                    return(null);
                }, 1);
                return(ret);
            }, null, true));

            Attributes.Add("enabled", new HassiumProperty("enabled", x => Value.Enabled, x => Value.Enabled = x[0].HBool().Value));

            Attributes.Add("foreColor", new HassiumProperty("foreColor", x => new HassiumColor(Value.ForeColor),
                                                            x => {
                Value.ForeColor = ((HassiumColor)x[0]).Value;
                return(null);
            }));

            Attributes.Add("location", new HassiumProperty("location", x => new HassiumPoint(Value.Location.X, Value.Location.Y),
                                                           x =>
            {
                Value.Location = ((HassiumPoint)x[0]).Value;
                return(null);
            }));

            Attributes.Add("x", new HassiumProperty("x", x => Value.Location.X, x =>
            {
                Value.Location = new Point(x[0].HInt().Value, Value.Location.Y);
                return(null);
            }));

            Attributes.Add("y", new HassiumProperty("y", x => Value.Location.Y, x =>
            {
                Value.Location = new Point(Value.Location.X, x[0].HInt().Value);
                return(null);
            }));

            Attributes.Add("name", new HassiumProperty("name", x => Value.Name, x => Value.Name = x[0].ToString()));

            Attributes.Add("parent", new HassiumProperty("parent", x => new HassiumControl(Value.Parent), x =>
            {
                Value.Parent = ((HassiumControl)x[0]).Value;
                return(null);
            }));

            Attributes.Add("size", new HassiumProperty("size", x => new HassiumSize(Value.Width, Value.Height),
                                                       x =>
            {
                Value.Size = ((HassiumSize)x[0]).Value;
                return(null);
            }));

            Attributes.Add("width", new HassiumProperty("width", x => Value.Width, x => Value.Width = x[0].HInt().Value));

            Attributes.Add("height", new HassiumProperty("height", x => Value.Height, x => Value.Height = x[0].HInt().Value));

            Attributes.Add("visible", new HassiumProperty("visible", x => Value.Visible, x => Value.Visible = x[0].HBool().Value));
        }
        protected HassiumControl()
        {
            Attributes.Add("backColor", new HassiumProperty("backColor", x => new HassiumColor(Value.BackColor),
                x => { Value.BackColor = ((HassiumColor) x[0]).Value;
                         return null;
                }));

            Attributes.Add("backImage", new HassiumProperty("backImage", x => new HassiumImage(Value.BackgroundImage),
                x => {
                    Value.BackgroundImage = ((HassiumImage)x[0]).Value;
                    return null;
                }));

            Attributes.Add("controls", new HassiumProperty("controls", x =>
            {
                var ret = new HassiumArray(Value.Controls.Cast<Control>().Select(y => new HassiumControl(y)));
                ret.Attributes["add"] = new InternalFunction(y =>
                {
                    Value.Controls.Add(((HassiumControl) y[0]).Value);
                    return null;
                }, 1);

                ret.Attributes["remove"] = new InternalFunction(y =>
                {
                    Value.Controls.Remove(((HassiumControl)y[0]).Value);
                    return null;
                }, 1);
                return ret;
            }, null, true));

            Attributes.Add("enabled", new HassiumProperty("enabled", x => Value.Enabled, x => Value.Enabled = x[0].HBool().Value));

            Attributes.Add("foreColor", new HassiumProperty("foreColor", x => new HassiumColor(Value.ForeColor),
                x => {
                    Value.ForeColor = ((HassiumColor)x[0]).Value;
                    return null;
                }));

            Attributes.Add("location", new HassiumProperty("location", x => new HassiumPoint(Value.Location.X, Value.Location.Y),
                x =>
                {
                    Value.Location = ((HassiumPoint) x[0]).Value;
                    return null;
                }));

            Attributes.Add("x", new HassiumProperty("x", x => Value.Location.X, x =>
            {
                Value.Location = new Point(x[0].HInt().Value, Value.Location.Y);
                return null;
            }));

            Attributes.Add("y", new HassiumProperty("y", x => Value.Location.Y, x =>
            {
                Value.Location = new Point(Value.Location.X, x[0].HInt().Value);
                return null;
            }));

            Attributes.Add("name", new HassiumProperty("name", x => Value.Name, x => Value.Name = x[0].ToString()));

            Attributes.Add("parent", new HassiumProperty("parent", x => new HassiumControl(Value.Parent), x =>
            {
                Value.Parent = ((HassiumControl) x[0]).Value;
                return null;
            }));

            Attributes.Add("size", new HassiumProperty("size", x => new HassiumSize(Value.Width, Value.Height),
                x =>
                {
                    Value.Size = ((HassiumSize)x[0]).Value;
                    return null;
                }));

            Attributes.Add("width", new HassiumProperty("width", x => Value.Width, x => Value.Width = x[0].HInt().Value));

            Attributes.Add("height", new HassiumProperty("height", x => Value.Height, x => Value.Height = x[0].HInt().Value));

            Attributes.Add("visible", new HassiumProperty("visible", x => Value.Visible, x => Value.Visible = x[0].HBool().Value));
        }