From f2186c6cee130de41ef2013ad0e667058c0da1de Mon Sep 17 00:00:00 2001 From: gcasa Date: Sat, 10 Sep 2005 21:06:25 +0000 Subject: [PATCH] Added NSDataLinkManager methods. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@21711 72102866-910b-0410-8b05-ffd578937521 --- ChangeLog | 7 +++++++ Source/NSDataLink.m | 3 --- Source/NSDataLinkManager.m | 32 +++++++++++++++++++++++++++++++- Source/externs.m | 2 +- 4 files changed, 39 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 384b006d3..859c8011a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2005-09-10 17:02 Gregory John Casamento + + * Source/externs.m: Added constants for data link. + * Source/NSDataLink.m: Removed NSDataLinkFilenameExtension constant. + * Source/NSDataLinkManager.m: Added implementation for + addLinkAsMarker:at:, addLinkPreviouslyAt:fromPasteboard:at:. + 2005-09-10 Adam Fedor * configure.ac: Check for libgib if libungif is not found. diff --git a/Source/NSDataLink.m b/Source/NSDataLink.m index 8fabe5065..f312dd665 100644 --- a/Source/NSDataLink.m +++ b/Source/NSDataLink.m @@ -35,9 +35,6 @@ #include "AppKit/NSSavePanel.h" #include "AppKit/NSSelection.h" -// constants -NSString *NSDataLinkFilenameExtension = @"dlink"; - @implementation NSDataLink // diff --git a/Source/NSDataLinkManager.m b/Source/NSDataLinkManager.m index 4807fa25a..163999253 100644 --- a/Source/NSDataLinkManager.m +++ b/Source/NSDataLinkManager.m @@ -29,8 +29,10 @@ #include #include #include +#include #include #include +#include @interface NSDataLink (Private) - (void) setLastUpdateTime: (NSDate *)date; @@ -158,13 +160,26 @@ - (BOOL)addLinkAsMarker:(NSDataLink *)link at:(NSSelection *)selection { - return NO; + // FIXME: Marker? + return [self addLink: link at: selection]; } - (NSDataLink *)addLinkPreviouslyAt:(NSSelection *)oldSelection fromPasteboard:(NSPasteboard *)pasteboard at:(NSSelection *)selection { + NSData *data = [pasteboard dataForType: NSDataLinkPboardType]; + NSArray *links = [NSUnarchiver unarchiveObjectWithData: data]; + NSEnumerator *en = [links objectEnumerator]; + NSDataLink *link = nil; + + while((link = [en nextObject]) != nil) + { + if([link destinationSelection] == oldSelection) + { + } + } + return nil; } @@ -197,26 +212,41 @@ // - (void)noteDocumentClosed { + if([delegate respondsToSelector: @selector(dataLinkManagerCloseDocument:)]) + { + [delegate dataLinkManagerCloseDocument: self]; + } } - (void)noteDocumentEdited { + if([delegate respondsToSelector: @selector(dataLinkManagerDidEditLinks:)]) + { + [delegate dataLinkManagerDidEditLinks: self]; + } } - (void)noteDocumentReverted { + if([delegate respondsToSelector: @selector(dataLinkManagerDidEditLinks:)]) + { + [delegate dataLinkManagerDidEditLinks: self]; + } } - (void)noteDocumentSaved { + // implemented by subclass } - (void)noteDocumentSavedAs:(NSString *)path { + // implemented by subclass } - (void)noteDocumentSavedTo:(NSString *)path { + // implemented by subclass } // diff --git a/Source/externs.m b/Source/externs.m index 5d526a2ad..3da101ebc 100644 --- a/Source/externs.m +++ b/Source/externs.m @@ -145,7 +145,7 @@ NSString *NSControlTextDidChangeNotification = @"NSControlTextDidChangeNotification"; // NSDataLink global strings -NSString *NSDataLinkFileNameExtension = @"dlf"; +NSString *NSDataLinkFilenameExtension = @"dlf"; // NSDrawer notifications NSString *NSDrawerDidCloseNotification =