TextEditorTables.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Framework / System / Windows / Documents / TextEditorTables.cs / 1 / TextEditorTables.cs

                            //---------------------------------------------------------------------------- 
//
// File: TextEditorTables.cs
//
// Copyright (C) Microsoft Corporation.  All rights reserved. 
//
// Description: A Component of TextEditor supporting Table editing commands 
// 
//---------------------------------------------------------------------------
 
namespace System.Windows.Documents
{
    using MS.Internal;
    using System.Globalization; 
    using System.Threading;
    using System.ComponentModel; 
    using System.Text; 
    using System.Collections; // ArrayList
    using System.Runtime.InteropServices; 

    using System.Windows.Threading;
    using System.Windows.Input;
    using System.Windows.Controls; // ScrollChangedEventArgs 
    using System.Windows.Controls.Primitives;  // CharacterCasing, TextBoxBase
    using System.Windows.Media; 
    using System.Windows.Markup; 

    using MS.Utility; 
    using MS.Win32;
    using MS.Internal.Documents;
    using MS.Internal.Commands; // CommandHelpers
 
    /// 
    /// Text editing service for controls. 
    ///  
    internal static class TextEditorTables
    { 
        //-----------------------------------------------------
        //
        //  Class Internal Methods
        // 
        //-----------------------------------------------------
 
        #region Class Internal Methods 

        // Registers all text editing command handlers for a given control type 
        internal static void _RegisterClassHandlers(Type controlType, bool registerEventListeners)
        {
            CommandHelpers.RegisterCommandHandler(controlType, EditingCommands.InsertTable   , new ExecutedRoutedEventHandler(OnTableCommand) , new CanExecuteRoutedEventHandler(OnQueryStatusNYI), KeyGesture.CreateFromResourceStrings(SR.Get(SRID.KeyInsertTable),   SR.Get(SRID.KeyInsertTableDisplayString))   );
            CommandHelpers.RegisterCommandHandler(controlType, EditingCommands.InsertRows    , new ExecutedRoutedEventHandler(OnTableCommand) , new CanExecuteRoutedEventHandler(OnQueryStatusNYI), KeyGesture.CreateFromResourceStrings(SR.Get(SRID.KeyInsertRows),    SR.Get(SRID.KeyInsertRowsDisplayString))    ); 
            CommandHelpers.RegisterCommandHandler(controlType, EditingCommands.InsertColumns , new ExecutedRoutedEventHandler(OnTableCommand) , new CanExecuteRoutedEventHandler(OnQueryStatusNYI), KeyGesture.CreateFromResourceStrings(SR.Get(SRID.KeyInsertColumns), SR.Get(SRID.KeyInsertColumnsDisplayString)) );
            CommandHelpers.RegisterCommandHandler(controlType, EditingCommands.DeleteRows    , new ExecutedRoutedEventHandler(OnTableCommand) , new CanExecuteRoutedEventHandler(OnQueryStatusNYI), KeyGesture.CreateFromResourceStrings(SR.Get(SRID.KeyDeleteRows),    SR.Get(SRID.KeyDeleteRowsDisplayString))    ); 
            CommandHelpers.RegisterCommandHandler(controlType, EditingCommands.DeleteColumns , new ExecutedRoutedEventHandler(OnTableCommand) , new CanExecuteRoutedEventHandler(OnQueryStatusNYI), KeyGesture.CreateFromResourceStrings(SR.Get(SRID.KeyDeleteColumns), SR.Get(SRID.KeyDeleteColumnsDisplayString)) ); 
            CommandHelpers.RegisterCommandHandler(controlType, EditingCommands.MergeCells    , new ExecutedRoutedEventHandler(OnTableCommand) , new CanExecuteRoutedEventHandler(OnQueryStatusNYI), KeyGesture.CreateFromResourceStrings(SR.Get(SRID.KeyMergeCells),    SR.Get(SRID.KeyMergeCellsDisplayString))    );
            CommandHelpers.RegisterCommandHandler(controlType, EditingCommands.SplitCell     , new ExecutedRoutedEventHandler(OnTableCommand) , new CanExecuteRoutedEventHandler(OnQueryStatusNYI), KeyGesture.CreateFromResourceStrings(SR.Get(SRID.KeySplitCell),     SR.Get(SRID.KeySplitCellDisplayString))     ); 
        }

        #endregion Class Internal Methods
 
        //------------------------------------------------------
        // 
        //  Private Methods 
        //
        //----------------------------------------------------- 

        #region Private Methods

        private static void OnTableCommand(object target, ExecutedRoutedEventArgs args) 
        {
            TextEditor This = TextEditor._GetTextEditor(target); 
 
            if (This == null || !This._IsEnabled || This.IsReadOnly || !This.AcceptsRichContent || !(This.Selection is TextSelection))
            { 
                return;
            }

            TextEditorTyping._FlushPendingInputItems(This); 

            // Forget previously suggested horizontal position 
            TextEditorSelection._ClearSuggestedX(This); 

            // Execute the command 
            if (args.Command == EditingCommands.InsertTable)
            {
                ((TextSelection)This.Selection).InsertTable(/*rowCount:*/4, /*columnCount:*/4);
            } 
            else if (args.Command == EditingCommands.InsertRows)
            { 
                ((TextSelection)This.Selection).InsertRows(+1); 
            }
            else if (args.Command == EditingCommands.InsertColumns) 
            {
                ((TextSelection)This.Selection).InsertColumns(+1);
            }
            else if (args.Command == EditingCommands.DeleteRows) 
            {
                ((TextSelection)This.Selection).DeleteRows(); 
            } 
            else if (args.Command == EditingCommands.DeleteColumns)
            { 
                ((TextSelection)This.Selection).DeleteColumns();
            }
            else if (args.Command == EditingCommands.MergeCells)
            { 
                ((TextSelection)This.Selection).MergeCells();
            } 
            else if (args.Command == EditingCommands.SplitCell) 
            {
                ((TextSelection)This.Selection).SplitCell(1000, 1000); // Split all ways to possible maximum 
            }
        }

        // ---------------------------------------------------------- 
        //
        // Misceleneous Commands 
        // 
        // ----------------------------------------------------------
 
        #region Misceleneous Commands

        /// 
        /// StartInputCorrection command QueryStatus handler 
        /// 
        private static void OnQueryStatusNYI(object target, CanExecuteRoutedEventArgs args) 
        { 
            TextEditor This = TextEditor._GetTextEditor(target);
 
            if (This == null)
            {
                return;
            } 

            args.CanExecute = true; 
        } 

        #endregion Misceleneous Commands 

        #endregion Private methods
    }
} 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK