private void Search_ContainerContentChanging(ListViewBase sender, ContainerContentChangingEventArgs args) { if (args.InRecycleQueue) { //var photo = content.Children[0] as ProfilePicture; //photo.Source = null; return; } var result = args.Item as SearchResult; var chat = result.Chat; var user = result.User ?? ViewModel.ProtoService.GetUser(chat); if (user == null) { return; } var content = args.ItemContainer.ContentTemplateRoot as Grid; if (content == null) { return; } if (args.Phase == 0) { var title = content.Children[1] as TextBlock; title.Text = user.GetFullName(); } else if (args.Phase == 1) { var subtitle = content.Children[2] as TextBlock; if (result.IsPublic) { subtitle.Text = $"@{user.Username}"; } else { subtitle.Text = LastSeenConverter.GetLabel(user, true); } if (subtitle.Text.StartsWith($"@{result.Query}", StringComparison.OrdinalIgnoreCase)) { var highligher = new TextHighlighter(); highligher.Foreground = new SolidColorBrush(Colors.Red); highligher.Background = new SolidColorBrush(Colors.Transparent); highligher.Ranges.Add(new TextRange { StartIndex = 1, Length = result.Query.Length }); subtitle.TextHighlighters.Add(highligher); } else { subtitle.TextHighlighters.Clear(); } } else if (args.Phase == 2) { var photo = content.Children[0] as ProfilePicture; photo.SetUser(ViewModel.ProtoService, user, 36); } if (args.Phase < 2) { args.RegisterUpdateCallback(Search_ContainerContentChanging); } args.Handled = true; }
private void TestOutputView_Load(object sender, EventArgs e) { mOutputHighlighter = new TextHighlighter(tBOutput); }
public void UpdateSearchResult(IProtoService protoService, ContainerContentChangingEventArgs args, TypedEventHandler <ListViewBase, ContainerContentChangingEventArgs> callback) { var result = args.Item as SearchResult; args.ItemContainer.Tag = result.Chat; if (args.Phase == 0) { TitleLabel.Style = BootStrapper.Current.Resources[result?.Chat?.Type is ChatTypeSecret ? "SecretBodyTextBlockStyle" : "BodyTextBlockStyle"] as Style; if (result.Chat != null) { TitleLabel.Text = protoService.GetTitle(result.Chat); } else if (result.User != null) { TitleLabel.Text = result.User.GetFullName(); } var verified = false; var premium = false; if (result.Chat != null) { if (protoService.TryGetUser(result.Chat, out User user)) { verified = user.IsVerified; premium = user.IsPremium && protoService.IsPremiumAvailable && user.Id != protoService.Options.MyId; } else if (protoService.TryGetSupergroup(result.Chat, out Supergroup supergroup)) { verified = supergroup.IsVerified; premium = false; } } else if (result.User != null) { verified = result.User.IsVerified; premium = result.User.IsPremium && protoService.IsPremiumAvailable; } if (premium || verified) { Premium.Glyph = premium ? Icons.Premium16 : Icons.Verified16; Premium.Visibility = Visibility.Visible; } else { Premium.Visibility = Visibility.Collapsed; } } else if (args.Phase == 1) { if (result.User != null || (result.Chat != null && (result.Chat.Type is ChatTypePrivate privata || result.Chat.Type is ChatTypeSecret))) { var user = result.User ?? protoService.GetUser(result.Chat); if (result.IsPublic) { SubtitleLabel.Text = $"@{user.Username}"; } else if (protoService.IsSavedMessages(user)) { SubtitleLabel.Text = Strings.Resources.ThisIsYou; } else { SubtitleLabel.Text = LastSeenConverter.GetLabel(user, true); } } else if (result.Chat != null && result.Chat.Type is ChatTypeSupergroup super) { var supergroup = protoService.GetSupergroup(super.SupergroupId); if (result.IsPublic) { if (supergroup.MemberCount > 0) { SubtitleLabel.Text = string.Format("@{0}, {1}", supergroup.Username, Locale.Declension(supergroup.IsChannel ? "Subscribers" : "Members", supergroup.MemberCount)); } else { SubtitleLabel.Text = $"@{supergroup.Username}"; } } else if (supergroup.MemberCount > 0) { SubtitleLabel.Text = Locale.Declension(supergroup.IsChannel ? "Subscribers" : "Members", supergroup.MemberCount); } else { SubtitleLabel.Text = string.Empty; } } else { SubtitleLabel.Text = string.Empty; } if (SubtitleLabel.Text.StartsWith($"@{result.Query}", StringComparison.OrdinalIgnoreCase)) { var highligher = new TextHighlighter(); highligher.Foreground = new SolidColorBrush(Colors.Red); highligher.Background = new SolidColorBrush(Colors.Transparent); highligher.Ranges.Add(new TextRange { StartIndex = 1, Length = result.Query.Length }); SubtitleLabel.TextHighlighters.Add(highligher); } else { SubtitleLabel.TextHighlighters.Clear(); } }
public TextEditorView(String name, TextProviderDelegate textProvider, uint maxLength = 100000, bool wordWrap = false, TextHighlighter textHighlighter = null) : base(name) { this.textProvider = textProvider; this.MaxLength = maxLength; this.WordWrap = wordWrap; this.TextHighlighter = textHighlighter; }
/// <summary> /// Perform Text Search /// </summary> /// <param name="text"></param> private void TextSearchImpl(string text) { mTextHighlighter = new TextHighlighter(PDFViewCtrl, text); }