//
//
// C++ Interface: $MODULE$
//
// Description:
//
//
// Author: Christian Hubinger <chubinger@gmail.com>, (C) 2003
//
// Copyright: See COPYING file that comes with this distribution
//
//
/***************************************************************************
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 ***************************************************************************/


#ifndef KMFGENERICINTERFACEHOST_H
#define KMFGENERICINTERFACEHOST_H

#include "kmyfirewallgenericinterfacehostwidget.h"

/**
@author Christian Hubinger
*/

// QT includes

#include <qstring.h>
#include <qguardedptr.h>
#include <qpixmap.h>

class QListViewItem;

// KDE includes

class KPopupMenu;


// Project Includes

class KMFGenericDoc;
class KMFNetZone;
class KMFNetHost;
class KMFListViewItem;

class KMFGenericInterfaceHost : public KMyFirewallGenericInterfaceHostWidget {
	Q_OBJECT
public:
	KMFGenericInterfaceHost( QWidget *parent = 0, const char *name = 0, WFlags f = 0 );

	~KMFGenericInterfaceHost();

public:
	void loadDoc( KMFGenericDoc* );

public slots:
	void slotUpdateView();


private slots:
	void slotZoneRBM( QListViewItem*, const QPoint&, int );
	void slotNewHost();
    void slotDelHost();
    void slotNewItemSelected( QListViewItem* );
    void slotRenameHost();
	void slotHostRenamed( QListViewItem*, int , const QString & );
	void slotAddressChanged( const QString& );
	void slotTimerShot();
private:
	void loadIcons();
	KMFListViewItem* findKMFItem( const QString& text, int obj_id );
	KMFListViewItem* findKMFItem( int obj_id );

	QGuardedPtr<KMFNetZone> m_zone;
	QGuardedPtr<KMFNetHost> m_host;
	KMFGenericDoc* m_doc;
	KPopupMenu* m_contextMenu;

	KMFListViewItem *itemTrustedHosts;
	KMFListViewItem *itemMaliciousHosts;
	KMFListViewItem *itemBadServers;
	KMFListViewItem *itemBadClients;



	QPixmap icon_up, icon_down, icon_del, icon_edit, icon_rule, icon_filter, icon_rename,
	icon_chain, icon_log, icon_accept, icon_drop, icon_cmd, icon_reject, icon_return,
		icon_target, icon_queue, icon_new, icon_copy, icon_move;

};

#endif
