private void mpButtonGenreIsMovie_Click(object sender, EventArgs e) { int selectedGenreId = listViewGuideGenres.SelectedItems[0].Index; MpGenre selectedMpGenre = ((List <MpGenre>)_mpGenres).Find(x => x.Id == selectedGenreId); // Set the only selected mp genre as the movie genre. Toggle current value. bool oldValue = selectedMpGenre.IsMovie; foreach (var genre in _mpGenres) { genre.IsMovie = false; } selectedMpGenre.IsMovie = !oldValue; for (int i = 0; i < listViewGuideGenres.Items.Count; i++) { if (listViewGuideGenres.Items[i] != null) { listViewGuideGenres.Items[i].SubItems[1].Text = ""; } } // Set the selected genre as the movie genre if it's been selected. if (selectedMpGenre.IsMovie) { listViewGuideGenres.Items[selectedMpGenre.Id].SubItems[1].Text = "x"; } }
protected void MapProgramGenres() { // Find the selected mp genre. int selectedGenreId = listViewGuideGenres.SelectedItems[0].Index; MpGenre selectedMpGenre = ((List <MpGenre>)_mpGenres).Find(x => x.Id == selectedGenreId); listViewMappedGenres.BeginUpdate(); listViewProgramGenres.BeginUpdate(); foreach (ListViewItem programGenre in listViewProgramGenres.SelectedItems) { listViewProgramGenres.Items.Remove(programGenre); // Provide an indication that the mapped program genre may be obsolete. There is no way to know for sure. if (!_allProgramGenres.Contains(programGenre.Text)) { listViewMappedGenres.Items.Add(programGenre.Text, 0); } else { listViewMappedGenres.Items.Add(programGenre.Text); } // Update the genre map. selectedMpGenre.MapToProgramGenre(programGenre.Text); } listViewMappedGenres.EndUpdate(); listViewProgramGenres.EndUpdate(); }
private void PopulateMappedGenreList() { listViewMappedGenres.BeginUpdate(); listViewMappedGenres.Items.Clear(); // Find the selected mp genre. int selectedGenreId = listViewGuideGenres.SelectedItems[0].Index; MpGenre selectedMpGenre = _mpGenres.Find(x => x.Id == selectedGenreId); // Populate the list of mapped genres. foreach (var mappedProgramGenre in selectedMpGenre.MappedProgramGenres) { // Provide an indication that the mapped program genre may be obsolete. There is no way to know for sure. if (!_allProgramGenres.Contains(mappedProgramGenre)) { listViewMappedGenres.Items.Add(mappedProgramGenre, 0); } else { listViewMappedGenres.Items.Add(mappedProgramGenre); } } listViewMappedGenres.EndUpdate(); }
private void mpButtonEnableGenre_Click(object sender, EventArgs e) { // Toggle the state. int selectedGenreId = listViewGuideGenres.SelectedItems[0].Index; MpGenre selectedMpGenre = ((List <MpGenre>)_mpGenres).Find(x => x.Id == selectedGenreId); selectedMpGenre.Enabled = !selectedMpGenre.Enabled; if ("".Equals(listViewGuideGenres.Items[selectedGenreId].SubItems[2].Text)) { listViewGuideGenres.Items[selectedGenreId].SubItems[2].Text = "x"; } else { listViewGuideGenres.Items[selectedGenreId].SubItems[2].Text = ""; } }
private void listViewGuideGenres_AfterLabelEdit(object sender, LabelEditEventArgs e) { // Determine if label is changed by checking for null. if (e.Label == null) { return; } // Limit the number of genres that a user may input. if (e.Item > _mpGenres.Count) { return; } // Check for and don't allow empty genre names. if ("".Equals(e.Label)) { e.CancelEdit = true; MessageBox.Show("Empty genre name not allowed.", "EPG Genre Map", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } // Find the edited mp genre. // Find the selected mp genre. int selectedGenreId = listViewGuideGenres.SelectedItems[0].Index; MpGenre editedMpGenre = ((List <MpGenre>)_mpGenres).Find(x => x.Id == selectedGenreId); // Check for and disallow duplicate genre names. MpGenre testMpGenre = ((List <MpGenre>)_mpGenres).Find(x => x.Name == e.Label); if (testMpGenre != null && testMpGenre.Id != editedMpGenre.Id) { if (e.Label.Equals(testMpGenre.Name)) { e.CancelEdit = true; MessageBox.Show("Duplicate genre name not allowed.", "EPG Genre Map", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } } // Change the name of the MP genre. editedMpGenre.Name = e.Label; }
protected void UnmapProgramGenres() { // Find the selected mp genre. int selectedGenreId = listViewGuideGenres.SelectedItems[0].Index; MpGenre selectedMpGenre = ((List <MpGenre>)_mpGenres).Find(x => x.Id == selectedGenreId); listViewMappedGenres.BeginUpdate(); listViewProgramGenres.BeginUpdate(); foreach (ListViewItem mappedGenre in listViewMappedGenres.SelectedItems) { listViewMappedGenres.Items.Remove(mappedGenre); listViewProgramGenres.Items.Add(mappedGenre); // Update the genre map. selectedMpGenre.UnmapProgramGenre(mappedGenre.Text); } listViewMappedGenres.EndUpdate(); listViewProgramGenres.EndUpdate(); }
protected void RenderGenreKey() { GUIImage imgGenreColor = (GUIImage)GetControl((int)Controls.GENRE_COLOR_KEY_PAIR); GUIFadeLabel labelGenreName = (GUIFadeLabel)GetControl((int)Controls.GENRE_COLOR_KEY_PAIR + 1); MpGenre genreObj = _mpGenres.Find(x => x.Enabled == true); // Do not render the key if the template controls are not present or there are no enabled mp genres. if (imgGenreColor == null || labelGenreName == null || genreObj == null) { return; } // Display the genre key. var genreKeys = _genreColorsOnLater.Keys.ToList(); genreKeys.Sort(); int xpos, i = 0; int xoffset = 0; foreach (var genreName in genreKeys) { // If the genre is not enabled then skip it. This can occur if the user desires to have less than the maximum number of MP genres available. genreObj = ((List <MpGenre>)_mpGenres).Find(x => x.Name.Equals(genreName)); if (!genreObj.Enabled) { continue; } xpos = imgGenreColor.XPosition + xoffset; GUIImage img = GetControl((int)Controls.GENRE_COLOR_KEY_PAIR + (2 * i)) as GUIImage; if (img == null) { img = new GUIImage(GetID, (int)Controls.GENRE_COLOR_KEY_PAIR + (2 * i), xpos, imgGenreColor.YPosition, imgGenreColor.Width, imgGenreColor.Height, imgGenreColor.FileName, 0x0); img.AllocResources(); GUIControl cntl = (GUIControl)img; Add(ref cntl); } img.IsVisible = true; img.ColourDiffuse = _genreColorsOnLater[genreName]; img.OverlayFileName = imgGenreColor.OverlayFileName; img.SetPosition(xpos, imgGenreColor.YPosition); img.DoUpdate(); GUIFadeLabel label = GetControl(((int)Controls.GENRE_COLOR_KEY_PAIR + 1) + (2 * i)) as GUIFadeLabel; if (label == null) { label = new GUIFadeLabel(GetID, ((int)Controls.GENRE_COLOR_KEY_PAIR + 1) + (2 * i), 0, 0, labelGenreName.Width, labelGenreName.Height, labelGenreName.FontName, labelGenreName.TextColor, labelGenreName.TextAlignment, labelGenreName.TextVAlignment, labelGenreName.ShadowAngle, labelGenreName.ShadowDistance, labelGenreName.ShadowColor, string.Empty); label.AllocResources(); GUIControl cntl = (GUIControl)label; this.Add(ref cntl); } label.Label = genreName; label.SetPosition(xpos + imgGenreColor.Width + 10, labelGenreName.YPosition); label.ScrollStartDelay = labelGenreName.ScrollStartDelay; label.IsVisible = true; // Compute position of the next key. int w = label.Width; if (label.TextWidth < label.Width) { w = label.TextWidth; } xoffset += (int)(imgGenreColor.Width * 2.3 + w); i++; } }