Example #1
0
        /// <summary>
        /// 操作後情報の保存
        /// </summary>
        /// <param name="p">キャレット位置</param>
        /// <param name="ope">操作(挿入・削除・キャレット移動)</param>
        /// <param name="str">操作文字列</param>
        /// <param name="ee">実行クラス</param>
        public void ProUndoRedo(Point p, int ope, string str, CEEditView ee)
        {
            if (m_UndoRedoData == null)
            {
                // Undo/Redo 情報がない場合は何もしない
                return;
            }

            // Undo/Redo 操作保存
            m_UndoRedoData.m_ope = ope;

            // Undo/Redo 操作後のキャレット位置保存(論理位置として保存)
            int lRow, lCol;

            ee.m_doc.PtoLPos(p.Y, p.X, out lRow, out lCol); // 物理位置→論理位置
            m_UndoRedoData.m_aftCaret.X = lCol;
            m_UndoRedoData.m_aftCaret.Y = lRow;

            // Undo/Redo 操作データ保存
            m_UndoRedoData.m_pcmemData = str;

            // Undo/Redo 保存
            this.Append(m_UndoRedoData);

            // Undo/Redo 情報削除
            m_UndoRedoData = null;
        }
Example #2
0
        /// <summary>
        /// 操作前情報の保存
        /// </summary>
        /// <param name="p">キャレット位置(物理)</param>
        /// <param name="ee">実行クラス</param>
        public void PreUndoRedo(Point p, int selectType, CEEditView ee)
        {
            // Undo/Redo 不要な操作情報削除
            this.DelOpe();

            // Undo/Redo 操作情報格納エリア確保
            if (m_UndoRedoData == null)
            {
                m_UndoRedoData = new CEUndoRedoData();
            }

            // Undo/Redo 操作前のキャレット位置保存(論理位置として保存)
            int lRow, lCol;

            ee.m_doc.PtoLPos(p.Y, p.X, out lRow, out lCol); // 物理位置→論理位置
            m_UndoRedoData.m_preCaret.X = lCol;
            m_UndoRedoData.m_preCaret.Y = lRow;
            m_UndoRedoData.m_selectType = selectType;
        }
Example #3
0
 /// <summary>
 /// Undo/Redo情報保存
 /// </summary>
 /// <param name="urd"></param>
 private void Append(CEUndoRedoData urd)
 {
     m_ppCOpeArr.Add(urd);
     m_opeIdx++;
     return;
 }