⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 menudef.h

📁 主要用于液晶电视解码,内置51单片机,全部代码用C编写,编译环境为KEILC
💻 H
字号:


#define OnlyDrawColor	_BIT7
#define OnlyDrawCode	_BIT6

typedef enum
{CP_GrayColor,
  CP_BlackColor,
  CP_SeaBlueColor,
  CP_YellowColor,

  CP_GreenColor,
  CP_WhiteColor,
  CP_PinkColor1,
  CP_RedColor,

  CP_WhiteColor1,
  CP_BlueColor,
  CP_WhiteColor2,
  CP_WhiteColor3,

  CP_TransparenceColor,
  CP_WhiteColor4,
  CP_PinkColor,
  CP_GreenColor1,

  CP_MaxColor
} CP_ColorType;

typedef enum
{ PowerOffMenu, // 0
  PowerOnMenu,	// 1
  #if VGA_ENABLE
  StandbyMenu,	// 2
  SuspenMenu,	// 3
  AutoMenu, //	4
  UnsupportedModeMenu, //	5
  #endif
  RootMenu, // 6

  // user definition from here
  FactoryMenu, //  7

 #if TV_ENABLE
  TVInputNumMenu,// 8
  ShowTVChannelMenu,// 9
#endif
  ShowSourceMenu,// 10
  VolumeMenu,// 11
  MuteMenu,// 12

  PictureMenu, //  13
  AudioMenu,// 14
  FunctionMenu,// 15
  SystemMenu,// 16
  #if TV_ENABLE
    PresetMenu,// 17
  #endif

  ClockMenu,// 18

#if GAME_ENABLE
  GameMenu,//19
#endif

#if CALENDAR_ENABLE
  CalendarMenu,//20
#endif
  FactoryRootMenu,
#if Enable_Logo_Display
  LogoMenu,
#endif  
  // user definition end
  MaxMenu
} MenuPageIndexType;



typedef enum
{ MIA_Nothing,
  MIA_GotoNext,	// goto next
  MIA_GotoPrev, // goto prev
  MIA_PrevItem,
  MIA_NextItem,
  MIA_JumpNaviItem,
  MIA_JumpAdjustItem,
  //MIA_Exit, // Exit
  MIA_IncValue, // increase value
  MIA_DecValue, // decrease value
  MIA_ExecFunc,
  //MIA_Auto,
  MIA_InvIncValue,
  MIA_InvDecValue,
  MIA_RedrawMenu,
  MIA_Source,
  MIA_ExecGotoNext,
  MIA_ExecAndPowerNext,
  MIA_Power, // power control
  MIA_IR_SourceSwitch,
  MIA_ChannelUp,
  MIA_ChannelDown,
  MIA_IR_ShowINFO,
  MIA_IR_QuickBack,
  MIA_IR_Mute,
  MIA_IR_RED,
  MIA_IR_GREEN,
  MIA_IR_YELLOW,
  MIA_IR_CYAN,
  MIA_IR_HOLD,
  MIA_IR_REVEAL,
  MIA_IR_CANCEL,
  MIA_IR_INDEX,
  MIA_IR_LIST,
  MIA_IR_STORE,
  MIA_IR_SUBCODE,
  MIA_IR_SIZE,
  MIA_IR_TEXT,
  MIA_IR_MIX,
  MIA_IR_TIME,
  MIA_IR_SCALE_SWITCH,
  MIA_IR_Sound_MODE,
  MIA_IR_SleepTimer,
  MIA_Searchup,
  MIA_Searchdown,
  MIA_IncVolume,
  MIA_DecVolume,
  MIA_IR_IncVolume,
  MIA_IR_DecVolume,
  MIA_IR_ChromaSwitch,
  MIA_AutoSerach,
  MIA_CalendarmonthIncValue,
  MIA_CalendarmonthDecValue,
  MIA_IR_Calendar,
  MIA_IR_Game,
  MIA_IRKEY_0,
  MIA_IRKEY_1,
  MIA_IRKEY_2,
  MIA_IRKEY_3,
  MIA_IRKEY_4,
  MIA_IRKEY_5,
  MIA_IRKEY_6,
  MIA_IRKEY_7,
  MIA_IRKEY_8,
  MIA_IRKEY_9,
  MIA_IRKEY_100,
  MIA_Auto,
  MIA_BlockTurn,
  MIA_BlockDown,
  MIA_BlockExit,
  MIA_GameRestart,
  MIA_BlockLeft,
  MIA_BlockRight
} MenuItemActionType;

typedef enum
{
	SleepTimeOff,
    SleepTime_Nums=25
} SleepTimeType;

typedef struct
{
    BYTE cConditions;   // bitfield of key event condition flags
    MenuItemActionType PressKeyEvent;     // key event generated by PRESS condition
    //MenuItemActionType HoldKeyEvent;      // key event generated by HOLD or REPEAT condition
    //BYTE cHoldCount;    // threshold for HOLD event
    //BYTE cRptCount;     // threshold for REPEAT event
    BYTE InputType;
} KeyEventType;

typedef enum
{
  LANG_English,
 #ifdef Multi_language
  LANG_German,
  LANG_French,
  LANG_Spanish,
  LANG_Portuguese,
  LANG_Italy,
  LANG_Dutch,
  LANG_Russian,
  LANG_SChinese,
  LANG_Nums,
  #else
  LANG_Nums,
  LANG_SChinese,
  #endif
} LanguageType;

typedef enum
{ DWI_Nothing,
  DWI_Icon,
  DWI_Text,
  DWI_FullText,
  DWI_CenterText,
  DWI_FullCenterText,
  DWI_None
} DrawMenuItemType;

typedef BYTE* (*fpDisplayText)(void);
typedef BOOL (*fpExecFunc)(void);
typedef BYTE (*fpItemIndex)(void);
typedef BOOL (*fpAdjustValue)(MenuItemActionType action);
typedef WORD (*fpGetValue)(void);
typedef WORD (*fpGetMaxValue)(void);
typedef WORD (*fpSetMaxValue)(void);

#define mpbStay			0x01 // for stay in menu page
#define mpbInvisible		0x02 // menu page visible or not
#define mpbSizeofItem 	0x04
#define mpbSetItemTop 	0x08
#define mpbDrawFrame	0x10
#define mpbMoving		0x20
#define mpbGame		0x40


#define mibSelectable	0x01 // for menu item selectable
#define mibInvisible	0x02 // for menu item selectable
#define mibVGADisable	0x04
#define mibFactoryItem	0x08
#define mibDrawValue	0x10
#define mibTVItem		0x20
#define mibConditionEnableItem		0x40
#define mibVGAItem		0x80

#define dwiEnd		0x01
#define dwiHex		0x02
#define dwiValueSelectRadioItemColor 0x04
#define dwiSingleRadioItem 0x08

#define mtbIndividualTimeOut  0x80

typedef struct
{ WORD *Fonts;
  WORD FontCount;
} MenuFontType;

typedef struct
{ fpAdjustValue AdjustFunction;
  fpExecFunc ExecFunction;
} MenuItemFuncType;

typedef struct
{ BYTE Flags;
  BYTE ForeColor, BackColor;
  BYTE SelForeColor, SelBackColor;
  BYTE XPos, YPos;
  fpGetValue GetValue;
} DrawNumberType;

typedef struct
{ BYTE Flags;
  BYTE ForeColor, BackColor;
  BYTE SelForeColor, SelBackColor;
  BYTE Length;
  BYTE XPos, YPos;
  fpGetValue GetValue;
} DrawGuageType;


typedef struct
{ BYTE Flags;
  BYTE ForeColor, BackColor;
  BYTE SelForeColor, SelBackColor;
  BYTE XPos, YPos;
  fpDisplayText DisplayText;
} RadioTextType;

typedef struct
{ BYTE Flags;
  fpGetValue GetValue;
  RadioTextType *RadioText;
} DrawRadioGroupType;

typedef struct
{ BYTE Flags;
  DrawNumberType *DrawNumber;
  DrawGuageType *DrawGuage;
  DrawRadioGroupType *DrawRadioGroup;
} DrawValueType;

typedef struct
{ BYTE XPos, YPos;
  BYTE ForeColor, BackColor;
  BYTE SelForeColor, SelBackColor;
  BYTE NextPage;
  DrawMenuItemType DrawItemMethod;
  fpDisplayText	DisplayText;
  KeyEventType* KeyEvents;
  MenuItemFuncType KeyFunction;
  DrawValueType *DisplayValue;
  BYTE Flags;
} MenuItemType;

typedef struct
{ BYTE 	XSize, YSize;
  BYTE PrevPage;
  MenuItemType* MenuItems;
  BYTE  ItemCount;
  fpExecFunc ExecFunction;
  BYTE TimeOut;
  BYTE Flags;
} MenuPageType;


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -