/****************************************************************************
** Form interface generated from reading ui file 'uidialogsetup.ui'
**
**   Created : Fri Sep 09 09:12:57 2004
**        by : Varol Okan
** Copyright : (c) Varol Okan
**   License : GPL v 2.0
**
** WARNING! All changes made in this file will be lost!
****************************************************************************/

#ifndef DIALOGSETUP_H
#define DIALOGSETUP_H

#include "slidedefaults.h"
#include "uidialogsetup.h"
#include "utils.h"
#include "rgba.h"

#ifndef THUMBNAIL_COUNT
#define THUMBNAIL_COUNT 5 * 10
#endif

class QScrollView;
class QFrame;
class QFont;

class DragNDropContainer;

class DialogSetup : public uiDialogSetup
{
    Q_OBJECT

public:	// Functions
	 DialogSetup (QWidget *, const char *n=0, WFlags f=0);
	~DialogSetup();
	
	QValueList<Utils::toolsPaths *> getToolsPathsList ();
	void setToolsPaths(QValueList<Utils::toolsPaths *> &);
	bool modifiedToolsPaths();
	void setDragNDrop    (DragNDropContainer *);
	void setHistory      (int, QStringList, QValueList<QPixmap *>);
	void setAutosave     (int);
	void setStyle        (QString);
	bool resetHistory    ();
	int  maxHistoryFiles ();
	int  getAutosave     ();

public slots:
	virtual void slotBrowseProjectPath();
	virtual void slotPreferredEngineChanged(const QString &);
	virtual void slotModifiedToolsPath( const QString & );
	virtual void slotTabChanged       ( QWidget * );
	virtual void slotAutosaveChanged  ( int );
	virtual void slotMaxHistoryChanged( int );
	virtual void slotResetHistory     ( );
	virtual void slotScanSystem       ( );
	virtual void slotButtonInfo       ( );
	virtual void slotButtonMan        ( );
	virtual void slotEngineInfo       ( );
	virtual void slotSetupEngine      ( );
	virtual void slotBrowseTemp       ( );
	virtual void slotAdminTemp        ( );
	virtual void slotColor            ( );
	virtual void slotFont             ( );
	virtual void slotAddBackgroundImg ( );
	virtual void slotAddBackgroundClr ( );
	virtual void slotDelBackground    ( );
	virtual void slotAddAudio         ( );
	virtual void slotDelAudio         ( );
	virtual void slotSelectTrans      ( );
	virtual void slotAllTrans         ( );
	virtual void slotClearTrans       ( );
	virtual void slotAnimTrans        ( );
	virtual void slotImageButton      ( int  );
	virtual void slotMovieButton      ( int  );
	virtual void slotWithText         ( bool );
	virtual void slotDeleteOlder      ( bool );
	virtual void slotSelectionChanged ( QListViewItem * );
	virtual void slotCreateListViewPix( );
	virtual void slotAnimatePix       ( );
	// Overloaded member function ...
	virtual void resizeEvent (QResizeEvent *);
	virtual void accept ();

protected:
	void displayMan             ( QString );
	void searchTool             ( QString );
	void initExternalPlayerList ( );
	void initSlideshowTab       ( );
	void storeSlideshowDefaults ( );
	void initTransitions        ( );
	QPixmap getListViewPix      ( QString );
	void recreatePix            ( );

private:	// private variables ...
	QPixmap                    *m_arrayPix[THUMBNAIL_COUNT];
	int                         m_iCurrentPix;
	bool                        m_bAnimated;
	QTimer                     *m_pTimer;
	bool                        m_bModifiedToolsPaths;
	SlideDefaults               m_slideDefaults;
	DragNDropContainer         *m_pDNDContainer;
	QFont                       m_font;
	Rgba                        m_colorForeground;
	QScrollView                *m_pScrollView;
	QFrame                     *m_pScrollFrame;
	QStringList                 m_listTools;
	QStringList                 m_listHistory;
	QValueList<QPixmap *>       m_listHistoryPix;
	int                         m_iMaxHistoryFiles;
	int                         m_iAutosave;
	QString                     m_qsStyle;
	QValueList<uint>            m_listIndex;
	QValueList<QPushButton *>   m_listManButtons;      // This is needed to get the button pressed in the slotButtonMan
	QValueList<QPushButton *>   m_listButtons;         // This is needed to get the button pressed in the slotButtonInfo
	QValueList<QLineEdit *>     m_listEditToolsPaths;  // This one is used to set the values for m_listToolsPaths
	QValueList<Utils::toolsPaths *> m_listToolsPaths;  // Holds the tools needed, and their paths and if they exist on this machine.
};

#endif // DIALOGSETUP_H


