Пример #1
0
        public void ShowMostRecentMessage()
        {
            if (mostRecentQueue.Count == 0 || canShowRecentMessage == false)
            {
                return;
            }

            canShowRecentMessage = false;

            Point recentMessageTopPoint = new Point();

            recentMessageTopPoint.X = workingArea.X + workingArea.Width - expectedSize.Width;
            recentMessageTopPoint.Y = workingArea.Y + workingArea.Height;

            Size formSize = new Size(this.expectedSize.Width, 0);
            int  xOffset  = 3;

            Size controlPaneSize = new Size(this.expectedSize.Width - xOffset * 2, (int)(this.expectedSize.Height * 0.25));

            MostRecentControlPane controlPane = new MostRecentControlPane(controlPaneSize);

            controlPane.Render();

            recentMessageForm           = new MostRecentMessageForm(formSize, recentMessageTopPoint);
            recentMessageForm.TopMost   = true;
            recentMessageForm.Disposed += MostRecentMessage_FormDisposed;
            recentMessageForm.AddMessageControl(controlPane);

            IEnumerator <VmosoTileDisplayRecord> enumerator = mostRecentQueue.GetEnumerator();

            int elementIndex = 0;

            while (enumerator.MoveNext())
            {
                elementIndex++;
                VmosoTileDisplayRecord displayRecord = enumerator.Current;

                Size typeIconPaneSize = new Size(this.expectedSize.Width - xOffset * 2, (int)(this.expectedSize.Height * 0.25));
                Size summaryPaneSize  = new Size(this.expectedSize.Width - xOffset * 2, (int)(this.expectedSize.Height * 0.375));
                Size personalPaneSize = new Size(this.expectedSize.Width - xOffset * 2, (int)(this.expectedSize.Height * 0.375) - 3);

                TypeIconPane typeIconPane = elementIndex == mostRecentQueue.Count ? new TypeIconPane(typeIconPaneSize, displayRecord, true) : new TypeIconPane(typeIconPaneSize, displayRecord, false);
                SummaryPane  summaryPane  = new SummaryPane(summaryPaneSize, displayRecord);
                PersonalPane personalPane = new PersonalPane(personalPaneSize, displayRecord, Session);

                typeIconPane.Render();
                summaryPane.Render();
                personalPane.Render();

                recentMessageForm.AddTile(personalPane);
                recentMessageForm.AddTile(summaryPane);

                if (elementIndex == mostRecentQueue.Count)
                {
                    recentMessageForm.AddTile(typeIconPane);
                }
            }

            recentMessageForm.Render();
            recentMessageForm.Show();

            showMessageTimer.Start();
        }