Beispiel #1
0
	static Control OrdinaryQuestionWidget(Racr.AstNode n) {
		Widget w;
		if (n.Type() == ValueTypes.Boolean) {
			w = new CheckWidget(n.GetLabel());
			var cb = w.GetCheckBox();
			cb.CheckedChanged += (object sender, EventArgs e) => {
				if (!cb.ContainsFocus) return;
				n.SetValue(cb.Checked);
				n.Root().Render();
			};
		}
		else {
			w = new TextWidget(n.GetLabel());
			var tb = w.GetTextBox();
			tb.TextChanged += (object sender, EventArgs e) => {
				if (!tb.ContainsFocus) return;
				if (n.Type() == ValueTypes.Number) {
					try { n.SetValue(Convert.ToDouble(tb.Text)); }
					catch { return; }
				}
				else n.SetValue(tb.Text);
				n.Root().Render();
			};
		}
		n.Parent().Widget().Controls.Add(w);
		return w;
	}
Beispiel #2
0
    static Control OrdinaryQuestionWidget(Racr.AstNode n)
    {
        Widget w;

        if (n.Type() == ValueTypes.Boolean)
        {
            w = new CheckWidget(n.GetLabel());
            var cb = w.GetCheckBox();
            cb.CheckedChanged += (object sender, EventArgs e) => {
                if (!cb.ContainsFocus)
                {
                    return;
                }
                n.SetValue(cb.Checked);
                n.Root().Render();
            };
        }
        else
        {
            w = new TextWidget(n.GetLabel());
            var tb = w.GetTextBox();
            tb.TextChanged += (object sender, EventArgs e) => {
                if (!tb.ContainsFocus)
                {
                    return;
                }
                if (n.Type() == ValueTypes.Number)
                {
                    try { n.SetValue(Convert.ToDouble(tb.Text)); }
                    catch { return; }
                }
                else
                {
                    n.SetValue(tb.Text);
                }
                n.Root().Render();
            };
        }
        n.Parent().Widget().Controls.Add(w);
        return(w);
    }