DrawKit
Vector and illustration framework for Mac OS X
|
A guide layer implements any number of horizontal and vertical guidelines and provides methods for snapping points and rectangles to them. More...
Instance Methods | |
(void) | - addGuide: |
Adds a guide to the layer. More... | |
(IBAction) | - clearGuides: |
High level action to remove all guides from the layer. More... | |
(DKGuide *) | - createHorizontalGuideAndBeginDraggingFromPoint: |
Creates a new horizontal guide at the point p, adds it to the layer and returns it. More... | |
(DKGuide *) | - createVerticalGuideAndBeginDraggingFromPoint: |
Creates a new vertical guide at the point p, adds it to the layer and returns it. More... | |
(NSColor *) | - guideColour |
Return the layer's guide colour. More... | |
(NSRect) | - guideDeletionRect |
The rect for which guides will be deleted if they are dragged outside of it. More... | |
(NSRect) | - guideRect: |
Returns the rect occupied by a given guide. More... | |
(NSArray *) | - guides |
Get all current guides. More... | |
(BOOL) | - guidesDrawnInEnclosingScrollview |
(BOOL) | - guidesSnapToGrid |
Whether guids should snap to the grid by default or not. More... | |
(NSArray *) | - horizontalGuides |
Returns the list of horizontal guides. More... | |
(DKGuide *) | - nearestHorizontalGuideToPosition: |
Locates the nearest guide to the given position, if position is within the snap tolerance. More... | |
(DKGuide *) | - nearestVerticalGuideToPosition: |
Locates the nearest guide to the given position, if position is within the snap tolerance. More... | |
(void) | - refreshGuide: |
Marks a partiuclar guide as needing to be readrawn. More... | |
(void) | - removeAllGuides |
Removes all guides permanently from the layer. More... | |
(void) | - removeGuide: |
Removes a guide from the layer. More... | |
(void) | - setGuideColour: |
Set the colour of all guides in this layer to a given colour. More... | |
(void) | - setGuideDeletionRect: |
Sets a rect for which guides will be deleted if they are dragged outside of it. More... | |
(void) | - setGuides: |
Adds a set of guides to th elayer. More... | |
(void) | - setGuidesDrawnInEnclosingScrollview: |
(void) | - setGuidesSnapToGrid: |
Set whether guids should snap to the grid by default or not. More... | |
(void) | - setShowsDragInfoWindow: |
Set whether the info window should be displayed when dragging a guide. More... | |
(void) | - setSnapTolerance: |
Sets the distance a point needs to be before it is snapped to a guide. More... | |
(BOOL) | - showsDragInfoWindow |
Return whether the info window should be displayed when dragging a guide. More... | |
(NSSize) | - snapPointsToGuide: |
Snaps any of a list of points to any nearest guides within the snap tolerance. More... | |
(NSSize) | - snapPointsToGuide:verticalGuide:horizontalGuide: |
Snaps any of a list of points to any nearest guides within the snap tolerance. More... | |
(NSPoint) | - snapPointToGuide: |
Snap a given point to any nearest guides within the snap tolerance. More... | |
(NSRect) | - snapRectToGuide: |
Snaps any corner of the given rect to any nearest guides within the snap tolerance. More... | |
(NSRect) | - snapRectToGuide:includingCentres: |
Snaps any corner or centre point of the given rect to any nearest guides within the snap tolerance. More... | |
(CGFloat) | - snapTolerance |
Resturns the distance a point needs to be before it is snapped to a guide. More... | |
(NSArray *) | - verticalGuides |
Returns the list of vertical guides. More... | |
Instance Methods inherited from DKLayer | |
(NSRect) | - activeCursorRect |
Return a rect where the layer's cursor is shown when the mouse is within it. More... | |
(void) | - addMetadata: |
(void) | - addUserInfo: |
(NSSet *) | - allRegisteredStyles |
Return all of registered styles used by the layer. More... | |
(NSSet *) | - allStyles |
Return all of styles used by the layer. More... | |
(CGFloat) | - alpha |
Returns the alpha level for the layer as a whole. More... | |
(void) | - beginDrawing |
Called before the layer starts drawing its content. More... | |
(NSBitmapImageRep *) | - bitmapRepresentationWithDPI: |
Returns the layer's content as a transparent bitmap having the given DPI. More... | |
(BOOL) | - clipsDrawingToInterior |
Whether the drawing will be clipped to the interior or not. More... | |
(NSColor *) | - colourForKey: |
(IBAction) | - copy: |
(NSView *) | - currentView |
Returns the view which is either currently drawing the layer, or the one that mouse events are coming from. More... | |
(NSCursor *) | - cursor |
Returns the cursor to display while the mouse is over this layer while it's active. More... | |
(DKDrawing *) | - drawing |
Returns the drawing that the layer belongs to. More... | |
(void) | - drawingDidChangeMargins: |
(void) | - drawingDidChangeToSize: |
Called when the drawing's size is changed - this gives layers that need to know about this a direct notification. More... | |
(void) | - drawingHasNewUndoManager: |
Called when the drawing's undo manager is changed - this gives objects that cache the UM a chance to update their references. More... | |
(void) | - drawRect:inView: |
Main entry point for drawing the layer and its contents to the drawing's views. More... | |
(void) | - endDrawing |
Called after the layer has finished drawing its content. More... | |
(void) | - flagsChanged: |
Respond to a change in the modifier key state. More... | |
(CGFloat) | - floatValueForKey: |
(BOOL) | - hasMetadataForKey: |
(void) | - hideInfoWindow |
Hides the info window if it's visible. More... | |
(IBAction) | - hideLayer: |
User interface level method can be linked to a menu or other appropriate UI widget. More... | |
(void) | - hideRulerMarkers |
(BOOL) | - hitLayer: |
Detect whether the layer was "hit" by a point. More... | |
(DKDrawableObject *) | - hitTest: |
Detect what object was hit by a point. More... | |
(NSUInteger) | - indexInGroup |
Gets the layer's index within the group that the layer is contained in. More... | |
(NSInteger) | - intValueForKey: |
(BOOL) | - isActive |
Is the layer the active layer? More... | |
(BOOL) | - isChildOfGroup: |
Determine whether a given group is the parent of this layer, or anywhere above it in the hierarchy. More... | |
(BOOL) | - isOpaque |
Is the layer opaque or transparent? More... | |
(DKKnob *) | - knobs |
(BOOL) | - knobsShouldAdjustToViewScale |
(void) | - layerDidBecomeActiveLayer |
The layer was made the active layer by the owning drawing. More... | |
(void) | - layerDidResignActiveLayer |
The layer is no longer the active layer. More... | |
(DKLayerGroup *) | - layerGroup |
Gets the group that the layer is contained in. More... | |
(BOOL) | - layerMayBecomeActive |
Returns whether the layer can become the active layer. More... | |
(BOOL) | - layerMayBeDeleted |
Return whether the layer can be deleted. More... | |
(NSString *) | - layerName |
Returns the layer's name. More... | |
(NSUInteger) | - level |
Returns the hierarchical level of this layer, i.e. More... | |
(BOOL) | - locked |
Returns whether the layer is locked or not. More... | |
(BOOL) | - lockedOrHidden |
Returns whether the layer is locked or hidden. More... | |
(IBAction) | - lockLayer: |
User interface level method can be linked to a menu or other appropriate UI widget. More... | |
(IBAction) | - logDescription: |
Debugging method. More... | |
(NSMenu *) | - menuForEvent:inView: |
Allows a contextual menu to be built for the layer or its contents. More... | |
(NSMutableDictionary *) | - metadata |
(NSUInteger) | - metadataChecksum |
(void) | - metadataDidChangeKey: |
(DKMetadataItem *) | - metadataItemForKey: |
(NSArray *) | - metadataKeys |
(id) | - metadataObjectForKey: |
(void) | - metadataWillChangeKey: |
(void) | - mouseDown:inView: |
The mouse went down in this layer. More... | |
(void) | - mouseDragged:inView: |
Subclasses must override to be notified of mouse dragged events. More... | |
(void) | - mouseMoved:inView: |
(void) | - mouseUp:inView: |
Override to respond to the event. More... | |
(BOOL) | - pasteboard:hasAvailableTypeForOperation: |
Tests whether the pasteboard has any of the types the layer is interested in receiving for the given operation. More... | |
(NSArray *) | - pasteboardTypesForOperation: |
Return the pasteboard types this layer is able to receive in a given operation (drop or paste) More... | |
(NSData *) | |
Returns the content of the layer as a pdf. More... | |
(void) | - removeMetadataForKey: |
(void) | - replaceMatchingStylesFromSet: |
Substitute styles with those in the given set. More... | |
(BOOL) | - rulerMarkerUpdatesEnabled |
(DKLayerMetadataSchema) | - schema |
(NSColor *) | - selectionColour |
Returns the currently preferred selection colour for this layer. More... | |
(void) | - setAlpha: |
Sets the alpha level for the layer. More... | |
(void) | - setClipsDrawingToInterior: |
Sets whether drawing is limited to the interior area or not. More... | |
(void) | - setColour:forKey: |
(void) | - setFloatValue:forKey: |
(void) | - setInfoWindowBackgroundColour: |
Sets the background colour of the small floating info window. More... | |
(void) | - setIntValue:forKey: |
(void) | - setKnobs: |
(void) | - setKnobsShouldAdustToViewScale: |
(void) | - setLayerGroup: |
Sets the group that the layer is contained in - called automatically when the layer is added to a group. More... | |
(void) | - setLayerName: |
Sets the user-readable name of the layer. More... | |
(void) | - setLocked: |
Sets whether the layer is locked or not. More... | |
(void) | - setMetadata: |
(void) | - setMetadataItem:forKey: |
(void) | - setMetadataItemType:forKey: |
(void) | - setMetadataItemValue:forKey: |
(void) | - setMetadataObject:forKey: |
(void) | - setNeedsDisplay: |
Flags the whole layer as needing redrawing. More... | |
(void) | - setNeedsDisplayInRect: |
Flags part of a layer as needing redrawing. More... | |
(void) | - setNeedsDisplayInRects: |
Marks several areas for update at once. More... | |
(void) | - setNeedsDisplayInRects:withExtraPadding: |
Marks several areas for update at once. More... | |
(void) | - setRulerMarkerUpdatesEnabled: |
(void) | - setSelectionColour: |
Sets the colour preference to use for selected objects within this layer. More... | |
(void) | - setShouldDrawToPrinter: |
Set whether this layer should be included in printed output. More... | |
(void) | - setSize:forKey: |
(void) | - setString:forKey: |
(void) | - setupMetadata |
(void) | - setUserInfo: |
(void) | - setUserInfoObject:forKey: |
(void) | - setVisible: |
Sets whether the layer is visible or not. More... | |
(BOOL) | - shouldAutoActivateWithEvent: |
Should the layer automatically activate on a click if the view has this behaviour set? More... | |
(BOOL) | - shouldDrawToPrinter |
Return whether the layer should be part of the printed output or not. More... | |
(void) | - showInfoWindowWithString:atPoint: |
Displays a small floating info window near the point p containg the string. More... | |
(IBAction) | - showLayer: |
User interface level method can be linked to a menu or other appropriate UI widget. More... | |
(NSSize) | - sizeForKey: |
(NSString *) | - stringForKey: |
(BOOL) | - supportsMetadata |
(NSImage *) | - thumbnail |
(NSImage *) | - thumbnailImageWithSize: |
Returns an image of the layer a the given size. More... | |
(IBAction) | - toggleLayerLock: |
User interface level method can be linked to a menu or other appropriate UI widget. More... | |
(IBAction) | - toggleLayerVisible: |
User interface level method can be linked to a menu or other appropriate UI widget. More... | |
(NSUndoManager *) | - undoManager |
Obtains the undo manager that is handling undo for the drawing and hence, this layer. More... | |
(NSString *) | - uniqueKey |
Returns the layer's unique key. More... | |
(IBAction) | - unlockLayer: |
User interface level method can be linked to a menu or other appropriate UI widget. More... | |
(void) | - updateMetadataKeys |
(void) | - updateRulerMarkersForRect: |
(NSMutableDictionary *) | - userInfo |
Return the attached user info. More... | |
(id) | - userInfoObjectForKey: |
Return an item of user info. More... | |
(BOOL) | - visible |
Is the layer visible? More... | |
(void) | - wasAddedToDrawing: |
Notifies the layer that it or a group containing it was added to a drawing. More... | |
(BOOL) | - writePDFDataToPasteboard: |
Writes the content of the layer as a pdf to a nominated pasteboard. More... | |
Instance Methods inherited from NSObject | |
(NSString *) | - address |
(DKStyleRegistry *) | - applicationWillReturnStyleRegistry |
(BOOL) | - canBeUsedWithSelectionTool |
(id) | - categoryManager:shouldReplaceObject:withObject: |
(Class) | - classForCoder |
(NSColor *) | - colorValue |
(NSColor *) | - colourValue |
(id) | - copy |
(void) | - dealloc |
(id) | - deepCopy |
(NSDictionary *) | - dimensionValuesForArrowStroke: |
(CGFloat) | - drawing:convertDistanceToExternalCoordinates: |
(NSPoint) | - drawing:convertLocationToExternalCoordinates: |
(void) | - drawing:didDrawRect:inView: |
(void) | - drawing:willDrawRect:inView: |
(NSString *) | - drawing:willReturnAbbreviationForUnit: |
(NSString *) | - drawing:willReturnFormattedCoordinateForDistance: |
(CGFloat) | - drawingWillReturnUnitToPointsConversonFactor: |
(void) | - finalize |
(NSString *) | - hexString |
(void) | - hotspot:didEndTrackingWithEvent:inView: |
(void) | - hotspot:isTrackingWithEvent:inView: |
(void) | - hotspot:willBeginTrackingWithEvent:inView: |
(NSData *) | - imageData |
(NSImage *) | - imageResourceNamed: |
(id) | - init |
(id) | - initWithExpression: |
(id) | - instantiateObjectWithShortName:parameters: |
(BOOL) | - isLiteralValue |
(void) | - layoutManager:willPlaceGlyphAtIndex:atLocation:pathAngle:yOffset: |
(void) | - menuItem:wasAddedForObject:inCategory: |
(BOOL) | - moveObjectTo:position:slope:userInfo: |
(id) | - mutableCopy |
(void) | - oneShotComplete |
(void) | - oneShotHasReached: |
(void) | - oneShotWillBegin |
(void) | - path:elementIndex:type:points:subPathIndex:subPathClosed:contextInfo: |
(id) | - placeLinkFromPoint:toPoint:onPath:linkNumber:userInfo: |
(id) | - placeObjectAtPoint:onPath:position:slope:userInfo: |
(NSPoint) | - point |
(NSPoint) | - pointForTextLayout |
(DKStyle *) | - registry:shouldReplaceStyle:withStyle: |
(NSBezierPath *) | - renderer:willRenderPath: |
(void) | - routeFinder:progressHasReached: |
(void) | - setValue:forNumericParameter: |
(NSString *) | - stringValue |
(CGFloat) | - taperFactorAtDistance:onPath:ofLength: |
(void) | - toolDidPerformUndoableAction: |
(void) | - toolWillPerformUndoableAction: |
(NSURL *) | - url |
Instance Methods inherited from <NSObject> | |
(NSString *) | - description |
(NSUInteger) | - hash |
(BOOL) | - isEqual: |
Instance Methods inherited from <NSKeyValueBindingCreation> | |
(void) | - bind:toObject:withKeyPath:options: |
(NSArray *) | - exposedBindings |
(NSDictionary *) | - infoForBinding: |
(NSArray *) | - optionDescriptionsForBinding: |
(void) | - unbind: |
(Class) | - valueClassForBinding: |
Instance Methods inherited from <NSCoding> | |
(void) | - encodeWithCoder: |
(id) | - initWithCoder: |
Instance Methods inherited from <DKKnobOwner> | |
(BOOL) | - knobsWantDrawingActiveState |
(CGFloat) | - knobsWantDrawingScale |
Class Methods | |
(CGFloat) | + defaultSnapTolerance |
Returns the distance a point needs to be before it is snapped to a guide. More... | |
(void) | + setDefaultSnapTolerance: |
Sets the distance a point needs to be before it is snapped to a guide. More... | |
Class Methods inherited from DKLayer | |
(BOOL) | + metadataChangesAreUndoable |
(NSColor *) | + selectionColourForIndex: |
(NSArray *) | + selectionColours |
Returns the list of colours used for supplying the selection colours. More... | |
(void) | + setMetadataChangesAreUndoable: |
(void) | + setSelectionColours: |
Allows a list of colours to be set for supplying the selection colours. More... | |
Class Methods inherited from NSObject | |
(id) | + alloc |
(Class) | + class |
(void) | + initialize |
(void) | + load |
(id) | + new |
Class Methods inherited from <NSKeyValueBindingCreation> | |
(void) | + exposeBinding: |
A guide layer implements any number of horizontal and vertical guidelines and provides methods for snapping points and rectangles to them.
A drawing typically has one guide layer, though you are not limited to just one - however since DKDrawing will generally provide snapping to both guides and grid as a high-level method, having more than one guide layer can create ambiguities for the user unless your client code takes account of the possibility of multiple guide layers.
The default snap tolerance for guides is 6 points.
By default guides don't snap to the grid. You can force a guide to snap to the grid even if this setting is off by dragging with the shift key down.
- (void) addGuide: | (DKGuide *) | guide |
Adds a guide to the layer.
Sets the guide's colour to the layer's guide colour initially - after adding the guide colour can be set individually if desired.
guide | an existing guide object |
- (IBAction) clearGuides: | (id) | sender |
High level action to remove all guides from the layer.
Can be hooked directly to a menu item for clearing the guides - will be available when the guide layer is active. Does nothing if the layer is locked.
sender | the action's sender |
- (DKGuide*) createHorizontalGuideAndBeginDraggingFromPoint: | (NSPoint) | p |
Creates a new horizontal guide at the point p, adds it to the layer and returns it.
This is a convenient way to add a guide interactively, for example when dragging one "off" a ruler. See DKViewController for an example client of this method. If the layer is locked this does nothing and returns nil.
p | a point local to the drawing |
- (DKGuide*) createVerticalGuideAndBeginDraggingFromPoint: | (NSPoint) | p |
Creates a new vertical guide at the point p, adds it to the layer and returns it.
This is a convenient way to add a guide interactively, for example when dragging one "off" a ruler. See DKViewController for an example client of this method. If the layer is locked this does nothing and returns nil.
p | a point local to the drawing |
+ (CGFloat) defaultSnapTolerance |
Returns the distance a point needs to be before it is snapped to a guide.
- (NSColor*) guideColour |
Return the layer's guide colour.
The guide colour is actually synonymous with the "selection" colour inherited from DKLayer, but also each guide is able to have its own colour. This returns the selection colour, but if guides have their own colours this says nothing about them.
- (NSRect) guideDeletionRect |
The rect for which guides will be deleted if they are dragged outside of it.
Default is the same as the drawing's interior
Returns the rect occupied by a given guide.
This allows a small amount either side of the guide, and runs the full dimension of the drawing in the direction of the guide.
guide | the guide whose rect we are interested in |
- (NSArray*) guides |
Get all current guides.
- (BOOL) guidesDrawnInEnclosingScrollview |
- (BOOL) guidesSnapToGrid |
Whether guids should snap to the grid by default or not.
The default is NO
- (NSArray*) horizontalGuides |
Returns the list of horizontal guides.
The guides returns are not in any particular order
Locates the nearest guide to the given position, if position is within the snap tolerance.
pos | a horizontal coordinate value, in points |
Locates the nearest guide to the given position, if position is within the snap tolerance.
pos | a verical coordinate value, in points |
- (void) refreshGuide: | (DKGuide *) | guide |
Marks a partiuclar guide as needing to be readrawn.
guide | the guide to update |
- (void) removeAllGuides |
Removes all guides permanently from the layer.
- (void) removeGuide: | (DKGuide *) | guide |
Removes a guide from the layer.
guide | an existing guide object |
+ (void) setDefaultSnapTolerance: | (CGFloat) | tol |
Sets the distance a point needs to be before it is snapped to a guide.
tol | the distance in points |
- (void) setGuideColour: | (NSColor *) | colour |
Set the colour of all guides in this layer to a given colour.
The guide colour is actually synonymous with the "selection" colour inherited from DKLayer, but also each guide is able to have its own colour. This sets the colour for each guide to be the same so you may prefer to obtain a particular guide and set it individually.
colour | the colour to setSets the guide's colour |
Note that this doesn't mark the guide for update - DKGuideLayer has a method for doing that.
colour | a colour |
- (void) setGuideDeletionRect: | (NSRect) | rect |
Sets a rect for which guides will be deleted if they are dragged outside of it.
Default is the same as the drawing's interior
rect | the rect |
- (void) setGuides: | (NSArray *) | guides |
Adds a set of guides to th elayer.
guides | an array of guide objects |
- (void) setGuidesDrawnInEnclosingScrollview: | (BOOL) | drawOutside |
- (void) setGuidesSnapToGrid: | (BOOL) | gridsnap |
Set whether guids should snap to the grid by default or not.
The default is NO
gridsnap | YES to always snap guides to the grid, NO otherwise |
- (void) setShowsDragInfoWindow: | (BOOL) | showsIt |
Set whether the info window should be displayed when dragging a guide.
Default is YES, display the window
showsIt | YES to display the window, NO otherwise |
- (void) setSnapTolerance: | (CGFloat) | tol |
Sets the distance a point needs to be before it is snapped to a guide.
The default value is determind by the class method of the same name
tol | the distance in points |
- (BOOL) showsDragInfoWindow |
Return whether the info window should be displayed when dragging a guide.
Default is YES, display the window
- (NSSize) snapPointsToGuide: | (NSArray *) | arrayOfPoints |
Snaps any of a list of points to any nearest guides within the snap tolerance.
This is intended as one step in the snapping of a complex object to the guides, where points are arbitrarily distributed (e.g. not in a rect). Any of the points can snap to the guide - the first point in the list that actually snaps is used. The return value is intended to be used to offset a mouse point or similar so that the whole object is shifted by that amount to effect the snap. Note that h and v offsets are independent, and may not refer to the same actual input point.
arrayOfPoints | a list of NSValue object containing pointValues |
- (NSSize) snapPointsToGuide: | (NSArray *) | arrayOfPoints | |
verticalGuide: | (DKGuide **) | gv | |
horizontalGuide: | (DKGuide **) | gh | |
Snaps any of a list of points to any nearest guides within the snap tolerance.
This is intended as one step in the snapping of a complex object to the guides, where points are arbitrarily distributed (e.g. not in a rect). Any of the points can snap to the guide - the first point in the list that actually snaps is used. The return value is intended to be used to offset a mouse point or similar so that the whole object is shifted by that amount to effect the snap. Note that h and v offsets are independent, and may not refer to the same actual input point.
arrayOfPoints | a list of NSValue object containing pointValues |
gv | if not NULL, receives the actual vertical guide snapped to |
gh | if not NULL, receives the actual horizontal guide snapped to |
- (NSPoint) snapPointToGuide: | (NSPoint) | p |
Snap a given point to any nearest guides within the snap tolerance.
X and y coordinates of the point are of course, individually snapped, so only one coordinate might be modified, as well as none or both.
p | a point in local drawing coordinates |
Snaps any corner of the given rect to any nearest guides within the snap tolerance.
The rect size is never changed by this method, but its origin may be. Does not snap the centres.
r | a rect in local drawing coordinates |
- (NSRect) snapRectToGuide: | (NSRect) | r | |
includingCentres: | (BOOL) | centre | |
Snaps any corner or centre point of the given rect to any nearest guides within the snap tolerance.
The rect size is never changed by this method, but its origin may be.
r | a rect in local drawing coordinates |
centre | YES to also snap mid points of all sides, NO to just snap the corners |
- (CGFloat) snapTolerance |
Resturns the distance a point needs to be before it is snapped to a guide.
The default value is determind by the class method of the same name