Apricot.Balloon.OnMouseLeftButtonDown C# (CSharp) Method

OnMouseLeftButtonDown() protected method

protected OnMouseLeftButtonDown ( System.Windows.Input.MouseButtonEventArgs e ) : void
e System.Windows.Input.MouseButtonEventArgs
return void
        protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e)
        {
            base.OnMouseLeftButtonDown(e);

            if (e.OriginalSource == this.UpImage)
            {
                if (this.messageCollection.Count > 0 && this.historyPoint.HasValue && this.historyPoint.Value < this.messageCollection.Count)
                {
                    if (this.enableFilter)
                    {
                        Message message = this.messageCollection[this.historyPoint.Value];

                        if (message.HasAttachments)
                        {
                            double interval = GetNextInterval(message.Attachments, this.nextThresholdScore, 1, true);

                            if (this.nextThresholdScore - interval < this.minScore)
                            {
                                this.thresholdQueue.Enqueue(this.minScore - this.nextThresholdScore);
                                this.nextThresholdScore = this.minScore;
                            }
                            else
                            {
                                this.thresholdQueue.Enqueue(-interval);
                                this.nextThresholdScore -= interval;
                            }
                        }
                    }
                    else
                    {
                        if (this.selectedPosition.HasValue)
                        {
                            this.selectedPositionQueue.Enqueue(-1);
                        }
                        else
                        {
                            this.scrollQueue.Enqueue(-1);
                        }
                    }
                }
            }
            else if (e.OriginalSource == this.DownImage)
            {
                if (this.messageCollection.Count > 0 && this.historyPoint.HasValue && this.historyPoint.Value < this.messageCollection.Count)
                {
                    if (this.enableFilter)
                    {
                        Message message = this.messageCollection[this.historyPoint.Value];

                        if (message.HasAttachments)
                        {
                            double interval = GetNextInterval(message.Attachments, this.nextThresholdScore, 1, false);

                            if (this.nextThresholdScore + interval > this.maxScore)
                            {
                                this.thresholdQueue.Enqueue(this.maxScore - this.nextThresholdScore);
                                this.nextThresholdScore = this.maxScore;
                            }
                            else
                            {
                                this.thresholdQueue.Enqueue(interval);
                                this.nextThresholdScore += interval;
                            }
                        }
                    }
                    else
                    {
                        if (this.selectedPosition.HasValue)
                        {
                            this.selectedPositionQueue.Enqueue(1);
                        }
                        else
                        {
                            this.scrollQueue.Enqueue(1);
                        }
                    }
                }
            }
        }