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)))); }
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"); }