mirror of
https://github.com/2dust/v2rayN.git
synced 2026-09-22 22:38:10 +03:00
75 lines
2.1 KiB
C#
75 lines
2.1 KiB
C#
namespace v2rayN.Views;
|
|
|
|
public partial class MsgView
|
|
{
|
|
public MsgView()
|
|
{
|
|
InitializeComponent();
|
|
|
|
this.WhenActivated(disposables =>
|
|
{
|
|
this.Bind(ViewModel, vm => vm.MsgFilter, v => v.cmbMsgFilter.Text).DisposeWith(disposables);
|
|
this.Bind(ViewModel, vm => vm.AutoRefresh, v => v.togAutoRefresh.IsChecked).DisposeWith(disposables);
|
|
|
|
ViewModel.ShowMsgInteraction.RegisterHandler(interaction =>
|
|
{
|
|
var msg = interaction.Input;
|
|
ShowMsg(msg);
|
|
interaction.SetOutput(RxVoid.Default);
|
|
}).DisposeWith(disposables);
|
|
});
|
|
|
|
btnCopy.Click += menuMsgViewCopyAll_Click;
|
|
btnClear.Click += menuMsgViewClear_Click;
|
|
menuMsgViewSelectAll.Click += menuMsgViewSelectAll_Click;
|
|
menuMsgViewCopy.Click += menuMsgViewCopy_Click;
|
|
menuMsgViewCopyAll.Click += menuMsgViewCopyAll_Click;
|
|
menuMsgViewClear.Click += menuMsgViewClear_Click;
|
|
|
|
cmbMsgFilter.ItemsSource = Global.PresetMsgFilters;
|
|
}
|
|
|
|
private void ShowMsg(object msg)
|
|
{
|
|
if (txtMsg.LineCount > ViewModel?.NumMaxMsg)
|
|
{
|
|
ClearMsg();
|
|
}
|
|
|
|
txtMsg.AppendText(msg.ToString());
|
|
if (togScrollToEnd.IsChecked ?? true)
|
|
{
|
|
txtMsg.ScrollToEnd();
|
|
}
|
|
}
|
|
|
|
public void ClearMsg()
|
|
{
|
|
txtMsg.Clear();
|
|
txtMsg.AppendText("----- Message cleared -----\n");
|
|
}
|
|
|
|
private void menuMsgViewSelectAll_Click(object sender, System.Windows.RoutedEventArgs e)
|
|
{
|
|
txtMsg.Focus();
|
|
txtMsg.SelectAll();
|
|
}
|
|
|
|
private void menuMsgViewCopy_Click(object sender, System.Windows.RoutedEventArgs e)
|
|
{
|
|
var data = txtMsg.SelectedText.TrimEx();
|
|
WindowsUtils.SetClipboardData(data);
|
|
}
|
|
|
|
private void menuMsgViewCopyAll_Click(object sender, System.Windows.RoutedEventArgs e)
|
|
{
|
|
var data = txtMsg.Text;
|
|
WindowsUtils.SetClipboardData(data);
|
|
}
|
|
|
|
private void menuMsgViewClear_Click(object sender, System.Windows.RoutedEventArgs e)
|
|
{
|
|
ClearMsg();
|
|
}
|
|
}
|