Skip to content

Commit

Permalink
Rubberduck menu changes text
Browse files Browse the repository at this point in the history
  • Loading branch information
Hosch250 committed Jun 2, 2015
1 parent 3f70cdc commit bd474fe
Show file tree
Hide file tree
Showing 5 changed files with 120 additions and 82 deletions.
34 changes: 24 additions & 10 deletions RetailCoder.VBE/App.cs
Expand Up @@ -15,32 +15,38 @@ namespace Rubberduck
{
public class App : IDisposable
{
private readonly RubberduckMenu _menu;
private readonly VBE _vbe;
private readonly AddIn _addIn;
private readonly CodeInspectionsToolbar _codeInspectionsToolbar;
private readonly IList<IInspection> _inspections;
private readonly Inspector _inspector;
private readonly ParserErrorsPresenter _parserErrorsPresenter;
private readonly IGeneralConfigService _configService = new ConfigurationLoader();
private readonly ActiveCodePaneEditor _editor;
private readonly IRubberduckParser _parser;

private Configuration _config;
private RubberduckMenu _menu;

public App(VBE vbe, AddIn addIn)
{
_vbe = vbe;
_addIn = addIn;
_inspections = _configService.GetImplementedCodeInspections();

LoadConfig();

IRubberduckParser parser = new RubberduckParser();
_parser = new RubberduckParser();
_parserErrorsPresenter = new ParserErrorsPresenter(vbe, addIn);
parser.ParseStarted += _parser_ParseStarted;
parser.ParserError += _parser_ParserError;
_parser.ParseStarted += _parser_ParseStarted;
_parser.ParserError += _parser_ParserError;
_configService.SettingsChanged += _configService_SettingsChanged;

var editor = new ActiveCodePaneEditor(vbe);
_editor = new ActiveCodePaneEditor(vbe);

_inspector = new Inspector(parser, _inspections);
_menu = new RubberduckMenu(vbe, addIn, _configService, parser, editor, _inspector);
_inspector = new Inspector(_parser, _inspections);
//_menu = new RubberduckMenu(vbe, addIn, _configService, _parser, _editor, _inspector);
_codeInspectionsToolbar = new CodeInspectionsToolbar(vbe, _inspector);

LoadConfig();
}

private void _configService_SettingsChanged(object sender, EventArgs e)
Expand All @@ -54,6 +60,14 @@ private void LoadConfig()
RubberduckUI.Culture = CultureInfo.GetCultureInfo(_config.UserSettings.LanguageSetting.Code);

EnableCodeInspections(_config);

if (_menu != null)
{
_menu.Dispose();
}

_menu = new RubberduckMenu(_vbe, _addIn, _configService, _parser, _editor, _inspector);
_menu.Initialize();
}

private void _parser_ParseStarted(object sender, ParseStartedEventArgs e)
Expand Down Expand Up @@ -113,7 +127,7 @@ protected virtual void Dispose(bool disposing)

public void CreateExtUi()
{
_menu.Initialize();
//_menu.Initialize();
_codeInspectionsToolbar.Initialize();
}
}
Expand Down
41 changes: 27 additions & 14 deletions RetailCoder.VBE/UI/DockablePresenterBase.cs
@@ -1,4 +1,6 @@
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Windows.Forms;
using Microsoft.Vbe.Interop;

Expand All @@ -8,7 +10,7 @@ public abstract class DockablePresenterBase : IDisposable
{
private readonly AddIn _addin;
private Window _window;
protected readonly UserControl UserControl;
protected UserControl UserControl;

protected DockablePresenterBase(VBE vbe, AddIn addin, IDockableUserControl control)
{
Expand All @@ -23,17 +25,27 @@ protected DockablePresenterBase(VBE vbe, AddIn addin, IDockableUserControl contr

private Window CreateToolWindow(IDockableUserControl control)
{
object userControlObject = null;
var toolWindow = _vbe.Windows.CreateToolWindow(_addin, _DockableWindowHost.RegisteredProgId, control.Caption, control.ClassId, ref userControlObject);
var userControlHost = (_DockableWindowHost)userControlObject;
toolWindow.Visible = true; //window resizing doesn't work without this
object userControlObject = null;
Window toolWindow;
try
{
toolWindow = _vbe.Windows.CreateToolWindow(_addin, _DockableWindowHost.RegisteredProgId,
control.Caption, control.ClassId, ref userControlObject);
}
catch (COMException)
{
toolWindow = _vbe.Windows.CreateToolWindow(_addin, _DockableWindowHost.RegisteredProgId,
control.Caption, control.ClassId, ref userControlObject);
}
var userControlHost = (_DockableWindowHost)userControlObject;
toolWindow.Visible = true; //window resizing doesn't work without this

EnsureMinimumWindowSize(toolWindow);
EnsureMinimumWindowSize(toolWindow);

toolWindow.Visible = false; //hide it again
toolWindow.Visible = false; //hide it again

userControlHost.AddUserControl(control as UserControl);
return toolWindow;
userControlHost.AddUserControl(control as UserControl);
return toolWindow;
}

private void EnsureMinimumWindowSize(Window window)
Expand Down Expand Up @@ -72,13 +84,14 @@ public void Dispose()

protected virtual void Dispose(bool disposing)
{
if (disposing)
if (!disposing) { return; }

if (UserControl != null)
{
if (UserControl != null)
{
UserControl.Dispose();
}
UserControl.Dispose();
}

Marshal.ReleaseComObject(_window);
}
}
}
22 changes: 14 additions & 8 deletions RetailCoder.VBE/UI/RefactorMenu.cs
Expand Up @@ -15,7 +15,6 @@
using System.Linq;
using System.Runtime.InteropServices;
using System.Windows.Forms;
using Rubberduck.Refactorings;
using Rubberduck.Refactorings.ExtractMethod;
using Rubberduck.Refactorings.Rename;
using Rubberduck.UI.Refactorings;
Expand Down Expand Up @@ -45,18 +44,20 @@ public RefactorMenu(VBE vbe, AddIn addin, IRubberduckParser parser, IActiveCodeP

public void Initialize(CommandBarControls menuControls)
{
var menu = menuControls.Add(MsoControlType.msoControlPopup, Temporary: true) as CommandBarPopup;
menu.Caption = RubberduckUI.RubberduckMenu_Refactor;
_menuControls = menuControls;

_extractMethodButton = AddButton(menu, RubberduckUI.RefactorMenu_ExtractMethod, false, OnExtractMethodButtonClick);
_menu = menuControls.Add(MsoControlType.msoControlPopup, Temporary: true) as CommandBarPopup;
_menu.Caption = RubberduckUI.RubberduckMenu_Refactor;

_extractMethodButton = AddButton(_menu, RubberduckUI.RefactorMenu_ExtractMethod, false, OnExtractMethodButtonClick);
SetButtonImage(_extractMethodButton, Resources.ExtractMethod_6786_32, Resources.ExtractMethod_6786_32_Mask);

_renameButton = AddButton(menu, RubberduckUI.RefactorMenu_Rename, false, OnRenameButtonClick);
_renameButton = AddButton(_menu, RubberduckUI.RefactorMenu_Rename, false, OnRenameButtonClick);

_reorderParametersButton = AddButton(menu, RubberduckUI.RefactorMenu_ReorderParameters, false, OnReorderParametersButtonClick, Resources.ReorderParameters_6780_32);
_reorderParametersButton = AddButton(_menu, RubberduckUI.RefactorMenu_ReorderParameters, false, OnReorderParametersButtonClick, Resources.ReorderParameters_6780_32);
SetButtonImage(_reorderParametersButton, Resources.ReorderParameters_6780_32, Resources.ReorderParameters_6780_32_Mask);

_removeParametersButton = AddButton(menu, RubberduckUI.RefactorMenu_RemoveParameter, false, OnRemoveParameterButtonClick);
_removeParametersButton = AddButton(_menu, RubberduckUI.RefactorMenu_RemoveParameter, false, OnRemoveParameterButtonClick);
SetButtonImage(_removeParametersButton, Resources.RemoveParameters_6781_32, Resources.RemoveParameters_6781_32_Mask);

InitializeRefactorContextMenu();
Expand Down Expand Up @@ -488,9 +489,12 @@ public void RemoveParameter(QualifiedSelection selection)
}

bool _disposed;
private CommandBarPopup _menu;
private CommandBarControls _menuControls;

protected override void Dispose(bool disposing)
{
if (_disposed)
if (_disposed || !disposing)
{
return;
}
Expand All @@ -507,6 +511,8 @@ protected override void Dispose(bool disposing)
_findAllImplementationsContextMenu.Click -= FindAllImplementationsContextMenu_Click;
_findSymbolContextMenu.Click -= FindSymbolContextMenuClick;

_menuControls.Parent.FindControl(_menu.Type, _menu.Id, _menu.Tag, _menu.Visible);

_disposed = true;
base.Dispose(disposing);
}
Expand Down
71 changes: 36 additions & 35 deletions RetailCoder.VBE/UI/RubberduckMenu.cs
Expand Up @@ -109,20 +109,19 @@ public void Initialize()
const int windowMenuId = 30009;
var menuBarControls = IDE.CommandBars[1].Controls;
var beforeIndex = FindMenuInsertionIndex(menuBarControls, windowMenuId);
var menu = menuBarControls.Add(MsoControlType.msoControlPopup, Before: beforeIndex, Temporary: true) as CommandBarPopup;
Debug.Assert(menu != null, "menu != null");
_menu = menuBarControls.Add(MsoControlType.msoControlPopup, Before: beforeIndex, Temporary: true) as CommandBarPopup;

menu.Caption = RubberduckUI.RubberduckMenu;
_menu.Caption = RubberduckUI.RubberduckMenu;

_testMenu.Initialize(menu.Controls);
_codeExplorerMenu.Initialize(menu);
_refactorMenu.Initialize(menu.Controls);
_todoItemsMenu.Initialize(menu);
_codeInspectionsMenu.Initialize(menu);
_testMenu.Initialize(_menu.Controls);
_codeExplorerMenu.Initialize(_menu);
_refactorMenu.Initialize(_menu.Controls);
_todoItemsMenu.Initialize(_menu);
_codeInspectionsMenu.Initialize(_menu);

_sourceControl = AddButton(menu, RubberduckUI.RubberduckMenu_SourceControl, false, OnSourceControlClick);
_settings = AddButton(menu, RubberduckUI.RubberduckMenu_Options, true, OnOptionsClick);
_about = AddButton(menu, RubberduckUI.RubberduckMenu_About, true, OnAboutClick);
_sourceControl = AddButton(_menu, RubberduckUI.RubberduckMenu_SourceControl, false, OnSourceControlClick);
_settings = AddButton(_menu, RubberduckUI.RubberduckMenu_Options, true, OnOptionsClick);
_about = AddButton(_menu, RubberduckUI.RubberduckMenu_About, true, OnAboutClick);
}

private Rubberduck.SourceControl.App _sourceControlApp;
Expand Down Expand Up @@ -162,43 +161,45 @@ private void OnAboutClick(CommandBarButton Ctrl, ref bool CancelDefault)
}

private bool _disposed;
private CommandBarPopup _menu;

protected override void Dispose(bool disposing)
{
if (_disposed)
if (_disposed || !disposing)
{
return;
}

if (disposing)
if (_todoItemsMenu != null)
{
_todoItemsMenu.Dispose();
}

if (_refactorMenu != null)
{
if (_todoItemsMenu != null)
{
_todoItemsMenu.Dispose();
}

if (_refactorMenu != null)
{
_refactorMenu.Dispose();
}

if (_codeExplorerMenu != null)
{
_codeExplorerMenu.Dispose();
}
if (_testMenu != null)
{
_testMenu.Dispose();
}
if (_codeInspectionsMenu != null)
{
_codeInspectionsMenu.Dispose();
}
_refactorMenu.Dispose();
}

if (_codeExplorerMenu != null)
{
_codeExplorerMenu.Dispose();
}
if (_testMenu != null)
{
_testMenu.Dispose();
}
if (_codeInspectionsMenu != null)
{
_codeInspectionsMenu.Dispose();
}

_about.Click -= OnAboutClick;
_settings.Click -= OnOptionsClick;
_sourceControl.Click -= OnSourceControlClick;

var menuBarControls = IDE.CommandBars[1].Controls;
menuBarControls.Parent.FindControl(_menu.Type, _menu.Id, _menu.Tag, _menu.Visible).Delete();

_disposed = true;

base.Dispose(disposing);
Expand Down
34 changes: 19 additions & 15 deletions RetailCoder.VBE/UI/UnitTesting/TestMenu.cs
Expand Up @@ -25,13 +25,15 @@ public TestMenu(VBE vbe, AddIn addIn, TestExplorerWindow view, TestExplorerDocka

public void Initialize(CommandBarControls menuControls)
{
var menu = menuControls.Add(MsoControlType.msoControlPopup, Temporary: true) as CommandBarPopup;
menu.Caption = RubberduckUI.RubberduckMenu_UnitTests;
_menuControls = menuControls;

_windowsTestExplorerButton = AddButton(menu, RubberduckUI.TestMenu_TextExplorer, false, OnTestExplorerButtonClick);
_menu = menuControls.Add(MsoControlType.msoControlPopup, Temporary: true) as CommandBarPopup;
_menu.Caption = RubberduckUI.RubberduckMenu_UnitTests;

_windowsTestExplorerButton = AddButton(_menu, RubberduckUI.TestMenu_TextExplorer, false, OnTestExplorerButtonClick);
SetButtonImage(_windowsTestExplorerButton, Resources.TestManager_8590_32, Resources.TestManager_8590_32_Mask);

_runAllTestsButton = AddButton(menu, RubberduckUI.TestMenu_RunAllTests, true, OnRunAllTestsButtonClick);
_runAllTestsButton = AddButton(_menu, RubberduckUI.TestMenu_RunAllTests, true, OnRunAllTestsButtonClick);
SetButtonImage(_runAllTestsButton, Resources.AllLoadedTests_8644_24, Resources.AllLoadedTests_8644_24_Mask);
}

Expand All @@ -53,26 +55,28 @@ void OnTestExplorerButtonClick(CommandBarButton Ctrl, ref bool CancelDefault)
}

bool _disposed;
private CommandBarPopup _menu;
private CommandBarControls _menuControls;

protected override void Dispose(bool disposing)
{
if (_disposed)
if (_disposed || !disposing)
{
return;
}

if (disposing)
if (_view != null)
{
_view.Dispose();
}

if (_presenter != null)
{
if (_view != null)
{
_view.Dispose();
}

if (_presenter != null)
{
_presenter.Dispose();
}
_presenter.Dispose();
}

_menuControls.Parent.FindControl(_menu.Type, _menu.Id, _menu.Tag, _menu.Visible).Delete();

_runAllTestsButton.Click -= OnRunAllTestsButtonClick;
_windowsTestExplorerButton.Click -= OnTestExplorerButtonClick;

Expand Down

0 comments on commit bd474fe

Please sign in to comment.