/*
 * menu.h: Menus for the Atmolight-plugin
 *
 * See the README file for copyright information and how to reach the author.
 *
 * $Id$
 */

#ifndef _ATMO_MENU__H
#define _ATMO_MENU__H

#include <vdr/plugin.h>

// --- cMenuSetupAtmo ---------------------------------------------------------

class cMenuSetupAtmo : public cMenuSetupPage {
private:
  const char *useStartModeTexts[3];
  void Set(void);
protected:
  virtual void Store(void);
  virtual eOSState ProcessKey(eKeys Key);
public:
  static bool SetupParse(const char *Name, const char *Value);
  cMenuSetupAtmo();
};

// --- cMenuSetupMode --------------------------------------------------------

class cMenuSetupMode : public cOsdMenu {
private:
  const char *useModeTexts[3];
  const char *useDefaultColorsTexts[8];
  void Set(void);
protected:
  virtual void Store(void);
  virtual eOSState ProcessKey(eKeys Key);
public:
  cMenuSetupMode(void);
  static bool SetupParse(const char *Name, const char *Value);
};

// --- cMenuSetupFilter ------------------------------------------------------

class cMenuSetupFilter : public cOsdMenu {
private:
  const char *useFilterTexts[3];
  void Set(void);
protected:
  virtual void Store(void);
  virtual eOSState ProcessKey(eKeys Key);
public:
  cMenuSetupFilter(void);
  static bool SetupParse(const char *Name, const char *Value);
};

// --- cMenuSetupGamma -------------------------------------------------------

class cMenuSetupGamma : public cOsdMenu {
private:
  const char *useGammaTexts[2];
  void Set(void);
protected:
  virtual void Store(void);
  virtual eOSState ProcessKey(eKeys Key);
public:
  cMenuSetupGamma(void);
  static bool SetupParse(const char *Name, const char *Value);
};

// --- cMenuEditUCharItem -----------------------------------------------------

class cMenuEditUCharItem : public cMenuEditItem {
protected:
  unsigned char *value;
  unsigned char min, max;
  virtual void Set(void);
public:
  cMenuEditUCharItem(const char *Name, unsigned char *Value, unsigned char Min = 0, unsigned char Max = 255);
  virtual eOSState ProcessKey(eKeys Key);
};

#endif // _ATMO_MENU__H
