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

This class is a layer that draws a grid like a piece of graph paper. More...

Inheritance diagram for DKGridLayer:
Inheritance graph
[legend]

Instance Methods

(void) - adjustSpanCycleForViewScale:
 When the scale crosses the span threshold, the cache is invalidated and the span cycle adjusted. More...
 
(void) - createGridCacheInRect:
 
(NSColor *) - divisionColour
 
(CGFloat- divisionDistance
 Returns the actual distance, in points, between each division. More...
 
(NSUInteger- divisions
 
(BOOL- divisionsHidden
 
(void) - drawBorderOutline:
 
(CGFloat- gridDistanceForQuartzDistance:
 Given a distance value in drawing coordinates, returns the grid's "real world" equivalent. More...
 
(NSPoint) - gridLocationForPoint:
 Given a point in drawing coordinates, returns the "real world" coordinate of the same point. More...
 
(void) - invalidateCache
 
(BOOL- isMasterGrid
 
(NSColor *) - majorColour
 
(NSUInteger- majors
 
(BOOL- majorsHidden
 
(NSSize) - nearestGridIntegralToSize:
 Given a width and height in drawing coordinates, returns the same adjusted to the nearest whole number of divisions. More...
 
(NSPoint) - nearestGridIntersectionToPoint:
 Given a point in drawing coordinates, returns nearest grid intersection to that point. More...
 
(NSSize) - nearestGridSpanIntegralToSize:
 Given a width and height in drawing coordinates, returns the same adjusted to the nearest whole number of spans. More...
 
(NSPoint) - pointForGridLocation:
 Given a point in "real world" coordinates, returns the drawing coordinates of the same point. More...
 
(CGFloat- quartzDistanceForGridDistance:
 Given a distance value in the grid's "real world" coordinates, returns the quartz equivalent. More...
 
(NSUInteger- rulerSteps
 
(void) - setDistanceForUnitSpan:drawingUnits:span:divisions:majors:rulerSteps:
 High-level method to set up the grid in its entirety with one method. More...
 
(void) - setDivisionColour:
 Sets the colour used to draw the divisions. More...
 
(void) - setDivisionsHidden:
 
(void) - setGridThemeColour:
 Sets the colours used to draw the grid as a whole. More...
 
(void) - setImperialDefaults
 
(void) - setMajorColour:
 Sets the colour used to draw the majors. More...
 
(void) - setMajorsHidden:
 
(IBAction) - setMeasurementSystemAction:
 Set the grid to one ofthe default grids. More...
 
(void) - setMetricDefaults
 
(void) - setRulerSteps:
 
(void) - setSpanColour:
 Sets the colour used to draw the spans. More...
 
(void) - setSpansHidden:
 
(void) - setZeroPoint:
 
(NSColor *) - spanColour
 
(CGFloat- spanDistance
 
(CGFloat- spanMultiplier
 
(BOOL- spansHidden
 
(void) - synchronizeRulers
 
(NSColor *) - themeColour
 
(void) - tweakDrawingMargins
 Adjust the drawing margins to encompass an integral number of grid spans. More...
 
(NSPoint) - zeroPoint
 
- 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

(NSColor *) + defaultDivisionColour
 
(NSColor *) + defaultMajorColour
 
(NSColor *) + defaultSpanColour
 
(void) + setDefaultDivisionColour:
 
(void) + setDefaultGridThemeColour:
 
(void) + setDefaultMajorColour:
 
(void) + setDefaultSpanColour:
 
(DKGridLayer *) + standardImperialGridLayer
 
(DKGridLayer *) + standardImperialPCBGridLayer
 
(DKGridLayer *) + standardMetricGridLayer
 
- 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:
 

Protected Attributes

NSUInteger m_divisionsPerSpan
 
NSUInteger m_spansPerMajor
 
CGFloat mSpanMultiplier
 

Detailed Description

This class is a layer that draws a grid like a piece of graph paper.

This class is a layer that draws a grid like a piece of graph paper. In addition it can modify a point to lie at the intersection of any of its "squares" (for snap to grid, etc).

The master interval is called the graph's span. It will be set to the actual number of coordinate units representing the main unit of the grid. For example, a 1cm grid has a span of ~28.35.

The span is divided into an integral number of smaller divisions, for example 10 divisions of 1cm gives 1mm small squares.

A integral number of spans is called the major interval. This is drawn in a darker colour and bolder width. For example you could highlight every 10cm by setting the spans per major to 10. The same style is also used to draw a border around the whole thing allowing for the set margins.

Class methods exist to return a number of "standard" grids.

The spans, minor and major intervals are all drawn in different colours, but more typically you'll set a single "theme" colour which derives the three colours such that they form a coherent set.

Grid Layers work with methods in DKDrawing to manage the rulers in an NSRulerView. Generally the rulers are set to align with the span interval of the grid and allow for the drawing's margins. Because a ruler's settings require a name, you need to set this up along with the grid's parameters. To help make this easy for a client application (that will probably want to present a user interface for setting this all up), the "one stop shop" method -setSpan:unitToPointsConversionFactor:measurementSystem:drawingUnits:divisions:majors:rulerSteps: will set up the grid AND the rulers provided the layer has already been added to a drawing. Due to limitations in NSRuler regarding its step up and step down ratios, this method also imposes similar limits on the span divisions.

General-purpose "snap to grid" type methods are implemented by DKDrawing using the grid as a basis - the grid itself doesn't implement snapping.

Note: caching in a CGLayer is not recommended - the code is here but it doesn't draw nicely at high zooms. Turned off by default.

Method Documentation

- (void) adjustSpanCycleForViewScale: (CGFloat scale

When the scale crosses the span threshold, the cache is invalidated and the span cycle adjusted.

This permits dynamic display of the span grid based on the zoom factor. Currently only one threshold is used

Parameters
scalethe view's current scale
- (void) createGridCacheInRect: (NSRect r
+ (NSColor*) defaultDivisionColour
+ (NSColor*) defaultMajorColour
+ (NSColor*) defaultSpanColour
- (NSColor*) divisionColour
- (CGFloat) divisionDistance

Returns the actual distance, in points, between each division.

Returns
the distance in quartz points for one division.
- (NSUInteger) divisions
- (BOOL) divisionsHidden
- (void) drawBorderOutline: (DKDrawingView *)  aView
- (CGFloat) gridDistanceForQuartzDistance: (CGFloat qd

Given a distance value in drawing coordinates, returns the grid's "real world" equivalent.

See also quartzDistanceForGridDistance: which is the inverse operation. Note that the h and v scales of a grid are assumed to be the same (in this implementtaion they always are).

Parameters
qda distance given in drawing units (points)
Returns
the distance in grid units
- (NSPoint) gridLocationForPoint: (NSPoint)  pt

Given a point in drawing coordinates, returns the "real world" coordinate of the same point.

See also pointForGridLocation: which is the inverse operation

Parameters
pta point local to the drawing
Returns
a point giving the same position in terms of the grid's drawing units, etc.
- (void) invalidateCache
- (BOOL) isMasterGrid
- (NSColor*) majorColour
- (NSUInteger) majors
- (BOOL) majorsHidden
- (NSSize) nearestGridIntegralToSize: (NSSize)  size

Given a width and height in drawing coordinates, returns the same adjusted to the nearest whole number of divisions.

The returned size cannot be larger than the drawing's interior in either dimension.

Parameters
sizea size value
Returns
a size, the nearest whole number of divisions to the original size
- (NSPoint) nearestGridIntersectionToPoint: (NSPoint)  p

Given a point in drawing coordinates, returns nearest grid intersection to that point.

The intersection of the nearest division is returned, which is smaller than the span. This is a fundamental operation when snapping a point to the grid.

Parameters
pa point in the drawing
Returns
a point, the nearest grid intersection to the point
- (NSSize) nearestGridSpanIntegralToSize: (NSSize)  size

Given a width and height in drawing coordinates, returns the same adjusted to the nearest whole number of spans.

The returned size cannot be larger than the drawing's interior in either dimension. As spans are a coarser measure than divisions, the adjusted size might differ substantially from the input.

Parameters
sizea size value
Returns
a size, the nearest whole number of spans to the original size
- (NSPoint) pointForGridLocation: (NSPoint)  gpt

Given a point in "real world" coordinates, returns the drawing coordinates of the same point.

See also gridLocationForPoint: which is the inverse operation

Parameters
pta point in terms of the grid's drawing units
Returns
a point giving the same position in the drawing.
- (CGFloat) quartzDistanceForGridDistance: (CGFloat gd

Given a distance value in the grid's "real world" coordinates, returns the quartz equivalent.

See also gridDistanceForQuartzDistance: which is the inverse operation

Parameters
gda distance given in grid units
Returns
the distance in quartz units
- (NSUInteger) rulerSteps
+ (void) setDefaultDivisionColour: (NSColor *)  colour
+ (void) setDefaultGridThemeColour: (NSColor *)  colour
+ (void) setDefaultMajorColour: (NSColor *)  colour
+ (void) setDefaultSpanColour: (NSColor *)  colour
- (void) setDistanceForUnitSpan: (CGFloat conversionFactor
drawingUnits: (NSString *)  units
span: (CGFloat span
divisions: (NSUInteger divs
majors: (NSUInteger majors
rulerSteps: (NSUInteger steps 

High-level method to set up the grid in its entirety with one method.

This also sets the drawing's setDrawingUnits:unitToPointsConversionFactor: method, so should be attached views so that there is a general agreement between all these parts. If the layer is locked this does nothing.

Parameters
conversionFactorthe distance in points represented by a single span unit
unitsa string giving the user-readable full name of the drawing units
spanthe span distance in grid coordinates (typically 1.0)
divs>the number of divisions per span, must be 1
majorsthe number of spans per major
steps>the ruler step-up cycle (see NSRulerView), must be 1
- (void) setDivisionColour: (NSColor *)  colour

Sets the colour used to draw the divisions.

Typically a grid is set using a theme colour rather than setting individual colours for each part of the grid, but it's up to you. see setGridThemeColour:

Parameters
coloura colour
- (void) setDivisionsHidden: (BOOL hide
- (void) setGridThemeColour: (NSColor *)  colour

Sets the colours used to draw the grid as a whole.

Typically a grid is set using a theme colour rather than setting individual colours for each part of the grid, but it's up to you. This sets the three separate colours based on lighter and darker variants of the passed colour. Note that it's usual to have some transparency (alpha) set for the theme colour.

Parameters
coloura colour
- (void) setImperialDefaults
- (void) setMajorColour: (NSColor *)  colour

Sets the colour used to draw the majors.

Typically a grid is set using a theme colour rather than setting individual colours for each part of the grid, but it's up to you. see setGridThemeColour:

Parameters
coloura colour
- (void) setMajorsHidden: (BOOL hide
- (IBAction) setMeasurementSystemAction: (id sender

Set the grid to one ofthe default grids.

[sender tag] is interpreted as a measurement system value; restores either the metric or imperial defaults. Not super-useful, but handy for quickly exploring alternative grids.

Parameters
senderthe sender of the action
- (void) setMetricDefaults
- (void) setRulerSteps: (NSUInteger steps
- (void) setSpanColour: (NSColor *)  colour

Sets the colour used to draw the spans.

Typically a grid is set using a theme colour rather than setting individual colours for each part of the grid, but it's up to you. see setGridThemeColour:

Parameters
coloura colour
- (void) setSpansHidden: (BOOL hide
- (void) setZeroPoint: (NSPoint)  zero
- (NSColor*) spanColour
- (CGFloat) spanDistance
- (CGFloat) spanMultiplier
- (BOOL) spansHidden
+ (DKGridLayer*) standardImperialGridLayer
+ (DKGridLayer*) standardImperialPCBGridLayer
+ (DKGridLayer*) standardMetricGridLayer
- (void) synchronizeRulers
- (NSColor*) themeColour
- (void) tweakDrawingMargins

Adjust the drawing margins to encompass an integral number of grid spans.

This method alters the existing drawing margins such that a whole number of spans is spanned by the interior area of the drawing. The margins are only ever moved inwards (enlarged) by this method to ensure that the interior of a drawing always remains within the printable area of a printer (assuming margins were set by the printing parameters originally - not always the case). Note - from B5, this method changed to adjust all margins, not just centre the interior. The result is much nicer behaviour - you can set a very wide margin on one side for example and expect it to stay more or less where it is.

- (NSPoint) zeroPoint

Member Data Documentation

- (NSUInteger) m_divisionsPerSpan
protected
- (NSUInteger) m_spansPerMajor
protected
- (CGFloat) mSpanMultiplier
protected