xref: /haiku/src/add-ons/translators/rtf/RTFTranslator.h (revision 83a0273a654217bd1fdfba73105cf12b33767058)
19949213aSStephan Aßmus /*
29949213aSStephan Aßmus  * Copyright 2004-2005, Axel Dörfler, axeld@pinc-software.de. All rights reserved.
39949213aSStephan Aßmus  * Distributed under the terms of the MIT License.
49949213aSStephan Aßmus  */
59949213aSStephan Aßmus #ifndef RTF_TRANSLATOR_H
69949213aSStephan Aßmus #define RTF_TRANSLATOR_H
79949213aSStephan Aßmus 
89949213aSStephan Aßmus 
99949213aSStephan Aßmus #include <Translator.h>
109949213aSStephan Aßmus #include <TranslatorFormats.h>
119949213aSStephan Aßmus #include <TranslationDefs.h>
129949213aSStephan Aßmus #include <GraphicsDefs.h>
139949213aSStephan Aßmus #include <InterfaceDefs.h>
149949213aSStephan Aßmus #include <DataIO.h>
159949213aSStephan Aßmus #include <File.h>
169949213aSStephan Aßmus #include <ByteOrder.h>
179949213aSStephan Aßmus #include <fs_attr.h>
189949213aSStephan Aßmus 
199949213aSStephan Aßmus 
20*83a0273aSMarkus Himmel #define RTF_TRANSLATOR_VERSION B_TRANSLATION_MAKE_VERSION(0, 7, 0)
219949213aSStephan Aßmus #define RTF_TEXT_FORMAT		'RTF '
229949213aSStephan Aßmus #define RTF_IN_QUALITY		0.7
239949213aSStephan Aßmus #define RTF_IN_CAPABILITY	0.9
249949213aSStephan Aßmus 
259949213aSStephan Aßmus #define TEXT_OUT_QUALITY	0.3
269949213aSStephan Aßmus #define TEXT_OUT_CAPABILITY	0.6
279949213aSStephan Aßmus #define STXT_OUT_QUALITY	0.5
289949213aSStephan Aßmus #define STXT_OUT_CAPABILITY	0.5
299949213aSStephan Aßmus 
309949213aSStephan Aßmus 
319949213aSStephan Aßmus class RTFTranslator : public BTranslator {
329949213aSStephan Aßmus 	public:
339949213aSStephan Aßmus 		RTFTranslator();
349949213aSStephan Aßmus 
359949213aSStephan Aßmus 		virtual const char *TranslatorName() const;
369949213aSStephan Aßmus 		virtual const char *TranslatorInfo() const;
379949213aSStephan Aßmus 		virtual int32 TranslatorVersion() const;
389949213aSStephan Aßmus 
399949213aSStephan Aßmus 		virtual const translation_format *InputFormats(int32 *_outCount) const;
409949213aSStephan Aßmus 		virtual const translation_format *OutputFormats(int32 *_outCount) const;
419949213aSStephan Aßmus 
429949213aSStephan Aßmus 		virtual status_t Identify(BPositionIO *inSource,
439949213aSStephan Aßmus 			const translation_format *inFormat, BMessage *ioExtension,
449949213aSStephan Aßmus 			translator_info *outInfo, uint32 outType);
459949213aSStephan Aßmus 
469949213aSStephan Aßmus 		virtual status_t Translate(BPositionIO *inSource,
479949213aSStephan Aßmus 			const translator_info *inInfo, BMessage *ioExtension,
489949213aSStephan Aßmus 			uint32 outType, BPositionIO *outDestination);
499949213aSStephan Aßmus 
509949213aSStephan Aßmus 		virtual status_t MakeConfigurationView(BMessage *ioExtension,
519949213aSStephan Aßmus 			BView **outView, BRect *outExtent);
529949213aSStephan Aßmus 
539949213aSStephan Aßmus 	protected:
549949213aSStephan Aßmus 		virtual ~RTFTranslator();
559949213aSStephan Aßmus 			// this is protected because the object is deleted by the
569949213aSStephan Aßmus 			// Release() function instead of being deleted directly by
579949213aSStephan Aßmus 			// the user
589949213aSStephan Aßmus 
599949213aSStephan Aßmus 	private:
609949213aSStephan Aßmus 		char	*fInfo;
619949213aSStephan Aßmus };
629949213aSStephan Aßmus 
639949213aSStephan Aßmus #endif	/* RTF_TRANSLATOR_H */
64