/*
 * mainwidget.h
 *
 * Copyright (c) 2002, 2003 Frerich Raabe <raabe@kde.org>
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. For licensing and distribution details, check the
 * accompanying file 'COPYING'.
 */
#ifndef MAINWIDGET_H
#define MAINWIDGET_H

#include "port.h"

#include <qwidget.h>

class QTabWidget;
class QVBox;

namespace KParts
{
	struct URLArgs;
};

class KURL;

namespace Barry
{
	class InfoWidget;
	class FileList;
	class PortListView;
	class DependancyList;
	class HeaderWidget;
	class SplashWidget;

	class MainWidget : public QWidget
	{
		Q_OBJECT
		public:
			MainWidget( QWidget *parent );

			void reset();

		public slots:
			void selectPort( const Port &port );

		signals:
			void statusMessage( const QString &message );
			void processFinished();
			void findDialogRequest();
			void portSelected( const Port &port );

		private slots:
			void tabChanged( QWidget *w );
			void openURLRequest( const KURL &url, const KParts::URLArgs &args );

		private:
			void buildRightSide();

			QTabWidget *m_tabWidget;
			PortListView *m_listView;
			InfoWidget *m_infoWidget;
			FileList *m_fileList;
			Port m_port;
			QVBox *m_rightLayout;
			SplashWidget *m_splashWidget;
			DependancyList *m_buildDeps;
			DependancyList *m_runDeps;
			HeaderWidget *m_headerWidget;
	};
};

#endif // MAINWIDGET_H
// ts=4:sw=4:noet
// vim:ts=4:sw=4:noet:list
