xref: /haiku/src/add-ons/translators/ico/ICOTranslator.h (revision 73f41f49ecfa4f9bd7051bb5c6f764f65e6f5dcf)
1 /*
2  * Copyright 2005, Axel Dörfler, axeld@pinc-software.de. All rights reserved.
3  * Distributed under the terms of the MIT License.
4  */
5 #ifndef ICO_TRANSLATOR_H
6 #define ICO_TRANSLATOR_H
7 
8 
9 #include "BaseTranslator.h"
10 
11 #include <Translator.h>
12 #include <TranslatorFormats.h>
13 #include <TranslationDefs.h>
14 #include <GraphicsDefs.h>
15 #include <InterfaceDefs.h>
16 #include <DataIO.h>
17 #include <File.h>
18 #include <ByteOrder.h>
19 
20 
21 #define ICO_TRANSLATOR_VERSION B_TRANSLATION_MAKE_VERSION(0, 3, 0)
22 #define ICO_IMAGE_FORMAT	'ICO '
23 
24 #define ICO_IN_QUALITY		0.5
25 #define ICO_IN_CAPABILITY	0.5
26 #define BITS_IN_QUALITY		1
27 #define BITS_IN_CAPABILITY	1
28 
29 #define ICO_OUT_QUALITY		0.8
30 #define ICO_OUT_CAPABILITY	0.8
31 #define BITS_OUT_QUALITY	1
32 #define BITS_OUT_CAPABILITY	0.9
33 
34 
35 class ICOTranslator : public BaseTranslator {
36 	public:
37 		ICOTranslator();
38 
39 		virtual status_t DerivedIdentify(BPositionIO *inSource,
40 			const translation_format *inFormat, BMessage *ioExtension,
41 			translator_info *outInfo, uint32 outType);
42 
43 		virtual status_t DerivedTranslate(BPositionIO *inSource,
44 			const translator_info *inInfo, BMessage *ioExtension,
45 			uint32 outType, BPositionIO *outDestination, int32 baseType);
46 
47 		virtual status_t DerivedCanHandleImageSize(float width,
48 			float height) const;
49 
50 		virtual BView *NewConfigView(TranslatorSettings *settings);
51 
52 	protected:
53 		virtual ~ICOTranslator();
54 			// this is protected because the object is deleted by the
55 			// Release() function instead of being deleted directly by
56 			// the user
57 
58 	private:
59 };
60 
61 // Extensions that ShowImage supports
62 extern const char *kDocumentCount;
63 extern const char *kDocumentIndex;
64 
65 #endif	/* ICO_TRANSLATOR_H */
66