DrawKit
Vector and illustration framework for Mac OS X
Instance Methods | Class Methods | List of all members
DKGuideLayer Class Reference

A guide layer implements any number of horizontal and vertical guidelines and provides methods for snapping points and rectangles to them. More...

Inheritance diagram for DKGuideLayer:
Inheritance graph
[legend]

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 *) - pdf
 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:
 

Detailed Description

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.

Method Documentation

- (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.

Parameters
guidean 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.

Parameters
senderthe 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.

Parameters
pa point local to the drawing
Returns
the guide created, or nil
- (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.

Parameters
pa point local to the drawing
Returns
the guide created, or nil
+ (CGFloat) defaultSnapTolerance

Returns the distance a point needs to be before it is snapped to a guide.

Returns
the distance in points
- (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.

Returns
a colourReturns the guide's colour
a colour
- (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
- (NSRect) guideRect: (DKGuide *)  guide

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.

Parameters
guidethe guide whose rect we are interested in
Returns
a rect, in drawing coordinates
- (NSArray*) guides

Get all current guides.

Returns
an array of guide objects
- (BOOL) guidesDrawnInEnclosingScrollview
- (BOOL) guidesSnapToGrid

Whether guids should snap to the grid by default or not.

The default is NO

Returns
YES to always snap guides to the grid, NO otherwise
- (NSArray*) horizontalGuides

Returns the list of horizontal guides.

The guides returns are not in any particular order

Returns
an array of DKGuide objects
- (DKGuide*) nearestHorizontalGuideToPosition: (CGFloat pos

Locates the nearest guide to the given position, if position is within the snap tolerance.

Parameters
posa horizontal coordinate value, in points
Returns
the nearest guide to the given point that lies within the snap tolerance, or nil
- (DKGuide*) nearestVerticalGuideToPosition: (CGFloat pos

Locates the nearest guide to the given position, if position is within the snap tolerance.

Parameters
posa verical coordinate value, in points
Returns
the nearest guide to the given point that lies within the snap tolerance, or nil
- (void) refreshGuide: (DKGuide *)  guide

Marks a partiuclar guide as needing to be readrawn.

Parameters
guidethe guide to update
- (void) removeAllGuides

Removes all guides permanently from the layer.

- (void) removeGuide: (DKGuide *)  guide

Removes a guide from the layer.

Parameters
guidean existing guide object
+ (void) setDefaultSnapTolerance: (CGFloat tol

Sets the distance a point needs to be before it is snapped to a guide.

Parameters
tolthe 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.

Parameters
colourthe colour to setSets the guide's colour

Note that this doesn't mark the guide for update - DKGuideLayer has a method for doing that.

Parameters
coloura 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

Parameters
rectthe rect
- (void) setGuides: (NSArray *)  guides

Adds a set of guides to th elayer.

Parameters
guidesan 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

Parameters
gridsnapYES 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

Parameters
showsItYES 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

Parameters
tolthe distance in points
- (BOOL) showsDragInfoWindow

Return whether the info window should be displayed when dragging a guide.

Default is YES, display the window

Returns
YES to display the window, NO otherwise
- (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.

Parameters
arrayOfPointsa list of NSValue object containing pointValues
Returns
a size, being the offset between whichever point was snapped and its snapped position
- (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.

Parameters
arrayOfPointsa list of NSValue object containing pointValues
gvif not NULL, receives the actual vertical guide snapped to
ghif not NULL, receives the actual horizontal guide snapped to
Returns
a size, being the offset between whichever point was snapped and its snapped position
- (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.

Parameters
pa point in local drawing coordinates
Returns
a point, either the same point passed in, or a modified one that has been snapped to the guides
- (NSRect) snapRectToGuide: (NSRect r

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.

Parameters
ra rect in local drawing coordinates
Returns
a rect, either the same rect passed in, or a modified one that has been snapped to the guides
- (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.

Parameters
ra rect in local drawing coordinates
centreYES to also snap mid points of all sides, NO to just snap the corners
Returns
a rect, either the same rect passed in, or a modified one that has been snapped to the guides
- (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

Returns
the distance in points
- (NSArray*) verticalGuides

Returns the list of vertical guides.

The guides returns are not in any particular order

Returns
an array of DKGuide objects