#ifndef	PREFSWINDOW_HPP
#define	PREFSWINDOW_HPP

// $VER: PrefsWindow.hpp 39.5 (09.11.97)
//
//
// (C) Copyright 1996,97 Markus Hillenbrand
//     All Rights Reserved, No Warranty

#include "GUIC_Window.hpp"

class GUIC_ApplicationC;
class GUIC_OldButtonC;
class GUIC_CheckboxC;
class GUIC_CycleC;
class GUIC_ColorMixerC;
class GUIC_EventC;
class GUIC_FileStringC;
class GUIC_FontC;
class GUIC_FontRequesterC;
class GUIC_FrameC;
class GUIC_OldLabelC;
class GUIC_PathStringC;
class GUIC_RadioC;
class GUIC_RegisterC;
class GUIC_ScreenC;
class GUIC_ScreenRequesterC; 
class GUIC_SlidingIntegerC;
class GUIC_StringC;
class GUIC_TextC;

class PrefsWindowC 	: public GUIC_WindowC
	{
	public:
		PrefsWindowC							(GUIC_ApplicationC &app, GUIC_ScreenC &screen, GUIC_ScreenRequesterC &sReq, GUIC_FontRequesterC &fReq);
		~PrefsWindowC 							(VOID);
				
		STRPTR			getClass				(VOID);		
		BOOL 			action					(GUIC_EventC &event);
		VOID				setPrefs				(VOID);
		VOID				windowClosed	(GUIC_WindowC *win);

	protected:
		VOID				cleanUp 						(VOID);
		
	private:
		VOID				setFont					(VOID);
		VOID				setScreen				(VOID);
	
		static BOOL	hexToLong				(CHAR c, LONG &l);
		static BOOL 	convertHEXToRGB	(STRPTR hex, LONG &r, LONG &g, LONG &b);
		static BOOL 	convertRGBToHEX	(LONG r, LONG g, LONG b, STRPTR *hex);
		
		GUIC_ApplicationC 			*app;
		GUIC_ScreenC 				*screen;
		GUIC_ScreenRequesterC	*screenRequester;
		GUIC_FontRequesterC		*fontRequester;
		GUIC_FixedFontC			*fixedFont;
		GUIC_ColorMixerC			*colorMixer;
		
		GUIC_RegisterC				*reg;

		// Teil 1: GUI
		GUIC_FrameC					*fr_screen, *fr_font;
		GUIC_CheckboxC			*cb_public, *cb_own, *cb_font;
		GUIC_OldLabelC				*la_public, *la_own, *la_font;
		GUIC_StringC					*st_public;
		GUIC_TextC						*tx_own, *tx_font;
		GUIC_OldButtonC			*bt_own, *bt_font;
		
		// Teil 2: Misc
		GUIC_FrameC					*fr_paths, *fr_shell, *fr_priority;
		GUIC_OldLabelC				*la_thumbnailPath, *la_temporaryPath, *la_shellCommand, *la_priority;
		GUIC_PathStringC			*ps_thumbnailPath, *ps_temporaryPath;
		GUIC_SlidingIntegerC		*si_priority;
		GUIC_StringC					*st_shellCommand;
		GUIC_CheckboxC			*cb_priority;
		
		// Teil 3: Thumbnails
		GUIC_FrameC					*fr_thumbnails;
		GUIC_OldLabelC				*la_thumbnailWidth, *la_thumbnailHeight, *la_thumbnailHide, *la_quality, *la_thumbnailDelete;
		GUIC_SlidingIntegerC		*si_thumbnailWidth, *si_thumbnailHeight, *si_quality;
		GUIC_CheckboxC			*cb_thumbnailHide, *cb_thumbnailDelete;
		
		// Teil 4: HTML
		GUIC_FrameC					*fr_html;
		GUIC_OldLabelC				*la_pattern1, *la_pattern2, *la_sound1, *la_sound2, *la_filename, *la_frameWidth, *la_frames, *la_up, *la_right, *la_left;
		GUIC_FileStringC				*fs_pattern1, *fs_pattern2, *fs_sound1, *fs_sound2, *fs_up, *fs_right, *fs_left;
		GUIC_StringC					*st_filename;
		GUIC_CycleC					*cy_suffix;
		GUIC_SlidingIntegerC		*si_frameWidth;
		GUIC_CheckboxC			*cb_frames;
		
		// Teil 5: Tables
		GUIC_FrameC					*fr_table;
		GUIC_OldLabelC				*la_tableLines, *la_tableColumns, *la_showSize, *la_showDate, *la_showDimensions, *la_tableBorderSize, *la_tableColor1, *la_tableColor2;
		GUIC_SlidingIntegerC		*si_tableLines, *si_tableColumns, *si_tableBorderSize;
		GUIC_CheckboxC			*cb_showSize, *cb_showDate, *cb_showDimensions;
		GUIC_StringC					*st_tableColor1, *st_tableColor2;
		GUIC_OldButtonC			*bt_tableColor1, *bt_tableColor2;
		
		// andere Variablen
		LONG 							color;
		
		friend class MainWindowC;
		friend class ManagerWindowC;
		friend class CompareWindowC;
		friend class HTMLWindowC;
	};

#endif

