adjustPageWidthNew(_:left:right:limit:)
Overridden by subclasses to adjust page width during automatic pagination.
Declaration
func adjustPageWidthNew(_ newRight: UnsafeMutablePointer<CGFloat>, left oldLeft: CGFloat, right oldRight: CGFloat, limit rightLimit: CGFloat)Parameters
- newRight:
Returns by indirection a new Cgfloat Swift.struct value for the right edge of the pending page rectangle in the view’s coordinate system.
- oldLeft:
A Cgfloat Swift.struct value that sets the left edge of the pending page rectangle in the view’s coordinate system.
- oldRight:
A Cgfloat Swift.struct value that sets the right edge of the pending page rectangle in the view’s coordinate system.
- rightLimit:
The leftmost Cgfloat Swift.struct value
newRightcan be set to, as calculated using the value of the Widthadjustlimit property.
Discussion
This method is invoked by printView(_:). The view can pull in the right edge and return the new value in newRight, allowing it to prevent items such as small images or text columns from being divided across pages. If rightLimit is exceeded, the pagination mechanism simply uses rightLimit for the right edge.
The default implementation of this method propagates the message to its subviews, allowing nested views to adjust page width for their drawing as well. An NSButton object or other small view, for example, will nudge the right edge out if necessary to prevent itself from being cut in two (thereby pushing it onto an adjacent page). Subclasses should invoke super’s implementation, if desired, after first making their own adjustments.