protected override void Dispose(bool disposing)
{
if (disposing)
{
// Unhook from any current menu strip
if (base.ContextMenuStrip != null)
{
base.ContextMenuStrip.Opening -= new CancelEventHandler(OnContextMenuStripOpening);
base.ContextMenuStrip.Closed -= new ToolStripDropDownClosedEventHandler(OnContextMenuClosed);
base.ContextMenuStrip = null;
}
// Must unhook from the palette paint event
if (_palette != null)
{
_palette.PalettePaint -= new EventHandler<PaletteLayoutEventArgs>(OnPaletteNeedPaint);
_palette.ButtonSpecChanged -= new EventHandler(OnButtonSpecChanged);
_palette.BasePaletteChanged -= new EventHandler(OnBaseChanged);
_palette.BaseRendererChanged -= new EventHandler(OnBaseChanged);
}
// Unhook from global events
KryptonManager.GlobalPaletteChanged -= new EventHandler(OnGlobalPaletteChanged);
SystemEvents.UserPreferenceChanged -= new UserPreferenceChangedEventHandler(OnUserPreferenceChanged);
// Dispose of view manager related resources
ViewManager.Dispose();
_palette = null;
_renderer = null;
_localPalette = null;
Redirector.Target = null;
}
base.Dispose(disposing);
}