diff options
author | randomguy3 <randomguy3@7c02a99a-9b00-45e3-bf44-6f3dd7fddb64> | 2012-01-27 19:24:50 +0000 |
---|---|---|
committer | randomguy3 <randomguy3@7c02a99a-9b00-45e3-bf44-6f3dd7fddb64> | 2012-01-27 19:24:50 +0000 |
commit | 31ff43125b0629b688a36c2a97c233ec878b3fbc (patch) | |
tree | ee46bd3347e0ff80a5f7564854897ddbc9faf381 /tikzit/src/gtk/TikzDocument.m | |
parent | 99e1dbf751882592ee21400c60bdbc8241894f27 (diff) |
GTK: bring forward / send back support
Waiting on the graph changes to be implemented for it to be done properly (currently no undo/redo and the graph doesn't redraw properly)
git-svn-id: https://tikzit.svn.sourceforge.net/svnroot/tikzit/trunk@403 7c02a99a-9b00-45e3-bf44-6f3dd7fddb64
Diffstat (limited to 'tikzit/src/gtk/TikzDocument.m')
-rw-r--r-- | tikzit/src/gtk/TikzDocument.m | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/tikzit/src/gtk/TikzDocument.m b/tikzit/src/gtk/TikzDocument.m index 5ccdb98..8672266 100644 --- a/tikzit/src/gtk/TikzDocument.m +++ b/tikzit/src/gtk/TikzDocument.m @@ -690,6 +690,95 @@ } } +// FIXME: undo +- (void) bringSelectionForward { + BOOL hasNodeSelection = [[pickSupport selectedNodes] count] > 0; + BOOL hasEdgeSelection = [[pickSupport selectedEdges] count] > 0; + if (!hasNodeSelection && !hasEdgeSelection) + return; + + //[self startUndoGroup]; + if (hasNodeSelection) { + /*GraphChange *change =*/ + [graph bringNodesForward:[pickSupport selectedNodes]]; + //[self registerUndoForChange:change]; + } + if (hasEdgeSelection) { + /*GraphChange *change =*/ + [graph bringEdgesForward:[pickSupport selectedEdges]]; + //[self registerUndoForChange:change]; + } + //[self nameAndEndUndoGroup:@"Bring forward"]; + [self regenerateTikz]; + //[self postGraphChange:change]; +} + +- (void) bringSelectionToFront { + BOOL hasNodeSelection = [[pickSupport selectedNodes] count] > 0; + BOOL hasEdgeSelection = [[pickSupport selectedEdges] count] > 0; + if (!hasNodeSelection && !hasEdgeSelection) + return; + + //[self startUndoGroup]; + if (hasNodeSelection) { + /*GraphChange *change =*/ + [graph bringNodesToFront:[pickSupport selectedNodes]]; + //[self registerUndoForChange:change]; + } + if (hasEdgeSelection) { + /*GraphChange *change =*/ + [graph bringEdgesToFront:[pickSupport selectedEdges]]; + //[self registerUndoForChange:change]; + } + //[self nameAndEndUndoGroup:@"Bring to front"]; + [self regenerateTikz]; + //[self postGraphChange:change]; +} + +- (void) sendSelectionBackward { + BOOL hasNodeSelection = [[pickSupport selectedNodes] count] > 0; + BOOL hasEdgeSelection = [[pickSupport selectedEdges] count] > 0; + if (!hasNodeSelection && !hasEdgeSelection) + return; + + //[self startUndoGroup]; + if (hasNodeSelection) { + /*GraphChange *change =*/ + [graph sendNodesBackward:[pickSupport selectedNodes]]; + //[self registerUndoForChange:change]; + } + if (hasEdgeSelection) { + /*GraphChange *change =*/ + [graph sendNodesBackward:[pickSupport selectedEdges]]; + //[self registerUndoForChange:change]; + } + //[self nameAndEndUndoGroup:@"Send backward"]; + [self regenerateTikz]; + //[self postGraphChange:change]; +} + +- (void) sendSelectionToBack { + BOOL hasNodeSelection = [[pickSupport selectedNodes] count] > 0; + BOOL hasEdgeSelection = [[pickSupport selectedEdges] count] > 0; + if (!hasNodeSelection && !hasEdgeSelection) + return; + + //[self startUndoGroup]; + if (hasNodeSelection) { + /*GraphChange *change =*/ + [graph sendNodesToBack:[pickSupport selectedNodes]]; + //[self registerUndoForChange:change]; + } + if (hasEdgeSelection) { + /*GraphChange *change =*/ + [graph sendNodesToBack:[pickSupport selectedEdges]]; + //[self registerUndoForChange:change]; + } + //[self nameAndEndUndoGroup:@"Send to back"]; + [self regenerateTikz]; + //[self postGraphChange:change]; +} + - (BOOL) saveCopyToPath: (NSString*)p error: (NSError**)error { if (!p) { [NSException raise:@"No document path" format:@"No path given"]; @@ -785,6 +874,10 @@ } - (void) completedGraphChange:(GraphChange*)change withName:(NSString*)name { + if (change == nil) { + NSLog(@"No graph change given for change %@", name); + return; + } [self registerUndoGroupForChange:change withName:name]; [self regenerateTikz]; [self postGraphChange:change]; |