|
|
1.1 ! root 1: #import "draw.h" ! 2: ! 3: @implementation DrawPageLayout ! 4: /* ! 5: * PageLayout is overridden so that the user can set the margins of ! 6: * the page. This is important in a Draw program where the user ! 7: * typically wants to maximize the drawable area on the page. ! 8: * ! 9: * The accessory view is used to add the additional fields, and ! 10: * pickedUnits: is overridden so that the margin is displayed in the ! 11: * currently selected units. Note that the accessoryView is set ! 12: * in InterfaceBuilder using the outlet mechanism! ! 13: * ! 14: * This can be used as an example of how to override Application Kit panels. ! 15: */ ! 16: ! 17: - pickedUnits:sender ! 18: /* ! 19: * Called when the user selects different units (e.g. cm or inches). ! 20: * Must update the margin fields. ! 21: */ ! 22: { ! 23: float old, new; ! 24: ! 25: [self convertOldFactor:&old newFactor:&new]; ! 26: [leftMargin setFloatValue:new * [leftMargin floatValue] / old]; ! 27: [rightMargin setFloatValue:new * [rightMargin floatValue] / old]; ! 28: [topMargin setFloatValue:new * [topMargin floatValue] / old]; ! 29: [bottomMargin setFloatValue:new * [bottomMargin floatValue] / old]; ! 30: ! 31: return [super pickedUnits:sender]; ! 32: } ! 33: ! 34: - readPrintInfo ! 35: /* ! 36: * Sets the margin fields from the Application-wide PrintInfo. ! 37: */ ! 38: { ! 39: PrintInfo *pi; ! 40: float conversion, dummy; ! 41: NXCoord left, right, top, bottom; ! 42: ! 43: [super readPrintInfo]; ! 44: pi = [NXApp printInfo]; ! 45: [self convertOldFactor:&conversion newFactor:&dummy]; ! 46: [pi getMarginLeft:&left right:&right top:&top bottom:&bottom]; ! 47: [leftMargin setFloatValue:left * conversion]; ! 48: [rightMargin setFloatValue:right * conversion]; ! 49: [topMargin setFloatValue:top * conversion]; ! 50: [bottomMargin setFloatValue:bottom * conversion]; ! 51: ! 52: return self; ! 53: } ! 54: ! 55: - writePrintInfo ! 56: /* ! 57: * Sets the margin values in the Application-wide PrintInfo from ! 58: * the margin fields in the panel. ! 59: */ ! 60: { ! 61: PrintInfo *pi; ! 62: float conversion, dummy; ! 63: ! 64: [super writePrintInfo]; ! 65: pi = [NXApp printInfo]; ! 66: [self convertOldFactor:&conversion newFactor:&dummy]; ! 67: if (conversion) { ! 68: [pi setMarginLeft:[leftMargin floatValue] / conversion ! 69: right:[rightMargin floatValue] / conversion ! 70: top:[topMargin floatValue] / conversion ! 71: bottom:[bottomMargin floatValue] / conversion]; ! 72: } ! 73: ! 74: return self; ! 75: } ! 76: ! 77: /* outlet setting methods */ ! 78: ! 79: - setTopBotForm:anObject ! 80: { ! 81: [anObject setTarget:ok]; ! 82: [anObject setAction:@selector(performClick:)]; ! 83: [anObject setNextText:width]; ! 84: topMargin = [anObject findCellWithTag:5]; ! 85: bottomMargin = [anObject findCellWithTag:6]; ! 86: return self; ! 87: } ! 88: ! 89: - setSideForm:anObject ! 90: { ! 91: [scale setNextText:anObject]; ! 92: [anObject setTarget:ok]; ! 93: [anObject setAction:@selector(performClick:)]; ! 94: leftMargin = [anObject findCellWithTag:3]; ! 95: rightMargin = [anObject findCellWithTag:4]; ! 96: return self; ! 97: } ! 98: ! 99: @end ! 100:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.