diff --git a/src/AddIns/DisplayBindings/HexEditor/Project/Src/View/HexEditView.cs b/src/AddIns/DisplayBindings/HexEditor/Project/Src/View/HexEditView.cs
index bfe4d78981..cfeb86cb19 100644
--- a/src/AddIns/DisplayBindings/HexEditor/Project/Src/View/HexEditView.cs
+++ b/src/AddIns/DisplayBindings/HexEditor/Project/Src/View/HexEditView.cs
@@ -136,12 +136,12 @@ namespace HexEditor.View
void DocumentChanged(object sender, EventArgs e)
{
if (PrimaryFile != null) PrimaryFile.MakeDirty();
- CommandManager.InvalidateRequerySuggested();
+ SD.WinForms.InvalidateCommands();
}
void SelectionChanged(object sender, System.EventArgs e)
{
- CommandManager.InvalidateRequerySuggested();
+ SD.WinForms.InvalidateCommands();
}
}
}
diff --git a/src/AddIns/DisplayBindings/ResourceEditor/Project/ResourceEditor.csproj b/src/AddIns/DisplayBindings/ResourceEditor/Project/ResourceEditor.csproj
index 6b2f2acc10..58b4161739 100644
--- a/src/AddIns/DisplayBindings/ResourceEditor/Project/ResourceEditor.csproj
+++ b/src/AddIns/DisplayBindings/ResourceEditor/Project/ResourceEditor.csproj
@@ -54,7 +54,7 @@
-
+
Component
diff --git a/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/ResourceEdit/ResourceEditor.cs b/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/ResourceEdit/ResourceEditor.cs
index ff5ceefb46..b81caa748d 100644
--- a/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/ResourceEdit/ResourceEditor.cs
+++ b/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/ResourceEdit/ResourceEditor.cs
@@ -21,6 +21,7 @@ using System.Drawing;
using System.Windows.Forms;
using ICSharpCode.Core;
+using ICSharpCode.SharpDevelop.WinForms;
namespace ResourceEditor
{
@@ -39,7 +40,7 @@ namespace ResourceEditor
protected ListViewViewState internalState = ListViewViewState.Nothing;
- public System.Enum InternalState {
+ public Enum InternalState {
get {
return internalState;
}
@@ -55,14 +56,14 @@ namespace ResourceEditor
public ResourceEditorControl()
{
InitializeComponent();
- resourceList.SelectedIndexChanged += new EventHandler(resourceListSelectionChanged);
+ resourceList.SelectedIndexChanged += ResourceListSelectionChanged;
}
- void resourceListSelectionChanged(object sender, EventArgs e)
+ void ResourceListSelectionChanged(object sender, EventArgs e)
{
if(resourceList.SelectedItems.Count == 0) {
internalState = ListViewViewState.Nothing;
- showResource(null);
+ ShowResource(null);
} else {
internalState = ListViewViewState.ItemsSelected;
}
@@ -72,7 +73,7 @@ namespace ResourceEditor
}
object key = resourceList.SelectedItems[0].Text;
ResourceItem item = (ResourceItem)resourceList.Resources[key.ToString()];
- showResource(item);
+ ShowResource(item);
}
void InitializeComponent()
@@ -92,17 +93,17 @@ namespace ResourceEditor
Controls.Add(splitter);
Controls.Add(resourceList);
- this.Resize += new EventHandler(initializeLayout);
+ this.Resize += InitializeLayout;
}
- void initializeLayout(object sender, EventArgs e)
+ void InitializeLayout(object sender, EventArgs e)
{
resourceList.Height = Convert.ToInt32(0.75 * Height);
}
- void showView(Control viewer)
+ void ShowView(Control viewer)
{
- // remvoe old view if there is one
+ // remove old view if there is one
if(panel.Controls.Count == 1) {
Control control = panel.Controls[0];
panel.Controls.Remove(control);
@@ -114,41 +115,41 @@ namespace ResourceEditor
panel.Controls.Add(viewer);
currentView = (IResourceView)viewer;
currentView.WriteProtected = resourceList.WriteProtected;
- currentView.ResourceChanged += new ResourceChangedEventHandler(viewResourceChanged);
+ currentView.ResourceChanged += ViewResourceChanged;
}
}
- void viewResourceChanged(object sender, ResourceEventArgs e)
+ void ViewResourceChanged(object sender, ResourceEventArgs e)
{
resourceList.SetResourceValue(e.ResourceName, e.ResourceValue);
}
- void showResource(ResourceItem item)
+ void ShowResource(ResourceItem item)
{
if(item == null) {
- showView(null);
+ ShowView(null);
return;
}
if (item.ResourceValue is Icon) {
IconView iv = new IconView(item);
- showView(iv);
+ ShowView(iv);
} else if(item.ResourceValue is Bitmap) {
BitmapView bv = new BitmapView(item);
- showView(bv);
+ ShowView(bv);
} else if(item.ResourceValue is Cursor) {
CursorView cv = new CursorView(item);
- showView(cv);
+ ShowView(cv);
} else if(item.ResourceValue is string) {
TextView tv = new TextView(item);
- showView(tv);
+ ShowView(tv);
} else if(item.ResourceValue is byte[]) {
BinaryView bv = new BinaryView(item);
- showView(bv);
+ ShowView(bv);
} else if(item.ResourceValue is bool) {
BooleanView bv = new BooleanView(item);
- showView(bv);
+ ShowView(bv);
} else {
- showView(null);
+ ShowView(null);
}
}
diff --git a/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/DisplayDefinition.cs b/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/ResourceEditorDisplayBinding.cs
similarity index 79%
rename from src/AddIns/DisplayBindings/ResourceEditor/Project/Src/DisplayDefinition.cs
rename to src/AddIns/DisplayBindings/ResourceEditor/Project/Src/ResourceEditorDisplayBinding.cs
index 28ad9149da..6fc0f754c0 100644
--- a/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/DisplayDefinition.cs
+++ b/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/ResourceEditorDisplayBinding.cs
@@ -32,7 +32,6 @@ namespace ResourceEditor
{
public class ResourceEditorDisplayBinding : IDisplayBinding
{
- // IDisplayBinding interface
public bool CanCreateContentForFile(FileName fileName)
{
return true; // definition in .addin does extension-based filtering
@@ -54,9 +53,6 @@ namespace ResourceEditor
}
}
- ///
- /// This class describes the main functionality of a language codon
- ///
public class ResourceEditWrapper : AbstractViewContentHandlingLoadErrors, IClipboardHandler
{
ResourceEditorControl resourceEditor = new ResourceEditorControl();
@@ -73,14 +69,16 @@ namespace ResourceEditor
void SetDirty(object sender, EventArgs e)
{
- this.PrimaryFile.MakeDirty();
+ PrimaryFile.MakeDirty();
+ SD.WinForms.InvalidateCommands();
}
public ResourceEditWrapper(OpenedFile file)
{
this.TabPageText = "Resource editor";
- base.UserContent = resourceEditor;
- resourceEditor.ResourceList.Changed += new EventHandler(SetDirty);
+ UserContent = resourceEditor;
+ resourceEditor.ResourceList.Changed += SetDirty;
+ resourceEditor.ResourceList.ItemSelectionChanged += (sender, e) => SD.WinForms.InvalidateCommands();
this.Files.Add(file);
}
@@ -104,7 +102,7 @@ namespace ResourceEditor
public bool EnableCut
{
get {
- if (resourceEditor.ResourceList.IsEditing || !resourceEditor.ResourceList.Focused) {
+ if (resourceEditor.ResourceList.IsEditing) {
return false;
}
return resourceEditor.ResourceList.SelectedItems.Count > 0;
@@ -114,7 +112,7 @@ namespace ResourceEditor
public bool EnableCopy
{
get {
- if (resourceEditor.ResourceList.IsEditing || !resourceEditor.ResourceList.Focused) {
+ if (resourceEditor.ResourceList.IsEditing) {
return false;
}
return resourceEditor.ResourceList.SelectedItems.Count > 0;
@@ -124,7 +122,7 @@ namespace ResourceEditor
public bool EnablePaste
{
get {
- if (resourceEditor.ResourceList.IsEditing || !resourceEditor.ResourceList.Focused) {
+ if (resourceEditor.ResourceList.IsEditing) {
return false;
}
return true;
@@ -134,7 +132,7 @@ namespace ResourceEditor
public bool EnableDelete
{
get {
- if (resourceEditor.ResourceList.IsEditing || !resourceEditor.ResourceList.Focused) {
+ if (resourceEditor.ResourceList.IsEditing) {
return false;
}
return resourceEditor.ResourceList.SelectedItems.Count > 0;
@@ -144,7 +142,7 @@ namespace ResourceEditor
public bool EnableSelectAll
{
get {
- if (resourceEditor.ResourceList.IsEditing || !resourceEditor.ResourceList.Focused) {
+ if (resourceEditor.ResourceList.IsEditing) {
return false;
}
return true;
@@ -241,33 +239,17 @@ namespace ResourceEditor
public void Delete()
{
- if (resourceEditor.ResourceList.WriteProtected) {
+ var resourceList = resourceEditor.ResourceList;
+ if (resourceList.WriteProtected || resourceList.SelectedItems.Count == 0)
return;
- }
-
- if (resourceEditor.ResourceList.SelectedItems.Count==0) return; // nothing to do
- DialogResult rc;
-
- try {
-
- rc=MessageBox.Show(ResourceService.GetString("ResourceEditor.DeleteEntry.Confirm"),ResourceService.GetString("ResourceEditor.DeleteEntry.Title"),MessageBoxButtons.OKCancel);
- }
- catch {
- // when something happens - like resource is missing - try to use default message
- rc = MessageBox.Show("Do you really want to delete?","Delete-Warning!",MessageBoxButtons.OKCancel);
- }
-
- if (rc != DialogResult.OK) {
+ if (!SD.MessageService.AskQuestion("${res:ResourceEditor.DeleteEntry.Confirm}", "${res:ResourceEditor.DeleteEntry.Title}"))
return;
- }
- foreach (ListViewItem item in resourceEditor.ResourceList.SelectedItems) {
- //// not clear why this check is present here - seems to be extra
- ////if (item.Text != null) {
- resourceEditor.ResourceList.Resources.Remove(item.Text);
- resourceEditor.ResourceList.Items.Remove(item);
+ foreach (ListViewItem item in resourceList.SelectedItems) {
+ resourceList.Resources.Remove(item.Text);
+ resourceList.Items.Remove(item);
// and set dirty flag
- resourceEditor.ResourceList.OnChanged();
+ resourceList.OnChanged();
}
}
diff --git a/src/Main/Base/Project/WinForms/IWinFormsService.cs b/src/Main/Base/Project/WinForms/IWinFormsService.cs
index 4af46757f2..1eb510550c 100644
--- a/src/Main/Base/Project/WinForms/IWinFormsService.cs
+++ b/src/Main/Base/Project/WinForms/IWinFormsService.cs
@@ -142,5 +142,10 @@ namespace ICSharpCode.SharpDevelop.WinForms
///
/// SDWindowsFormsHost instance
CustomWindowsFormsHost CreateWindowsFormsHost(IServiceProvider serviceProvider = null, bool processShortcutsInWPF = false);
+
+ ///
+ /// Provides access to from Windows Forms-based AddIns.
+ ///
+ void InvalidateCommands();
}
}
diff --git a/src/Main/Base/Project/Workbench/AbstractViewContentHandlingLoadErrors.cs b/src/Main/Base/Project/Workbench/AbstractViewContentHandlingLoadErrors.cs
index 37e20e3b2e..582fe34d29 100644
--- a/src/Main/Base/Project/Workbench/AbstractViewContentHandlingLoadErrors.cs
+++ b/src/Main/Base/Project/Workbench/AbstractViewContentHandlingLoadErrors.cs
@@ -40,7 +40,7 @@ namespace ICSharpCode.SharpDevelop.Workbench
///
public abstract class AbstractViewContentHandlingLoadErrors : AbstractViewContent
{
- ContentPresenter contentControl = new ContentPresenter();
+ readonly ContentPresenter contentControl = new ContentPresenter();
object userContent;
protected AbstractViewContentHandlingLoadErrors()
diff --git a/src/Main/SharpDevelop/WinForms/WinFormsService.cs b/src/Main/SharpDevelop/WinForms/WinFormsService.cs
index 03be27db7c..5500fea972 100644
--- a/src/Main/SharpDevelop/WinForms/WinFormsService.cs
+++ b/src/Main/SharpDevelop/WinForms/WinFormsService.cs
@@ -22,7 +22,6 @@ using System.Drawing.Printing;
using System.Windows.Forms;
using ICSharpCode.Core;
using ICSharpCode.Core.WinForms;
-using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Widgets;
using ICSharpCode.SharpDevelop.Workbench;
@@ -195,5 +194,10 @@ namespace ICSharpCode.SharpDevelop.WinForms
DisposeChild = false
};
}
+
+ public void InvalidateCommands()
+ {
+ System.Windows.Input.CommandManager.InvalidateRequerySuggested();
+ }
}
}