protected override void OnLoad(EventArgs e) { base.OnLoad(e); this.CreateTabContainer("BudDetection"); this.TabContainer.Enabled = true; this.deconvolutedImageBox = new ImageListBox(() => this.DisplayedImage, this.SetDisplayedImage) { Parent = this.TabContainer, Height = 100 }; (new Button { Parent = this.TabContainer, Text = "deconvolute", Dock = DockStyle.Top }).Click += delegate { this.processResult(BudDetection.ColorDeconvolution.Execute(this.DisplayedImage)); }; (new Button { Parent = this.TabContainer, Text = "My Plugin", Dock = DockStyle.Top }).Click += delegate { this.processResult(Detector.Execute(this.DisplayedImage)); }; new Button { Text = "goto zoom", Parent = this.TabContainer, Dock = DockStyle.Top }.Click += delegate { WsiInterop.Navigation.Goto((float)this.zoomNumericUpDown.Value); }; this.zoomNumericUpDown = new NumericUpDown() { Parent = this.TabContainer, Dock = DockStyle.Top, Minimum = 0, Maximum = 1, Value = 0.5M, DecimalPlaces = 1, Increment = 0.1M }; }
private void ImportFontMenuItem_Click(object sender, EventArgs e) { if (SelectedImageMetadata.Count == 0) { return; } using (var importFontWindow = new ImportFontWindow(SelectedImageMetadata)) { if (importFontWindow.ShowDialog() != DialogResult.OK) { return; } var importedData = importFontWindow.GetImportedData(); foreach (var imageDataTuple in importedData) { var metadata = imageDataTuple.Item1; var imageData = imageDataTuple.Item2; ProcessImage(x => imageData, metadata); } ImageCacheManager.RebuildCache(m_firmware); ImageListBox.Invalidate(); ImageListBox_SelectedValueChanged(ImageListBox, EventArgs.Empty); } }
private void FrameworkElement_OnSizeChanged(object sender, SizeChangedEventArgs e) { try { if (ImageScroll == null) { ImageScroll = ImageListBox.GetChildControl <ScrollViewer>(); ImageScroll.ViewChanged += ImageScroll_ViewChanged; } else { Image img = sender as Image; img.MinHeight = 0; var model = img.Tag as ImageListModel; //int index = GetIndex(); //if (model.Id < index) //{ // ImageScroll.ScrollToVerticalOffset(ImageScroll.VerticalOffset + img.ActualHeight); //} model.Height = img.ActualHeight; } } catch (Exception ex) { } }
public static void Setup() { var testDialog = new DialogWindow(new Point(400, 500), "Test"); var menu = new Menu(IoC.Get <IWindow>(), testDialog, new Point(2, 2)); var ctxMenuFile = new ContextMenu(new[] { new MenuItem("Save", () => { MessageBox.Show(new Point(400, 400), "didn't save, sorry"); }), new MenuItem("Load", () => { MessageBox.Show(new Point(400, 400), "didn't load, sorry"); }), }); var ctxMenuFile2 = new ContextMenu(new[] { new MenuItem("oof", () => { MessageBox.Show(new Point(400, 400), "oh no"); }), new MenuItem("aff", () => { MessageBox.Show(new Point(400, 400), "ouch"); }), }); menu.AddItem("File", ctxMenuFile); menu.AddItem("Gile", ctxMenuFile2); menu.AddItem("Brile", ctxMenuFile2); testDialog.AddControl(menu); var lst = new ListBox <int>(IoC.Get <IWindow>(), testDialog, new Rectangle(40, menu.Y + menu.Height + 5, 100, 200)); lst.AddItem("testtesth", 1); lst.AddItem("okserifk", 2); testDialog.AddControl(lst); var imgLst = new ImageListBox <int>(IoC.Get <IWindow>(), testDialog, new Rectangle(150, menu.Y + menu.Height + 5, 200, 200)); imgLst.AddItem(new ImageBox(GameCollections.Items.GetItem(1411).GetSprite(), new Point(32, 32)), "Backpack", 1); imgLst.AddItem(new ImageBox(GameCollections.Items.GetItem(1410).GetSprite(), new Point(32, 32)), "Bag", 2); testDialog.AddControl(imgLst); IoC.Register(nameof(Test), testDialog); }
private bool[,] ProcessImage(Func <bool[, ], bool[, ]> imageDataProcessor, FirmwareImageMetadata imageMetadata, bool rebuildCache = false) { var processedData = imageDataProcessor(ImagePixelGrid.Data); var processedImageSize = processedData.GetSize(); var imageSizeChanged = imageMetadata.Width != processedImageSize.Width || imageMetadata.Height != processedImageSize.Height; imageMetadata.Width = (byte)processedImageSize.Width; imageMetadata.Height = (byte)processedImageSize.Height; m_firmware.WriteImage(processedData, imageMetadata); if (imageSizeChanged || rebuildCache) { ImageCacheManager.RebuildImageCache(m_firmware); ImageListBox.Invalidate(); } else { var cachedImage = FirmwareImageProcessor.CreateBitmap(processedData); ImageCacheManager.SetImage(imageMetadata.Index, imageMetadata.BlockType, cachedImage); var updateCache = new Action(() => { ImageListBox.Invoke(new Action(() => { var itemRect = ImageListBox.GetItemRectangle(imageMetadata.Index - 1); ImageListBox.Invalidate(itemRect); })); }); updateCache.BeginInvoke(null, null); } return(processedData); }
public bool OnHotkey(Keys keyData) { if (!keyData.HasFlag(Keys.Control)) { return(false); } var key = keyData & ~Keys.Control; switch (key) { case Keys.N: ClearAllPixelsButton.PerformClick(); return(true); case Keys.I: InverseButton.PerformClick(); return(true); case Keys.R: ResizeButton.PerformClick(); return(true); case Keys.C: CopyButton.PerformClick(); return(true); case Keys.V: PasteButton.PerformClick(); return(true); case Keys.A: ImageListBox.BeginUpdate(); ImageListBox.SelectedIndices.Clear(); ImageListBox.SelectedIndices.AddRange(Enumerable.Range(0, ImageListBox.Items.Count)); ImageListBox.EndUpdate(); return(true); case Keys.Up: ShiftUpButton.PerformClick(); return(true); case Keys.Down: ShiftDownButton.PerformClick(); return(true); case Keys.Left: ShiftLeftButton.PerformClick(); return(true); case Keys.Right: ShiftRightButton.PerformClick(); return(true); } return(false); }
public void addChangeLog(ImageListBox listBox, Changelog changelog, String updateName, String baseType, int imageIndex) { Logger.log(Logger.TYPE.DEBUG, "Add changelog."); String text = "[" + changelog.getVersion() + baseType + "] " + updateName; ImageListBoxItem item = new ImageListBoxItem(text, imageIndex); listBox.Items.Add(item); }
protected override void OnLoad(EventArgs e) { base.OnLoad(e); this.CreateTabContainer("Deconvolution"); this.TabContainer.Enabled = true; this.deconvolutedImageBox = new ImageListBox(() => this.DisplayedImage, this.SetDisplayedImage) { Parent = this.TabContainer, Height = 100 }; (new Button { Parent = this.TabContainer, Text = "deconvolute", Dock = DockStyle.Top }).Click += delegate { this.deconvolutedImageBox.Init(); foreach (var tuple in this.process()) { var map = new Map(tuple.Item1.Width, tuple.Item1.Height); if (tuple.Item2 != "Blue") { using (var gsp = new GrayscaleProcessor(tuple.Item1, RgbToGrayscaleConversion.JustReds)) { gsp.WriteBack = false; foreach (var grayscalePixel in gsp.Pixels()) { map[grayscalePixel.X, grayscalePixel.Y] = grayscalePixel.V > tuple.Item3 ? 1u : 0u; } } } else { using (var gsp = new GrayscaleProcessor(tuple.Item1, RgbToGrayscaleConversion.JustReds)) { gsp.WriteBack = false; foreach (var grayscalePixel in gsp.Pixels()) { map[grayscalePixel.X, grayscalePixel.Y] = 1u; } } } var layer = new ConnectedComponentCollector().Execute(map); layer.Name = tuple.Item2; this.addLayer(layer, true); this.deconvolutedImageBox.Add(tuple.Item1, tuple.Item2); } }; new Button { Text = "goto zoom", Parent = this.TabContainer, Dock = DockStyle.Top }.Click += delegate { WsiInterop.Navigation.Goto((float)this.zoomNumericUpDown.Value); }; this.zoomNumericUpDown = new NumericUpDown() { Parent = this.TabContainer, Dock = DockStyle.Top, Minimum = 0, Maximum = 1, Value = 0.5M, DecimalPlaces = 1, Increment = 0.1M }; }
public ImageListBoxItem getLogItem(Update update, ImageListBox listBox) { ImageListBoxItem item = null; foreach (ImageListBoxItem it in listBox.Items) { if (it.Text.Contains("[" + update.getVersion() + update.getBaseType() + "]")) { item = it; break; } } return(item); }
private void ImageShowEmoticons_Click(object sender, EventArgs e) { switch (ImageListBox.Visible) { case true: ImageListBox.SelectedIndex = -1; ImageListBox.Visible = false; break; default: ImageListBox.SelectedIndex = -1; ImageListBox.Visible = true; ImageListBox.Focus(); break; } }
private void SearchText_TextChanged(object sender, System.Windows.Controls.TextChangedEventArgs e) { string keyword = SearchText.Text.Trim(); foreach (ListBoxItem c in ImageListBox.Items) { ImageSelectItem d = c.Content as ImageSelectItem; if (d.InfoText.Text.Contains(keyword)) { c.Visibility = System.Windows.Visibility.Visible; } else { c.Visibility = System.Windows.Visibility.Collapsed; } } ImageListBox.UpdateLayout(); }
public static void addUpdateListChangeHandler(ImageListBox listBox, List <Update> updates, TextBox textBox) { Logger.log(Logger.TYPE.DEBUG, "Add update list change handler."); listBox.SelectedValueChanged += new EventHandler((object sender, EventArgs e) => { ImageListBox lb = sender as ImageListBox; if (lb != null) { foreach (Update update in updates) { double version = update.getVersion(); String baseType = update.getBaseType(); if (lb.SelectedItem.ToString().Contains("[" + version + baseType + "]")) { textBox.Text = update.getChangelog().ToString(); break; } } } }); }
private void BlockImageRadioButton_CheckedChanged(object sender, EventArgs e) { var currentListBoxSelectedIndices = ImageListBox.SelectedIndices.ToList(); if (sender == Block1ImageRadioButton) { m_currentBlock = BlockType.Block1; Block1ImageListBox.Visible = true; Block2ImageListBox.Visible = false; } if (sender == Block2ImageRadioButton) { m_currentBlock = BlockType.Block2; Block1ImageListBox.Visible = false; Block2ImageListBox.Visible = true; } ImageListBox.Focus(); if (currentListBoxSelectedIndices.Count != 0) { m_imageListBoxIsUpdating = true; ImageListBox.BeginUpdate(); ImageListBox.SelectedIndices.Clear(); ImageListBox.SelectedIndices.AddRange(currentListBoxSelectedIndices.Where(x => ImageListBox.Items.Count > x)); ImageListBox.EndUpdate(); ImagePixelGrid.Data = ImagePreviewPixelGrid.Data = LastSelectedImageMetadata != null?m_firmware.ReadImage(LastSelectedImageMetadata) : new bool[5, 5]; m_imageListBoxIsUpdating = false; } else { ImageListBox_SelectedValueChanged(ImageListBox, EventArgs.Empty); } UpdateImageStatusLabel(LastSelectedImageMetadata); }
private void ImportImages([NotNull] IList <int> originalImageIndices, [NotNull] IList <bool[, ]> importedImages) { if (importedImages == null) { throw new ArgumentNullException("importedImages"); } if (originalImageIndices == null) { throw new ArgumentNullException("originalImageIndices"); } if (importedImages.Count == 0) { return; } var minimumImagesCount = Math.Min(originalImageIndices.Count, importedImages.Count); originalImageIndices = originalImageIndices.Take(minimumImagesCount).ToList(); importedImages = importedImages.Take(minimumImagesCount).ToList(); ImageImportMode importMode; bool allowResizeOriginalImages; using (var importWindow = new PreviewResourcePackWindow(m_firmware, originalImageIndices, importedImages, false, m_currentBlock)) { importWindow.Text = Consts.ApplicationTitleWoVersion + @" - Paste image(s)"; importWindow.ImportButtonText = "Paste"; if (importWindow.ShowDialog() != DialogResult.OK) { return; } importMode = importWindow.GetImportMode(); allowResizeOriginalImages = importWindow.AllowResizeOriginalImages; } for (var i = 0; i < minimumImagesCount; i++) { var index = i; var originalImageIndex = originalImageIndices[index]; var importedImage = importedImages[index]; if (importMode == ImageImportMode.Block1) { var block1ImageMetadata = m_firmware.Block1Images.First(x => x.Index == originalImageIndex); if (allowResizeOriginalImages) { ProcessImage(x => importedImage, block1ImageMetadata); } else { ProcessImage(x => FirmwareImageProcessor.PasteImage(block1ImageMetadata.CreateImage(), importedImage), block1ImageMetadata); } } else if (importMode == ImageImportMode.Block2) { var block2ImageMetadata = m_firmware.Block2Images.First(x => x.Index == originalImageIndex); if (allowResizeOriginalImages) { ProcessImage(x => importedImage, block2ImageMetadata); } else { ProcessImage(x => FirmwareImageProcessor.PasteImage(block2ImageMetadata.CreateImage(), importedImage), block2ImageMetadata); } } else { var block1ImageMetadata = m_firmware.Block1Images.First(x => x.Index == originalImageIndex); var block2ImageMetadata = m_firmware.Block2Images.First(x => x.Index == originalImageIndex); if (allowResizeOriginalImages) { ProcessImage(x => importedImage, block1ImageMetadata); ProcessImage(x => importedImage, block2ImageMetadata); } else { ProcessImage(x => FirmwareImageProcessor.PasteImage(block1ImageMetadata.CreateImage(), importedImage), block1ImageMetadata); ProcessImage(x => FirmwareImageProcessor.PasteImage(block2ImageMetadata.CreateImage(), importedImage), block2ImageMetadata); } } } ImageCacheManager.RebuildImageCache(m_firmware); ImageListBox.Invalidate(); ImageListBox_SelectedValueChanged(ImageListBox, EventArgs.Empty); }
public void ScrollViewToCur(object obj) { ImageListBox.ScrollIntoView(obj); }
public Gallery() : base(new Layout(1, 1)) { Pictures = new ImageListBox(FindPictures()); Transparent = true; //Pictures.SelectionChangedEvent += new ListBox.SelectionChangedDelegate(Pictures_SelectionChangedEvent); Add(Pictures, 0, 0); }
public void clearChangeLog(ImageListBox listBox, TextBox textBox) { Logger.log(Logger.TYPE.DEBUG, "Clearing the changelog."); textBox.Clear(); listBox.Items.Clear(); }
private void downloadUpdates(List <Update> updates) { Logger.log(Logger.TYPE.DEBUG, "Downloading " + updates.Count + " updates..."); // Enqueue each file to the download handler foreach (Update update in updates) { foreach (GhostFile file in update.getFiles()) { Boolean isArchive = file is Archive; String tmpPath = Path.Combine(update.getTempDir().FullName, isArchive ? ((Archive)file).getExtractTo() : file.getDestination()); dlHandler.enqueueFile(file.getUrl(), tmpPath, file.getName(), (Boolean cancelled) => { if (!cancelled) { Logger.log(Logger.TYPE.DEBUG, "Completed downloading " + (isArchive ? "archive " : "file ") + file.getName()); } }); } } dlHandler.setQueueFileCallback(new QueueCallback(() => { Logger.log(Logger.TYPE.DEBUG, "Completed all the downloads"); ui.getStatusLabel().Text = "Patching files..."; foreach (Update update in updates) { foreach (GhostFile file in update.getFiles()) { String tmpPath = Path.Combine(update.getTempDir().FullName, file is Archive ? ((Archive)file).getExtractTo() : file.getDestination()); update.setSuccess(applyFileChange(file, tmpPath)); } if (update.isSuccess()) { reciever.stampUpdate(update); ImageListBox listBox = ui.getChangelogListBox(); ImageListBoxItem item = getLogItem(update, listBox); if (item != null) { item.ImageIndex = 0; listBox.Invalidate(listBox.GetItemRectangle(item.Index)); listBox.Update(); } } else { Logger.log(Logger.TYPE.FATAL, "One of the updates did not succeed, " + "cancelling update process."); ui.getStatusLabel().Text = "Error while patching files, please check the " + "log for more details."; ui.getLaunchButton().BtnText = "Failed"; return; } } ui.getStatusLabel().Text = "Finished updating " + updates.Count + "/" + updates.Count + "!"; ui.getTickImage().Visible = true; ui.getUpToDateLabel().Visible = true; enablePlay(); })); dlHandler.startFileQueue(); }