//----- End of the codes.
        #region Method
        //-----
        #region ShowAlert
        /// <summary>
        /// A function that displays a notification with three message inputs, caption, and photos.
        /// </summary>
        /// <param name="message"></param>
        /// <param name="caption"></param>
        /// <param name="picture"></param>
        public void ShowAlert(string message, Caption caption, string picture)
        {
            this.Opacity       = 0.0;
            this.StartPosition = System.Windows.Forms.FormStartPosition.Manual;

            string name;

            for (int i = 1; i < 10; i++)
            {
                name = "alert" + i.ToString();

                PopupNotificationForm popupNotification = (PopupNotificationForm)System.Windows.Forms.Application.OpenForms[name];

                if (popupNotification == null)
                {
                    this.Name     = name;
                    this.x        = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Width - this.Width + 15;
                    this.y        = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height - this.Height * i - 5 * i;
                    this.Location = new System.Drawing.Point(this.x, this.y);
                    break;
                }
            }

            this.x = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Width - base.Width - 5;

            switch (caption)
            {
            case Caption.موفقیت:
                alertIconPicturBox.Image = Resturant.Properties.Resources.succes_512;
                BackColor         = System.Drawing.Color.SeaGreen;
                captionLabel.Text = Caption.موفقیت.ToString();
                break;

            case Caption.اخطار:
                alertIconPicturBox.Image = Resturant.Properties.Resources.warning_512;
                BackColor         = System.Drawing.Color.DarkOrange;
                captionLabel.Text = Caption.اخطار.ToString();
                break;

            case Caption.خطا:
                alertIconPicturBox.Image = Resturant.Properties.Resources.error_512;
                BackColor         = System.Drawing.Color.DarkRed;
                captionLabel.Text = Caption.خطا.ToString();
                break;

            case Caption.اطلاع:
                alertIconPicturBox.Image = Resturant.Properties.Resources.info_512;
                BackColor         = System.Drawing.Color.RoyalBlue;
                captionLabel.Text = Caption.اطلاع.ToString();
                break;
            }

            this.objectpicturBox.Image  = System.Drawing.Image.FromFile(picture);
            this.alertMessageLabel.Text = message;

            this.Show();
            this.action          = Action.start;
            this.timer1.Interval = 1;
            this.timer1.Start();
        }
 private void PushForce(NotificationContent notification)
 {
     var window = new PopupNotificationForm(notification);
     var h = window.Height;
     var x = _origin.X;
     var y = _origin.Y - h;
     window.Left = x;
     window.Top = y;
     _windows.Add(window);
     MakeRoomInStack(window);
     window.SizeChanged += OnWindowSizeChanged;
     AnimateFadeIn(window);
     window.Closed	+= OnWindowClosed;
     window.Show();
 }
 private void MakeRoomInStack(PopupNotificationForm window)
 {
     int index = _windows.IndexOf(window);
     if(index == -1) return;
     var desiredTop = _origin.Y - _windows[_windows.Count - 1].Height;
     for(int i = _windows.Count - 2; i >= index + 1; --i)
     {
         desiredTop -= _windows[i].Height - WindowSpacing;
     }
     if(window.Top > desiredTop)
     {
         AnimateVerticalSlide(window, desiredTop);
     }
     var w2 = window;
     for(int i = index - 1; i >= 0; --i)
     {
         var w1 = _windows[i];
         desiredTop = desiredTop - w1.Height - WindowSpacing;
         if(w1.Top > desiredTop)
         {
             AnimateVerticalSlide(w1, desiredTop);
         }
         else
         {
             break;
         }
         w2 = w1;
     }
 }
 private static void AnimateVerticalSlide(PopupNotificationForm window, int targetTop)
 {
     window.Top = targetTop;
 }
 private static void AnimateFadeIn(PopupNotificationForm window)
 {
 }