From 43c0bed2bdb6e59c7587b12e4b6eb21c83c8440a Mon Sep 17 00:00:00 2001 From: Mathieu Guindon Date: Tue, 19 Dec 2017 21:13:59 -0500 Subject: [PATCH 01/44] model draft1 --- .../AddRemoveReferencesModel.cs | 79 +++++++++++++++++++ RetailCoder.VBE/Rubberduck.csproj | 2 +- 2 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 RetailCoder.VBE/ProjectReferences/AddRemoveReferencesModel.cs diff --git a/RetailCoder.VBE/ProjectReferences/AddRemoveReferencesModel.cs b/RetailCoder.VBE/ProjectReferences/AddRemoveReferencesModel.cs new file mode 100644 index 0000000000..2b8de413f4 --- /dev/null +++ b/RetailCoder.VBE/ProjectReferences/AddRemoveReferencesModel.cs @@ -0,0 +1,79 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Rubberduck.UI; +using Rubberduck.UI.Command; +using Rubberduck.VBEditor.SafeComWrappers; +using Rubberduck.VBEditor.SafeComWrappers.Abstract; + +namespace Rubberduck.ProjectReferences +{ + public class AddRemoveReferencesModel : ViewModelBase + { + public AddRemoveReferencesModel(IReadOnlyList references) + { + AvailableComLibraries = references.Where(r => r.Type == ReferenceKind.TypeLibrary).ToList(); + AvailableVbaProjects = references.Where(r => r.Type == ReferenceKind.Project).ToList(); + PinnedLibraries = new HashSet(references.Where(r => r.IsPinned)); + } + + public IEnumerable AvailableComLibraries { get; private set; } + + public IEnumerable AvailableVbaProjects { get; private set; } + + public HashSet PinnedLibraries { get; private set; } + } + + public class ReferenceViewModel : ViewModelBase + { + public ReferenceViewModel(IVBProject project) + { + Name = project.Name; + Guid = string.Empty; + Description = project.Description; + Version = default(Version); + FullPath = project.FileName; + IsBuiltIn = false; + Type = ReferenceKind.Project; + } + + public ReferenceViewModel(dynamic info) // todo figure out what type that should be + { + Name = info.Name; + Guid = info.Guid; + Description = info.Description; + Version = info.Version; + FullPath = info.FullPath; + IsBuiltIn = false; + Type = ReferenceKind.TypeLibrary; + } + + public ReferenceViewModel(IReference reference) + { + IsSelected = true; + Name = reference.Name; + Guid = reference.Guid; + Description = reference.Description; + Version = new Version(reference.Major, reference.Minor); + FullPath = reference.FullPath; + IsBuiltIn = reference.IsBuiltIn; + IsBroken = reference.IsBroken; + Type = reference.Type; + } + + public bool IsSelected { get; set; } + public bool IsRemoved { get; set; } + public bool IsPinned { get; set; } + + public string Name { get; } + public string Guid { get; } + public string Description { get; } + public Version Version { get; } + public string FullPath { get; } + public bool IsBuiltIn { get; } + public bool IsBroken { get; } + public ReferenceKind Type { get; } + } +} diff --git a/RetailCoder.VBE/Rubberduck.csproj b/RetailCoder.VBE/Rubberduck.csproj index 7df2a322bd..7de11de621 100644 --- a/RetailCoder.VBE/Rubberduck.csproj +++ b/RetailCoder.VBE/Rubberduck.csproj @@ -351,6 +351,7 @@ + @@ -1100,7 +1101,6 @@ - From 1efb48beb226cbce37d22e8cc88fbc6c90e15fbd Mon Sep 17 00:00:00 2001 From: Mathieu Guindon Date: Wed, 20 Dec 2017 00:31:06 -0500 Subject: [PATCH 02/44] added WinForms dialog and XAML user control files. --- .../AddRemoveReferencesModel.cs | 14 +- RetailCoder.VBE/Rubberduck.csproj | 16 ++ .../AddRemoveReferencesDialog.Designer.cs | 48 ++++++ .../AddRemoveReferencesDialog.cs | 20 +++ .../AddRemoveReferencesDialog.resx | 145 ++++++++++++++++++ .../AddRemoveReferencesWindow.xaml | 12 ++ .../AddRemoveReferencesWindow.xaml.cs | 28 ++++ 7 files changed, 278 insertions(+), 5 deletions(-) create mode 100644 RetailCoder.VBE/UI/ProjectReferences/AddRemoveReferencesDialog.Designer.cs create mode 100644 RetailCoder.VBE/UI/ProjectReferences/AddRemoveReferencesDialog.cs create mode 100644 RetailCoder.VBE/UI/ProjectReferences/AddRemoveReferencesDialog.resx create mode 100644 RetailCoder.VBE/UI/ProjectReferences/AddRemoveReferencesWindow.xaml create mode 100644 RetailCoder.VBE/UI/ProjectReferences/AddRemoveReferencesWindow.xaml.cs diff --git a/RetailCoder.VBE/ProjectReferences/AddRemoveReferencesModel.cs b/RetailCoder.VBE/ProjectReferences/AddRemoveReferencesModel.cs index 2b8de413f4..4e3fa56433 100644 --- a/RetailCoder.VBE/ProjectReferences/AddRemoveReferencesModel.cs +++ b/RetailCoder.VBE/ProjectReferences/AddRemoveReferencesModel.cs @@ -12,7 +12,7 @@ namespace Rubberduck.ProjectReferences { public class AddRemoveReferencesModel : ViewModelBase { - public AddRemoveReferencesModel(IReadOnlyList references) + public AddRemoveReferencesModel(IReadOnlyList references) { AvailableComLibraries = references.Where(r => r.Type == ReferenceKind.TypeLibrary).ToList(); AvailableVbaProjects = references.Where(r => r.Type == ReferenceKind.Project).ToList(); @@ -26,9 +26,9 @@ public AddRemoveReferencesModel(IReadOnlyList references) public HashSet PinnedLibraries { get; private set; } } - public class ReferenceViewModel : ViewModelBase + public class ReferenceModel { - public ReferenceViewModel(IVBProject project) + public ReferenceModel(IVBProject project) { Name = project.Name; Guid = string.Empty; @@ -39,7 +39,11 @@ public ReferenceViewModel(IVBProject project) Type = ReferenceKind.Project; } - public ReferenceViewModel(dynamic info) // todo figure out what type that should be + /// + /// Creates a + /// + /// + public ReferenceModel(dynamic info) // todo figure out what type that should be { Name = info.Name; Guid = info.Guid; @@ -50,7 +54,7 @@ public ReferenceViewModel(dynamic info) // todo figure out what type that should Type = ReferenceKind.TypeLibrary; } - public ReferenceViewModel(IReference reference) + public ReferenceModel(IReference reference) { IsSelected = true; Name = reference.Name; diff --git a/RetailCoder.VBE/Rubberduck.csproj b/RetailCoder.VBE/Rubberduck.csproj index c5025e54de..4798a03161 100644 --- a/RetailCoder.VBE/Rubberduck.csproj +++ b/RetailCoder.VBE/Rubberduck.csproj @@ -438,6 +438,15 @@ + + Form + + + AddRemoveReferencesDialog.cs + + + AddRemoveReferencesWindow.xaml + EncapsulateFieldView.xaml @@ -1001,6 +1010,9 @@ FindSymbolDialog.cs + + AddRemoveReferencesDialog.cs + AssignedByValParameterQuickFixDialog.cs @@ -1423,6 +1435,10 @@ Designer MSBuild:Compile + + Designer + MSBuild:Compile + Designer MSBuild:Compile diff --git a/RetailCoder.VBE/UI/ProjectReferences/AddRemoveReferencesDialog.Designer.cs b/RetailCoder.VBE/UI/ProjectReferences/AddRemoveReferencesDialog.Designer.cs new file mode 100644 index 0000000000..5327bd2f0c --- /dev/null +++ b/RetailCoder.VBE/UI/ProjectReferences/AddRemoveReferencesDialog.Designer.cs @@ -0,0 +1,48 @@ +namespace Rubberduck.UI.ProjectReferences +{ + partial class AddRemoveReferencesDialog + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AddRemoveReferencesDialog)); + this.SuspendLayout(); + // + // AddRemoveReferencesDialog + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(685, 415); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "AddRemoveReferencesDialog"; + this.Text = "Rubberduck - Add/Remove References"; + this.ResumeLayout(false); + + } + + #endregion + } +} \ No newline at end of file diff --git a/RetailCoder.VBE/UI/ProjectReferences/AddRemoveReferencesDialog.cs b/RetailCoder.VBE/UI/ProjectReferences/AddRemoveReferencesDialog.cs new file mode 100644 index 0000000000..aa91581c12 --- /dev/null +++ b/RetailCoder.VBE/UI/ProjectReferences/AddRemoveReferencesDialog.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Rubberduck.UI.ProjectReferences +{ + public partial class AddRemoveReferencesDialog : Form + { + public AddRemoveReferencesDialog() + { + InitializeComponent(); + } + } +} diff --git a/RetailCoder.VBE/UI/ProjectReferences/AddRemoveReferencesDialog.resx b/RetailCoder.VBE/UI/ProjectReferences/AddRemoveReferencesDialog.resx new file mode 100644 index 0000000000..0a0a5023e2 --- /dev/null +++ b/RetailCoder.VBE/UI/ProjectReferences/AddRemoveReferencesDialog.resx @@ -0,0 +1,145 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAAAAAAABwAAAAgAAAAGAAAABwAAAAgAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAABAwNEAAAA/zpkZP8uXmP/LGBl/y9hY/80ZGP/OWlo/0t2dP8AAAD/AAAAxwEC + AogAAAAAAAAAAAAAAAAAAQGTCicr/zTk+f9U3v//RtX//0rV//9P3f//Ve3//y/p//855/v/Qv3//1T/ + //8MLS/+AAAA0QAAAAAAAQGRBBMW/zXn/f846v//SNz9/0jL/v8xvv//OMv//0DU//8/3v3/L+j//zTo + //8r4/z/Svr//0mAf/4BAgKIISko/ynQ5v8x6P//Men//y7Z7v9ApLn/LrH4/y+y9f84vfT/K57K/y/l + +v8x5///L+j//0v2//+M////AAAAihIsLf8w7f//MOr//zXq//8x6f//JK6+/yeIp/8gZoL/LYyq/ynF + 2f8w5/7/MOj//zTq//9K9P//g////wAAAJUAAADSROX//1LK//9E5f//OO7//zLr//8w4ff/L+X7/y/j + +v8x6P//N+z//zHo//8s5v//gv3//7j///4AAACcAAAAlD+Cof87c4z/RGNj/zRdY/8xoK7+LfX//xrm + //8c2v//IeD//zDx//9G+P//Vvr//9z///8kKir/AAAAAAAAAFYAAABtAAAAGgAAAAgAAAALAAAA2yTb + +v8Y0f//HNr//xzf//8z+///Yv///2y8vP4qMjL/BAUFMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3Cac + r/8t0/7/Icn//x7Y//8o+P7/Sv///wAAAP8AAACgAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAEwwh + I/873P//JMj//xS8//8Wyv//Gpi2/wIADv8LCgC5AAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + ACUqYWT/Mtb//xy6//8Gt/7/Htr//xlhbP8fRvX/O1Hs/jlCctsAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAaSGpo/0vZ//4Zs///n+z//wAAAP9FVFz/E0Gh/z1G//9AS2j/AAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAABAAAAKiS8/7MOr3//pLc/v/v////Pmxs/zBBPcIAAAD/ISEv/wAAAAQAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAABNAAAAtqXk8shM0v//Ppac/wAAAP8AAAA2AAAAAAAAAAcAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AAACfAAAAlAAAAIAAAAA3AAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAA//8AAOADAACAAQAAAAAAAAAAAAAAAAAAAAAAAAABAAD4AwAA8AcAAPAPAADwBwAA8AcAAPAH + AAD4PwAA/H8AAA== + + + \ No newline at end of file diff --git a/RetailCoder.VBE/UI/ProjectReferences/AddRemoveReferencesWindow.xaml b/RetailCoder.VBE/UI/ProjectReferences/AddRemoveReferencesWindow.xaml new file mode 100644 index 0000000000..2587dda3bb --- /dev/null +++ b/RetailCoder.VBE/UI/ProjectReferences/AddRemoveReferencesWindow.xaml @@ -0,0 +1,12 @@ + + + + + diff --git a/RetailCoder.VBE/UI/ProjectReferences/AddRemoveReferencesWindow.xaml.cs b/RetailCoder.VBE/UI/ProjectReferences/AddRemoveReferencesWindow.xaml.cs new file mode 100644 index 0000000000..0af589c9eb --- /dev/null +++ b/RetailCoder.VBE/UI/ProjectReferences/AddRemoveReferencesWindow.xaml.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace Rubberduck.UI.ProjectReferences +{ + /// + /// Interaction logic for AddRemoveReferencesWindow.xaml + /// + public partial class AddRemoveReferencesWindow : UserControl + { + public AddRemoveReferencesWindow() + { + InitializeComponent(); + } + } +} From 8c37b3046eb936cb5ddd1b97beb83705864f2a3e Mon Sep 17 00:00:00 2001 From: Mathieu Guindon Date: Thu, 21 Dec 2017 00:21:06 -0500 Subject: [PATCH 03/44] something like the beginnings of a UI --- .../AddRemoveReferencesModel.cs | 8 +- RetailCoder.VBE/Resources/pin.png | Bin 0 -> 581 bytes RetailCoder.VBE/Rubberduck.csproj | 1 + .../AddRemoveReferencesWindow.xaml | 99 +++++++++++++++++- .../UI/Settings/SettingsControl.xaml | 2 +- 5 files changed, 103 insertions(+), 7 deletions(-) create mode 100644 RetailCoder.VBE/Resources/pin.png diff --git a/RetailCoder.VBE/ProjectReferences/AddRemoveReferencesModel.cs b/RetailCoder.VBE/ProjectReferences/AddRemoveReferencesModel.cs index 4e3fa56433..9e675ebfad 100644 --- a/RetailCoder.VBE/ProjectReferences/AddRemoveReferencesModel.cs +++ b/RetailCoder.VBE/ProjectReferences/AddRemoveReferencesModel.cs @@ -16,14 +16,14 @@ public AddRemoveReferencesModel(IReadOnlyList references) { AvailableComLibraries = references.Where(r => r.Type == ReferenceKind.TypeLibrary).ToList(); AvailableVbaProjects = references.Where(r => r.Type == ReferenceKind.Project).ToList(); - PinnedLibraries = new HashSet(references.Where(r => r.IsPinned)); + PinnedLibraries = new HashSet(references.Where(r => r.IsPinned)); } - public IEnumerable AvailableComLibraries { get; private set; } + public IEnumerable AvailableComLibraries { get; private set; } - public IEnumerable AvailableVbaProjects { get; private set; } + public IEnumerable AvailableVbaProjects { get; private set; } - public HashSet PinnedLibraries { get; private set; } + public HashSet PinnedLibraries { get; private set; } } public class ReferenceModel diff --git a/RetailCoder.VBE/Resources/pin.png b/RetailCoder.VBE/Resources/pin.png new file mode 100644 index 0000000000000000000000000000000000000000..6d818ebc7d02a46360e018619defff59ebf6e3be GIT binary patch literal 581 zcmV-L0=oT)P)I15fp^8@V7YL;b3*A^q7Ygn*;6j2M7a8{wv0xTb9}5*MLcpjXmIRy9 z);7VWCNtABHcjn%6zQ_4SGEEczvy`kXSHcSsBRUZM34A)?#}_6(=Pp;6 zXvD8+ul@q>SnqT9MMVJ&iHTzaIlp@C#)ojM=(Y_bt;fqu6PoQ^?YAhK~dMSlT2<{ zXEaanK4MQHeRGWAw)y!WvRUZNbar}*OK~C|-zo#+%(&!M$i{_9HaMop$DyHZ)91tQ zbQ-zcU3|^uuojQ6QT&0FC2x;H;^Xr*4t9W2)xttULq~`I+uj~(guubk(FqfbT3pFx z@V?c;oFrX4Z<;=C)vs4qgUL{6yCobBK2#JqJ==>_V$l(&JthiClDbo=)MOwKi1fhAo76rmE^J zg(?Gy%kySJy-VnL@|eOmhGDD|$4;AN4@#cB?C^9eKpj!*GT68Sy6fHM{u5vTplQaE T2{Wb-00000NkvXXu0mjf64(M* literal 0 HcmV?d00001 diff --git a/RetailCoder.VBE/Rubberduck.csproj b/RetailCoder.VBE/Rubberduck.csproj index 4798a03161..61386b9463 100644 --- a/RetailCoder.VBE/Rubberduck.csproj +++ b/RetailCoder.VBE/Rubberduck.csproj @@ -1312,6 +1312,7 @@ + diff --git a/RetailCoder.VBE/UI/ProjectReferences/AddRemoveReferencesWindow.xaml b/RetailCoder.VBE/UI/ProjectReferences/AddRemoveReferencesWindow.xaml index 2587dda3bb..dc71e92d29 100644 --- a/RetailCoder.VBE/UI/ProjectReferences/AddRemoveReferencesWindow.xaml +++ b/RetailCoder.VBE/UI/ProjectReferences/AddRemoveReferencesWindow.xaml @@ -5,8 +5,103 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="clr-namespace:Rubberduck.UI.ProjectReferences" mc:Ignorable="d" - d:DesignHeight="440" d:DesignWidth="640"> + d:DesignHeight="380" d:DesignWidth="600"> + + + - + + + + + + + + + + + + + + + COM + + + + + + + + + + + + + + + + + + + + + + + + + VBA + + + + + + + + + + + + + + + + + + + + + + + + + Browse + + + + + + + + + + + + + + - @@ -159,7 +166,7 @@ - @@ -167,13 +174,13 @@ - + - - + + From 64d3319fe0852fafc3faf44abd671251c8cc2d20 Mon Sep 17 00:00:00 2001 From: Mathieu Guindon Date: Fri, 22 Dec 2017 13:40:57 -0500 Subject: [PATCH 07/44] cleaned up image resources, added some bindings --- .../AddRemoveReferencesModel.cs | 11 +++-- .../AddRemoveReferencesDialog.Designer.cs | 21 +++++++++- .../AddRemoveReferencesViewModel.cs | 24 +++++++++++ .../AddRemoveReferencesWindow.xaml | 41 ++++++++++++------- 4 files changed, 75 insertions(+), 22 deletions(-) diff --git a/RetailCoder.VBE/AddRemoveReferences/AddRemoveReferencesModel.cs b/RetailCoder.VBE/AddRemoveReferences/AddRemoveReferencesModel.cs index 6f6ec40fb9..a016b0686f 100644 --- a/RetailCoder.VBE/AddRemoveReferences/AddRemoveReferencesModel.cs +++ b/RetailCoder.VBE/AddRemoveReferences/AddRemoveReferencesModel.cs @@ -19,9 +19,10 @@ public AddRemoveReferencesModel(IReadOnlyList model) public class ReferenceModel { - public ReferenceModel(IVBProject project) + public ReferenceModel(IVBProject project, int priority) { Name = project.Name; + Priority = priority; Guid = string.Empty; Description = project.Description; Version = default(Version); @@ -30,10 +31,6 @@ public ReferenceModel(IVBProject project) Type = ReferenceKind.Project; } - /// - /// Creates a - /// - /// public ReferenceModel(dynamic info) // todo figure out what type that should be { Name = info.Name; @@ -45,9 +42,10 @@ public ReferenceModel(dynamic info) // todo figure out what type that should be Type = ReferenceKind.TypeLibrary; } - public ReferenceModel(IReference reference) + public ReferenceModel(IReference reference, int priority) { IsSelected = true; + Priority = priority; Name = reference.Name; Guid = reference.Guid; Description = reference.Description; @@ -61,6 +59,7 @@ public ReferenceModel(IReference reference) public bool IsSelected { get; set; } public bool IsRemoved { get; set; } public bool IsPinned { get; set; } + public int Priority { get; set; } public string Name { get; } public string Guid { get; } diff --git a/RetailCoder.VBE/UI/AddRemoveReferences/AddRemoveReferencesDialog.Designer.cs b/RetailCoder.VBE/UI/AddRemoveReferences/AddRemoveReferencesDialog.Designer.cs index ba857758a6..13236f8e7c 100644 --- a/RetailCoder.VBE/UI/AddRemoveReferences/AddRemoveReferencesDialog.Designer.cs +++ b/RetailCoder.VBE/UI/AddRemoveReferences/AddRemoveReferencesDialog.Designer.cs @@ -29,20 +29,39 @@ protected override void Dispose(bool disposing) private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AddRemoveReferencesDialog)); + this.elementHost1 = new System.Windows.Forms.Integration.ElementHost(); + this.addRemoveReferencesWindow1 = new Rubberduck.UI.AddRemoveReferences.AddRemoveReferencesWindow(); this.SuspendLayout(); // + // elementHost1 + // + this.elementHost1.Dock = System.Windows.Forms.DockStyle.Fill; + this.elementHost1.Location = new System.Drawing.Point(0, 0); + this.elementHost1.Name = "elementHost1"; + this.elementHost1.Size = new System.Drawing.Size(624, 441); + this.elementHost1.TabIndex = 0; + this.elementHost1.Text = "elementHost1"; + this.elementHost1.Child = this.addRemoveReferencesWindow1; + // // AddRemoveReferencesDialog // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(685, 415); + this.ClientSize = new System.Drawing.Size(624, 441); + this.Controls.Add(this.elementHost1); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.Name = "AddRemoveReferencesDialog"; + this.ShowInTaskbar = false; + this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Show; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.Text = "Rubberduck - Add/Remove References"; this.ResumeLayout(false); } #endregion + + private System.Windows.Forms.Integration.ElementHost elementHost1; + private AddRemoveReferencesWindow addRemoveReferencesWindow1; } } \ No newline at end of file diff --git a/RetailCoder.VBE/UI/AddRemoveReferences/AddRemoveReferencesViewModel.cs b/RetailCoder.VBE/UI/AddRemoveReferences/AddRemoveReferencesViewModel.cs index abf611e5f5..4573235b37 100644 --- a/RetailCoder.VBE/UI/AddRemoveReferences/AddRemoveReferencesViewModel.cs +++ b/RetailCoder.VBE/UI/AddRemoveReferences/AddRemoveReferencesViewModel.cs @@ -3,6 +3,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +using System.Windows.Input; using Rubberduck.AddRemoveReferences; using Rubberduck.VBEditor.SafeComWrappers; @@ -15,6 +16,29 @@ public AddRemoveReferencesViewModel(IEnumerable model) ComLibraries = model.Where(item => item.Type == ReferenceKind.TypeLibrary); } + /// + /// Prompts user for a .tlb, .dll, or .ocx file, and attempts to append it to . + /// + public ICommand BrowseCommand { get; } + + /// + /// Applies all changes to project references, and updates pinned references settings. + /// + public ICommand ApplyCommand { get; } + + /// + /// Moves the up on the 'Priority' tab. + /// + public ICommand MoveUpCommand { get; } + public IEnumerable ComLibraries { get; } + public ReferenceModel SelectedLibrary { get; } + public ReferenceModel SelectedProject { get; } + public ReferenceModel SelectedReference { get; } + + /// + /// Gets all selected COM libraries and VBA projects + /// + public ICollection ProjectReferences { get; } } } diff --git a/RetailCoder.VBE/UI/AddRemoveReferences/AddRemoveReferencesWindow.xaml b/RetailCoder.VBE/UI/AddRemoveReferences/AddRemoveReferencesWindow.xaml index e35890f8ed..7deb5457be 100644 --- a/RetailCoder.VBE/UI/AddRemoveReferences/AddRemoveReferencesWindow.xaml +++ b/RetailCoder.VBE/UI/AddRemoveReferences/AddRemoveReferencesWindow.xaml @@ -9,6 +9,15 @@ d:DesignHeight="380" d:DesignWidth="600" d:DataContext="{d:DesignInstance local:AddRemoveReferencesViewModel}"> + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - COM - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + + - + + + + + + + + + + + + + + - + - + - - - - + + + + + + - - - - - - - - - - - - - - VBA + + + + - - - - - - - - - - - - - - - - - - + + + + + - + - - - - - - - - - - - - - - - - - - - - - - Priority - - - - - - - - - - + - - - - - + + + + + + + - - + + + + + + + + + + + + + + + + + + + - - + + @@ -216,9 +360,9 @@ -