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(); }