Ejemplo n.º 1
0
 public static void Open(
     this IModalHost modalHost,
     Command confirm,
     IControl fill,
     Command?cancel      = null,
     Text?confirmText    = null,
     Text?cancelText     = null,
     Text?confirmTooltip = null)
 {
     modalHost.OpenModal(
         close => Layout.Dock()
         .Top(
             ConfirmCancelControl.Create(close, confirm, fill, cancel, confirmText, cancelText, confirmTooltip)
             .WithBackground(Theme.PanelBackground)
             .MakeHittable()
             .Control)
         .Fill(Control.Empty.WithBackground(Color.FromRgba(0x00000066))));
 }
Ejemplo n.º 2
0
        public static void OpenDialog(
            IModalHost modalHost,
            IExtractClassViewModel viewModel)
        {
            var toggleCreateInNewFile = viewModel.CreateInNewFile.Toggle();

            var errorMsg = Label.Create(
                text: viewModel.UserInfo.AsText(),
                font: Theme.DescriptorFont,
                color: Theme.ErrorColor,
                lineBreakMode: LineBreakMode.TruncateTail)
                           .CenterVertically()
                           .WithHeight(26);

            var optionsPart =
                Layout.StackFromTop(
                    Layout.Dock()
                    .Left(CheckBox.Create(viewModel.CreateInNewFile, toggleCreateInNewFile)
                          .CenterVertically()
                          .WithPadding(right: new Points(4), top: new Points(1)))
                    .Fill(
                        Label.Create(
                            "Extract to new file",
                            Theme.DefaultFont,
                            color: Theme.DefaultText)
                        .OnMouse(pressed: toggleCreateInNewFile)
                        .CenterVertically())
                    .WithHeight(22),
                    Layout.Dock()
                    .Left(Control.Empty.WithWidth(21))
                    .Fill(
                        Label.Create(
                            "Create a new .ux file for the class",
                            Theme.DefaultFont,
                            color: Theme.DescriptorText,
                            lineBreakMode: LineBreakMode.TruncateTail))
                    .CenterVertically()
                    .WithHeight(21),
                    Layout.Dock()
                    .Left(Control.Empty.WithWidth(21))
                    .Fill(ThemedTextBox.Create(viewModel.NewFileName))
                    .WithPadding(top: new Points(6), bottom: new Points(3))
                    );

            var content =
                Layout.StackFromTop(
                    Layout.Dock()
                    .Left(
                        Label.Create("ux:Class", Theme.DefaultFont, color: Theme.DefaultText)
                        .CenterVertically().WithPadding(right: new Points(4)))
                    .Fill(ThemedTextBox.Create(viewModel.ClassName))
                    .WithPadding(bottom: new Points(23)),
                    optionsPart,
                    errorMsg)
                .WithPadding(left: new Points(15), top: new Points(15), right: new Points(15));

            modalHost.Open(
                confirm: viewModel.CreateCommand,
                fill: Layout.Dock()
                .Top(
                    // Just use button as header for dialog
                    CreateButton(Command.Enabled(() => {}), hoverColor: Theme.DefaultText))
                .Fill(content),
                confirmText: "Create class",
                confirmTooltip: "Creates new UX class based on selected element");
        }