Esempio n. 1
0
 public void DM(ClientDirectMessage dm)
 {
     if (OnBlockIds != null)
     {
         Application.Current.Dispatcher.BeginInvoke(OnDM, new object[] { dm });
     }
 }
Esempio n. 2
0
        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("쪽지 내용이 클립보드에 복사되었습니다.", "알림");
            }
        }
Esempio n. 3
0
 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);
     }
 }
Esempio n. 4
0
 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);
         }
     }
 }
Esempio n. 5
0
        //------------------------------------------------------------------------------------------------------
        //----------------------------------------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);
            }
        }
Esempio n. 6
0
 private void AddDMData(ClientDirectMessage dm)
 {
     if (dicHashs[eTweetPanel.eDm].Contains(dm.id))
     {
         return;
     }
     dicHashs[eTweetPanel.eDm].Add(dm.id);
     treeDM.Insert(0, dm);
 }
Esempio n. 7
0
 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();
     }
 }
Esempio n. 8
0
        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);
        }
Esempio n. 9
0
        public ImageWindow(ClientDirectMessage dm, string url)
        {
            InitializeComponent();
            listImageControl.Add(image0);
            listImageControl.Add(image1);
            listImageControl.Add(image2);
            listImageControl.Add(image3);

            clientDM = dm;
            isDM     = true;
            SetPosition();
        }
Esempio n. 10
0
        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);
        }
Esempio n. 11
0
        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);
        }
Esempio n. 12
0
        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;
                }
            }
        }
Esempio n. 13
0
        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();
        }
Esempio n. 14
0
 //------------------------------------------------------------------------------------------------------
 //--------------------------------------화살표 위 키--------------------------------------------------
 //------------------------------------------------------------------------------------------------------
 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);
     }
 }
Esempio n. 15
0
        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);
        }
Esempio n. 16
0
        //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();
        }