Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
        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);
        }