/***************************************************************************
 *                                                                         *
 *   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

#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,
    emiSPAM_GREY,
    emiSPAM_BLACK,
    // languages
    emiLANGUAGE_AUTOLANG,
    emiLANGUAGE_BELARUSIAN,
    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
