/***************************************************************************
                          dcmenuhandler.h  -  description
                             -------------------
    begin                : Don Mai 16 2002
    copyright            : (C) 2002-2004 by Mathias Küster
    email                : mathen@users.berlios.de
 ***************************************************************************/

/***************************************************************************
 *                                                                         *
 *   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 DCMENUHANDLER_H
#define DCMENUHANDLER_H

/**
  *@author Mathias Küster
  */

#include <QString>
#include <QMenu>

enum eMenuItems {
	emiSEPARATOR=1,
	emiDOWNLOAD,
	emiDOWNLOAD_TO,
	emiDOWNLOAD_AS,
	emiDOWNLOAD_REPAIR,
	emiDOWNLOAD_BIN_SECTORS,
	emiDOWNLOAD_IN,
	emiDOWNLOAD_FOLDER,
	emiBROWSE_USER_FILES,
	emiCHECK_CLIENT_VERSION,
	emiPRIVATE_CHAT,
	emiTO_CHAT,
	emiKICK,
	emiFORCE_MOVE,
	emiUPDATE_USER,
	emiCONNECT,
	emiDISCONNECT,
	emiRELOAD_USERLIST,
	emiCONNECT_TO_HUB,
	emiCONNECT_TO_ALL_HUBS,
	emiADD,
	emiADD_BOOKMARK,
	emiEDIT,
	emiEDIT_BOOKMARK,
	emiREMOVE,
	emiCLOSE_TRANSFER,
	emiINFO,
	emiTRY_CONNECT,
	emiPAUSE_TRANSFER_QUEUE,
	emiRESUME_TRANSFER_QUEUE,
	emiREMOVE_TRANSFER_QUEUE,
	emiREMOVE_TRANSFER_QUEUE_COMPLETE,
	emiREMOVE_TRANSFER_QUEUE_DISK,
	emiUPLOAD_SLOT,
	emiADD_PERMANENT,
	emiSAVE_QUEUE,
	emiUPDATE_SERVER,
	emiUPDATE_ALL_SERVER,
	emiCHANGE_TRANSFER_RATE,
	emiCOPY_COLUMN_TO_CLIPBOARD,
	emiCOPY_ROW_TO_CLIPBOARD,
	emiUSER_CAPTION,
	emiFILE_INFO,
    emiSEARCH_FILE_CLONE,
	emiSEARCH_FILE_CLONE_TTH,
	emiLOAD,
	emiSAVE,
	emiHUB_PROFILE_EDITOR,
	emiEDIT_TRANSFER,
	emiEDIT_FILE_PRIORITY,
	emiTRANSLATE,
	emiTRANSLATOR,
	emiDISABLE_GROUP,
	emiGROUP_BY_FILE,
	emiGROUP_BY_SIZE,
	emiGROUP_BY_NICK,
	emiGROUP_BY_HASH,
	emiGROUP_BY_SLOTS_FREE,
	emiGROUP_BY_SLOTS_TOTAL,
	emiGROUP_BY_HUB,
	emiGROUP_BY_PATH,
	emiGROUP_BY_HOST,
	emiGROUP_BY_IP,
	emiCOPY,
	emiCOPYDCFILELINK,
	emiCOPYMAGNETLINK,
	emiCLEAR,
	emiSELECT_ALL,
	emiCLOSE,
	emiHIDE,
	emiREFRESH,
	emiINSERTSMILEY,
	emiADD_FRIEND,
	emiREQUEST_SECURE_CHAT,
	emiCLOSE_SECURE_CHAT,
	emiRESET,
	emiDOCK,
	emiUNDOCK,
	emiZOOM_IN,
	emiZOOM_OUT,
	// languages
	emiLANGUAGE_AUTOLANG,
	emiLANGUAGE_BOSNIAN,
	emiLANGUAGE_BRAZILIAN,
	emiLANGUAGE_CZECH,
	emiLANGUAGE_DANISH,
	emiLANGUAGE_DUTCH,
	emiLANGUAGE_ENGLISH,
	emiLANGUAGE_FINNISH,
	emiLANGUAGE_FRENCH,
	emiLANGUAGE_GERMAN,
	emiLANGUAGE_GREEK,
	emiLANGUAGE_HUNGARIAN,
	emiLANGUAGE_ICELANDIC,
	emiLANGUAGE_ITALIAN,
	emiLANGUAGE_LATVIAN,
	emiLANGUAGE_NORWEGIAN,
	emiLANGUAGE_POLISH,
	emiLANGUAGE_ROMANIAN,
	emiLANGUAGE_RUSSIAN,
	emiLANGUAGE_SERBIAN_CYRILLIC,
	emiLANGUAGE_SERBIAN_LATIN,
	emiLANGUAGE_SLOVAKIAN,
	emiLANGUAGE_SPANISH,
	emiLANGUAGE_SWEDISH,
	// submenus
	emisGROUP,
	emisCHAT_RIGHTCLICK_USER,
	emisUSER_COMMANDS,
	emiCUSTOM,
	// custom user
	emiCUSTOMUSERMENU
};

class DCMenuHandler {
public: 
	/** construtor */
	DCMenuHandler();
	/** destructor */
	virtual ~DCMenuHandler();

	/** */
	static QAction * addAction( QMenu * menu, eMenuItems menuitems, bool enabled = true, QString text = "" );
	/** */
	static QMenu * addMenu( QMenu * menu, eMenuItems menuitems, bool enabled = true, QString text = "" );
};

#endif
