public override object exec(s.Node <object> args) { String msg = args.First() as String; MessageBox.Show(msg); return(null); }
public override object exec(s.Node <object> args) { String type = args.First() as String; if (type == "button") { return(new Button()); } else if (type == "div") { return(new Panel()); } else if (type == "flow") { return(new FlowLayoutPanel()); } else if (type == "input") { TextBox t = new TextBox(); t.ImeMode = ImeMode.HangulFull; return(t); } else { return(null); } }
public WinFormMVE(MainForm form) { Encoding encoding = new UTF8Encoding(false); char line_split = '\n'; s.S slib = new s.S(line_split, encoding); slib.addDef("read", new s.library.Read(line_split, encoding)); slib.addDef("write", new s.library.Write()); slib.addDef("cache", new s.library.Cache()); //slib.addDef("build-element", new BuildElement()); slib.loadLib(s.LibPath.instance().calculate("mve/index.lisp"), "mve", s.Node <Object> .extend(DOM.build(), null)); s.Function fun = slib.run("./s/index/index.lisp") as s.Function; s.Node <Object> o = fun.exec(null) as s.Node <Object>; s.Function getElement = s.Node <Object> .kvs_find1st(o, "getElement") as s.Function; s.Function init = s.Node <Object> .kvs_find1st(o, "init") as s.Function; s.Function destroy = s.Node <Object> .kvs_find1st(o, "destroy") as s.Function; Control els = getElement.exec(null) as Control; form.Controls.Add(els); els.Dock = DockStyle.Fill; init.exec(null); form.FormClosing += new System.Windows.Forms.FormClosingEventHandler(form_FormClosing); this.destroy = destroy; }
public override object exec(s.Node <object> args) { Control el = args.First() as Control; args = args.Rest(); Control child = args.First() as Control; el.Controls.Remove(child); return(null); }
private Object loadValue(String relative_path, bool delay, s.Node <Object> delay_args) { Object value = s.library.Load.run_e(s.Util.exe_path(relative_path), scope, lineSplit, encoding); if (delay) { value = (value as Function).exec(delay_args); } return(value); }
public override object exec(s.Node <object> args) { Control old_e = args.First() as Control; args = args.Rest(); Control new_e = args.First() as Control; int old_idx = old_e.Parent.Controls.IndexOf(old_e); old_e.Parent.Controls.Add(new_e); old_e.Parent.Controls.SetChildIndex(new_e, old_idx); old_e.Parent.Controls.Remove(old_e); return(null); }
/*将值作为kvs挂载*/ private S loadLibKVS(Object kvs) { s.Node <Object> tmp = kvs as s.Node <Object>; while (tmp != null) { String key = tmp.First() as String; tmp = tmp.Rest(); Object value = tmp.First(); tmp = tmp.Rest(); scope = s.Node <Object> .kvs_extend(key, value, scope); } return(this); }
public override object exec(s.Node <object> args) { String msg = args.First() as String; DialogResult dr = MessageBox.Show(msg, "", MessageBoxButtons.OKCancel); if (dr == DialogResult.OK) { return(true); } else { return(false); } }
public override object exec(s.Node <object> args) { Control c = args.First() as Control; args = args.Rest(); String key = args.First() as String; args = args.Rest(); s.Function act = args.First() as s.Function; if (key == "click") { c.Click += new EventHandler(new SEventHandle(act).run); } return(null); }
public override object exec(s.Node <object> args) { Control c = args.First() as Control; args = args.Rest(); if (args == null) { if (c is TextBox) { return((c as TextBox).Text); } } else { String value = args.First() as String; if (c is TextBox) { (c as TextBox).Text = value; } } return(null); }
public override object exec(s.Node <object> args) { Control c = args.First() as Control; args = args.Rest(); if (args == null) { if (c is Button) { return((c as Button).Text); } } else { String text = args.First() as String; if (c is Button) { (c as Button).Text = text; } } return(null); }
public static s.Node <Object> build() { s.Node <Object> dom = null; dom = s.Node <Object> .kvs_extend("createElement", new DOMCreateElement(), dom); dom = s.Node <Object> .kvs_extend("attr", new DOMAttr(), dom); dom = s.Node <Object> .kvs_extend("action", new DOMAction(), dom); dom = s.Node <Object> .kvs_extend("appendChild", new DOMAppendChild(), dom); dom = s.Node <Object> .kvs_extend("replaceWith", new DOMReplaceWith(), dom); dom = s.Node <Object> .kvs_extend("removeChild", new DOMRemoveChild(), dom); dom = s.Node <Object> .kvs_extend("text", new DOMText(), dom); dom = s.Node <Object> .kvs_extend("value", new DOMValue(), dom); dom = s.Node <Object> .kvs_extend("alert", new DOMAlert(), dom); dom = s.Node <Object> .kvs_extend("confirm", new DOMConfirm(), dom); /*以下未定义*/ dom = s.Node <Object> .kvs_extend("locsize", new DOMUnDefined(), dom); dom = s.Node <Object> .kvs_extend("createTextNode", new DOMUnDefined(), dom); dom = s.Node <Object> .kvs_extend("style", new DOMUnDefined(), dom); dom = s.Node <Object> .kvs_extend("prop", new DOMUnDefined(), dom); dom = s.Node <Object> .kvs_extend("html", new DOMUnDefined(), dom); return(dom); }
public override object exec(s.Node <object> args) { return(null); }
public override object exec(s.Node <object> args) { Control c = args.First() as Control; args = args.Rest(); String key = args.First() as String; args = args.Rest(); if (args == null) { if (key == "dock") { return(c.Dock.ToString()); } else if (key == "width") { return(c.Width); } else if (key == "height") { return(c.Height); } else if (key == "back-color") { return(System.Drawing.ColorTranslator.ToHtml(c.BackColor)); } } else { Object value = args.First(); if (key == "dock") { /* * Dock是反常的,是从最后一个组件排,通常第一个组件是Fill,填充剩下的位置。 * 而常用的方式比如顺序向下,最后一个Fill,则恰巧相反 * 因此第一个Fill在最上,下面的都是Bottom,这样符合预期 */ String v = value as String; if (v == "Bottom") { c.Dock = DockStyle.Bottom; } else if (v == "Top") { c.Dock = DockStyle.Top; } else if (v == "Left") { c.Dock = DockStyle.Left; } else if (v == "Right") { c.Dock = DockStyle.Right; } else if (v == "Fill") { c.Dock = DockStyle.Fill; } else if (v == "None") { c.Dock = DockStyle.None; } } else if (key == "width") { c.Width = (int)value; } else if (key == "height") { c.Height = (int)value; } else if (key == "back-color") { String color = value as String; if (color.StartsWith("#")) { c.BackColor = System.Drawing.ColorTranslator.FromHtml(color); } else if (color.StartsWith("rgba")) { int start = color.IndexOf("(") + 1; int end = color.IndexOf(")"); color = color.Substring(start, end - start); String[] cs = color.Split(','); if (cs.Length == 4) { c.BackColor = Color.FromArgb((int)(double.Parse(cs[3]) * 255 / 100), int.Parse(cs[0]), int.Parse(cs[1]), int.Parse(cs[2])); } else if (cs.Length == 3) { c.BackColor = Color.FromArgb(int.Parse(cs[0]), int.Parse(cs[1]), int.Parse(cs[2])); } } } } return(null); }
public S loadLib(String relative_path, s.Node <Object> delay_args) { return(loadLibKVS(loadValue(relative_path, true, delay_args))); }