Exemplo n.º 1
0
    [AgRule("Widget", "OrdinaryQuestion")] static Control OrdinaryQuestionWidget(Ast n)
    {
        QDialog dialog = n.Dialog();

        ((Control)dialog).Enabled = true;
        EventHandler h = (object o, EventArgs a) => {
            if (!((Control)o).ContainsFocus)
            {
                return;                                          // TODO: For which reason is this check needed?
            }
            n.SetValue(dialog.GetValue());
            n.Root().Render();
        };

        dialog.AddEventHandler(h);

        var contentBox = new FlowLayoutPanel();

        contentBox.AutoSize      = true;
        contentBox.WrapContents  = false;
        contentBox.FlowDirection = FlowDirection.LeftToRight;
        var label = new Label();

        label.Text     = n.GetLabel();
        label.AutoSize = true;
        label.Anchor   = AnchorStyles.Left;
        contentBox.Controls.Add(label);
        contentBox.Controls.Add((Control)dialog);

        n.Parent().Widget().Controls.Add(contentBox);
        return(contentBox);
    }
Exemplo n.º 2
0
    [AgRule("Widget", "ComputedQuestion")] static Box ComputedQuestionWidget(Ast n)
    {
        Widget dialog = (Widget)n.Dialog();

        dialog.Sensitive = false;
        HBox box = new HBox(false, 5);

        if (!n.IsLValid())
        {
            Image warning = new Image(Stock.DialogWarning, IconSize.Button);
            box.PackStart(warning, false, false, 3);
        }
        box.PackStart(new Label(n.GetLabel()), false, false, 5);
        box.PackStart(dialog, true, true, 5);
        n.Parent().Widget().PackStart(box, false, false, 5);
        box.ShowAll();
        return(box);
    }
Exemplo n.º 3
0
    private static void UpdateQuestions(Ast n)
    {
        switch (n.NodeType())
        {
        case "Form":
        case "Group":
            foreach (var c in n.GetBody().Children())
            {
                UpdateQuestions(c as Ast);
            }
            break;

        case "ComputedQuestion":
            break;

        default:
            n.Dialog().SetValue(n.Value());
            break;
        }
    }
Exemplo n.º 4
0
    [AgRule("Widget", "ComputedQuestion")] static Control ComputedQuestionWidget(Ast n)
    {
        Control dialog = (Control)n.Dialog();

        dialog.Enabled = false;

        var contentBox = new FlowLayoutPanel();

        contentBox.AutoSize      = true;
        contentBox.WrapContents  = false;
        contentBox.FlowDirection = FlowDirection.LeftToRight;
        var label = new Label();

        label.Text     = n.GetLabel();
        label.AutoSize = true;
        label.Anchor   = AnchorStyles.Left;
        contentBox.Controls.Add(label);
        contentBox.Controls.Add(dialog);

        n.Parent().Widget().Controls.Add(contentBox);
        return(contentBox);
    }
Exemplo n.º 5
0
    [AgRule("Widget", "OrdinaryQuestion")] static Box OrdinaryQuestionWidget(Ast n)
    {
        QDialog      dialog = n.Dialog();
        EventHandler h      = (object o, EventArgs a) => {
            n.SetValue(dialog.GetValue());
            n.Root().Render();
        };

        dialog.AddEventHandler(h);
        HBox box = new HBox(false, 5);

        if (!n.IsLValid())
        {
            Image warning = new Image(Stock.DialogWarning, IconSize.Button);
            box.PackStart(warning, false, false, 3);
        }
        box.PackStart(new Label(n.GetLabel()), false, false, 5);
        box.PackStart((Widget)dialog, true, true, 5);
        n.Parent().Widget().PackStart(box, false, false, 5);
        box.ShowAll();
        return(box);
    }
Exemplo n.º 6
0
 [AgRule("Render", "ComputedQuestion")] static bool ComputedQuestionRender(Ast n)
 {
     n.Dialog().SetValue(n.Value());
     return(true);
 }