this.searchSimilarImageMenuItem});
this.contextMenuStrip.Name = "contextMenuStrip";
this.toolTip.SetToolTip(this.contextMenuStrip, resources.GetString("contextMenuStrip.ToolTip"));
+ this.contextMenuStrip.Opening += new System.ComponentModel.CancelEventHandler(this.contextMenuStrip_Opening);
//
// searchSimilarImageMenuItem
//
resources.ApplyResources(this.searchSimilarImageMenuItem, "searchSimilarImageMenuItem");
this.searchSimilarImageMenuItem.Name = "searchSimilarImageMenuItem";
+ this.searchSimilarImageMenuItem.Click += new System.EventHandler(this.searchSimilarImageMenuItem_Click);
//
// TweetThumbnail
//
var picbox = this.pictureBox[i];
picbox.Tag = thumb;
- picbox.ContextMenu = CreateContextMenu(thumb);
+ picbox.ContextMenuStrip = this.contextMenuStrip;
var loadTask = picbox.SetImageFromTask(() => thumb.LoadThumbnailImageAsync(cancelToken));
loadTasks.Add(loadTask);
await Task.WhenAll(loadTasks).ConfigureAwait(false);
}
- private ContextMenu CreateContextMenu(ThumbnailInfo thumb)
- {
- var contextMenu = new ContextMenu();
- contextMenu.MenuItems.Add(CreateImageSearchMenuItem(thumb));
- return contextMenu;
- }
-
- private MenuItem CreateImageSearchMenuItem(ThumbnailInfo thumb)
- {
- var item = new MenuItem();
- item.Text = Properties.Resources.SearchSimilarImageText;
- var search_targe_url = thumb.FullSizeImageUrl ?? thumb.ThumbnailUrl ?? null;
-
- if (search_targe_url != null)
- {
- item.Click += (sender, e) =>
- {
- string uri = GetImageSearchUri(search_targe_url);
- if (this.ThumbnailImageSearchClick != null)
- {
- this.ThumbnailImageSearchClick(this, new ThumbnailImageSearchEventArgs(uri));
- }
- };
- }
- else
- {
- item.Enabled = false;
- }
-
- return item;
- }
-
private string GetImageSearchUri(string image_uri)
{
return @"https://www.google.com/searchbyimage?image_url=" + Uri.EscapeDataString(image_uri);
foreach (var picbox in this.pictureBox)
{
var memoryImage = picbox.Image;
- var contextMenu = picbox.ContextMenu;
picbox.Dispose();
if (memoryImage != null)
memoryImage.Dispose();
- if (contextMenu != null)
- contextMenu.Dispose();
}
this.pictureBox.Clear();
this.ThumbnailDoubleClick(this, new ThumbnailDoubleClickEventArgs(thumb));
}
}
+
+ private void contextMenuStrip_Opening(object sender, CancelEventArgs e)
+ {
+ var picbox = (OTPictureBox)this.contextMenuStrip.SourceControl;
+ var thumb = (ThumbnailInfo)picbox.Tag;
+
+ var searchTargetUri = thumb.FullSizeImageUrl ?? thumb.ThumbnailUrl ?? null;
+ if (searchTargetUri != null)
+ {
+ this.searchSimilarImageMenuItem.Enabled = true;
+ this.searchSimilarImageMenuItem.Tag = searchTargetUri;
+ }
+ else
+ {
+ this.searchSimilarImageMenuItem.Enabled = false;
+ }
+ }
+
+ private void searchSimilarImageMenuItem_Click(object sender, EventArgs e)
+ {
+ var searchTargetUri = (string)this.searchSimilarImageMenuItem.Tag;
+ var searchUri = this.GetImageSearchUri(searchTargetUri);
+
+ if (this.ThumbnailImageSearchClick != null)
+ this.ThumbnailImageSearchClick(this, new ThumbnailImageSearchEventArgs(searchUri));
+ }
}
public class ThumbnailDoubleClickEventArgs : EventArgs