public async Task <int> SelectChoiceAsync( string title, IList <string> choices, string confirmingText = "Ok", string dismissiveText = "Cancel", MaterialConfirmationDialogConfiguration configuration = null) { return((int)await MaterialConfirmationDialog.ShowSelectChoiceAsync(title, choices, confirmingText, dismissiveText, configuration)); }
public async Task <int[]> SelectChoicesAsync( string title, IList choices, IList <int> selectedIndices, string choiceBindingName = null, string confirmingText = "Ok", string dismissiveText = "Cancel", MaterialConfirmationDialogConfiguration configuration = null) { return((int[])await MaterialConfirmationDialog.ShowSelectChoicesAsync(title, choices, selectedIndices, choiceBindingName, confirmingText, dismissiveText, configuration)); }
public async Task <int> SelectChoiceAsync( string title, IList <string> choices, int selectedIndex, string confirmingText = "Ok", string dismissiveText = "Cancel", MaterialConfirmationDialogConfiguration configuration = null, bool closeOnSelection = false) { return((int)await MaterialConfirmationDialog.ShowSelectChoiceAsync(title, choices, selectedIndex, confirmingText, dismissiveText, configuration, closeOnSelection)); }
private void ConfigureStylesheets() { var alertDialogConfiguration = new MaterialAlertDialogConfiguration { BackgroundColor = XF.Material.Forms.Material.GetResource <Color>(MaterialConstants.Color.PRIMARY), TitleTextColor = Color.White, TitleFontFamily = XF.Material.Forms.Material.GetResource <OnPlatform <string> >("FontFamily.RobotoRegular"), MessageTextColor = Color.White, MessageFontFamily = XF.Material.Forms.Material.GetResource <OnPlatform <string> >("FontFamily.RobotoRegular"), TintColor = Color.White, ButtonFontFamily = XF.Material.Forms.Material.GetResource <OnPlatform <string> >("FontFamily.RobotoRegular"), CornerRadius = 8, ScrimColor = Color.FromHex("#011A27").MultiplyAlpha(0.32), ButtonAllCaps = false }; var alertconfirmationDialogConfiguration = new MaterialConfirmationDialogConfiguration { BackgroundColor = XF.Material.Forms.Material.GetResource <Color>(MaterialConstants.Color.PRIMARY), TitleTextColor = Color.White, TitleFontFamily = XF.Material.Forms.Material.GetResource <OnPlatform <string> >("FontFamily.RobotoRegular"), TintColor = Color.White, ButtonFontFamily = XF.Material.Forms.Material.GetResource <OnPlatform <string> >("FontFamily.RobotoRegular"), CornerRadius = 8, ScrimColor = Color.FromHex("#011A27").MultiplyAlpha(0.32), ButtonAllCaps = false }; var alertloadingDialogConfiguration = new MaterialLoadingDialogConfiguration { BackgroundColor = XF.Material.Forms.Material.GetResource <Color>(MaterialConstants.Color.PRIMARY), MessageTextColor = Color.White, TintColor = Color.White, MessageFontFamily = XF.Material.Forms.Material.GetResource <OnPlatform <string> >("FontFamily.RobotoRegular"), CornerRadius = 8, ScrimColor = Color.FromHex("#011A27").MultiplyAlpha(0.32) }; var alertsimpleDialogConfiguration = new MaterialSimpleDialogConfiguration { BackgroundColor = XF.Material.Forms.Material.GetResource <Color>(MaterialConstants.Color.PRIMARY), TitleTextColor = Color.White, TitleFontFamily = XF.Material.Forms.Material.GetResource <OnPlatform <string> >("FontFamily.RobotoRegular"), TintColor = Color.White, TextFontFamily = XF.Material.Forms.Material.GetResource <OnPlatform <string> >("FontFamily.RobotoRegular"), CornerRadius = 8, ScrimColor = Color.FromHex("#011A27").MultiplyAlpha(0.32), TextColor = Color.White }; MaterialDialog.Instance.SetGlobalStyles(alertDialogConfiguration, alertloadingDialogConfiguration, null, alertsimpleDialogConfiguration, alertconfirmationDialogConfiguration); }
private void Configure(MaterialConfirmationDialogConfiguration configuration) { MaterialConfirmationDialogConfiguration preferredConfig = configuration ?? GlobalConfiguration; if (preferredConfig == null) { return; } this.BackgroundColor = preferredConfig.ScrimColor; this.Container.CornerRadius = preferredConfig.CornerRadius; this.Container.BackgroundColor = preferredConfig.BackgroundColor; this.PositiveButton.TextColor = this.NegativeButton.TextColor = preferredConfig.TintColor; this.PositiveButton.AllCaps = this.NegativeButton.AllCaps = preferredConfig.ButtonAllCaps; this.PositiveButton.FontFamily = this.NegativeButton.FontFamily = preferredConfig.ButtonFontFamily; this.Container.Margin = preferredConfig.Margin == default ? Material.GetResource <Thickness>("Material.Dialog.Margin") : preferredConfig.Margin; }
private void Configure(MaterialConfirmationDialogConfiguration configuration) { _preferredConfig = configuration ?? GlobalConfiguration; if (_preferredConfig != null) { this.BackgroundColor = _preferredConfig.ScrimColor; Container.CornerRadius = _preferredConfig.CornerRadius; Container.BackgroundColor = _preferredConfig.BackgroundColor; DialogTitle.TextColor = _preferredConfig.TitleTextColor; DialogTitle.FontFamily = _preferredConfig.TitleFontFamily; PositiveButton.TextColor = NegativeButton.TextColor = _preferredConfig.TintColor; PositiveButton.AllCaps = NegativeButton.AllCaps = _preferredConfig.ButtonAllCaps; PositiveButton.FontFamily = NegativeButton.FontFamily = _preferredConfig.ButtonFontFamily; } }
public void SetGlobalStyles( MaterialAlertDialogConfiguration dialogConfiguration = null, MaterialLoadingDialogConfiguration loadingDialogConfiguration = null, MaterialSnackbarConfiguration snackbarConfiguration = null, MaterialSimpleDialogConfiguration simpleDialogConfiguration = null, MaterialConfirmationDialogConfiguration confirmationDialogConfiguration = null, MaterialInputDialogConfiguration inputDialogConfiguration = null, MaterialAlertDialogConfiguration customContentDialogConfiguration = null) { MaterialAlertDialog.GlobalConfiguration = dialogConfiguration; MaterialLoadingDialog.GlobalConfiguration = loadingDialogConfiguration; MaterialSnackbar.GlobalConfiguration = snackbarConfiguration; MaterialSimpleDialog.GlobalConfiguration = simpleDialogConfiguration; MaterialConfirmationDialog.GlobalConfiguration = confirmationDialogConfiguration; MaterialInputDialog.GlobalConfiguration = inputDialogConfiguration; MaterialDialogFragment.GlobalConfiguration = customContentDialogConfiguration; }
private void Configure(MaterialConfirmationDialogConfiguration configuration) { _preferredConfig = configuration ?? GlobalConfiguration; if (_preferredConfig == null) { return; } this.BackgroundColor = _preferredConfig.ScrimColor; Container.CornerRadius = _preferredConfig.CornerRadius; Container.BackgroundColor = _preferredConfig.BackgroundColor; DialogTitle.TextColor = _preferredConfig.TitleTextColor; DialogTitle.FontFamily = _preferredConfig.TitleFontFamily; PositiveButton.TextColor = NegativeButton.TextColor = _preferredConfig.TintColor; PositiveButton.AllCaps = NegativeButton.AllCaps = _preferredConfig.ButtonAllCaps; PositiveButton.FontFamily = NegativeButton.FontFamily = _preferredConfig.ButtonFontFamily; Container.Margin = _preferredConfig.Margin == default ? Material.GetResource <Thickness>("Material.Dialog.Margin") : _preferredConfig.Margin; }
public async Task <int?> SelectChoiceAsync( string title, IList choices, string choiceBindingName = null, string confirmingText = "Ok", string dismissiveText = "Cancel", MaterialConfirmationDialogConfiguration configuration = null) { var result = await MaterialConfirmationDialog.ShowSelectChoiceAsync(title, choices, choiceBindingName, confirmingText, dismissiveText, configuration); if (result != null) { int[] choice = (int[])result; return(choice[0]); } else { return(null); } }
internal MaterialConfirmationDialog(MaterialConfirmationDialogConfiguration configuration) { this.InitializeComponent(); this.Configure(configuration); }
public static async Task <object> ShowSelectChoiceAsync(string title, IList <string> choices, string confirmingText = "Ok", string dismissiveText = "Cancel", MaterialConfirmationDialogConfiguration configuration = null, bool closeOnSelection = false) { using var dialog = new MaterialConfirmationDialog(configuration) { InputTaskCompletionSource = new TaskCompletionSource <object>(), _radioButtonGroup = new MaterialRadioButtonGroup { HorizontalSpacing = 20, Choices = choices ?? throw new ArgumentNullException(nameof(choices)), } }; if (dialog._preferredConfig != null) { dialog._radioButtonGroup.SelectedColor = dialog._preferredConfig.ControlSelectedColor; dialog._radioButtonGroup.UnselectedColor = dialog._preferredConfig.ControlUnselectedColor; dialog._radioButtonGroup.FontFamily = dialog._preferredConfig.TextFontFamily; dialog._radioButtonGroup.TextColor = dialog._preferredConfig.TextColor; } if (closeOnSelection) { dialog.PositiveButton.IsVisible = false; dialog._radioButtonGroup.SelectedIndexChanged += (sender, args) => dialog.PositiveButton_Clicked(sender, EventArgs.Empty); } dialog._radioButtonGroup.ShouldShowScrollbar = true; dialog.DialogTitle.Text = !string.IsNullOrEmpty(title) ? title : throw new ArgumentNullException(nameof(title)); dialog.PositiveButton.Text = confirmingText; dialog.NegativeButton.Text = dismissiveText; dialog.container.Content = dialog._radioButtonGroup; await dialog.ShowAsync().ConfigureAwait(false); return(await dialog.InputTaskCompletionSource.Task.ConfigureAwait(false)); }
public static void SetDialogConfiguration(BindableObject bindable, MaterialConfirmationDialogConfiguration configuration) { bindable.SetValue(DialogConfigurationProperty, configuration); }
public static async Task <object> ShowSelectChoicesAsync(string title, IList <string> choices, IList <int> selectedIndices, string confirmingText = "Ok", string dismissiveText = "Cancel", MaterialConfirmationDialogConfiguration configuration = null) { var dialog = new MaterialConfirmationDialog(configuration) { InputTaskCompletionSource = new TaskCompletionSource <object>(), _checkboxGroup = new MaterialCheckboxGroup { HorizontalSpacing = 20, Choices = choices ?? throw new ArgumentNullException(nameof(choices)), SelectedIndices = selectedIndices.ToList() } }; if (dialog._preferredConfig != null) { dialog._checkboxGroup.SelectedColor = dialog._preferredConfig.ControlSelectedColor; dialog._checkboxGroup.UnselectedColor = dialog._preferredConfig.ControlUnselectedColor; dialog._checkboxGroup.FontFamily = dialog._preferredConfig.TextFontFamily; dialog._checkboxGroup.TextColor = dialog._preferredConfig.TextColor; } dialog._checkboxGroup.ShouldShowScrollbar = true; dialog._isMultiChoice = true; dialog.DialogTitle.Text = !string.IsNullOrEmpty(title) ? title : throw new ArgumentNullException(nameof(title)); dialog.container.Content = dialog._checkboxGroup; dialog.PositiveButton.IsEnabled = true; dialog.PositiveButton.Text = confirmingText; dialog.NegativeButton.Text = dismissiveText; await dialog.ShowAsync(); return(await dialog.InputTaskCompletionSource.Task); }
public static async Task <object> ShowSelectChoiceAsync(string title, IList choices, string choiceBindingName = null, string confirmingText = "Ok", string dismissiveText = "Cancel", MaterialConfirmationDialogConfiguration configuration = null) { var radioButtonGroup = new MaterialRadioButtonGroup { HorizontalSpacing = 20, ChoicesBindingName = choiceBindingName }; radioButtonGroup.Choices = choices ?? throw new ArgumentNullException(nameof(choices)); var dialog = new MaterialConfirmationDialog(configuration) { InputTaskCompletionSource = new TaskCompletionSource <object>(), _controlGroup = radioButtonGroup }; if (dialog._preferredConfig != null) { dialog._controlGroup.SelectedColor = dialog._preferredConfig.ControlSelectedColor; dialog._controlGroup.UnselectedColor = dialog._preferredConfig.ControlUnselectedColor; dialog._controlGroup.FontFamily = dialog._preferredConfig.TextFontFamily; dialog._controlGroup.TextColor = dialog._preferredConfig.TextColor; } dialog._controlGroup.ShouldShowScrollbar = true; dialog.DialogTitle.Text = !string.IsNullOrEmpty(title) ? title : throw new ArgumentNullException(nameof(title)); dialog.PositiveButton.IsEnabled = false; dialog.PositiveButton.Text = confirmingText.ToUpper(); dialog.NegativeButton.Text = dismissiveText.ToUpper(); dialog.container.Content = dialog._controlGroup; await dialog.ShowAsync(); return(await dialog.InputTaskCompletionSource.Task); }
public static async Task <DateTime?> Show(string title = "Select Date", string confirmingText = "Ok", string dismissiveText = "Cancel", MaterialConfirmationDialogConfiguration configuration = null) { using (MaterialDatePicker dialog = new MaterialDatePicker(title, confirmingText.ToUpper(), dismissiveText.ToUpper(), configuration) { PositiveButton = { IsEnabled = false } }) { await dialog.ShowAsync(); return(await dialog.InputTaskCompletionSource.Task); } }
/// <summary> /// Shows a confirmation dialog that allows the user to select one of the listed choices. Returns the index of the selected choice. /// </summary> /// <param name="title">The title of the confirmation dialog. This parameter must not be null or empty.</param> /// <param name="choices">The list of choices the user will choose from.</param> /// <exception cref="ArgumentNullException" /> public static async Task <int> ShowSelectChoiceAsync(string title, IList <string> choices, MaterialConfirmationDialogConfiguration configuration = null, bool closeOnSelection = false) { return((int)await MaterialConfirmationDialog.ShowSelectChoiceAsync(title, choices, null, null, configuration, closeOnSelection)); }
/// <summary> /// Shows a confirmation dialog that allows the user to select one of the listed choices. Returns the index of the selected choice. If none was selected, returns -1. /// </summary> /// <param name="title">The title of the confirmation dialog. This parameter must not be null or empty.</param> /// <param name="choices">The list of choices the user will choose from.</param> /// <param name="selectedIndex">The currently selected index.</param> /// <param name="configuration">The style of the confirmation dialog.</param> /// <exception cref="ArgumentNullException" /> /// <exception cref="IndexOutOfRangeException" /> public async Task <int> SelectChoiceAsync(string title, IList <string> choices, int selectedIndex, MaterialConfirmationDialogConfiguration configuration = null) { return((int)await MaterialConfirmationDialog.ShowSelectChoiceAsync(title, choices, selectedIndex, configuration)); }
/// <summary> /// Sets the global styles for <see cref="MaterialAlertDialog"/>, <see cref="MaterialLoadingDialog"/>, <see cref="MaterialSimpleDialog"/>, <see cref="MaterialConfirmationDialog"/>, and <see cref="MaterialSnackbar"/>. Parameters can be null. /// </summary> /// <param name="dialogConfiguration">Global style for <see cref="MaterialAlertDialog"/>.</param> /// <param name="loadingDialogConfiguration">Global style for <see cref="MaterialLoadingDialog"/>.</param> /// <param name="snackbarConfiguration">Global style for <see cref="MaterialSnackbar"/>.</param> /// <param name="simpleDialogConfiguration">Global style for <see cref="MaterialSimpleDialog"/>.</param> /// <param name="confirmationDialogConfiguration">Global style for <see cref="MaterialConfirmationDialog"/>.</param> /// <param name="inputDialogConfiguration">Global style for <see cref="MaterialInputDialog"/>.</param> public void SetGlobalStyles(MaterialAlertDialogConfiguration dialogConfiguration, MaterialLoadingDialogConfiguration loadingDialogConfiguration, MaterialSnackbarConfiguration snackbarConfiguration, MaterialSimpleDialogConfiguration simpleDialogConfiguration, MaterialConfirmationDialogConfiguration confirmationDialogConfiguration, MaterialInputDialogConfiguration inputDialogConfiguration) { MaterialAlertDialog.GlobalConfiguration = dialogConfiguration; MaterialLoadingDialog.GlobalConfiguration = loadingDialogConfiguration; MaterialSnackbar.GlobalConfiguration = snackbarConfiguration; MaterialSimpleDialog.GlobalConfiguration = simpleDialogConfiguration; MaterialConfirmationDialog.GlobalConfiguration = confirmationDialogConfiguration; MaterialInputDialog.GlobalConfiguration = inputDialogConfiguration; }
/// <summary> /// Shows a confirmation dialog that allows the user to select any of the listed choices. Returns the indices of the selected choices. /// </summary> /// <param name="title">The title of the confirmation dialog. This parameter must not be null or empty.</param> /// <param name="choices">The list of choices the user will choose from.</param> /// <exception cref="ArgumentNullException" /> public static async Task <int[]> ShowSelectChoicesAsync(string title, IList <string> choices, MaterialConfirmationDialogConfiguration configuration = null) { return((int[])await MaterialConfirmationDialog.ShowSelectChoicesAsync(title, choices, null, null, configuration)); }
public static async Task <object> ShowSelectChoicesAsync(string title, IList <string> choices, MaterialConfirmationDialogConfiguration configuration) { var dialog = new MaterialConfirmationDialog(configuration) { InputTaskCompletionSource = new TaskCompletionSource <object>() }; dialog._checkboxGroup = new MaterialCheckboxGroup { HorizontalSpacing = 20, Choices = choices ?? throw new ArgumentNullException(nameof(choices)) }; if (dialog._preferredConfig != null) { dialog._checkboxGroup.SelectedColor = dialog._preferredConfig.ControlSelectedColor; dialog._checkboxGroup.UnselectedColor = dialog._preferredConfig.ControlUnselectedColor; dialog._checkboxGroup.FontFamily = dialog._preferredConfig.TextFontFamily; dialog._checkboxGroup.TextColor = dialog._preferredConfig.TextColor; } dialog._checkboxGroup.ShouldShowScrollbar = true; dialog._isMultiChoice = true; dialog.DialogTitle.Text = !string.IsNullOrEmpty(title) ? title : throw new ArgumentNullException(nameof(title)); dialog.container.Content = dialog._checkboxGroup; await dialog.ShowAsync(); return(await dialog.InputTaskCompletionSource.Task); }
internal MaterialDatePicker(MaterialConfirmationDialogConfiguration configuration = null) { this.InitializeComponent(); this.Configure(configuration); this.Container.Margin = 25; }
internal MaterialDatePicker(string title = "Select Date", string confirmingText = "Ok", string dismissiveText = "Cancel", MaterialConfirmationDialogConfiguration configuration = null) : this(configuration) { this.InputTaskCompletionSource = new TaskCompletionSource <DateTime?>(); this.Calendar.Title = title; this.PositiveButton.Text = confirmingText.ToUpper(); this.NegativeButton.Text = dismissiveText.ToUpper(); this.PositiveButton.Command = new Command(async() => { await this.DismissAsync(); this.InputTaskCompletionSource?.TrySetResult(this.Calendar.SelectedDate); }); this.NegativeButton.Command = new Command(async() => { await this.DismissAsync(); this.InputTaskCompletionSource?.TrySetResult(null); }); }
public static async Task <object> ShowSelectChoiceAsync(string title, IList <string> choices, int selectedIndex, MaterialConfirmationDialogConfiguration configuration) { var dialog = new MaterialConfirmationDialog(configuration) { InputTaskCompletionSource = new TaskCompletionSource <object>() }; dialog._radioButtonGroup = new MaterialRadioButtonGroup { HorizontalSpacing = 20, Choices = choices ?? throw new ArgumentNullException(nameof(choices)), SelectedIndex = selectedIndex }; if (dialog._preferredConfig != null) { dialog._radioButtonGroup.SelectedColor = dialog._preferredConfig.ControlSelectedColor; dialog._radioButtonGroup.UnselectedColor = dialog._preferredConfig.ControlUnselectedColor; dialog._radioButtonGroup.FontFamily = dialog._preferredConfig.TextFontFamily; dialog._radioButtonGroup.TextColor = dialog._preferredConfig.TextColor; } dialog.DialogTitle.Text = !string.IsNullOrEmpty(title) ? title : throw new ArgumentNullException(nameof(title)); dialog.container.Content = dialog._radioButtonGroup; dialog.PositiveButton.IsEnabled = true; await dialog.ShowAsync(); return(await dialog.InputTaskCompletionSource.Task); }