private void SetMailItemButtonPositions()
 {
     foreach (int key in mailItemPages.Keys)
     {
         MailItemPage currentPage = null;
         bool         success     = mailItemPages.TryGetValue(key, out currentPage);
         if (success)
         {
             foreach (var button in currentPage.Buttons)
             {
                 if (currentPage.Buttons.IndexOf(button) == 0)
                 {
                     button.Position = new Vector(Position.X + 158, Position.Y + 70);
                 }
                 else if (currentPage.Buttons.IndexOf(button) == 1)
                 {
                     button.Position = new Vector(Position.X + 158, Position.Y + 107);
                 }
                 else if (currentPage.Buttons.IndexOf(button) == 2)
                 {
                     button.Position = new Vector(Position.X + 158, Position.Y + 144);
                 }
                 else if (currentPage.Buttons.IndexOf(button) == 3)
                 {
                     button.Position = new Vector(Position.X + 158, Position.Y + 181);
                 }
                 else if (currentPage.Buttons.IndexOf(button) == 4)
                 {
                     button.Position = new Vector(Position.X + 158, Position.Y + 218);
                 }
             }
             foreach (var separator in currentPage.Separators)
             {
                 if (currentPage.Separators.IndexOf(separator) == 0)
                 {
                     separator.Position = new Vector(Position.X + 156, Position.Y + 102);
                 }
                 else if (currentPage.Separators.IndexOf(separator) == 1)
                 {
                     separator.Position = new Vector(Position.X + 156, Position.Y + 139);
                 }
                 else if (currentPage.Separators.IndexOf(separator) == 2)
                 {
                     separator.Position = new Vector(Position.X + 156, Position.Y + 176);
                 }
                 else if (currentPage.Separators.IndexOf(separator) == 3)
                 {
                     separator.Position = new Vector(Position.X + 156, Position.Y + 213);
                 }
                 else if (currentPage.Separators.IndexOf(separator) == 4)
                 {
                     separator.Position = new Vector(Position.X + 156, Position.Y + 250);
                 }
             }
         }
     }
 }
        private void AddButtonMailItem(ButtonMailItem buttonMailItem, IDictionary <int, MailItemPage> mailItemPages, Icon iconSeparator)
        {
            // the last page number will indicate the key in which we check for the next items to add
            int          lastPageNumber         = mailItemPages.Keys.Count();
            int          buttonsOnLastPageCount = 0;
            MailItemPage lastPage = null;
            bool         success  = mailItemPages.TryGetValue(lastPageNumber, out lastPage);

            if (success)
            {
                // if there are pages in this page collection and the last page contains less than 4 entries, add the new entry to that page
                if (lastPage.Buttons.Count() < itemsPerPage)
                {
                    lastPage.AddButton(buttonMailItem);
                    lastPage.AddSeparator(iconSeparator);
                }
                // if there are 4 items on the last page, create a new page and add the item
                else
                {
                    lastPage = new MailItemPage();
                    lastPage.AddButton(buttonMailItem);
                    lastPage.AddSeparator(iconSeparator);
                    mailItemPages.Add(lastPageNumber + 1, lastPage);
                }
            }
            else
            {
                // if there are no pages, create an entry and add the first page
                lastPage = new MailItemPage();
                lastPage.AddButton(buttonMailItem);
                lastPage.AddSeparator(iconSeparator);
                mailItemPages.Add(1, lastPage);
            }

            buttonsOnLastPageCount = lastPage.Buttons.Count();
            Vector buttonMailItemPosition = Vector.Zero;
            Vector iconSeparatorPosition  = Vector.Zero;

            if (buttonsOnLastPageCount == 1)
            {
                iconSeparatorPosition  = new Vector(Position.X + 156, Position.Y + 102);
                buttonMailItemPosition = new Vector(Position.X + 158, Position.Y + 70);
            }
            else if (buttonsOnLastPageCount == 2)
            {
                iconSeparatorPosition  = new Vector(Position.X + 156, Position.Y + 139);
                buttonMailItemPosition = new Vector(Position.X + 158, Position.Y + 107);
            }
            else if (buttonsOnLastPageCount == 3)
            {
                iconSeparatorPosition  = new Vector(Position.X + 156, Position.Y + 176);
                buttonMailItemPosition = new Vector(Position.X + 158, Position.Y + 144);
            }
            else if (buttonsOnLastPageCount == 4)
            {
                iconSeparatorPosition  = new Vector(Position.X + 156, Position.Y + 213);
                buttonMailItemPosition = new Vector(Position.X + 158, Position.Y + 181);
            }
            else if (buttonsOnLastPageCount == 5)
            {
                iconSeparatorPosition  = new Vector(Position.X + 156, Position.Y + 250);
                buttonMailItemPosition = new Vector(Position.X + 158, Position.Y + 218);
            }
            else if (buttonsOnLastPageCount >= itemsPerPage + 1)
            {
                return;
            }

            iconSeparator.Position  = iconSeparatorPosition;
            buttonMailItem.Position = buttonMailItemPosition;
            buttonMailItem.Clicked += buttonMailItem_Clicked;

            SetActiveTab(activeTab);
            SetLabelPageNumber();
        }