On 11 Feb 2012, at 03:17, Quincey Morris wrote:

> On Feb 10, 2012, at 15:03 , Mike Abdullah wrote:
> 
>> My line of thinking:
>> 
>> Each time one of your undo managers is about to close its top-level group, 
>> register that with the doc's main undo manager. Thus the doc's undo manager 
>> will see the change while locked, prompt the user to unlock, and if they do 
>> choose to cancel, will undo the change to individual undo manager. Something 
>> like:
>> 
>> - (void)undoManagerWillCloseGroup:(NSNotification *)notification
>> {
>>      NSUndoManager *manager = [notification object];
>>      if ([manager groupingLevel] == 1)
>>      {
>>              [[[self document] undoManager] registerUndoWithTarget:manager 
>> selector:@selector(undo) object:nil];
>>      }
>> }
> 
> Won't this have the effect of causing successive undos to affect various 
> pages, according to the order things were originally done, rather than just 
> undoing within the current "page"? That is, won't it undo on a global 
> "timeline" rather than a per-page timeline?

I'm assuming the doc's undo manger is hidden from the user; that there's no way 
from the UI to make it undo/redo.
> 
> I don't recall that this was discussed, but what happens if the document's 
> undo manager is changed to the page undo manager every time page switch 
> occurs? I can't work out if the OP tried this and found that the document's 
> "edited" status doesn't capture the undo manager states properly, or if the 
> OP didn't try this.

In theory I reckon that could work. Not sure I'd trust the framework to accept 
a regularly changing undo manager enough though.

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to