@ -21,16 +21,29 @@ using ICSharpCode.SharpDevelop.Widgets.SideBar;
@@ -21,16 +21,29 @@ using ICSharpCode.SharpDevelop.Widgets.SideBar;
namespace ICSharpCode.FormsDesigner.Gui
{
public class CustomComponentsSideTab : SideTabDesigner
public class CustomComponentsSideTab : SideTabDesigner , IDisposable
{
bool disposed ;
///<summary>Load an assembly's controls</summary>
public CustomComponentsSideTab ( SideBarControl sideTab , string name , IToolboxService toolboxService )
: base ( sideTab , name , toolboxService )
{
this . DisplayName = StringParser . Parse ( this . Name ) ;
ScanProjectAssemblies ( ) ;
ProjectService . EndBuild + = RescanProjectAssemblies ;
ProjectService . SolutionLoaded + = RescanProjectAssemblies ;
ProjectService . EndBuild + = RescanProjectAssemblies ;
ProjectService . SolutionLoaded + = RescanProjectAssemblies ;
ProjectService . ProjectItemAdded + = ProjectItemAdded ;
}
public void Dispose ( )
{
if ( ! disposed ) {
disposed = true ;
ProjectService . EndBuild - = RescanProjectAssemblies ;
ProjectService . SolutionLoaded - = RescanProjectAssemblies ;
ProjectService . ProjectItemAdded - = ProjectItemAdded ;
}
}
void RescanProjectAssemblies ( object sender , EventArgs e )
@ -41,6 +54,13 @@ namespace ICSharpCode.FormsDesigner.Gui
@@ -41,6 +54,13 @@ namespace ICSharpCode.FormsDesigner.Gui
SharpDevelopSideBar . SideBar . Refresh ( ) ;
}
void ProjectItemAdded ( object sender , ProjectItemEventArgs e )
{
if ( e . ProjectItem is ReferenceProjectItem ) {
RescanProjectAssemblies ( sender , e ) ;
}
}
void ScanProjectAssemblies ( )
{
// custom user controls don't need custom images