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

📄 menu.h

📁 英创386的LCD控制协议和函数,还有例程
💻 H
字号:
#if      !defined(_MENU34_H)
#define  _MENU34_H

#include "item.h"
//#include "dot_lcd.h"

#define MaxMenuItem	24

class Menu
{
   int   X, Y;			// menu leftup position
   int   XSize;
   int   TxtColor;		// screen text color

   int   ActTxtColor;		// screen text color for active item
   int   ActBkColor;		// screen background color for active item

protected:
   int   BkColor;		// screen background color

   int   ItemX( int ItemIdx );
   int   ItemY( int ItemIdx );


   int    NumItem;			// <= MaxMenuItem
   Item*  pItemTab[MaxMenuItem];	// a list of current all items
   int    ActItemIdx;			// 0 <= ActItemIdx < NumItem

   int    MenuFormat;                  // 0:  2 row  1: 1 row
   int    ScreenItem;
   int    StartItem;
   int    NewCnt;
   int    OldCnt;

   void   ShowAsActive( int ItemIdx );
   void   ShowAsNormal( int ItemIdx );
   void   PutOnScreen( );

   int    AddItem( Item* NewItemPtr=NULL );	// return number of items

public:
   Menu( );
   void MenuItemBarUp( );
   void MenuItemBarDn( );
   void MenuItemInc( );
   void MenuItemDec( );
   void MenuItemINC( );
   void MenuItemDEC( );
   void Hide( );
   void Show( );
   void SetMenuFormat( int i );
   virtual void VarItemInit( ) { };
   virtual int  ManualPro( ) { return 0; }
   virtual void AbnormalPro( ) { };
};

class MainMenu: public Menu
{
   Item    Menu1;
   Item    Menu2;
   Item    Menu3;
   Item    Menu4;
   Item    Menu5;
   Item    Menu6;
   Item    Menu7;
   Item    Menu8;

public:
   MainMenu( );
   void VarItemInit( );
   int  ManualPro( );
   void AbnormalPro( );
};

class Menu1: public Menu
{
   Item_e    Item1;
   Item_i    Item2;
   Item_i    Item3;
   Item_e    Item4;
   Item_f    Item5;
   Item_i    Item6;

public:
   Menu1( );
   void VarItemInit( );
   int  ManualPro( );
   void AbnormalPro( );
};


class MenuManager
{
   //BLN MenuVisible;
   int X, Y;				// menu bar position

   int NumMenu;
   Menu* pMenuTab[10];
   int AutoProIdx;
   int ActMenuIdx;

   //BLN MultiWave;
   MainMenu*        EtrMenu;
   Menu1*           EtrMenu1;
public:
   MenuManager( );
   ~MenuManager( );

   int  SysMenuInit( );
   int  AddMenu( Menu* AppMenu );
   void HideMenu( );
   void ShowMenu( int MenuIdx=-1 );
   void MenuItemBarUp( );
   void MenuItemBarDn( );
   void MenuItemInc( );
   void MenuItemDec( );
   void MenuItemINC( );
   void MenuItemDEC( );
   void MenuDrivedManualPro( );
   void AbnormalPro( );
};

extern MenuManager MENUManager;
extern Menu UserMenu[4];
#endif

⌨️ 快捷键说明

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