2using System.Windows.Controls;
6using System.Threading.Tasks;
17 public abstract string FullJID
29 base.AddContexMenuItems(ref CurrentGroup, Menu);
33 this.GroupSeparator(ref CurrentGroup,
"XMPP", Menu);
35 Menu.Items.Add(Item =
new MenuItem()
37 Header =
"Send XMPP Message...",
41 Item.Click += this.SendXmppMessage_Click;
43 Menu.Items.Add(Item =
new MenuItem()
45 Header =
"Send XMPP IQ GET...",
49 Item.Click += this.SendXmppIqGet_Click;
51 Menu.Items.Add(Item =
new MenuItem()
53 Header =
"Send XMPP IQ SET...",
57 Item.Click += this.SendXmppIqSet_Click;
60 private async
void SendXmppMessage_Click(
object Sender, RoutedEventArgs e)
66 Owner = MainWindow.currentInstance
69 Form.To.Text = this.FullJID;
71 bool? Result = Form.ShowDialog();
73 if (Result.HasValue && Result.Value)
76 Form.To.Text.Trim(), Form.CustomXml.Text, Form.Body.Text, Form.Subject.Text, Form.MessageLanguage.Text,
77 Form.ThreadId.Text, Form.ParentThreadId.Text);
86 private async
void SendXmppIqGet_Click(
object Sender, RoutedEventArgs e)
92 Owner = MainWindow.currentInstance
95 Form.Type.SelectedIndex = 0;
96 Form.To.Text = this.FullJID;
98 bool? Result = Form.ShowDialog();
100 if (Result.HasValue && Result.Value)
102 await this.Account.Client.
SendIqGet(Form.To.Text.Trim(), Form.CustomXml.Text, (sender2, e2) =>
106 MainWindow.UpdateGui(() =>
108 IqResultForm ResultForm = new IqResultForm()
110 Owner = MainWindow.currentInstance
113 ResultForm.From.Text = e2.From;
114 ResultForm.XmlResponse.Text = e2.Response.OuterXml;
116 ResultForm.ShowDialog();
118 return Task.CompletedTask;
122 MainWindow.ErrorBox(
string.IsNullOrEmpty(e2.ErrorText) ?
"Error returned." : e2.ErrorText);
124 return Task.CompletedTask;
134 private async
void SendXmppIqSet_Click(
object Sender, RoutedEventArgs e)
140 Owner = MainWindow.currentInstance
143 Form.Type.SelectedIndex = 1;
144 Form.To.Text = this.FullJID;
146 bool? Result = Form.ShowDialog();
148 if (Result.HasValue && Result.Value)
150 await this.Account.Client.SendIqSet(Form.To.Text.Trim(), Form.CustomXml.Text, (sender2, e2) =>
154 MainWindow.UpdateGui(() =>
156 IqResultForm ResultForm = new IqResultForm()
158 Owner = MainWindow.currentInstance
161 ResultForm.From.Text = e2.From;
162 ResultForm.XmlResponse.Text = e2.Response.OuterXml;
164 ResultForm.ShowDialog();
166 return Task.CompletedTask;
170 MainWindow.ErrorBox(
string.IsNullOrEmpty(e2.ErrorText) ?
"Error returned." : e2.ErrorText);
172 return Task.CompletedTask;
Interaction logic for xaml
Abstract base class for tree nodes in the connection view.
TreeNode Parent
Parent node. May be null if a root node.
abstract string Header
Tree Node header text.
Class representing a normal XMPP account.
override void AddContexMenuItems(ref string CurrentGroup, ContextMenu Menu)
Adds context sensitive menu items to a context menu.
Task SendMessage(MessageType Type, string To, string CustomXml, string Body, string Subject, string Language, string ThreadId, string ParentThreadId)
Sends a simple chat message
Task< uint > SendIqGet(string To, string Xml, EventHandlerAsync< IqResultEventArgs > Callback, object State)
Sends an IQ Get request.
MessageType
Type of message received.