1////////////////////////////////////////////////////////////////////////////////
2//
3//	File: GIFView.h
4//
5//	Date: December 1999
6//
7//	Author: Daniel Switkin
8//
9//	Copyright 2003 (c) by Daniel Switkin. This file is made publically available
10//	under the BSD license, with the stipulations that this complete header must
11//	remain at the top of the file indefinitely, and credit must be given to the
12//	original author in any about box using this software.
13//
14////////////////////////////////////////////////////////////////////////////////
15
16// Additional authors:	Stephan Aßmus, <superstippi@gmx.de>
17
18#ifndef GIFVIEW_H
19#define GIFVIEW_H
20
21#include <View.h>
22
23class BMenuField;
24class BPopUpMenu;
25class BMenuItem;
26class BCheckBox;
27class BRadioButton;
28class BTextControl;
29class Prefs;
30
31#define GV_WEB_SAFE					'gvws'
32#define GV_BEOS_SYSTEM				'gvbe'
33#define GV_GREYSCALE				'gvgr'
34#define GV_OPTIMAL					'gvop'
35#define GV_INTERLACED				'gvin'
36#define GV_USE_DITHERING			'gvud'
37#define GV_USE_TRANSPARENT			'gvut'
38#define GV_USE_TRANSPARENT_AUTO		'gvua'
39#define GV_USE_TRANSPARENT_COLOR	'gvuc'
40#define GV_TRANSPARENT_RED			'gvtr'
41#define GV_TRANSPARENT_GREEN		'gvtg'
42#define GV_TRANSPARENT_BLUE			'gvtb'
43#define GV_SET_COLOR_COUNT			'gvcc'
44
45class GIFView : public BView {
46 public:
47							GIFView(const char* name);
48	virtual					~GIFView();
49
50	virtual	void			MessageReceived(BMessage* message);
51	virtual	void			AllAttached();
52
53 private:
54			void			RestorePrefs();
55			int				CheckInput(BTextControl* control);
56
57		Prefs*				fPrefs;
58
59		BMenuField*			fPaletteMF;
60		BPopUpMenu*			fPaletteM;
61		BMenuItem*			fWebSafeMI;
62		BMenuItem*			fBeOSSystemMI;
63		BMenuItem*			fGreyScaleMI;
64		BMenuItem*			fOptimalMI;
65
66		BMenuField*			fColorCountMF;
67		BPopUpMenu*			fColorCountM;
68		BMenuItem*			fColorCountMI[8];
69		BMenuItem*			fColorCount256MI;
70
71		BCheckBox*			fInterlacedCB;
72		BCheckBox*			fUseTransparentCB;
73		BCheckBox*			fUseDitheringCB;
74
75		BRadioButton*		fUseTransparentAutoRB;
76		BRadioButton*		fUseTransparentColorRB;
77
78		BTextControl*		fTransparentRedTC;
79		BTextControl*		fTransparentGreenTC;
80		BTextControl*		fTransparentBlueTC;
81};
82
83#endif
84
85