Exemplo n.º 1
0
        /***************************************************************************************************************
        *    Appends the specified message to the TextBlock.
        *
        *    @param msg The message to append.
        ***************************************************************************************************************/
        private void AppendTextField(string msg)
        {
            MainTextBlock.Text += msg;
            MainTextBlock.Text += "\n";

            MainScroller.ScrollToEnd();
        }
Exemplo n.º 2
0
        private async void MainPanel_SizeChanged(object sender, EventArgs e)
        {
            // Supports only Android
            await MainScroller.ScrollToAsync(0, MainPanel.Height, true);

            // Supports only IOS
            //await MainScroller.ScrollToAsync(0, MainScroller.Content.Height, true);
        }
Exemplo n.º 3
0
 private void SendMessage(string message)
 {
     if (currentChannel != null && !string.IsNullOrEmpty(message))
     {
         currentChannel.SendMessage(message);
         MainScroller.ScrollToBottom();
     }
 }
Exemplo n.º 4
0
 private void SendMessage_Click(object sender, EventArgs e)
 {
     messages.Add(new Message {
         Content = ComposeMessage.Text
     });
     ComposeMessage.Text = String.Empty;
     MainScroller.UpdateLayout();
     MainScroller.ScrollToVerticalOffset(MainScroller.ScrollableHeight);
 }
Exemplo n.º 5
0
 private void AppendMessage(DiscordMessage m)
 {
     if (messagesList.Items.Count > 0)
     {
         var previousStub = (messagesList.Items[messagesList.Items.Count - 1] as MessageStub);
         if ((previousStub.Message.timestamp - m.timestamp) < TimeSpan.FromMinutes(2))
         {
             if (m.Author == (messagesList.Items[messagesList.Items.Count - 1] as MessageStub).Message.Author)
             {
                 (messagesList.Items[messagesList.Items.Count - 1] as MessageStub).AppendMessage(m);
             }
             else
             {
                 MessageStub stub = new MessageStub(m, mainClientReference);
                 if (stub.Message.Author != null)
                 {
                     if (App.ClientConfiguration.Settings.IgnoredUserIDs.Contains(stub.Message.Author.ID))
                     {
                         stub.SetMessageText("<Ignored Message>");
                     }
                 }
                 stub.IgnoredUserAdded += IgnoreUserUpdate;
                 messagesList.Items.Add(stub);
                 MainScroller.ScrollToBottom();
             }
         }
         else
         {
             MessageStub stub = new MessageStub(m, mainClientReference);
             if (stub.Message.Author != null)
             {
                 if (App.ClientConfiguration.Settings.IgnoredUserIDs.Contains(stub.Message.Author.ID))
                 {
                     stub.SetMessageText("<Ignored Message>");
                 }
             }
             stub.IgnoredUserAdded += IgnoreUserUpdate;
             messagesList.Items.Add(stub);
             MainScroller.ScrollToBottom();
         }
     }
     else
     {
         MessageStub stub = new MessageStub(m, mainClientReference);
         if (stub.Message.Author != null)
         {
             if (App.ClientConfiguration.Settings.IgnoredUserIDs.Contains(stub.Message.Author.ID))
             {
                 stub.SetMessageText("<Ignored Message>");
             }
         }
         stub.IgnoredUserAdded += IgnoreUserUpdate;
         messagesList.Items.Add(stub);
         MainScroller.ScrollToBottom();
     }
 }
Exemplo n.º 6
0
 private void ComposeMessage_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)
 {
     if (e.Key == Key.Enter)
     {
         messages.Add(new Message {
             Content = ComposeMessage.Text
         });
         ComposeMessage.Text = String.Empty;
         MainScroller.UpdateLayout();
         MainScroller.ScrollToVerticalOffset(MainScroller.ScrollableHeight);
     }
 }
Exemplo n.º 7
0
 public void LoadChannel(DiscordChannel channel)
 {
     messagesList.Items.Clear();
     foreach (var m in messageHistoryCache)
     {
         if (m.Channel() == channel)
         {
             AppendMessage(m);
             Title = $"Dissonance - {Server.Name} - #{channel.Name}";
         }
     }
     MainScroller.ScrollToBottom();
 }
Exemplo n.º 8
0
        private void ResizeToSmall()
        {
            BottomContents.SetValue(Grid.ColumnSpanProperty, 2);
            Split.SetValue(Grid.ColumnSpanProperty, 2);

            MainScroller.SetValue(Grid.ColumnSpanProperty, 2);
            // メインスクロールVのRowスパンを3に指定
            MainScroller.SetValue(Grid.RowSpanProperty, 3);

            Main1Grid.SetValue(Grid.ColumnSpanProperty, 2);
            Main2Grid.SetValue(Grid.ColumnSpanProperty, 2);

            Main3Grid.SetValue(Grid.ColumnProperty, 1);
            Main3Grid.SetValue(Grid.RowProperty, 0);
            Main3Grid.SetValue(Grid.ColumnSpanProperty, 1);

            Middle.SetValue(Grid.ColumnSpanProperty, 1);

            // ボトムを消す
            BottomContents.Visibility = Visibility.Visible;
            Split.Visibility          = Visibility.Visible;

            Transaction.Visibility = Visibility.Collapsed;
            Transaction.SetValue(Grid.ColumnProperty, 0);
            Transaction.SetValue(Grid.RowProperty, 1);

            Depth.Visibility = Visibility.Collapsed;

            // メインコンテンツグリッドの高さ指定。*スクロールが出るかでないかここのサイズ。
            MainContentsGrid.Height = 420;//1036;

            // メイン1の高さを指定 *重要
            Main1Grid.Height = 420;
            Main2Grid.Height = 420;
            Main3Grid.Height = 420;

            Middle.Width  = 357;//357
            Middle.Height = 416;
            Middle.Margin = new Thickness(3, 1, 3, 0);

            Main2Colum.Width = new GridLength(360, GridUnitType.Pixel);
            Main3Colum.Width = new GridLength(0, GridUnitType.Pixel);

            BottomContents.Margin = new Thickness(3, 0, 3, 0);

            //Transaction.Margin = new Thickness(0, 0, 10, 3);

            ChartSpanOneYearRadioButton.Visibility   = Visibility.Collapsed;
            ChartSpanOneWeekRadioButton.Visibility   = Visibility.Collapsed;
            ChartSpanThreeHourRadioButton.Visibility = Visibility.Collapsed;
        }
Exemplo n.º 9
0
 private void OnVerticalOffsetChanged(DependencyPropertyChangedEventArgs e)
 {
     MainScroller.ScrollToVerticalOffset((double)e.NewValue);
 }
Exemplo n.º 10
0
        private void ResizeToXXXLarge()
        {
            BottomContents.SetValue(Grid.ColumnSpanProperty, 4);
            Split.SetValue(Grid.ColumnSpanProperty, 4);

            Split.Visibility          = Visibility.Visible;
            BottomContents.Visibility = Visibility.Visible;

            MainScroller.SetValue(Grid.ColumnSpanProperty, 4);
            // メインスクロールVのRowスパンを1に指定
            MainScroller.SetValue(Grid.RowSpanProperty, 1);

            Main1Grid.SetValue(Grid.ColumnSpanProperty, 3);
            Main2Grid.SetValue(Grid.ColumnSpanProperty, 1);

            Main3Grid.SetValue(Grid.ColumnProperty, 1);
            Main3Grid.SetValue(Grid.RowProperty, 0);
            Main3Grid.SetValue(Grid.ColumnSpanProperty, 2);

            // 歩み値を
            Transaction.Visibility = Visibility.Visible;
            Transaction.SetValue(Grid.ColumnProperty, 3);
            Transaction.SetValue(Grid.RowProperty, 0);

            Middle.SetValue(Grid.ColumnSpanProperty, 2);

            // ボトムを表示
            BottomContents.Visibility = Visibility.Visible;
            Split.Visibility          = Visibility.Visible;

            Transaction.Visibility = Visibility.Visible;

            Depth.Visibility = Visibility.Visible;

            // メインコンテンツグリッドの高さ指定。*スクロールが出るかでないかここのサイズ。
            MainContentsGrid.Height = 420;//1036;

            // メイン1の高さを指定 *重要
            Main1Grid.Height = 420;
            Main2Grid.Height = 420;
            Main3Grid.Height = 420;

            Middle.Width  = 743;
            Middle.Height = 416;
            Middle.Margin = new Thickness(3, 1, 0, 3);

            Main3Grid.Width = 760;//760

            Transaction.Height = 416;
            Transaction.Width  = 210;
            Transaction.Margin = new Thickness(3, 1, 0, 3);

            Main2Colum.Width = new GridLength(380, GridUnitType.Pixel);
            Main3Colum.Width = new GridLength(380, GridUnitType.Pixel);

            BottomContents.Margin = new Thickness(3, 0, 3, 0);

            RightSide1Colum.Width = new GridLength(213, GridUnitType.Pixel);
            RightSide2Colum.Width = new GridLength(229, GridUnitType.Pixel);

            ChartSpanOneYearRadioButton.Visibility   = Visibility.Visible;
            ChartSpanOneWeekRadioButton.Visibility   = Visibility.Visible;
            ChartSpanThreeHourRadioButton.Visibility = Visibility.Visible;
        }
Exemplo n.º 11
0
        private void ResizeToLarge()
        {
            // ボトムを
            BottomContents.Visibility = Visibility.Visible;
            // ボトムのコラムスパンを指定
            BottomContents.SetValue(Grid.ColumnSpanProperty, 4);

            // スプリッタを
            Split.Visibility = Visibility.Visible;
            // スプリッタのコラムスパンを指定
            Split.SetValue(Grid.ColumnSpanProperty, 4);

            // 歩み値を
            Transaction.Visibility = Visibility.Visible;
            Transaction.SetValue(Grid.ColumnProperty, 3);
            Transaction.SetValue(Grid.RowProperty, 0);

            // メインスクロールVのコラムスパンを1に指定
            MainScroller.SetValue(Grid.ColumnSpanProperty, 4);
            // メインスクロールVのRowスパンを3に指定
            MainScroller.SetValue(Grid.RowSpanProperty, 1);

            // メインコンテンツグリッドのコラムスパンを1に指定
            MainContentsGrid.SetValue(Grid.ColumnSpanProperty, 1);
            // メインコンテンツグリッドの高さを指定。
            //MainContentsGrid.Height = 518;

            // メイン1コラムのコラムスパンを1に指定
            Main1Grid.SetValue(Grid.ColumnSpanProperty, 3);

            // メイン2コラムのコラムスパンを1に指定
            Main2Grid.SetValue(Grid.ColumnSpanProperty, 1);
            Main2Grid.SetValue(Grid.RowProperty, 0);
            Main2Grid.SetValue(Grid.ColumnProperty, 0);

            // メイン3コラムのコラムスパンを2に指定
            Main3Grid.SetValue(Grid.ColumnSpanProperty, 2);
            // メイン3コラムのRowを0に指定
            Main3Grid.SetValue(Grid.RowProperty, 0);
            // メイン3コラムを1に指定
            Main3Grid.SetValue(Grid.ColumnProperty, 1);

            Middle.SetValue(Grid.ColumnSpanProperty, 2);

            //Depth.Visibility = Visibility.Collapsed;
            Depth.Visibility = Visibility.Visible;

            // メインコンテンツグリッドの高さ指定。*スクロールが出るかでないかここのサイズ。
            MainContentsGrid.Height = 420;//1036;

            // メイン1の高さを指定 *重要
            Main1Grid.Height = 420;
            Main2Grid.Height = 420;
            Main3Grid.Height = 420;

            //Middle.Width = 740; //740
            //Middle.Width = 743;
            //Middle.Width = this.ActualWidth - 665;
            Middle.Width = 543;

            Middle.Height = 416;
            Middle.Margin = new Thickness(3, 1, 0, 3);

            //Main3Grid.Width = 757;//757
            Main3Grid.Width = 560;//760
            //Main3Grid.Width = this.ActualWidth - 648;
            //Main3Grid.Width = this.ActualWidth - 648;

            Transaction.Height = 416;
            //Transaction.Width = 213;
            Transaction.Width = 210;
            //Transaction.Margin = new Thickness(3, 1, 3, 3);
            Transaction.Margin = new Thickness(3, 1, 0, 3);

            //Main2Colum.Width = new GridLength(380, GridUnitType.Pixel);//380
            //Main3Colum.Width = new GridLength(380, GridUnitType.Pixel);//380
            Main2Colum.Width = new GridLength(280, GridUnitType.Pixel); //380
            Main3Colum.Width = new GridLength(280, GridUnitType.Pixel); //380

            BottomContents.Margin = new Thickness(3, 0, 3, 0);


            RightSide1Colum.Width = new GridLength(213, GridUnitType.Pixel);
            //RightSide2Colum.Width = new GridLength(0, GridUnitType.Pixel);
            RightSide2Colum.Width = new GridLength(229, GridUnitType.Pixel);

            ChartSpanOneYearRadioButton.Visibility   = Visibility.Visible;
            ChartSpanOneWeekRadioButton.Visibility   = Visibility.Visible;
            ChartSpanThreeHourRadioButton.Visibility = Visibility.Visible;
        }
Exemplo n.º 12
0
        private void ResizeToDefault()
        {
            // ボトムを
            BottomContents.Visibility = Visibility.Visible;
            // ボトムのコラムスパンを1に指定
            BottomContents.SetValue(Grid.ColumnSpanProperty, 3);

            // スプリッタを
            Split.Visibility = Visibility.Visible;
            // スプリッタのコラムスパンを1に指定
            Split.SetValue(Grid.ColumnSpanProperty, 3);

            Transaction.Visibility = Visibility.Visible;
            Transaction.SetValue(Grid.ColumnProperty, 3);
            Transaction.SetValue(Grid.RowProperty, 0);

            // メインスクロールVのコラムスパンを3に指定
            MainScroller.SetValue(Grid.ColumnSpanProperty, 3);
            //MainScroller.SetValue(Grid.ColumnProperty, 2);
            // メインスクロールVのRowスパンを1に指定
            MainScroller.SetValue(Grid.RowSpanProperty, 1);

            // メインコンテンツグリッドのコラムスパンを1に指定
            MainContentsGrid.SetValue(Grid.ColumnSpanProperty, 1);
            // メインコンテンツグリッドの高さを指定。
            //MainContentsGrid.Height = 420;

            // メイン1コラムのコラムスパンを3に指定
            Main1Grid.SetValue(Grid.ColumnSpanProperty, 3);

            // メイン2コラムのコラムスパンを1に指定
            Main2Grid.SetValue(Grid.ColumnSpanProperty, 1);
            Main2Grid.SetValue(Grid.RowProperty, 0);
            Main2Grid.SetValue(Grid.ColumnProperty, 0);

            // メイン3コラムのコラムスパンを1に指定
            Main3Grid.SetValue(Grid.ColumnSpanProperty, 1);
            // メイン3コラムのRowを0に指定
            Main3Grid.SetValue(Grid.RowProperty, 0);
            // メイン3コラムを1に指定
            Main3Grid.SetValue(Grid.ColumnProperty, 1);

            Middle.SetValue(Grid.ColumnSpanProperty, 2);

            Depth.Visibility = Visibility.Collapsed;

            // メインコンテンツグリッドの高さ指定。*スクロールが出るかでないかここのサイズ。
            MainContentsGrid.Height = 420;//1036;

            // メイン1の高さを指定 *重要
            Main1Grid.Height = 420;
            Main2Grid.Height = 420;
            Main3Grid.Height = 420;

            // 中央のサイズ
            //Middle.Width = 487;
            Middle.Width = this.ActualWidth - 665; //645

            Middle.Height = 416;
            Middle.Margin = new Thickness(3, 1, 0, 3);

            //Main3Grid.Width = 504;
            Main3Grid.Width = this.ActualWidth - 648; //628

            var test = this.ActualWidth - 412;        //412

            Main2Colum.Width = new GridLength(test, GridUnitType.Pixel);
            Main3Colum.Width = new GridLength(0, GridUnitType.Pixel);


            BottomContents.Margin = new Thickness(3, 0, 24, 0);

            Transaction.Height = 416;
            Transaction.Width  = 213;
            Transaction.Margin = new Thickness(3, 1, 3, 3);

            RightSide1Colum.Width = new GridLength(0, GridUnitType.Pixel);
            RightSide2Colum.Width = new GridLength(0, GridUnitType.Pixel);


            ChartSpanOneYearRadioButton.Visibility   = Visibility.Visible;
            ChartSpanOneWeekRadioButton.Visibility   = Visibility.Visible;
            ChartSpanThreeHourRadioButton.Visibility = Visibility.Visible;
        }
Exemplo n.º 13
0
        private void ResizeToXXXSmall()
        {
            // ボトムを消す
            BottomContents.Visibility = Visibility.Collapsed;
            // ボトムのコラムスパンを1に指定
            BottomContents.SetValue(Grid.ColumnSpanProperty, 1);

            // スプリッタを消す
            Split.Visibility = Visibility.Collapsed;
            // スプリッタのコラムスパンを1に指定
            Split.SetValue(Grid.ColumnSpanProperty, 1);

            // 歩み値を消す
            Transaction.Visibility = Visibility.Visible;
            Transaction.SetValue(Grid.ColumnProperty, 0);
            Transaction.SetValue(Grid.RowProperty, 1);

            // メインスクロールVのコラムスパンを1に指定
            MainScroller.SetValue(Grid.ColumnSpanProperty, 1);
            //MainScroller.SetValue(Grid.ColumnProperty, 0);
            // メインスクロールVのRowスパンを3に指定
            MainScroller.SetValue(Grid.RowSpanProperty, 3);

            // メインコンテンツグリッドのコラムスパンを1に指定
            MainContentsGrid.SetValue(Grid.ColumnSpanProperty, 1);

            // メイン1コラムのコラムスパンを1に指定
            Main1Grid.SetValue(Grid.ColumnSpanProperty, 1);

            // メイン2コラムのコラムスパンを1に指定
            Main2Grid.SetValue(Grid.ColumnSpanProperty, 1);
            Main2Grid.SetValue(Grid.RowProperty, 0);
            Main2Grid.SetValue(Grid.ColumnProperty, 0);

            // メイン3コラムのコラムスパンを1に指定
            Main3Grid.SetValue(Grid.ColumnSpanProperty, 1);
            // メイン3コラムのRowを1に指定
            Main3Grid.SetValue(Grid.RowProperty, 1);
            // メイン3コラムを1に指定
            Main3Grid.SetValue(Grid.ColumnProperty, 0);

            Middle.SetValue(Grid.ColumnSpanProperty, 1);

            Depth.Visibility = Visibility.Collapsed;

            // メインコンテンツグリッドの高さ指定。*スクロールが出るかでないかここのサイズ。
            MainContentsGrid.Height = 1260;//1554;//1036;

            // メイン1の高さを指定 *重要
            Main1Grid.Height = 840;//1036;

            Main2Grid.Height = 420;

            Main3Grid.Height = 420;

            Middle.Width  = 380;
            Middle.Margin = new Thickness(3, 0, 3, 0);

            Main2Colum.Width = new GridLength(0, GridUnitType.Pixel);
            Main3Colum.Width = new GridLength(0, GridUnitType.Pixel);

            Transaction.Width  = 380;
            Transaction.Margin = new Thickness(3, 0, 10, 0);

            BottomContents.Margin = new Thickness(3, 0, 0, 0);

            ChartSpanOneYearRadioButton.Visibility   = Visibility.Collapsed;
            ChartSpanOneWeekRadioButton.Visibility   = Visibility.Collapsed;
            ChartSpanThreeHourRadioButton.Visibility = Visibility.Collapsed;
        }