summaryrefslogtreecommitdiff
path: root/tikzit/src/common/PickSupport.m
diff options
context:
space:
mode:
authorrandomguy3 <randomguy3@7c02a99a-9b00-45e3-bf44-6f3dd7fddb64>2012-03-10 13:37:44 +0000
committerrandomguy3 <randomguy3@7c02a99a-9b00-45e3-bf44-6f3dd7fddb64>2012-03-10 13:37:44 +0000
commite6636042890e1dbfc442dfa0fedd9797c7cb8eff (patch)
tree20ce19e671bdd0e43fceed86172a41724c94926f /tikzit/src/common/PickSupport.m
parent0cd05a572e48b1e649ecdc8b24920c497e40466e (diff)
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
Diffstat (limited to 'tikzit/src/common/PickSupport.m')
-rw-r--r--tikzit/src/common/PickSupport.m52
1 files changed, 50 insertions, 2 deletions
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];