#ifndef C_APP_H
#define C_APP_H

#ifdef Q_WS_WIN
   #define F_EXE ".exe"
#else
   #define F_EXE ""
#endif

#define PROG_NAME "Manager"

#include "../../drtux/src/CMoteur_Base.h"


#ifdef COMMERCIAL_VERSION
    #include "../../Commercial/C_MUI_App.h"
    #include "../../Commercial/C_Cps.h"
    #include "../../Commercial/C_Vitale.h"
#else
    #include "../../MedinTuxTools/C_MUI_App.h"
#endif

class manager;


//================================================= CApp ==============================================================
class CApp : public C_MUI_App
{
 public:

     CApp(QString mui_name, int & argc, char ** argv);
    ~CApp();
     void saveLastUserOn_Ini(const QString &user, const QString &signUser, const QString &password, bool passwordMustBeRecorded  = 1 );
     int AuthentifyAndSelectUser(QWidget * parent, const QString &newUser, const QString &newSignUser, bool passwordMustBeRecorded  = 1 );
     bool IsAppStartWithUser();
     void PositionneBonDroits();
     bool IsThisDroitExist(const char *listDroits, const char *droitToFind);
     QString GetMySqlPass();
public:


QString             m_PathAppli;                // chemin de l'Applicatif
//............................ pointeurs sur les objets principaux generaux Uniques ...................................................
//                             l'interdependance de ces differentes classes rend
//                             plus simple de les rendre accesible par un pointeur global
//                             Initialisé lors de la creation de ces classes qui doivent être
//                             instanciées qu'une seule fois pendant toute l'application
//                             la remise à zero se fait lors de la destruction de la classe.

//.................. les deux  objets suivants sont INDISPENSABLES à l'application ....................................................
//                   et seule une instance de ces objets doit exister par application

CMoteurBase         *m_pCMoteurBase;             // classe d'outils de gestion des données en base de donnée
manager             *m_pManager;             // classe widget principal et parentes de toutes != 0 si constructeur OK
//................... les objets suivants sont crees à la demande dans l'application..............................................
//                    mais seule une instance de ces objets peut exister par application
QString              m_CriptedPassWord;
QString              m_SignUser;
QString              m_User;
//................. pour faire jonction avec agenda .........................................
QString              m_LastNom;
QString              m_LastPrenom;
QString              m_LastGUID;
QString              m_LastPK;

QString              m_LastTel;
QString              m_LastType;
QString              m_PathIni;
QString              m_LocalParam;
QString              m_LastError;
QString              m_Droits;
QString              m_MySql_Pass;
QString              m_PathTheme;
int                  m_LastDuree;
bool                 m_IsAppStartWithUser;
//......................... carte PS .............................
#ifdef COMMERCIAL_VERSION
  C_Cps  *m_pCps;
#endif
};

extern CApp* G_pCApp;

#endif

