This is RTFFormatter.m in view mode; [Download] [Up]
/*
docgen Objective C Document Generator
Copyright (C) 1995 Bill Bereza.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Email:
berezaw@river.it.gvsu.edu
S-mail:
Bill Bereza
9526 Judson Rd.
Ravenna, MI 49451-9427
*/
/* docgen Objective C Document Generator
* Copyright (c) 1994 Bill Bereza
*
* $Log: RTFFormatter.m,v $
* Revision 1.5 95/07/26 21:46:47 berezaw
* changed definition of formatExtension
*
* Revision 1.4 95/07/21 21:40:34 berezaw
* *** empty log message ***
*
* Revision 1.3 95/07/21 15:23:11 berezaw
* *** empty log message ***
*
* Revision 1.2 95/07/21 12:19:54 berezaw
* *** empty log message ***
*
* Revision 1.1 95/07/21 01:59:21 berezaw
* Initial revision
*
*
* $Id: RTFFormatter.m,v 1.5 95/07/26 21:46:47 berezaw Exp $
*/
#include "RTFFormatter.h"
@implementation RTFFormatter
/*
This does some simple reverse-engineered RTF formatting.
*/
+(char *)fileExtension
{
return "rtf";
}
// Generic formatting commands
-(int)changeFontSize:(int)to
{
return [self writeFormat:"\n\\fs%d ", to];
}
-(int)putLine:(const char *)line
{
return [self writeFormat:"%s\\\n", line];
}
-(int)putEof { return [self writeFormat: "}\n"]; }
-(int)makeBold { return [self writeFormat:"\n\\b "]; }
-(int)unBold { return [self writeFormat:"\n\\b0 "]; }
-(int)makeItalic { return [self writeFormat:"\n\\i "]; }
-(int)unItalic { return [self writeFormat:"\n\\i0 "]; }
-(int)changeFont:(int)to { return [self writeFormat:"\\f%d ", to]; }
-(int)makeUnderline { return [self writeFormat:"\n\\ul "]; }
-(int)unUnderline { return [self writeFormat:"\n\\ulnone "]; }
// <DocgenFormatting>
-(int)putConformHeader:(const char *)line
{
[self writeFormat:"\\fs16 \\\n"];
[self writeFormat:"\\f2\\b\\fs28 Conforms To:\n"];
return [self writeFormat:"\\f0\\b0 \t%s \\\n", line];
}
-(int)putMethodL1 { return [self writeFormat:"\\f2\\fs28\\b\\fi-380\\li2480 "]; }
-(int)putMethodL2 { return [self writeFormat:"\\f1\\b0\\fi-760\\li3240 "]; }
-(int)putHead
{
[self writeFormat: "{\\rtf0\\ansi{\\fonttbl\\f0\\fnil Times-Roman;\\f2\\fswiss Helvetica;\\f1\\ftech Symbol;\\f3\\fmodern Ohlfs;}\n"];
[self writeFormat: "\\paperw16220\n"];
[self writeFormat: "\\paperh15040\n"];
[self writeFormat: "\\margl120\n"];
return [self writeFormat: "\\margr0\n"];
}
-(int)putCPHead { return [self writeFormat:"\\f0\\b0\\i0\\ulnone\\ql\\fs24\\fi0\\li0\\gray0\\fc0\\cf0\\up0\\dn0"]; }
-(int)putMethodDescription { return [self writeFormat:"\\\n\\f2\\b\\fs28 "]; }
-(int)putFont:(int)fn Char:(int)theChar
{
return [self writeFormat:"\\f%d %c\n",fn, (char)theChar];
}
-(int)putStart
{
[self writeFormat: "\\pard\\tx2480\\tx2860\\tx3240\\fs16\\li2100\\fc0\\cf0 \\\n\\\n\\\n"];
return [self writeFormat: "\\pard\\f2\\b\\fs56\\li2100\\fc0\\cf0 "];
}
-(int)putInheritHeader
{
[self writeFormat:"\\pard\\tx4880\\f0\\b0\\fs16\\fi-2780\\li4880\\fc0\\cf0 \\\n"];
[self writeFormat:"\\\n\\\n\\\n"];
return [self writeFormat:"\\f2\\b\\fs28 Inherits From:\t\n\\f0\\b0 "];
}
-(int)putInheritTail:(const char *)dec
{
[self writeFormat:"\\fs16 \\\n"];
[self writeFormat:"\\f2\\b\\fs28 Declared In:\n"];
[self writeFormat:"\\f0\\b0 \t%s \\\n", dec];
[self writeFormat:"\\f0\\fs16 \\\n"];
[self writeFormat:"\\pard\\f2\\b\\li1360\\fc0\\cf0 \\\n"];
[self writeFormat:"\\\n\\\n\\\n"];
[self writeFormat:"\\fs36 Class Description\\\n"];
[self writeFormat:"\\fs16 \\\n"];
return [self writeFormat:"\\pard\\tx2480\\tx2860\\tx3240\\f0\\b0\\fs28\\li2100\\fc0\\cf0 "];
}
-(int)putCategoryHeader
{
[self writeFormat:"\\pard\\tx4880\\f0\\b0\\fs16\\fi-2780\\li4880\\fc0\\cf0 \\\n"];
[self writeFormat:"\\\n\\\n\\\n"];
return [self writeFormat:"\\f2\\b\\fs28 Category Of:\t\n\\f0\\b0 "];
}
-(int)putCategoryTail:(const char *)dec
{
[self writeFormat:"\\fs16 \\\n"];
[self writeFormat:"\\f2\\b\\fs28 Declared In:\n"];
[self writeFormat:"\\f0\\b0 \t%s \\\n", dec];
[self writeFormat:"\\f0\\fs16 \\\n"];
[self writeFormat:"\\fs16 \\\n"];
[self writeFormat:"\\pard\\f2\\b\\li1360\\fc0\\cf0 \\\n"];
[self writeFormat:"\\\n\\\n"];
[self writeFormat:"\\fs36 Category Description\\\n"];
[self writeFormat:"\\fs16 \\\n"];
return [self writeFormat:"\\pard\\tx2480\\tx2860\\tx3240\\f0\\b0\\fs28\\li2100\\fc0\\cf0 "];
}
-(int)putIHeader
{
[self writeFormat:" \\\n\\pard\\f2\\b\\li1360\\fc0\\cf0 \\\n"];
[self writeFormat:" \\\n \\\n \\\n"];
[self writeFormat:"\\fs36 Instance Variables\\\n \\\n"];
return [self writeFormat:"\\pard\\tx2860\\f0\\b0\\fs28\\li2100\\fc0\\cf0 "];
}
-(int)putMethodHeader:(const char *)kindof
{
[self writeFormat:"\\pard\\f2\\b\\fs16\\li1360\\fc0\\cf0 \\\n"];
[self writeFormat:"\\\n\\\n\\\n"];
return [self writeFormat:"\\fs36 %s Methods\\\n", kindof];
}
-(int)putMethodType
{
[self writeFormat:"\\fs16 \\\n"];
[self writeFormat:"\\pard\\f2\\b\\li1360\\fc0\\cf0 \\\n"];
[self writeFormat:"\\\n\\\n\\\n\\\n"];
[self writeFormat:"\\fs36 Method Types\\\n"];
[self writeFormat:"\\fs16 \\\n"];
return [self writeFormat: "\\pard\\tx6140\\tx9660\\tx10180\\f0\\b0\\fs28\\fi-4040\\li6140\\fc0\\cf0 \n"];
}
-(int)putIVarDescription
{
[self writeFormat:"\\pard\\tx6140\\tx9660\\tx10180\\fs16\\fi-4040\\li6140\\fc0\\cf0 \\\n"];
return [self writeFormat:"\\\n\\\n"];
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.