diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.csproj b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.csproj
index 687f8cba01..76cd5ff985 100644
--- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.csproj
+++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.csproj
@@ -106,8 +106,6 @@
-
-
diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/AvalonEditEditorUIService.cs b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/AvalonEditEditorUIService.cs
index 837da33710..5bdf41c02e 100644
--- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/AvalonEditEditorUIService.cs
+++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/AvalonEditEditorUIService.cs
@@ -8,6 +8,8 @@ using ICSharpCode.AvalonEdit.Rendering;
using ICSharpCode.NRefactory.Editor;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Editor;
+using ICSharpCode.SharpDevelop.Editor.ContextActions;
+using ICSharpCode.AvalonEdit.AddIn.ContextActions;
namespace ICSharpCode.AvalonEdit.AddIn
{
@@ -39,5 +41,11 @@ namespace ICSharpCode.AvalonEdit.AddIn
textView.GetVisualPosition(new TextViewPosition(line, column), VisualYPosition.LineBottom) - textView.ScrollOffset);
return positionInPixels.TransformFromDevice(textView);
}
+
+ ///
+ public void ShowContextActionsPopup(ContextActionsPopupViewModel viewModel)
+ {
+ new ContextActionsPopup { Actions = viewModel }.OpenAtCaretAndFocus();
+ }
}
}
diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/ContextActionsBulbViewModel.cs b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/ContextActionsBulbViewModel.cs
index 1ad3ab62c8..126aefb211 100644
--- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/ContextActionsBulbViewModel.cs
+++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/ContextActionsBulbViewModel.cs
@@ -7,13 +7,14 @@ using System.ComponentModel;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Input;
+using ICSharpCode.SharpDevelop.Editor.ContextActions;
namespace ICSharpCode.AvalonEdit.AddIn.ContextActions
{
///
/// Description of ContextActionsHiddenViewModel.
///
- public class ContextActionsBulbViewModel : ContextActionsViewModel, INotifyPropertyChanged
+ public class ContextActionsBulbViewModel : ContextActionsPopupViewModel, INotifyPropertyChanged
{
public EditorActionsProvider Model { get; private set; }
diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/ContextActionsPopup.cs b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/ContextActionsPopup.cs
index 48e0dfe313..32d76c88fd 100644
--- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/ContextActionsPopup.cs
+++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/ContextActionsPopup.cs
@@ -6,10 +6,9 @@ using System.Windows.Controls.Primitives;
using System.Windows.Input;
using System.Windows.Media;
-using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Editor;
-using ICSharpCode.SharpDevelop.Gui;
+using ICSharpCode.SharpDevelop.Editor.ContextActions;
namespace ICSharpCode.AvalonEdit.AddIn.ContextActions
{
@@ -44,9 +43,9 @@ namespace ICSharpCode.AvalonEdit.AddIn.ContextActions
set { this.Child = value; }
}
- public ContextActionsViewModel Actions
+ public ContextActionsPopupViewModel Actions
{
- get { return (ContextActionsViewModel)ActionsControl.DataContext; }
+ get { return (ContextActionsPopupViewModel)ActionsControl.DataContext; }
set {
ActionsControl.DataContext = value;
}
diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/FindBaseClasses.cs b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/FindBaseClasses.cs
index dd76cd8d50..3e0627da0b 100644
--- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/FindBaseClasses.cs
+++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/FindBaseClasses.cs
@@ -12,6 +12,7 @@ using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.SharpDevelop.Editor;
using ICSharpCode.SharpDevelop.Editor.Commands;
+using ICSharpCode.SharpDevelop.Editor.ContextActions;
namespace ICSharpCode.AvalonEdit.AddIn.ContextActions
{
@@ -30,7 +31,7 @@ namespace ICSharpCode.AvalonEdit.AddIn.ContextActions
static ContextActionsPopup MakePopupWithBaseClasses(ITypeDefinition @class)
{
var baseClassList = @class.GetAllBaseTypeDefinitions().Where(baseClass => baseClass != @class).ToList();
- var popupViewModel = new ContextActionsViewModel();
+ var popupViewModel = new ContextActionsPopupViewModel();
popupViewModel.Title = MenuService.ConvertLabel(StringParser.Parse(
"${res:SharpDevelop.Refactoring.BaseClassesOf}", new StringTagPair("Name", @class.Name)));
popupViewModel.Actions = BuildListViewModel(baseClassList);
diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/FindDerivedClassesOrOverrides.cs b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/FindDerivedClassesOrOverrides.cs
index 365b9a887e..bc662fb956 100644
--- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/FindDerivedClassesOrOverrides.cs
+++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/FindDerivedClassesOrOverrides.cs
@@ -10,8 +10,8 @@ using ICSharpCode.Core.Presentation;
using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.SharpDevelop;
-using ICSharpCode.SharpDevelop.Editor;
using ICSharpCode.SharpDevelop.Editor.Commands;
+using ICSharpCode.SharpDevelop.Editor.ContextActions;
using ICSharpCode.SharpDevelop.Refactoring;
namespace ICSharpCode.AvalonEdit.AddIn.ContextActions
@@ -42,7 +42,7 @@ namespace ICSharpCode.AvalonEdit.AddIn.ContextActions
static ContextActionsPopup MakePopupWithDerivedClasses(ITypeDefinition baseClass)
{
var derivedClassesTree = BuildDerivedTypesGraph(baseClass);
- var popupViewModel = new ContextActionsViewModel();
+ var popupViewModel = new ContextActionsPopupViewModel();
popupViewModel.Title = MenuService.ConvertLabel(StringParser.Parse(
"${res:SharpDevelop.Refactoring.ClassesDerivingFrom}", new StringTagPair("Name", baseClass.Name)));
popupViewModel.Actions = BuildTreeViewModel(derivedClassesTree.Children);
@@ -61,7 +61,7 @@ namespace ICSharpCode.AvalonEdit.AddIn.ContextActions
static ContextActionsPopup MakePopupWithOverrides(IMember member)
{
var derivedClassesTree = BuildDerivedTypesGraph(member.DeclaringTypeDefinition);
- var popupViewModel = new ContextActionsViewModel {
+ var popupViewModel = new ContextActionsPopupViewModel {
Title = MenuService.ConvertLabel(StringParser.Parse(
"${res:SharpDevelop.Refactoring.OverridesOf}",
new StringTagPair("Name", member.FullName))
diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/GoToEntityAction.cs b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/GoToEntityAction.cs
index 2721d2f0d0..d9d7639698 100644
--- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/GoToEntityAction.cs
+++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/GoToEntityAction.cs
@@ -8,6 +8,7 @@ using System.Threading.Tasks;
using ICSharpCode.AvalonEdit.CodeCompletion;
using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.SharpDevelop;
+using ICSharpCode.SharpDevelop.Editor.ContextActions;
using ICSharpCode.SharpDevelop.Refactoring;
namespace ICSharpCode.AvalonEdit.AddIn.ContextActions
diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/ContextActionViewModel.cs b/src/Main/Base/Project/Editor/ContextActions/ContextActionViewModel.cs
similarity index 94%
rename from src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/ContextActionViewModel.cs
rename to src/Main/Base/Project/Editor/ContextActions/ContextActionViewModel.cs
index c26e0fe8df..a7248352db 100644
--- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/ContextActionViewModel.cs
+++ b/src/Main/Base/Project/Editor/ContextActions/ContextActionViewModel.cs
@@ -6,13 +6,12 @@ using System.Collections.ObjectModel;
using System.Windows.Input;
using System.Windows.Media;
-using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Refactoring;
-namespace ICSharpCode.AvalonEdit.AddIn.ContextActions
+namespace ICSharpCode.SharpDevelop.Editor.ContextActions
{
///
- /// Description of ContextActionViewModel.
+ /// ViewModel for a .
///
public class ContextActionViewModel
{
@@ -95,4 +94,4 @@ namespace ICSharpCode.AvalonEdit.AddIn.ContextActions
return true;
}
}
-}
+}
\ No newline at end of file
diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/ContextActionsViewModel.cs b/src/Main/Base/Project/Editor/ContextActions/ContextActionsPopupViewModel.cs
similarity index 76%
rename from src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/ContextActionsViewModel.cs
rename to src/Main/Base/Project/Editor/ContextActions/ContextActionsPopupViewModel.cs
index 55de265154..d40033e20f 100644
--- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/ContextActionsViewModel.cs
+++ b/src/Main/Base/Project/Editor/ContextActions/ContextActionsPopupViewModel.cs
@@ -5,12 +5,12 @@ using System;
using System.Collections.ObjectModel;
using System.Windows.Media;
-namespace ICSharpCode.AvalonEdit.AddIn.ContextActions
+namespace ICSharpCode.SharpDevelop.Editor.ContextActions
{
///
- /// Description of ContextActionsViewModel.
+ /// ViewModel for a ContextActionsPopup.
///
- public class ContextActionsViewModel
+ public class ContextActionsPopupViewModel
{
public ImageSource Image { get; set; }
@@ -18,4 +18,4 @@ namespace ICSharpCode.AvalonEdit.AddIn.ContextActions
public ObservableCollection Actions { get; set; }
}
-}
+}
\ No newline at end of file
diff --git a/src/Main/Base/Project/Editor/IEditorUIService.cs b/src/Main/Base/Project/Editor/IEditorUIService.cs
index 4bc521dd35..e1a9c9d647 100644
--- a/src/Main/Base/Project/Editor/IEditorUIService.cs
+++ b/src/Main/Base/Project/Editor/IEditorUIService.cs
@@ -2,9 +2,14 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
+using System.Collections.ObjectModel;
using System.Windows;
using System.Windows.Controls;
+using System.Windows.Input;
+using System.Windows.Media;
using ICSharpCode.NRefactory.Editor;
+using ICSharpCode.SharpDevelop.Editor.ContextActions;
+using ICSharpCode.SharpDevelop.Refactoring;
namespace ICSharpCode.SharpDevelop.Editor
{
@@ -17,6 +22,11 @@ namespace ICSharpCode.SharpDevelop.Editor
/// Gets the absolute screen position of given position in the document.
///
Point GetScreenPosition(int line, int column);
+
+ ///
+ /// Shows a ContextActionsPopup created from a ViewModel.
+ ///
+ void ShowContextActionsPopup(ContextActionsPopupViewModel viewModel);
}
public interface IInlineUIElement
diff --git a/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj b/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
index 91f99b9894..7cef0ecbf2 100644
--- a/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
+++ b/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
@@ -131,6 +131,8 @@
+
+
@@ -833,6 +835,7 @@
+