Beispiel #1
0
 public virtual Windows.UI.Xaml.UIElement setStyleForTextInputWidget(cave.ui.TextInputWidget widget, bool allowReplace)
 {
     widget.setWidgetBackgroundColor(cave.Color.white());
     widget.setWidgetPadding(context.getHeightValue("1500um"));
     widget.setWidgetFontSize((double)context.getHeightValue("3000um"));
     return((Windows.UI.Xaml.UIElement)widget);
 }
        public static cave.ui.TextInputWidget forType(cave.GuiApplicationContext context, int type, string placeholder)
        {
            var v = new cave.ui.TextInputWidget(context);

            v.setWidgetType(type);
            v.setWidgetPlaceholder(placeholder);
            return(v);
        }
Beispiel #3
0
        public void showTextInputDialog(string title, string prompt, System.Action <string> callback = null)
        {
            checkForDefaultColors();
            var mm2    = context.getWidthValue("2mm");
            var mm3    = context.getWidthValue("3mm");
            var widget = new cave.ui.LayerWidget(context);

            widget.setWidgetWidthRequest(context.getWidthValue("100mm"));
            widget.addWidget((Windows.UI.Xaml.UIElement)cave.ui.CanvasWidget.forColor(context, backgroundColor));
            var titleLabel = cave.ui.LabelWidget.forText(context, title);

            titleLabel.setWidgetFontSize((double)mm3);
            titleLabel.setWidgetTextColor(headerTextColor);
            titleLabel.setWidgetFontBold(true);
            var box = new cave.ui.VerticalBoxWidget(context);

            box.addWidget((Windows.UI.Xaml.UIElement) new cave.ui.LayerWidget(context).addWidget((Windows.UI.Xaml.UIElement)cave.ui.CanvasWidget.forColor(context, headerBackgroundColor)).addWidget((Windows.UI.Xaml.UIElement)cave.ui.AlignWidget.forWidget(context, (Windows.UI.Xaml.UIElement)titleLabel, (double)0, 0.50).setWidgetMargin(mm3)));
            var sbox = new cave.ui.VerticalBoxWidget(context);

            sbox.setWidgetMargin(mm3);
            sbox.setWidgetSpacing(mm3);
            var messageLabel = cave.ui.LabelWidget.forText(context, prompt);

            messageLabel.setWidgetTextAlign(cave.ui.LabelWidget.ALIGN_CENTER);
            messageLabel.setWidgetFontSize((double)mm3);
            messageLabel.setWidgetTextColor(messageTextColor);
            sbox.addWidget((Windows.UI.Xaml.UIElement)messageLabel);
            var input = new cave.ui.TextInputWidget(context);

            input.setWidgetBackgroundColor(cave.Color.forRGB(200, 200, 200));
            input.setWidgetPadding(context.getHeightValue("2mm"));
            input.setWidgetFontSize((double)context.getHeightValue("3000um"));
            sbox.addWidget((Windows.UI.Xaml.UIElement)input);
            var buttons = new cave.ui.HorizontalBoxWidget(context);

            buttons.setWidgetSpacing(mm3);
            var noButton = cave.ui.TextButtonWidget.forText(context, "Cancel", null);

            noButton.setWidgetBackgroundColor(negativeButtonColor);
            buttons.addWidget((Windows.UI.Xaml.UIElement)noButton, 1.00);
            var yesButton = cave.ui.TextButtonWidget.forText(context, "OK", null);

            yesButton.setWidgetBackgroundColor(positiveButtonColor);
            buttons.addWidget((Windows.UI.Xaml.UIElement)yesButton, 1.00);
            sbox.addWidget((Windows.UI.Xaml.UIElement)buttons);
            box.addWidget((Windows.UI.Xaml.UIElement)sbox);
            widget.addWidget((Windows.UI.Xaml.UIElement)box);
            var pp = cave.ui.PopupWidget.forContentWidget(context, (Windows.UI.Xaml.UIElement)cave.ui.LayerWidget.forWidget(context, (Windows.UI.Xaml.UIElement)widget, mm2));
            var cb = callback;

            pp.showPopup(parent);
            yesButton.setWidgetClickHandler(() => {
                pp.hidePopup();
                if (cb != null)
                {
                    cb(input.getWidgetText());
                }
            });
            noButton.setWidgetClickHandler(() => {
                pp.hidePopup();
                if (cb != null)
                {
                    cb(null);
                }
            });
        }