public ContentEditor(IMainFrameWindow mainFrameWindow, Control editorContainer, IBlogPostEditingSite postEditingSite, IInternetSecurityManager internetSecurityManager, BlogPostHtmlEditorControl.TemplateStrategy templateStrategy, int dlControlFlags) { // create a docked panel to host the editor Panel panel = new Panel(); panel.Dock = DockStyle.Fill; if (!BidiHelper.IsRightToLeft) panel.DockPadding.Right = 0; else panel.DockPadding.Left = 0; editorContainer.Controls.Add(panel); panel.Resize += new EventHandler(panel_Resize); if (BidiHelper.IsRightToLeft) editorContainer.RightToLeft = RightToLeft.Yes; // save references _mainFrameWindow = mainFrameWindow; _editorContainer = panel; _postEditingSite = postEditingSite; _commandManager = new CommandManager(); _userPreferencesMonitor = new UserPreferencesMonitor(); // To be high-contrast-aware we need to respond to changes in the high contrast mode // by invalidating commands, forcing the ribbon to ask us for new high contrast images. _userPreferencesMonitor.AccessibilityUserPreferencesChanged += new EventHandler(delegate (object sender, EventArgs args) { _commandManager.InvalidateAllImages(); }); _imageDecoratorsManager = new LazyLoader<ImageDecoratorsManager>(() => new ImageDecoratorsManager(components, CommandManager, GlobalEditorOptions.SupportsFeature(ContentEditorFeature.ImageBorderInherit))); _emoticonsManager = new EmoticonsManager(this, this); // initialize commands InitializeCommands(); // initialize normal editor InitializeNormalEditor(postEditingSite, internetSecurityManager, templateStrategy, dlControlFlags); // initialize source editor if (GlobalEditorOptions.SupportsFeature(ContentEditorFeature.SourceEditor)) InitializeSourceEditor(); InitializeViewCommands(); // initialize custom content InitializeContentSources(); // bring main editor panel to front (this must be here for the sidebar to work!!!!) panel.BringToFront(); }
public virtual void Dispose() { _disposed = true; wordCountTimer.Dispose(); _editorContainer.Controls.Remove(_htmlEditorSidebarHost); _htmlEditorSidebarHost.Dispose(); UnregisterEditor(_normalHtmlContentEditor); DisposeHtmlEditor(_normalHtmlContentEditor); if (_codeHtmlContentEditor != null) { UnregisterEditor(_codeHtmlContentEditor); _codeHtmlContentEditor.Dispose(); } if (_imageDecoratorsManager.IsInitialized) DecoratorsManager.Dispose(); if (components != null) components.Dispose(); _userPreferencesMonitor.Dispose(); _userPreferencesMonitor = null; ContentSourceManager.GlobalContentSourceListChanged -= new EventHandler(ContentSourceManager_GlobalContentSourceListChanged); CommandManager.CommandStateChanged -= new EventHandler(CommandManager_CommandStateChanged); //ToDo: OLW Spell Checker //if (_spellingChecker != null) //{ // _spellingChecker.Dispose(); // _spellingChecker = null; //} if (_insertImageDialogWin7 != null) { _insertImageDialogWin7.Dispose(); _insertImageDialogWin7 = null; } DisposeTextEditingCommandDispatcher(); GC.SuppressFinalize(this); }