private void DeleteTweet() { ClientTweet tweet = selectTweet; if (tweet == null) { return; } if (tweet.originalTweet == null) { return; } if (tweet.user == null) { return; } if (tweet.originalTweet.user.id != DataInstence.userInfo.user.id) { return; //자기 트윗 아니면 종료 } if (tweet.uiProperty.isDeleteTweet) { return; //이미 삭제된 트윗이면 종료 } MessageBoxResult mbr = MessageBox.Show("트윗을 삭제 하시겠습니까?", "삭제", MessageBoxButton.YesNo, MessageBoxImage.None); if (mbr == MessageBoxResult.Yes) { DalsaeInstence.TweetDelete(tweet.originalTweet.id); } FocusPanel(); }
public void Retweet(ClientTweet tweet) { if (tweet.user.Protected && DataInstence.CheckIsMe(tweet.user.id) == false && DataInstence.option.isRetweetProtectUser == false) { DalsaeInstence.ShowMessageBox("잠금 계정의 트윗은 리트윗 할 수 없습니다.\r", "알림"); return; } if (tweet.originalTweet.retweeted == false) { MessageBoxResult mr = DalsaeInstence.ShowMessageBox("선택한 트윗을 리트윗 하시겠습니까?", "리트윗 확인", MessageBoxButton.YesNo); if (mr != MessageBoxResult.Yes) { return; } } if (tweet.user.Protected && tweet.isRetweet == false && DataInstence.CheckIsMe(tweet.user.id) == false) { DalsaeInstence.RetweetProtect(tweet); } else { DalsaeInstence.Retweet(tweet.originalTweet.id, !tweet.originalTweet.retweeted); } }
public MainWindow() { DalsaeInstence.SetMainWindow(this); SetEvent(); LoadResources(lockImage, Properties.Resources.LockPic); LoadResources(gongSikImage, Properties.Resources.gongSik_Small); LoadResources(bitmapGif, Properties.Resources.gif); LoadResources(bitmapPlay, Properties.Resources.play2); LoadResources(bitmapHome, Properties.Resources.home_icon); LoadResources(bitmapMention, Properties.Resources.noti_icon); LoadResources(bitmapDM, Properties.Resources.dm_icon); LoadResources(bitmapFav, Properties.Resources.favorite); LoadResources(bitmapOpen, Properties.Resources.unlink); InitializeComponent(); //리소스 로드 하고 이니셜 해야 메모리 문제 없음 gridProfilePicture.DataContext = DataInstence.userInfo.user; SetListBox(); SetPosition(); LoadAccount(); SetTopUI(DataInstence.option.isSmallUI); timer.Tick += CheckMessageQueue; timer.Interval = new TimeSpan(0, 0, 0, 4); timer.Start(); findCommand.InputGestures.Add(new KeyGesture(Key.F, ModifierKeys.Control)); //찾기 단축키 등록 SetFindGridVisibility(false); }
//최초 로딩 시 private void Dalsae_Loded(object sender, RoutedEventArgs e) { gridPreview.Visibility = Visibility.Hidden; gridPreview.Background = new SolidColorBrush(Color.FromRgb(255, 255, 255)); DalsaeInstence.LoadedMainWindow(); foreach (TreeViewManager item in dicPanel.Values) { ScrollViewer scroll = Generate.FindElementByName <ScrollViewer>(item.treeView); item.scrollViewer = scroll; } imageHome.Source = bitmapHome; imageMention.Source = bitmapMention; imageDm.Source = bitmapDM; imageFav.Source = bitmapFav; imageOpen.Source = bitmapOpen; if (FileInstence.isPatched) { MessageBoxResult mr = MessageBox.Show(this, $"달새의 오류를 자동으로 전송 하시겠습니까?{Environment.NewLine}차후 패치까지 적용 됩니다.{Environment.NewLine}어려분의 오류 보고가 달새를 더 안정적으로 만듭니다.", "알림", MessageBoxButton.YesNo, MessageBoxImage.Information); if (mr == MessageBoxResult.Yes) { DataInstence.option.isSendError = true; } else { DataInstence.option.isSendError = false; } FileInstence.UpdateOption(DataInstence.option); } }
//------------------------------------------------------------------------------------------- //---------------------------------각종 공용 함수------------------------------------------ //------------------------------------------------------------------------------------------- private void ShowPanel(eTweetPanel panel) { dicPanel[selectPanel].HideTreeView(); dicPanel[panel].ShowTreeView(); TweetInstence.ClearTweet(selectPanel); selectPanel = panel; if (panel == eTweetPanel.eMention) { notiMention.isOn = false; } else if (panel == eTweetPanel.eDm) { notiDm.isOn = false; } //패널 띄웠을 때 로딩된 글이 없을 경우 API콜 if (selectPanel == eTweetPanel.eDm && dicPanel[selectPanel].treeView.Items.Count < 2) { DalsaeInstence.LoadTweet(eTweetPanel.eDm); } else if (selectPanel == eTweetPanel.eFavorite && dicPanel[selectPanel].treeView.Items.Count < 2) { DalsaeInstence.LoadTweet(eTweetPanel.eFavorite); } else if (selectPanel == eTweetPanel.eMention && dicPanel[selectPanel].treeView.Items.Count < 2) { DalsaeInstence.LoadTweet(eTweetPanel.eMention); } dicPanel[selectPanel].Focus(); }
private void contextClick_Retweet(object sender, RoutedEventArgs e) { if (tweet == null) { return; } if (tweet.user.Protected && DataInstence.CheckIsMe(tweet.user.id) == false && DataInstence.option.isRetweetProtectUser == false) { DalsaeInstence.ShowMessageBox("잠금 계정의 트윗은 리트윗 할 수 없습니다.\r", "알림"); return; } MessageBoxResult mr = DalsaeInstence.ShowMessageBox("선택한 트윗을 리트윗 하시겠습니까?", "리트윗 확인", MessageBoxButton.YesNo); if (mr != MessageBoxResult.Yes) { return; } if (tweet.user.Protected && DataInstence.CheckIsMe(tweet.user.id) == false) { DalsaeInstence.RetweetProtect(tweet); } else { DalsaeInstence.Retweet(tweet.originalTweet.id, !tweet.retweeted); } }
private void mainWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e) { if (WindowState != WindowState.Maximized && WindowState != WindowState.Minimized) { DataInstence.SetMainWindowLocation(Left, Top, Width, Height); } DalsaeInstence.ProgramClosing(); }
private void contextClick_Favorite(object sender, RoutedEventArgs e) { if (tweet == null) { return; } DalsaeInstence.Favorite(tweet.originalTweet.id, !tweet.originalTweet.favorited); }
private void menuItemChangeAccount_Click(object sender, RoutedEventArgs e) { MenuItem item = sender as MenuItem; if (item == null) { return; } DalsaeInstence.ChangeAccount(item.Name); }
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e) { isClosed = true; timer.Stop(); mediaElement.Stop(); mediaElement.Source = null; DataInstence.SetVideoWindowLocation(Left, Top, Width, Height); Properties.Settings.Default.videoVolume = mediaElement.Volume; DalsaeInstence.FocusPanel(); }
private void contextClick_UserRetweetOff(object sender, RoutedEventArgs e) { ClientTweet tweet = selectTweet; if (tweet == null) { return; } DalsaeInstence.RetweetOff(tweet.user.id); }
private void contextClick_showTweet(object sender, RoutedEventArgs e) { UserFollow user = dicPanel[selectPanel].listbox.SelectedItem as UserFollow; if (user == null) { return; } DalsaeInstence.LoadTweet(eTweetPanel.eUser, user.screen_name); }
public App() { this.Dispatcher.UnhandledException += Dispatcher_UnhandledException; this.Dispatcher.UnhandledExceptionFilter += Dispatcher_UnhandledExceptionFilter; AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; TaskScheduler.UnobservedTaskException += TaskScheduler_UnobservedTaskException; DataInstence.Init(); FileInstence.Init(); //init DalsaeInstence.Init(); //init }
//private bool UpdateKey(TextBox textBox, Keys key) //{ // bool ret = true; // if(textBox.Equals(textReplyAll)) // { // ret = hotkey.UpdateKey(HotKeys.eHotKeys.eKeyReplyAll, key); // } // else if(textBox.Equals(textReply)) // { // ret = hotkey.UpdateKey(HotKeys.eHotKeys.eKeyReply, key); // } // else if (textBox.Equals(textRetweet)) // { // ret = hotkey.UpdateKey(HotKeys.eHotKeys.eKeyRetweet, key); // } // else if (textBox.Equals(textFavorite)) // { // ret = hotkey.UpdateKey(HotKeys.eHotKeys.eKeyFavorite, key); // } // else if (textBox.Equals(textQRtweet)) // { // ret = hotkey.UpdateKey(HotKeys.eHotKeys.eKeyQRetweet, key); // } // else if (textBox.Equals(textInput)) // { // ret = hotkey.UpdateKey(HotKeys.eHotKeys.eKeyInput, key); // } // else if (textBox.Equals(textSendDM)) // { // ret = hotkey.UpdateKey(HotKeys.eHotKeys.eKeySendDM, key); // } // else if (textBox.Equals(textDelete)) // { // ret = hotkey.UpdateKey(HotKeys.eHotKeys.eKeyDeleteTweet, key); // } // else if (textBox.Equals(textHashTag)) // { // ret = hotkey.UpdateKey(HotKeys.eHotKeys.eKeyHashTag, key); // } // else if (textBox.Equals(textTL)) // { // ret = hotkey.UpdateKey(HotKeys.eHotKeys.eKeyShowTL, key); // } // else if (textBox.Equals(textMention)) // { // ret = hotkey.UpdateKey(HotKeys.eHotKeys.eKeyShowMention, key); // } // else if (textBox.Equals(textShowDM)) // { // ret = hotkey.UpdateKey(HotKeys.eHotKeys.eKeyShowDM, key); // } // else if (textBox.Equals(textShowFavorite)) // { // ret = hotkey.UpdateKey(HotKeys.eHotKeys.eKeyShowFavorite, key); // } // else if (textBox.Equals(textGoEnd)) // { // ret = hotkey.UpdateKey(HotKeys.eHotKeys.eKeyGoEnd, key); // } // else if (textBox.Equals(textGoHome)) // { // ret = hotkey.UpdateKey(HotKeys.eHotKeys.eKeyGoHome, key); // } // else if (textBox.Equals(textLoad)) // { // ret = hotkey.UpdateKey(HotKeys.eHotKeys.eKeyLoad, key); // } // return ret; //} private void okButton_Click(object sender, EventArgs e) { UpdateKey(); if (CheckKeys()) { SaveHotkey(); this.Close(); } else { DalsaeInstence.ShowMessageBox("단축키가 중복됩니다.", "오류"); } }
private void button_Click(object sender, RoutedEventArgs e) { int pin; if (int.TryParse(textBox.Text, out pin) && textBox.Text.Length == 7) { DalsaeInstence.InputPin(textBox.Text); Close(); } else { MessageBox.Show(this, "웹 페이지에서 발급 받은.\r7자리 숫자를 제대로 입력 해주세요", "오류", MessageBoxButton.OK, MessageBoxImage.Error); } }
private void AddFavorite() { ClientTweet tweet = selectTweet; if (tweet == null) { return; } if (tweet.originalTweet == null) { return; } DalsaeInstence.Favorite(tweet.originalTweet.id, !tweet.originalTweet.favorited); }
private void AddTweetData(eTweetPanel panel, ClientTweet tweet, bool isMore = false) { dicHashs[panel].Add(tweet.id); SetBackground(panel, tweet); if (isMore == false) { if (panel == eTweetPanel.eHome || panel == eTweetPanel.eDm) { if (dicTweetTree[panel].Count > ConMaxTweet) { dicHashs[panel].Remove(dicTweetTree[panel][dicTweetTree[panel].Count - 1].id); dicTweetTree[panel].RemoveAt(dicTweetTree[panel].Count - 1); } } else { if (dicTweetTree[panel].Count > ConMaxTweet) { dicHashs[panel].Remove(dicTweetTree[panel][dicTweetTree[panel].Count - 2].id); dicTweetTree[panel].RemoveAt(dicTweetTree[panel].Count - 2); } } dicTweetTree[panel].Insert(0, tweet); //list의 앞에 등록해야 순차적으로 표시됨 } else { dicTweetTree[panel].Insert(dicTweetTree[panel].Count - 1, tweet); //더 불러오기 버튼 앞에 추가 } if (panel == eTweetPanel.eMention) { tweet.uiProperty.isHighlight = true; } if (panel == eTweetPanel.eMention || panel == eTweetPanel.eDm) //알림 { DalsaeInstence.OnMentionNoti(); } if (tweet.isQTRetweet) { Manager.APICallAgent.apiInstence.LoadSingleTweet(tweet, tweet.originalTweet.quoted_status_id_str); } //Application.Current.Dispatcher.BeginInvoke(OnQt, new object[] { tweet }); //OnQt?.Invoke(tweet); //if (tweet.isQTRetweet) //{ // ThreadPool.QueueUserWorkItem(new WaitCallback(LoadQTRetweet), new object[] { tweet, panel }); //} }
private void LoadDeahwa() { if (selectTweet == null) { return; } if (selectTweet.originalTweet == null) { return; } DalsaeInstence.LoadSingleTweet(selectTweet); //if (string.IsNullOrEmpty(selectTweet.originalTweet.in_reply_to_status_id_str) == false) // DalsaeInstence.LoadDeahwa(selectTweet); //DalsaeInstence.LoadSingleTweet(selectTweet); //if (selectTweet.isQTRetweet) // ThreadPool.QueueUserWorkItem(new WaitCallback(LoadQTRetweet), new object[] { selectTweet, selectPanel }); }
private void click_MoreButton(object sender, RoutedEventArgs e) { if (dicPanel[selectPanel].treeView.Items.Count < 2) //2개 이상일 경우 로딩된 트윗이 있는 거 { return; } if (selectPanel == eTweetPanel.eUser || selectPanel == eTweetPanel.eUserMedia) { ClientTweet tweet = dicPanel[selectPanel].treeView.Items[dicPanel[selectPanel].treeView.Items.Count - 2] as ClientTweet; DalsaeInstence.LoadTweetMore(selectPanel, tweet.id, tweet.user.screen_name); } else { ClientTweet tweet = dicPanel[selectPanel].treeView.Items[dicPanel[selectPanel].treeView.Items.Count - 2] as ClientTweet; DalsaeInstence.LoadTweetMore(selectPanel, tweet.id); } }
private void LoadTweetByKey() { if (selectPanel == eTweetPanel.eUser) { if (dicPanel[eTweetPanel.eUser].treeView.Items.Count < 2) { return; } ClientTweet tweet = dicPanel[eTweetPanel.eUser].treeView.Items[0] as ClientTweet; if (tweet.user != null) { DalsaeInstence.LoadTweet(selectPanel, tweet.user.screen_name); } } else { DalsaeInstence.LoadTweet(selectPanel); } }
private void contextClick_UserMediaTweet(object sender, RoutedEventArgs e) { ClientTweet tweet = selectTweet; if (tweet == null) { return; } MenuItem item = sender as MenuItem; if (item == null) { return; } string strUser = item.Header.ToString().Replace("__", "_"); DalsaeInstence.LoadTweet(eTweetPanel.eUserMedia, strUser); //ShowPanel(eTweetPanel.eUser); }
//------------------------------------------------------------------------------------------- //---------------------------------컨텍스트 클릭------------------------------------------- //------------------------------------------------------------------------------------------- private void tweetGrid_MouseLeftDown(object sender, MouseButtonEventArgs e) { if (e.ClickCount >= 2) //더블 클릭이 아닐 경우 종료 { if (selectTweet == null) { return; } if (selectTweet.originalTweet == null) { return; } if (string.IsNullOrEmpty(selectTweet.originalTweet.in_reply_to_status_id_str)) { return; } DalsaeInstence.LoadSingleTweet(selectTweet); } }
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 button_Click(object sender, RoutedEventArgs e) { DalsaeInstence.LoadTweet(eTweetPanel.eUser, textBox.Text.Replace("@", "").Replace(" ", "")); Close(); }
private void contextClick_Qt(object sender, RoutedEventArgs e) { DalsaeInstence.QTRetweet(tweet); }
private void contextClick_ReplyAll(object sender, RoutedEventArgs e) { DalsaeInstence.ReplyAll(tweet); }
private void imageWindow_Closed(object sender, EventArgs e) { DalsaeInstence.FocusPanel(); }
private void labelTweetCount_MouseDown(object sender, MouseButtonEventArgs e) { UserFollow user = gridUserTop.DataContext as UserFollow; DalsaeInstence.LoadTweet(eTweetPanel.eUser, user.screen_name); }
private void menuItemAddAccount_Click(object sender, RoutedEventArgs e) { DalsaeInstence.AddAccount(); }
private void menuItemDeleteAccount_Click(object sender, RoutedEventArgs e) { DeleteAccount(); DalsaeInstence.DeleteNowAccount(); }