From e6636042890e1dbfc442dfa0fedd9797c7cb8eff Mon Sep 17 00:00:00 2001 From: randomguy3 Date: Sat, 10 Mar 2012 13:37:44 +0000 Subject: Make common code KVC compliant, and implement NSCopying where relevant git-svn-id: https://tikzit.svn.sourceforge.net/svnroot/tikzit/trunk@420 7c02a99a-9b00-45e3-bf44-6f3dd7fddb64 --- tikzit/src/common/PickSupport.m | 52 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 50 insertions(+), 2 deletions(-) (limited to 'tikzit/src/common/PickSupport.m') diff --git a/tikzit/src/common/PickSupport.m b/tikzit/src/common/PickSupport.m index 5ea13c0..6470214 100644 --- a/tikzit/src/common/PickSupport.m +++ b/tikzit/src/common/PickSupport.m @@ -53,8 +53,56 @@ return [[[PickSupport alloc] init] autorelease]; } -- (NSSet*)selectedNodes { return selectedNodes; } -- (NSSet*)selectedEdges { return selectedEdges; } +@synthesize selectedNodes; +- (void)addSelectedNodesObject:(Node*)node { + return [self selectNode:node]; +} +- (void)addSelectedNodes:(NSSet*)nodes { + return [self selectAllNodes:nodes replacingSelection:NO]; +} +- (void)removeSelectedNodesObject:(Node*)node { + return [self deselectNode:node]; +} +- (void)removeSelectedNodes:(NSSet*)nodes { + if ([selectedNodes count] > 0) { + [selectedNodes minusSet:nodes]; + [[NSNotificationCenter defaultCenter] + postNotificationName:@"NodeSelectionReplaced" + object:self]; + [self postNodeSelectionChanged]; + } +} + +@synthesize selectedEdges; +- (void)addSelectedEdgesObject:(Edge*)edge { + return [self selectEdge:edge]; +} +- (void)addSelectedEdges:(NSSet*)edges { + if (selectedEdges == edges) { + return; + } + if ([edges count] == 0) { + return; + } + + [selectedEdges unionSet:edges]; + [[NSNotificationCenter defaultCenter] + postNotificationName:@"EdgeSelectionReplaced" + object:self]; + [self postEdgeSelectionChanged]; +} +- (void)removeSelectedEdgesObject:(Edge*)edge { + return [self deselectEdge:edge]; +} +- (void)removeSelectedEdges:(NSSet*)edges { + if ([selectedEdges count] > 0 && [edges count] > 0) { + [selectedEdges minusSet:edges]; + [[NSNotificationCenter defaultCenter] + postNotificationName:@"EdgeSelectionReplaced" + object:self]; + [self postEdgeSelectionChanged]; + } +} - (BOOL)isNodeSelected:(Node*)nd { return [selectedNodes containsObject:nd]; -- cgit v1.2.3