本文整理汇总了C#中AtomicUndoOperation类的典型用法代码示例。如果您正苦于以下问题:C# AtomicUndoOperation类的具体用法?C# AtomicUndoOperation怎么用?C# AtomicUndoOperation使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
AtomicUndoOperation类属于命名空间,在下文中一共展示了AtomicUndoOperation类的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: EndAtomicUndo
internal void EndAtomicUndo ()
{
if (atomicUndoLevel <= 0)
throw new InvalidOperationException ("There is no atomic undo operation running.");
atomicUndoLevel--;
Debug.Assert (atomicUndoLevel >= 0);
if (atomicUndoLevel == 0 && currentAtomicOperation != null) {
if (currentAtomicOperation.Operations.Count > 1) {
undoStack.Push (currentAtomicOperation);
OnEndUndo (new UndoOperationEventArgs (currentAtomicOperation));
} else {
if (currentAtomicOperation.Operations.Count > 0) {
undoStack.Push (currentAtomicOperation.Operations [0]);
OnEndUndo (new UndoOperationEventArgs (currentAtomicOperation.Operations [0]));
} else {
OnEndUndo (null);
}
}
currentAtomicOperation = null;
}
currentAtomicUndoOperationType.Pop ();
}
示例2: BeginAtomicUndo
internal void BeginAtomicUndo (OperationType operationType = OperationType.Undefined)
{
currentAtomicUndoOperationType.Push (operationType);
if (atomicUndoLevel == 0) {
if (this.syntaxMode != null && !SuppressHighlightUpdate)
Mono.TextEditor.Highlighting.SyntaxModeService.WaitUpdate (this);
}
if (currentAtomicOperation == null) {
Debug.Assert (atomicUndoLevel == 0);
currentAtomicOperation = new AtomicUndoOperation (operationType);
OnBeginUndo ();
}
atomicUndoLevel++;
}
示例3: MergeUndoOperations
public void MergeUndoOperations (int number)
{
number = System.Math.Min (number, undoStack.Count);
var atomicUndo = new AtomicUndoOperation ();
while (number-- > 0) {
atomicUndo.Insert (0, undoStack.Pop ());
}
undoStack.Push (atomicUndo);
}
示例4: StackUndoToDepth
public void StackUndoToDepth (int depth)
{
if (undoStack.Count == depth)
return;
var atomicUndo = new AtomicUndoOperation ();
while (undoStack.Count > depth) {
atomicUndo.Operations.Insert (0, undoStack.Pop ());
}
undoStack.Push (atomicUndo);
}
示例5: BeginAtomicUndo
public void BeginAtomicUndo ()
{
if (atomicUndoLevel == 0) {
if (this.syntaxMode != null && !SuppressHighlightUpdate)
Mono.TextEditor.Highlighting.SyntaxModeService.WaitUpdate (this);
}
if (currentAtomicOperation == null) {
Debug.Assert (atomicUndoLevel == 0);
currentAtomicOperation = new AtomicUndoOperation ();
OnBeginUndo ();
}
atomicUndoLevel++;
}
示例6: BeginAtomicUndo
internal void BeginAtomicUndo (OperationType operationType = OperationType.Undefined)
{
currentAtomicUndoOperationType.Push (operationType);
if (currentAtomicOperation == null) {
Debug.Assert (atomicUndoLevel == 0);
currentAtomicOperation = new AtomicUndoOperation (operationType);
OnBeginUndo ();
}
atomicUndoLevel++;
}