84 lines
2.1 KiB
C#
84 lines
2.1 KiB
C#
using System;
|
|
using System.Threading.Tasks;
|
|
using TelegramBotBase.Args;
|
|
using TelegramBotBase.Controls.Hybrid;
|
|
using TelegramBotBase.Controls.Inline;
|
|
using TelegramBotBase.Enums;
|
|
using TelegramBotBase.Form;
|
|
|
|
namespace TelegramBotBase.Example.Tests.Controls;
|
|
|
|
public class LabelForm : AutoCleanForm
|
|
{
|
|
|
|
TelegramBotBase.Controls.Inline.Label _label;
|
|
|
|
ButtonGrid _buttonGrid;
|
|
|
|
String[] string_options = new string[] { "My test label", "Here is a different text", "*And this looks completely different.*", "Aha! another one.", "_Gotcha!_" };
|
|
|
|
public LabelForm()
|
|
{
|
|
DeleteMode = EDeleteMode.OnLeavingForm;
|
|
|
|
Init += LabelForm_Init;
|
|
}
|
|
|
|
private Task LabelForm_Init(object sender, InitEventArgs e)
|
|
{
|
|
//The "label" control
|
|
_label = new Label("My test label");
|
|
|
|
AddControl(_label);
|
|
|
|
//Optional...just for experimentation...
|
|
var bf = new ButtonForm();
|
|
|
|
bf.AddButtonRow("Toggle text", "toggle");
|
|
bf.AddButtonRow("Open menu", "menu");
|
|
|
|
_buttonGrid = new ButtonGrid(bf);
|
|
_buttonGrid.KeyboardType = EKeyboardType.ReplyKeyboard;
|
|
_buttonGrid.Title = "Choose your options:";
|
|
_buttonGrid.ButtonClicked += _buttonGrid_ButtonClicked;
|
|
|
|
AddControl(_buttonGrid);
|
|
|
|
return Task.CompletedTask;
|
|
}
|
|
|
|
private async Task _buttonGrid_ButtonClicked(object sender, ButtonClickedEventArgs e)
|
|
{
|
|
switch (e.Button.Value ?? "")
|
|
{
|
|
case "menu":
|
|
|
|
var mn = new Menu();
|
|
|
|
await NavigateTo(mn);
|
|
|
|
break;
|
|
|
|
case "toggle":
|
|
|
|
|
|
//Pick random string from array
|
|
var r = new Random((int)DateTime.UtcNow.Ticks);
|
|
|
|
String random_string;
|
|
do
|
|
{
|
|
random_string = string_options[r.Next(0, string_options.Length)];
|
|
if (random_string == null)
|
|
continue;
|
|
|
|
} while (random_string == _label.Text);
|
|
|
|
|
|
_label.Text = random_string;
|
|
|
|
break;
|
|
|
|
}
|
|
}
|
|
} |