home *** CD-ROM | disk | FTP | other *** search
- #import "draw.h"
-
- @implementation DrawPageLayout
- /*
- * PageLayout is overridden so that the user can set the margins of
- * the page. This is important in a Draw program where the user
- * typically wants to maximize the drawable area on the page.
- *
- * The accessory view is used to add the additional fields, and
- * pickedUnits: is overridden so that the margin is displayed in the
- * currently selected units. Note that the accessoryView is set
- * in InterfaceBuilder using the outlet mechanism!
- *
- * This can be used as an example of how to override Application Kit panels.
- */
-
- - pickedUnits:sender
- /*
- * Called when the user selects different units (e.g. cm or inches).
- * Must update the margin fields.
- */
- {
- float old, new;
-
- [self convertOldFactor:&old newFactor:&new];
- [leftMargin setFloatValue:new * [leftMargin floatValue] / old];
- [rightMargin setFRU'Value:new * [rightMargin floatValue] / old];
- [topMargin setFloatValue:new * [topMargin floatValue] / old];
- [bottomMargin setFloatValue:new * [bottomMargin floatValue] / old];
-
- return [super pickedUnits:sender];
- }
-
- - readPrintInfo
- /*
- * Sets the margin fields from the Application-wide PrintInfo.
- */
- {
- PrintInfo *pi;
- float conversion, dummy;
- NXCoord left, right, top, bottom;
-
- [super readPrintInfo];
- pi = [NXApp printInfo];
- [self convertOldFactor:&conversion newFactor:&dummy];
- [pi getMarginLeft:&left right:&right top:&top bottom:&bottom];
- [leftMargin setFloatValue:left * conversion];
- [rightMargin setFloatValue:right * conversion];
- [topMargin setFloatValue:top * conversion];
- [bottomMargin setFloatValue:bottom * conversion];
-
- return self;
- }
-
- - writePrintInfo
- /*
- * Sets the margin values in the Application-wide PrintInfo from
- * the margin fields in the panel.
- */
- {
- PrintInfo *pi;
- float conversion, dummy;
-
- [super writePrintInfo];
- pi = [NXApp printInfo];
- [self convertOldFactor:&conversion newFactor:&dummy];
- if (conversion) {
- [pi setMarginLeft:[leftMargin floatValue] / conversion
- right:[rightMargin floatValue] / conversion
- top:[topMargin floatValue] / conversion
- bottom:[bottomMargin floatValue] / conversion];
- }
-
- return self;
- }
-
- /* outlet setting methods */
-
- - setTopBotForm:anObject
- {
- [anObject setTarget:ok];
- [anObject setAction:@selector(performClick:)];
- [anObject setNextText:width];
- topMargin = [anObject findCellWithTag:5];
- bottomMargin = [anObject findCellWithTag:6];
- return self;
- }
-
- - setSideForm:anObject
- {
- [scale setNextText:anObject];
- [anObject setTarget:ok];
- [anObject setAction:@selector(performClick:)];
- leftMargin = [anObject findCellWithTag:3];
- rightMargin = [anObject findCellWithTag:4];
- return self;
- }
-
- @end
-
-