#ifndef _MENUVBOX_H
#define _MENUVBOX_H
#include <vdr/osdbase.h>
#include <vdr/menuitems.h>
#include "setup.h"

extern cVBOXSetup g_VBOXSetup;
class cVBOXSndPlayerControl;

inline void StatusMessage(const char *s)
{
#if VDRVERSNUM >= 10307
  Skins.Message(mtStatus, s);
#else
  Interface->Error(s);
#endif
}
inline void ErrorMessage(const char *s)
{
#if VDRVERSNUM >= 10307
  Skins.Message(mtStatus, s);
#else
  Interface->Status(s);
  Interface->Flush();
#endif
}

inline void InfoMessage(const char *s)
{
#if VDRVERSNUM >= 10307
  Skins.Message(mtInfo, s);
#else
  Interface->Info(s);
#endif
}

class cMenuCtrlVBOX : public cOsdMenu {
private:
  cVBOXUser *m_pVBOXUser;	
  void CreateEntrys();
  void SetHelpTexts();
 
public:
  cMenuCtrlVBOX(cVBOXUser *pVBOXUser);

  ~cMenuCtrlVBOX(void);
  virtual eOSState ProcessKey(eKeys Key);
};


class cMenuListVBOX : public cOsdMenu {
private:
  cVBOXClient *m_pVBOX;	
  bool m_bIsPlaying;
  bool m_bDisconnectOnDestroy;
  
  void DisplayMsgList(void);
  void RefreshMsgList(bool bDeleteMarkedMessages=false);
  void DeleteMarkedMessages(bool bReloadList);
  void SetHelpTexts();
  cVBOXSndPlayerControl* GetVBOXSndPlayerControl();
public:
  cMenuListVBOX(cVBOXClient *pVBOX);

  ~cMenuListVBOX(void);
  virtual eOSState ProcessKey(eKeys Key);
};


class cMenuVBOXUser : public cOsdMenu {
private:
  

  void DisplayUserList(cVBOXUserlist *pVBOXUserlist);

public:
  cMenuVBOXUser(cVBOXUserlist *pVBOXUserlist);
  ~cMenuVBOXUser(void);
  virtual eOSState ProcessKey(eKeys Key);
};


#endif
