diff --git a/TelegramBotBase/Controls/Inline/MultiToggleButton.cs b/TelegramBotBase/Controls/Inline/MultiToggleButton.cs
index d5f44f3..1828f2b 100644
--- a/TelegramBotBase/Controls/Inline/MultiToggleButton.cs
+++ b/TelegramBotBase/Controls/Inline/MultiToggleButton.cs
@@ -11,14 +11,20 @@ namespace TelegramBotBase.Controls.Inline
{
public class MultiToggleButton : ControlBase
{
+ ///
+ /// This contains the selected icon.
+ ///
+ public String SelectedIcon { get; set; } = Localizations.Default.Language["MultiToggleButton_SelectedIcon"];
- //public String UncheckedIcon { get; set; } = Localizations.Default.Language["ToggleButton_OffIcon"];
+ ///
+ /// This will appear on the ConfirmAction message (if not empty)
+ ///
+ public String ChangedString { get; set; } = Localizations.Default.Language["MultiToggleButton_Changed"];
- public String CheckedIcon { get; set; } = "✅";
-
- public String ChangedString { get; set; } = Localizations.Default.Language["ToggleButton_Changed"];
-
- public String Title { get; set; } = Localizations.Default.Language["ToggleButton_Title"];
+ ///
+ /// This holds the title of the control.
+ ///
+ public String Title { get; set; } = Localizations.Default.Language["MultiToggleButton_Title"];
public int? MessageId { get; set; }
@@ -28,8 +34,16 @@ namespace TelegramBotBase.Controls.Inline
private readonly EventHandlerList Events = new EventHandlerList();
+ ///
+ /// This will hold all options available.
+ ///
public List Options { get; set; }
+ ///
+ /// This will set if an empty selection (null) is allowed.
+ ///
+ public bool AllowEmptySelection { get; set; } = true;
+
public MultiToggleButton()
{
@@ -79,7 +93,7 @@ namespace TelegramBotBase.Controls.Inline
this.SelectedOption = this.Options[index];
OnToggled(new EventArgs());
}
- else
+ else if(this.AllowEmptySelection)
{
this.SelectedOption = null;
OnToggled(new EventArgs());
@@ -114,7 +128,7 @@ namespace TelegramBotBase.Controls.Inline
var index = this.Options.IndexOf(o);
if (o == this.SelectedOption)
{
- lst.Add(new ButtonBase(CheckedIcon + " " + o.Text, "check$" + index));
+ lst.Add(new ButtonBase(SelectedIcon + " " + o.Text, "check$" + index));
continue;
}
diff --git a/TelegramBotBase/Localizations/English.cs b/TelegramBotBase/Localizations/English.cs
index ed97089..1082c21 100644
--- a/TelegramBotBase/Localizations/English.cs
+++ b/TelegramBotBase/Localizations/English.cs
@@ -26,6 +26,10 @@ namespace TelegramBotBase.Localizations
Values["ToggleButton_OnIcon"] = "⚫";
Values["ToggleButton_OffIcon"] = "⚪";
Values["ToggleButton_Title"] = "Toggle";
+ Values["ToggleButton_Changed"] = "Choosen";
+ Values["MultiToggleButton_SelectedIcon"] = "✅";
+ Values["MultiToggleButton_Title"] = "Multi-Toggle";
+ Values["MultiToggleButton_Changed"] = "Choosen";
Values["PromptDialog_Back"] = "Back";
Values["ToggleButton_Changed"] = "Setting changed";
}
diff --git a/TelegramBotBase/Localizations/Localization.cs b/TelegramBotBase/Localizations/Localization.cs
index e00c25c..7f60247 100644
--- a/TelegramBotBase/Localizations/Localization.cs
+++ b/TelegramBotBase/Localizations/Localization.cs
@@ -36,6 +36,10 @@ namespace TelegramBotBase.Localizations
Values["ToggleButton_OnIcon"] = "⚫";
Values["ToggleButton_OffIcon"] = "⚪";
Values["ToggleButton_Title"] = "Schalter";
+ Values["ToggleButton_Changed"] = "Ausgewählt";
+ Values["MultiToggleButton_SelectedIcon"] = "✅";
+ Values["MultiToggleButton_Title"] = "Mehrfach-Schalter";
+ Values["MultiToggleButton_Changed"] = "Ausgewählt";
Values["PromptDialog_Back"] = "Zurück";
Values["ToggleButton_Changed"] = "Einstellung geändert";
diff --git a/TelegramBotBaseTest/Tests/Controls/MultiToggleButtons.cs b/TelegramBotBaseTest/Tests/Controls/MultiToggleButtons.cs
index 54fddca..b2db8f9 100644
--- a/TelegramBotBaseTest/Tests/Controls/MultiToggleButtons.cs
+++ b/TelegramBotBaseTest/Tests/Controls/MultiToggleButtons.cs
@@ -31,8 +31,9 @@ namespace TelegramBotBaseTest.Tests.Controls
mtb = new MultiToggleButton();
- mtb.Options = new List() { new ButtonBase("Option 4", "4"), new ButtonBase("Option 5", "5"), new ButtonBase("Option 6", "6") };
+ mtb.Options = new List() { new ButtonBase("Option 4", "4"), new ButtonBase("Option 5", "5"), new ButtonBase("Option 6", "") };
mtb.SelectedOption = mtb.Options.FirstOrDefault();
+ mtb.AllowEmptySelection = false;
mtb.Toggled += Tb_Toggled;
this.AddControl(mtb);
}
@@ -40,7 +41,13 @@ namespace TelegramBotBaseTest.Tests.Controls
private void Tb_Toggled(object sender, EventArgs e)
{
var tb = sender as MultiToggleButton;
- Console.WriteLine(tb.ID.ToString() + " was pressed, and toggled to " + tb.SelectedOption.Value);
+ if (tb.SelectedOption != null)
+ {
+ Console.WriteLine(tb.ID.ToString() + " was pressed, and toggled to " + tb.SelectedOption.Value);
+ return;
+ }
+
+ Console.WriteLine("Selection for " + tb.ID.ToString() + " has been removed.");
}
}
}