Renaming TelegramBotBaseTest -> TelegramBotBase.Test
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using TelegramBotBase.Args;
|
||||
using TelegramBotBase.Controls;
|
||||
using TelegramBotBase.Controls.Hybrid;
|
||||
using TelegramBotBase.Form;
|
||||
|
||||
namespace TelegramBotBaseTest.Tests.Controls
|
||||
{
|
||||
public class ButtonGridForm : AutoCleanForm
|
||||
{
|
||||
|
||||
ButtonGrid m_Buttons = null;
|
||||
|
||||
public ButtonGridForm()
|
||||
{
|
||||
this.DeleteMode = TelegramBotBase.Enums.eDeleteMode.OnLeavingForm;
|
||||
|
||||
this.Init += ButtonGridForm_Init;
|
||||
}
|
||||
|
||||
private async Task ButtonGridForm_Init(object sender, InitEventArgs e)
|
||||
{
|
||||
m_Buttons = new ButtonGrid();
|
||||
|
||||
m_Buttons.KeyboardType = TelegramBotBase.Enums.eKeyboardType.InlineKeyBoard;
|
||||
|
||||
ButtonForm bf = new ButtonForm();
|
||||
|
||||
bf.AddButtonRow(new ButtonBase("Back", "back"), new ButtonBase("Switch Keyboard", "switch"));
|
||||
|
||||
bf.AddButtonRow(new ButtonBase("Button1", "b1"), new ButtonBase("Button2", "b2"));
|
||||
|
||||
bf.AddButtonRow(new ButtonBase("Button3", "b3"), new ButtonBase("Button4", "b4"));
|
||||
|
||||
m_Buttons.ButtonsForm = bf;
|
||||
|
||||
m_Buttons.ButtonClicked += Bg_ButtonClicked;
|
||||
|
||||
this.AddControl(m_Buttons);
|
||||
|
||||
|
||||
}
|
||||
|
||||
private async Task Bg_ButtonClicked(object sender, ButtonClickedEventArgs e)
|
||||
{
|
||||
if (e.Button == null)
|
||||
return;
|
||||
|
||||
if (e.Button.Value == "back")
|
||||
{
|
||||
var start = new Menu();
|
||||
await this.NavigateTo(start);
|
||||
}
|
||||
else if (e.Button.Value == "switch")
|
||||
{
|
||||
switch (m_Buttons.KeyboardType)
|
||||
{
|
||||
case TelegramBotBase.Enums.eKeyboardType.ReplyKeyboard:
|
||||
m_Buttons.KeyboardType = TelegramBotBase.Enums.eKeyboardType.InlineKeyBoard;
|
||||
break;
|
||||
case TelegramBotBase.Enums.eKeyboardType.InlineKeyBoard:
|
||||
m_Buttons.KeyboardType = TelegramBotBase.Enums.eKeyboardType.ReplyKeyboard;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
await this.Device.Send($"Button clicked with Text: {e.Button.Text} and Value {e.Button.Value}");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using TelegramBotBase.Args;
|
||||
using TelegramBotBase.Controls;
|
||||
using TelegramBotBase.Controls.Hybrid;
|
||||
using TelegramBotBase.Form;
|
||||
|
||||
namespace TelegramBotBaseTest.Tests.Controls
|
||||
{
|
||||
public class ButtonGridPagingForm : AutoCleanForm
|
||||
{
|
||||
|
||||
ButtonGrid m_Buttons = null;
|
||||
|
||||
public ButtonGridPagingForm()
|
||||
{
|
||||
this.DeleteMode = TelegramBotBase.Enums.eDeleteMode.OnLeavingForm;
|
||||
|
||||
this.Init += ButtonGridForm_Init;
|
||||
}
|
||||
|
||||
private async Task ButtonGridForm_Init(object sender, InitEventArgs e)
|
||||
{
|
||||
m_Buttons = new ButtonGrid();
|
||||
|
||||
m_Buttons.KeyboardType = TelegramBotBase.Enums.eKeyboardType.ReplyKeyboard;
|
||||
|
||||
m_Buttons.EnablePaging = true;
|
||||
m_Buttons.EnableSearch = true;
|
||||
|
||||
m_Buttons.HeadLayoutButtonRow = new List<ButtonBase>() { new ButtonBase("Back", "back") };
|
||||
|
||||
var countries = CultureInfo.GetCultures(CultureTypes.SpecificCultures);
|
||||
|
||||
ButtonForm bf = new ButtonForm();
|
||||
|
||||
foreach (var c in countries)
|
||||
{
|
||||
bf.AddButtonRow(new ButtonBase(c.EnglishName, c.EnglishName));
|
||||
}
|
||||
|
||||
m_Buttons.ButtonsForm = bf;
|
||||
|
||||
m_Buttons.ButtonClicked += Bg_ButtonClicked;
|
||||
|
||||
this.AddControl(m_Buttons);
|
||||
|
||||
|
||||
}
|
||||
|
||||
private async Task Bg_ButtonClicked(object sender, ButtonClickedEventArgs e)
|
||||
{
|
||||
if (e.Button == null)
|
||||
return;
|
||||
|
||||
if (e.Button.Value == "back")
|
||||
{
|
||||
var start = new Menu();
|
||||
await this.NavigateTo(start);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
await this.Device.Send($"Button clicked with Text: {e.Button.Text} and Value {e.Button.Value}");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using TelegramBotBase.Args;
|
||||
using TelegramBotBase.Controls;
|
||||
using TelegramBotBase.Controls.Hybrid;
|
||||
using TelegramBotBase.Form;
|
||||
|
||||
namespace TelegramBotBaseTest.Tests.Controls
|
||||
{
|
||||
public class ButtonGridTagForm : AutoCleanForm
|
||||
{
|
||||
|
||||
TaggedButtonGrid m_Buttons = null;
|
||||
|
||||
public ButtonGridTagForm()
|
||||
{
|
||||
this.DeleteMode = TelegramBotBase.Enums.eDeleteMode.OnLeavingForm;
|
||||
|
||||
this.Init += ButtonGridTagForm_Init;
|
||||
}
|
||||
|
||||
private async Task ButtonGridTagForm_Init(object sender, InitEventArgs e)
|
||||
{
|
||||
m_Buttons = new TaggedButtonGrid();
|
||||
|
||||
m_Buttons.KeyboardType = TelegramBotBase.Enums.eKeyboardType.ReplyKeyboard;
|
||||
|
||||
m_Buttons.EnablePaging = true;
|
||||
|
||||
m_Buttons.HeadLayoutButtonRow = new List<ButtonBase>() { new ButtonBase("Back", "back") };
|
||||
|
||||
|
||||
var countries = CultureInfo.GetCultures(CultureTypes.SpecificCultures);
|
||||
|
||||
ButtonForm bf = new ButtonForm();
|
||||
|
||||
foreach (var c in countries)
|
||||
{
|
||||
bf.AddButtonRow(new TagButtonBase(c.EnglishName, c.EnglishName, c.Parent.EnglishName));
|
||||
}
|
||||
|
||||
m_Buttons.Tags = countries.Select(a => a.Parent.EnglishName).Distinct().OrderBy(a => a).ToList();
|
||||
m_Buttons.SelectedTags = countries.Select(a => a.Parent.EnglishName).Distinct().OrderBy(a => a).ToList();
|
||||
|
||||
m_Buttons.EnableCheckAllTools = true;
|
||||
|
||||
m_Buttons.DataSource = new TelegramBotBase.Datasources.ButtonFormDataSource(bf);
|
||||
|
||||
m_Buttons.ButtonClicked += Bg_ButtonClicked;
|
||||
|
||||
this.AddControl(m_Buttons);
|
||||
}
|
||||
|
||||
private async Task Bg_ButtonClicked(object sender, ButtonClickedEventArgs e)
|
||||
{
|
||||
if (e.Button == null)
|
||||
return;
|
||||
|
||||
switch (e.Button.Value)
|
||||
{
|
||||
|
||||
case "back":
|
||||
var start = new Menu();
|
||||
await this.NavigateTo(start);
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
|
||||
await this.Device.Send($"Button clicked with Text: {e.Button.Text} and Value {e.Button.Value}");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
using System;
|
||||
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using TelegramBotBase.Base;
|
||||
using TelegramBotBase.Form;
|
||||
using TelegramBotBase.Controls;
|
||||
using TelegramBotBase.Args;
|
||||
using TelegramBotBase.Controls.Inline;
|
||||
|
||||
namespace TelegramBotBaseTest.Tests.Controls
|
||||
{
|
||||
public class CalendarPickerForm : AutoCleanForm
|
||||
{
|
||||
|
||||
public CalendarPicker Picker { get; set; }
|
||||
|
||||
int? selectedDateMessage { get; set; }
|
||||
|
||||
public CalendarPickerForm()
|
||||
{
|
||||
this.DeleteMode = TelegramBotBase.Enums.eDeleteMode.OnLeavingForm;
|
||||
this.Init += CalendarPickerForm_Init;
|
||||
}
|
||||
|
||||
private async Task CalendarPickerForm_Init(object sender, InitEventArgs e)
|
||||
{
|
||||
this.Picker = new CalendarPicker();
|
||||
this.Picker.Title = "Datum auswählen / Pick date";
|
||||
|
||||
this.AddControl(Picker);
|
||||
}
|
||||
|
||||
|
||||
public override async Task Action(MessageResult message)
|
||||
{
|
||||
|
||||
switch(message.RawData)
|
||||
{
|
||||
case "back":
|
||||
|
||||
var s = new Menu();
|
||||
|
||||
await this.NavigateTo(s);
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public override async Task Render(MessageResult message)
|
||||
{
|
||||
String s = "";
|
||||
|
||||
s = "Selected date is " + this.Picker.SelectedDate.ToShortDateString() + "\r\n";
|
||||
s += "Selected month is " + this.Picker.Culture.DateTimeFormat.MonthNames[this.Picker.VisibleMonth.Month - 1] + "\r\n";
|
||||
s += "Selected year is " + this.Picker.VisibleMonth.Year.ToString();
|
||||
|
||||
ButtonForm bf = new ButtonForm();
|
||||
bf.AddButtonRow(new ButtonBase("Back","back"));
|
||||
|
||||
if (selectedDateMessage != null)
|
||||
{
|
||||
await this.Device.Edit(this.selectedDateMessage.Value, s, bf);
|
||||
}
|
||||
else
|
||||
{
|
||||
var m = await this.Device.Send(s, bf);
|
||||
this.selectedDateMessage = m.MessageId;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,92 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using TelegramBotBase.Args;
|
||||
using TelegramBotBase.Controls;
|
||||
using TelegramBotBase.Controls.Hybrid;
|
||||
using TelegramBotBase.Form;
|
||||
|
||||
namespace TelegramBotBaseTest.Tests.Controls
|
||||
{
|
||||
public class CheckedButtonListForm : AutoCleanForm
|
||||
{
|
||||
|
||||
CheckedButtonList m_Buttons = null;
|
||||
|
||||
public CheckedButtonListForm()
|
||||
{
|
||||
this.DeleteMode = TelegramBotBase.Enums.eDeleteMode.OnLeavingForm;
|
||||
|
||||
this.Init += CheckedButtonListForm_Init;
|
||||
}
|
||||
|
||||
private async Task CheckedButtonListForm_Init(object sender, InitEventArgs e)
|
||||
{
|
||||
m_Buttons = new CheckedButtonList();
|
||||
|
||||
m_Buttons.KeyboardType = TelegramBotBase.Enums.eKeyboardType.InlineKeyBoard;
|
||||
m_Buttons.EnablePaging = true;
|
||||
|
||||
m_Buttons.HeadLayoutButtonRow = new List<ButtonBase>() { new ButtonBase("Back", "back"), new ButtonBase("Switch Keyboard", "switch") };
|
||||
|
||||
m_Buttons.SubHeadLayoutButtonRow = new List<ButtonBase>() { new ButtonBase("No checked items", "$") };
|
||||
|
||||
ButtonForm bf = new ButtonForm();
|
||||
|
||||
for (int i = 0; i < 30; i++)
|
||||
{
|
||||
bf.AddButtonRow($"{i + 1}. Item", i.ToString());
|
||||
}
|
||||
|
||||
m_Buttons.DataSource = new TelegramBotBase.Datasources.ButtonFormDataSource(bf);
|
||||
|
||||
m_Buttons.ButtonClicked += Bg_ButtonClicked;
|
||||
m_Buttons.CheckedChanged += M_Buttons_CheckedChanged;
|
||||
|
||||
this.AddControl(m_Buttons);
|
||||
}
|
||||
|
||||
private async Task M_Buttons_CheckedChanged(object sender, CheckedChangedEventArgs e)
|
||||
{
|
||||
m_Buttons.SubHeadLayoutButtonRow = new List<ButtonBase>() { new ButtonBase($"{m_Buttons.CheckedItems.Count} checked items", "$") };
|
||||
}
|
||||
|
||||
private async Task Bg_ButtonClicked(object sender, ButtonClickedEventArgs e)
|
||||
{
|
||||
if (e.Button == null)
|
||||
return;
|
||||
|
||||
switch (e.Button.Value)
|
||||
{
|
||||
case "back":
|
||||
|
||||
var start = new Menu();
|
||||
await NavigateTo(start);
|
||||
break;
|
||||
|
||||
|
||||
case "switch":
|
||||
switch (m_Buttons.KeyboardType)
|
||||
{
|
||||
case TelegramBotBase.Enums.eKeyboardType.ReplyKeyboard:
|
||||
m_Buttons.KeyboardType = TelegramBotBase.Enums.eKeyboardType.InlineKeyBoard;
|
||||
break;
|
||||
case TelegramBotBase.Enums.eKeyboardType.InlineKeyBoard:
|
||||
m_Buttons.KeyboardType = TelegramBotBase.Enums.eKeyboardType.ReplyKeyboard;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
await Device.Send($"Button clicked with Text: {e.Button.Text} and Value {e.Button.Value}");
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,79 @@
|
||||
using System;
|
||||
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using TelegramBotBase.Base;
|
||||
using TelegramBotBase.Form;
|
||||
using TelegramBotBase.Controls;
|
||||
using TelegramBotBase.Args;
|
||||
using TelegramBotBase.Controls.Inline;
|
||||
|
||||
namespace TelegramBotBaseTest.Tests.Controls
|
||||
{
|
||||
public class MonthPickerForm : AutoCleanForm
|
||||
{
|
||||
|
||||
public MonthPicker Picker { get; set; }
|
||||
|
||||
int? selectedDateMessage { get; set; }
|
||||
|
||||
public MonthPickerForm()
|
||||
{
|
||||
this.DeleteMode = TelegramBotBase.Enums.eDeleteMode.OnLeavingForm;
|
||||
this.Init += MonthPickerForm_Init;
|
||||
}
|
||||
|
||||
private async Task MonthPickerForm_Init(object sender, InitEventArgs e)
|
||||
{
|
||||
this.Picker = new MonthPicker();
|
||||
this.Picker.Title = "Monat auswählen / Pick month";
|
||||
this.AddControl(Picker);
|
||||
}
|
||||
|
||||
|
||||
public override async Task Action(MessageResult message)
|
||||
{
|
||||
|
||||
switch(message.RawData)
|
||||
{
|
||||
case "back":
|
||||
|
||||
var s = new Menu();
|
||||
|
||||
await this.NavigateTo(s);
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public override async Task Render(MessageResult message)
|
||||
{
|
||||
String s = "";
|
||||
|
||||
s += "Selected month is " + this.Picker.Culture.DateTimeFormat.MonthNames[this.Picker.SelectedDate.Month - 1] + "\r\n";
|
||||
s += "Selected year is " + this.Picker.VisibleMonth.Year.ToString();
|
||||
|
||||
ButtonForm bf = new ButtonForm();
|
||||
bf.AddButtonRow(new ButtonBase("Back","back"));
|
||||
|
||||
if (selectedDateMessage != null)
|
||||
{
|
||||
await this.Device.Edit(this.selectedDateMessage.Value, s, bf);
|
||||
}
|
||||
else
|
||||
{
|
||||
var m = await this.Device.Send(s, bf);
|
||||
this.selectedDateMessage = m.MessageId;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using TelegramBotBase.Args;
|
||||
using TelegramBotBase.Controls;
|
||||
using TelegramBotBase.Controls.Inline;
|
||||
using TelegramBotBase.Form;
|
||||
|
||||
namespace TelegramBotBaseTest.Tests.Controls
|
||||
{
|
||||
public class MultiToggleButtons : AutoCleanForm
|
||||
{
|
||||
public MultiToggleButtons()
|
||||
{
|
||||
this.DeleteMode = TelegramBotBase.Enums.eDeleteMode.OnLeavingForm;
|
||||
|
||||
this.Init += ToggleButtons_Init;
|
||||
}
|
||||
|
||||
private async Task ToggleButtons_Init(object sender, InitEventArgs e)
|
||||
{
|
||||
|
||||
var mtb = new MultiToggleButton();
|
||||
|
||||
mtb.Options = new List<ButtonBase>() { new ButtonBase("Option 1", "1"), new ButtonBase("Option 2", "2"), new ButtonBase("Option 3", "3") };
|
||||
mtb.SelectedOption = mtb.Options.FirstOrDefault();
|
||||
mtb.Toggled += Tb_Toggled;
|
||||
this.AddControl(mtb);
|
||||
|
||||
mtb = new MultiToggleButton();
|
||||
|
||||
mtb.Options = new List<ButtonBase>() { new ButtonBase("Option 4", "4"), new ButtonBase("Option 5", "5"), new ButtonBase("Option 6", "6") };
|
||||
mtb.SelectedOption = mtb.Options.FirstOrDefault();
|
||||
mtb.AllowEmptySelection = false;
|
||||
mtb.Toggled += Tb_Toggled;
|
||||
this.AddControl(mtb);
|
||||
}
|
||||
|
||||
private void Tb_Toggled(object sender, EventArgs e)
|
||||
{
|
||||
var tb = sender as MultiToggleButton;
|
||||
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.");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using TelegramBotBase.Base;
|
||||
using TelegramBotBase.Controls.Hybrid;
|
||||
using TelegramBotBase.Form;
|
||||
|
||||
namespace TelegramBotBaseTest.Tests.Controls
|
||||
{
|
||||
public class MultiViewForm : AutoCleanForm
|
||||
{
|
||||
|
||||
Subclass.MultiViewTest mvt = null;
|
||||
|
||||
ButtonGrid bg = null;
|
||||
|
||||
public MultiViewForm()
|
||||
{
|
||||
this.DeleteMode = TelegramBotBase.Enums.eDeleteMode.OnLeavingForm;
|
||||
this.Init += MultiViewForm_Init;
|
||||
}
|
||||
|
||||
private async Task MultiViewForm_Init(object sender, TelegramBotBase.Args.InitEventArgs e)
|
||||
{
|
||||
mvt = new Subclass.MultiViewTest();
|
||||
|
||||
AddControl(mvt);
|
||||
|
||||
bg = new ButtonGrid();
|
||||
bg.ButtonsForm = new ButtonForm();
|
||||
bg.ButtonsForm.AddButtonRow("Back", "$back$");
|
||||
bg.ButtonClicked += Bg_ButtonClicked;
|
||||
bg.KeyboardType = TelegramBotBase.Enums.eKeyboardType.ReplyKeyboard;
|
||||
AddControl(bg);
|
||||
}
|
||||
|
||||
private async Task Bg_ButtonClicked(object sender, TelegramBotBase.Args.ButtonClickedEventArgs e)
|
||||
{
|
||||
switch(e.Button.Value)
|
||||
{
|
||||
case "$back$":
|
||||
|
||||
var mn = new Menu();
|
||||
await NavigateTo(mn);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using TelegramBotBase.Args;
|
||||
using TelegramBotBase.Base;
|
||||
using TelegramBotBase.Form;
|
||||
|
||||
namespace TelegramBotBaseTest.Tests.Controls.Subclass
|
||||
{
|
||||
public class MultiViewTest : TelegramBotBase.Controls.Hybrid.MultiView
|
||||
{
|
||||
|
||||
|
||||
public override async Task Action(MessageResult result, string value = null)
|
||||
{
|
||||
|
||||
switch (result.RawData)
|
||||
{
|
||||
case "back":
|
||||
|
||||
this.SelectedViewIndex--;
|
||||
|
||||
break;
|
||||
case "next":
|
||||
|
||||
this.SelectedViewIndex++;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public override async Task RenderView(RenderViewEventArgs e)
|
||||
{
|
||||
|
||||
ButtonForm bf = new ButtonForm();
|
||||
bf.AddButtonRow(new ButtonBase("Back", "back"), new ButtonBase("Next", "next"));
|
||||
|
||||
switch (e.CurrentView)
|
||||
{
|
||||
case 0:
|
||||
case 1:
|
||||
case 2:
|
||||
|
||||
await Device.Send($"Page {e.CurrentView + 1}", bf);
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
await Device.Send("Unknown Page", bf);
|
||||
|
||||
break;
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using TelegramBotBase.Args;
|
||||
using TelegramBotBase.Controls;
|
||||
using TelegramBotBase.Controls.Inline;
|
||||
using TelegramBotBase.Form;
|
||||
|
||||
namespace TelegramBotBaseTest.Tests.Controls
|
||||
{
|
||||
public class ToggleButtons : AutoCleanForm
|
||||
{
|
||||
public ToggleButtons()
|
||||
{
|
||||
this.DeleteMode = TelegramBotBase.Enums.eDeleteMode.OnLeavingForm;
|
||||
|
||||
this.Init += ToggleButtons_Init;
|
||||
}
|
||||
|
||||
private async Task ToggleButtons_Init(object sender, InitEventArgs e)
|
||||
{
|
||||
|
||||
var tb = new ToggleButton();
|
||||
tb.Checked = true;
|
||||
tb.Toggled += Tb_Toggled;
|
||||
|
||||
this.AddControl(tb);
|
||||
|
||||
tb = new ToggleButton();
|
||||
tb.Checked = false;
|
||||
tb.Toggled += Tb_Toggled;
|
||||
|
||||
this.AddControl(tb);
|
||||
|
||||
tb = new ToggleButton();
|
||||
tb.Checked = true;
|
||||
tb.Toggled += Tb_Toggled;
|
||||
|
||||
this.AddControl(tb);
|
||||
|
||||
}
|
||||
|
||||
private void Tb_Toggled(object sender, EventArgs e)
|
||||
{
|
||||
var tb = sender as ToggleButton;
|
||||
Console.WriteLine(tb.ID.ToString() + " was pressed, and toggled to " + (tb.Checked ? "Checked" : "Unchecked"));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,101 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using TelegramBotBase.Form;
|
||||
using TelegramBotBase.Controls;
|
||||
using TelegramBotBase.Base;
|
||||
using TelegramBotBase.Args;
|
||||
using TelegramBotBase.Controls.Inline;
|
||||
|
||||
namespace TelegramBotBaseTest.Tests.Controls
|
||||
{
|
||||
public class TreeViewForms : AutoCleanForm
|
||||
{
|
||||
public TreeView view { get; set; }
|
||||
|
||||
private int? MessageId { get; set; }
|
||||
|
||||
public TreeViewForms()
|
||||
{
|
||||
this.DeleteMode = TelegramBotBase.Enums.eDeleteMode.OnLeavingForm;
|
||||
this.Init += TreeViewForms_Init;
|
||||
}
|
||||
|
||||
private async Task TreeViewForms_Init(object sender, InitEventArgs e)
|
||||
{
|
||||
view = new TreeView();
|
||||
|
||||
var tvn = new TreeViewNode("Cars", "cars");
|
||||
|
||||
tvn.AddNode(new TreeViewNode("Porsche", "porsche", new TreeViewNode("Website", "web", "https://www.porsche.com/germany/"), new TreeViewNode("911", "911"), new TreeViewNode("918 Spyder", "918")));
|
||||
tvn.AddNode(new TreeViewNode("BMW", "bmw"));
|
||||
tvn.AddNode(new TreeViewNode("Audi", "audi"));
|
||||
tvn.AddNode(new TreeViewNode("VW", "vw"));
|
||||
tvn.AddNode(new TreeViewNode("Lamborghini", "lamborghini"));
|
||||
|
||||
view.Nodes.Add(tvn);
|
||||
|
||||
tvn = new TreeViewNode("Fruits", "fruits");
|
||||
|
||||
tvn.AddNode(new TreeViewNode("Apple", "apple"));
|
||||
tvn.AddNode(new TreeViewNode("Orange", "orange"));
|
||||
tvn.AddNode(new TreeViewNode("Lemon", "lemon"));
|
||||
|
||||
view.Nodes.Add(tvn);
|
||||
|
||||
this.AddControl(view);
|
||||
|
||||
}
|
||||
|
||||
public override async Task Action(MessageResult message)
|
||||
{
|
||||
await message.ConfirmAction();
|
||||
|
||||
if (message.Handled)
|
||||
return;
|
||||
|
||||
switch (message.RawData)
|
||||
{
|
||||
case "back":
|
||||
|
||||
message.Handled = true;
|
||||
|
||||
var start = new Menu();
|
||||
|
||||
await this.NavigateTo(start);
|
||||
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public override async Task Render(MessageResult message)
|
||||
{
|
||||
String s = "";
|
||||
|
||||
s += "Selected Node: " + (this.view.SelectedNode?.Text ?? "(null)") + "\r\n";
|
||||
|
||||
s += "Visible Node: " + (this.view.VisibleNode?.Text ?? "(top)") + "\r\n";
|
||||
|
||||
s += "Visible Path: " + this.view.GetPath() + "\r\n";
|
||||
s += "Selected Path: " + (this.view.SelectedNode?.GetPath() ?? "(null)") + "\r\n";
|
||||
|
||||
ButtonForm bf = new ButtonForm();
|
||||
bf.AddButtonRow(new ButtonBase("Back", "back"));
|
||||
|
||||
if (MessageId != null)
|
||||
{
|
||||
await this.Device.Edit(this.MessageId.Value, s, bf);
|
||||
}
|
||||
else
|
||||
{
|
||||
var m = await this.Device.Send(s, bf);
|
||||
this.MessageId = m.MessageId;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user