public TagTabControl(int startingTabIndex, TagFormStyle tagFormStyle = TagFormStyle.Editor, WallpaperData.ImageData activeImage = null, TagData activeTag = null, TagForm parentTagForm = null, Action <TagData> tagClickEvent = null) { InitializeComponent(); ParentTagForm = parentTagForm; this.activeImage = activeImage; this.activeTag = activeTag; this.tagFormStyle = tagFormStyle; this.tagClickEvent = tagClickEvent; this.tabControlImageTagger.MouseDown += tabControlImageTagger_MouseDown; this.tabControlImageTagger.MouseUp += tabControlImageTagger_MouseUp; this.tabControlImageTagger.MouseMove += tabControlImageTagger_MouseMove; this.tabControlImageTagger.DragOver += tabControlImageTagger_DragOver; this.tabControlImageTagger.DragOver += tagContainerButton_DragOver; this.tabControlImageTagger.DragDrop += tagContainerButton_DragDrop; this.tabControlImageTagger.SelectedIndexChanged += CategoryChanged; tabControlImageTagger.ItemSize = new Size(28, 18); initialItemSize = tabControlImageTagger.ItemSize; if (WallpaperData.TaggingInfo.CategoryCount() > 0) { LoadTaggingInfo(); } else { CreateCategory("Default"); } tabControlImageTagger.SelectedIndex = startingTabIndex; LoadTagContainer(startingTabIndex); ParentTagForm?.UpdateCategoryControls(); }
public ImageEditorControl(WallpaperData.ImageData imageData, bool immediatelyLoadImage) { InitializeComponent(); this.ImageData = imageData; SuspendLayout(); buttonSelectImage.Click += (o, i) => { WallpaperData.WallpaperManagerForm.UpdateSelectedImage(ImageData); }; textBoxRankEditor.Text = ImageData.Rank.ToString(); textBoxRankEditor.Click += (s, e) => textBoxRankEditor.SelectAll(); // highlights all text when clicking on the control textBoxRankEditor.LostFocus += TextBoxRankEditor_LostFocus; textBoxRankEditor.KeyDown += TextBoxRankEditor_KeyDown; buttonMinus.Click += (o, i) => { ImageData.Rank--; textBoxRankEditor.Text = ImageData.Rank.ToString(); }; buttonPlus.Click += (o, i) => { ImageData.Rank++; textBoxRankEditor.Text = ImageData.Rank.ToString(); }; if (immediatelyLoadImage) // this can cause lag if too many ImageEditorControl objects are loaded at once { WallpaperData.WallpaperManagerForm.LoadImage(this, ImageData.Path); //? calls back to SetBackgroundImage after getting the needed info to set the background } if (!ImageData.Active) // if EnableDetectionOfInactiveImages is true, this'll show which images are disabled { buttonSelectImage.FlatAppearance.BorderColor = Color.Red; } ResumeLayout(); }
private static bool UpdateImagePath(string oldPath, string newPath, WallpaperData.ImageData image) { if (image == null) { return(false); } if (File.Exists(oldPath)) { if (!File.Exists(newPath)) { if (new FileInfo(newPath).Name.IndexOfAny(Path.GetInvalidFileNameChars()) == -1) { return(FinalizeImagePathUpdate(oldPath, newPath)); } else { MessageBox.Show("The image could not be renamed as its name contains invalid characters"); } } else { MessageBox.Show("The following image could not be renamed as its intended path has already been taken: " + "\nOld Path: " + oldPath + "\nNew Path: " + newPath); } } else { MessageBox.Show("The image you attempted to rename was not found: \n" + oldPath); } return(false); }
public ImageEditorForm(WallpaperData.ImageData imageData) { InitializeComponent(); activeImage = imageData; if (activeImage.imageType != ImageType.Video) { pictureBoxImage.ImageLocation = imageData.Path; pictureBoxImage.Visible = true; axWindowsMediaPlayer.Visible = false; } else { pictureBoxImage.Visible = false; axWindowsMediaPlayer.Visible = true; axWindowsMediaPlayer.settings.autoStart = true; axWindowsMediaPlayer.settings.setMode("loop", true); axWindowsMediaPlayer.URL = imageData.Path; axWindowsMediaPlayer.settings.volume = imageData.VideoSettings.Volume / 2; //? windows media player supports double the volume of mpv axWindowsMediaPlayer.settings.rate = imageData.VideoSettings.PlaybackSpeed; } imageTagsFLP.SuspendLayout(); foreach (CategoryData category in WallpaperData.TaggingInfo.GetAllCategories()) { string categoryName = category.Name; if (imageData.Tags.ContainsKey(categoryName)) //? remember that imageData.Tags may be ordered improperly { tagButtons.Add(categoryName, new HashSet <Tuple <string, Button> >()); HashSet <string> orderedTags = ( from t in imageData.Tags[categoryName] orderby WallpaperData.TaggingInfo.GetTag(category, t).GetLinkedImageCount() descending select t).ToHashSet(); foreach (string tag in orderedTags) { CreateTagButton(categoryName, tag); } } } imageTagsFLP.ResumeLayout(); if (Options.OptionsData.ThemeOptions.EnableDetectionOfInactiveImages) { if (!activeImage.Active) // the Enabled setting already shows by default { labelEnabled.Text = "Disabled"; labelEnabled.ForeColor = Color.Red; } } else // no need to see this labeled if you're only able to select enabled images { labelEnabled.Visible = false; } }
public TagClickerForm(int startingTabIndex, TagFormStyle tagFormStyle, WallpaperData.ImageData activeImage = null, TagData activeTag = null, Action <TagData> tagClickEvent = null) { InitializeComponent(); tagTabControl = new TagTabControl(startingTabIndex, tagFormStyle, activeImage, activeTag, tagClickEvent: tagClickEvent); //this.Size = tagTabControl.Size; Controls.Add(tagTabControl); tagTabControl.Location = new Point(0, 0); }
public void UpdateSelectedImage(WallpaperData.ImageData imageData) { labelSelectedImage.Text = InspectedImage = imageData.Path; }