public void DM(ClientDirectMessage dm) { if (OnBlockIds != null) { Application.Current.Dispatcher.BeginInvoke(OnDM, new object[] { dm }); } }
private void DMCopy() { ClientDirectMessage clientdm = treeDM.SelectedItem as ClientDirectMessage; if (clientdm == null) { return; } string copy = string.Empty; copy = clientdm.text; if (clientdm.entities.urls.Count != 0) { for (int i = 0; i < clientdm.entities.urls.Count; i++) { copy = copy.Replace(clientdm.entities.urls[i].display_url, clientdm.entities.urls[i].expanded_url); } } if (copy != string.Empty) { copy = copy.Replace("\n", Environment.NewLine); Clipboard.SetText(copy); ShowMessage("쪽지 내용이 클립보드에 복사되었습니다.", "알림"); } }
private void CollectionChanged(object sender, NotifyCollectionChangedEventArgs e) { if (e.Action == NotifyCollectionChangedAction.Add) { if (_scrollViewer.ContentVerticalOffset != 0.0) ///스크롤 고정용 기능 { isAddedTweet = true; prevScrollPosition = _scrollViewer.ContentVerticalOffset; int index = 0; if (e.NewItems[0] is ClientTweet) { ClientTweet tweet = e.NewItems[0] as ClientTweet; index = listTweet.IndexOf(tweet); } else { ClientDirectMessage dm = e.NewItems[0] as ClientDirectMessage; index = listDM.IndexOf(dm); } TreeViewItem addedItem = GetTreeViewItem(treeView, e.NewItems[0], index); if (addedItem == null) { return; } addedItem.Loaded += AddTreeViewItem_LoadedScroll; } //addedItem.Loaded += SetBackgroundTweet; //prevScrollPosition = _scrollViewer.ContentVerticalOffset + firstItem.DesiredSize.Height; //_scrollViewer.ScrollToVerticalOffset(prevScrollPosition); } }
public TreeViewItem GetSelectedTreeViewItem() { if (listTweet != null) { int index = FindParentIndex(treeView.SelectedItem as ClientTweet, listTweet); if (index == -1) { return(null); } return(GetTreeViewItem(treeView, treeView.SelectedItem as ClientTweet, index)); } else { ClientDirectMessage dm = treeView.SelectedItem as ClientDirectMessage; if (dm != null) { int index = listDM.IndexOf(dm); if (index < 0) { return(null); } return(GetTreeViewItem(treeView, listDM[index], index)); } else { return(null); } } }
//------------------------------------------------------------------------------------------------------ //----------------------------------------DM화살표-------------------------------------------------- //------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------ //------------------------------------화살표 아래 키-------------------------------------------------- //------------------------------------------------------------------------------------------------------ public bool ArrowDown() { if (listTweet != null) { FindNextTweet(); return(true); } else { ClientDirectMessage dm = treeView.SelectedItem as ClientDirectMessage; if (dm == null && listDM?.Count > 0) { GetTreeViewItem(treeView, listDM[0], 0)?.Focus(); } else { int index = listDM.IndexOf(dm) + 1; if (index >= listDM.Count) { return(false); } GetTreeViewItem(treeView, listDM[index], index)?.Focus(); } return(true); } }
private void AddDMData(ClientDirectMessage dm) { if (dicHashs[eTweetPanel.eDm].Contains(dm.id)) { return; } dicHashs[eTweetPanel.eDm].Add(dm.id); treeDM.Insert(0, dm); }
public void Focus() { if (treeView.Items?.Count == 0) { treeView.Focus(); } else if (treeView.SelectedItem == null) { if (listTweet != null) { FocusTreeViewItem(listTweet[0], 0); } else if (listDM != null) { TreeViewItem item = GetTreeViewItem(treeView, listDM[0], 0); if (item != null) { item.Focus(); } } } else if (listTweet != null) //트윗을 선택 하고 이전 스크롤 유지하는 기능 { ClientTweet tweet = treeView.SelectedItem as ClientTweet; if (tweet == null) { //App.SendException("TreeViewManager Focus Tweet NULL!"); treeView.Focus(); return; } int index = FindParentIndex(tweet, listTweet); if (index == -1) { return; } TreeViewItem treeViewItem = GetTreeViewItem(treeView, tweet, index); if (treeViewItem == null) { //App.SendException("TreeViewManager Focus TreeViewItem NULL!"); treeView.Focus(); return; } Point selPoint = treeViewItem.TranslatePoint(new Point(0, 0), scrollViewer); if (selPoint.Y < 0 && selPoint.Y + treeViewItem.ActualHeight < 0 || selPoint.Y > scrollViewer.ActualHeight) { prevScrollPosition = scrollViewer.VerticalOffset; } SelectTreeViewItem(treeViewItem); } else { ClientDirectMessage dm = treeView.SelectedItem as ClientDirectMessage; int index = listDM.IndexOf(dm); GetTreeViewItem(treeView, dm, index)?.Focus(); } }
private void dmcontextOnOpening(object sender, ContextMenuEventArgs e) { ClientDirectMessage dm = treeDM.SelectedItem as ClientDirectMessage; Grid grid = sender as Grid; if (dm == null || grid == null) { return; } grid.ContextMenu = CreateDmContext(dm); }
public ImageWindow(ClientDirectMessage dm, string url) { InitializeComponent(); listImageControl.Add(image0); listImageControl.Add(image1); listImageControl.Add(image2); listImageControl.Add(image3); clientDM = dm; isDM = true; SetPosition(); }
private void OpenImageDM() { ClientDirectMessage dm = dicPanel[eTweetPanel.eDm].treeView.SelectedItem as ClientDirectMessage; if (dm == null) { return; } if (dm.entities.media.Count == 0) { return; } System.Diagnostics.Process.Start(dm.entities.media[0].expanded_url); }
private void dmcontextClick_UserTweet(object sender, RoutedEventArgs e) { ClientDirectMessage dm = selectDM; if (dm == null) { return; } MenuItem item = sender as MenuItem; if (item == null) { return; } string strUser = item.Header.ToString().Replace("__", "_"); DalsaeInstence.LoadTweet(eTweetPanel.eUser, strUser); ShowPanel(eTweetPanel.eUser); }
private void contextClickDM_Url(object sender, RoutedEventArgs e) { MenuItem item = sender as MenuItem; ClientDirectMessage dm = dicPanel[eTweetPanel.eDm].treeView.SelectedItem as ClientDirectMessage; if (dm == null || item == null) { return; } for (int i = 0; i < dm.entities.urls.Count; i++) { if (dm.entities.urls[i].display_url == item.Header.ToString()) { System.Diagnostics.Process.Start(dm.entities.urls[i].expanded_url); break; } } }
private void ReplyDM() { ClientDirectMessage dm = dicPanel[eTweetPanel.eDm].treeView.SelectedItem as ClientDirectMessage; if (dm == null) { return; } if (DataInstence.CheckIsMe(dm.sender_screen_name)) { inputTweetBox.Text = $"d @{dm.recipient_screen_name} "; } else { inputTweetBox.Text = $"d @{dm.sender_screen_name} "; } inputTweetBox.SelectionStart = inputTweetBox.Text.Length; EnterInputTweet(); }
//------------------------------------------------------------------------------------------------------ //--------------------------------------화살표 위 키-------------------------------------------------- //------------------------------------------------------------------------------------------------------ public bool ArrowUp() { if (listTweet != null) { return(FindPrevTweet()); } else { ClientDirectMessage dm = treeView.SelectedItem as ClientDirectMessage; if (dm != null) { int index = listDM.IndexOf(dm) - 1; if (index < 0) { return(false); } GetTreeViewItem(treeView, listDM[index], index)?.Focus(); } return(true); } }
private ContextMenu CreateDmContext(ClientDirectMessage dm) { ContextMenu contextMenu = new ContextMenu(); MenuItem mi = new MenuItem(); mi.Header = "입력하기"; mi.Click += contextClick_EnterInput; contextMenu.Items.Add(mi); Separator sp = new Separator(); contextMenu.Items.Add(sp); //------------------미디어--------------------- if (dm.entities.media.Count > 0) { MenuItem gifMi = new MenuItem(); gifMi.Header = "gif / 동영상"; bool isAddPhoto = false; foreach (ClientMedia item in dm.entities.media) { if (item.type == "photo" && isAddPhoto == false) { MenuItem imageItem = new MenuItem(); imageItem.Header = item.display_url; imageItem.Click += contextClickDM_Image; contextMenu.Items.Add(imageItem); } else { MenuItem gifItem = new MenuItem(); gifItem.Header = item.display_url; gifItem.Click += contextClick_Video; gifMi.Items.Add(gifItem); } } if (gifMi.Items.Count > 0) { contextMenu.Items.Add(gifMi); } sp = new Separator(); contextMenu.Items.Add(sp); } //---------------------------------------------- //------------------URL---------------------- if (dm.entities.urls.Count > 0) { mi = new MenuItem(); mi.Header = "URL"; for (int i = 0; i < dm.entities.urls.Count; i++) { MenuItem url = new MenuItem(); url.Header = dm.entities.urls[i].display_url; url.Click += contextClickDM_Url; mi.Items.Add(url); } contextMenu.Items.Add(mi); sp = new Separator(); contextMenu.Items.Add(sp); } //---------------------------------------------- mi = new MenuItem(); mi.Header = "답장"; mi.Click += contextClick_Reply; contextMenu.Items.Add(mi); sp = new Separator(); contextMenu.Items.Add(sp); //---------------------------------------------- //------------------사용자--------------------- //---------------------------------------------- mi = new MenuItem(); mi.Header = "사용자 기능"; contextMenu.Items.Add(mi); //------------------USER---------------------- { MenuItem usermi = new MenuItem(); usermi.Header = "유저 트윗"; HashSet <string> hashUser = new HashSet <string>(); hashUser.Add(dm.sender.screen_name); //보낸 사람 hashUser.Add(dm.recipient.screen_name); //받는 사람 foreach (string name in hashUser) { MenuItem umi = new MenuItem(); umi.Header = name.Replace("_", "__"); umi.Click += dmcontextClick_UserTweet; usermi.Items.Add(umi); } mi.Items.Add(usermi); } sp = new Separator(); contextMenu.Items.Add(sp); //------------------------------------------------ mi = new MenuItem(); mi.Header = "쪽지"; mi.Click += contextClick_DM; contextMenu.Items.Add(mi); sp = new Separator(); contextMenu.Items.Add(sp); mi = new MenuItem(); mi.Header = "쪽지 복사"; mi.Click += contextClick_DMCopy; contextMenu.Items.Add(mi); return(contextMenu); }
//public static void LoadQTRetweet(object obj) //{ // object[] arrObj = obj as object[]; // if (arrObj == null) return; // ClientTweet tweet = arrObj[0] as ClientTweet; // if (tweet == null) return; // PacketSingleTweet parameter = new PacketSingleTweet(tweet.originalTweet.quoted_status_id_str); // string json = WebInstence.SyncRequest(parameter); // ClientTweet qtTweet =JsonConvert.DeserializeObject<ClientTweet>(json); // if (qtTweet == null)//플텍계나 블락유저일 경우 API콜 했을 때 패킷이 안 온다! // qtTweet = new ClientTweet("트윗을 표시할 수 없습니다."); // else // qtTweet.Init(); // if (DataInstence.isShowTweet(qtTweet, (eTweetPanel)arrObj[1]) == false)//인용트윗 뮤트 확인 하고 뮤트 시 트윗 내용 엎음 // qtTweet = new ClientTweet("트윗이 뮤트되었습니다."); // UIProperty.DeleAddSingleTweet dele = new UIProperty.DeleAddSingleTweet(tweet.uiProperty.AddSingleTweet); // Application.Current.Dispatcher.BeginInvoke(dele, new object[] { qtTweet, tweet.uiProperty, true }); //} //---------------------------------------------------------------------------------------------------- //--------------------------------------DM--------------------------------------------------------- //---------------------------------------------------------------------------------------------------- public void AddDM(ClientDirectMessage dm) { dm.Init(); AddDMData(dm); DalsaeInstence.OnDmNoti(); }