#ifndef PASSWDCHANGE_H_
#define PASSWDCHANGE_H_

#include "gType.h" 
#include "GraphBase.h"
#include "string.h"
#include "my_string.h"
#include "Device.h"
#include "EpDevice.h"
#include "StaticText.h"
#include "CtlPanel1.h"
#include "ControlCenter.h"

class TPasswdChange{
	public:
		static constexpr unsigned short hList[12] = {176,176,60,32,	32,32,32,32,	32,32,32,32};
		static constexpr unsigned short wList[12] = {800,800,800,800,	800,800,800,800,	800,800,800,800};
		static constexpr TLv Lv = {
			.Caption.Left = 0,
			.Caption.Top = 36,
			.Caption.Width = 800,
			.Caption.Heigh = 32,
			.Caption.Right = 800 -0 -1,
			.Caption.Bottom = 36 + 32,
			
			.Grid.Left = {0,0,0,0,	0,0,0,0,	0,0,0,0},
			.Grid.Right = {wList[0]-1,wList[1]-1,wList[2]-1,wList[3]-1,	wList[4]-1,wList[5]-1,wList[6]-1,wList[7]-1,	wList[8]-1,wList[9]-1,wList[10]-1,wList[11]-1},
			.Grid.Top[0] = (36 + 32 +8),
			.Grid.Top[1] = (36 + 32 +8) + (2 + hList[0]),
			.Grid.Top[2] = (36 + 32 +8) + (2 + hList[0]) + (2 + hList[1]),
			.Grid.Top[3] = (36 + 32 +8) + (2 + hList[0]) + (2 + hList[1]) + (2 + hList[2]),
				
			.Grid.Bottom[0] = (36 + 32 +8) + hList[0],
			.Grid.Bottom[1] = (36 + 32 +8) + (2 + hList[0]) + hList[1],
			.Grid.Bottom[2] = (36 + 32 +8) + (2 + hList[0]) + (2 + hList[1]) + hList[2],
			.Grid.Bottom[3] = (36 + 32 +8) + (2 + hList[0]) + (2 + hList[1]) + (2 + hList[2]) + hList[3],
			
			.Grid.UsingCount = 2,
			
			.Panel.Active = 0,
			.Panel.ItemType = piMemo,
			.PanelSmall.Active = 0,
		};
		static constexpr TPoint ResultTipPoint_II = {
			.x = Lv.Grid.Left[0] + 340,
			.y = Lv.Grid.Top[0] + 132,
		};
		static constexpr TPoint ResultTipPoint_III = {
			.x = Lv.Grid.Left[1] + 340,
			.y = Lv.Grid.Top[1] + 132,
		};
	public:
		struct{
			unsigned char Group;
			unsigned char Inx0;
			unsigned char Inx1;
			unsigned char Inx2;
			void Reset(){
				Group =0;
				Inx0 =0;
				Inx1 =0;
				Inx2 =0;
			}
		}Tag;
		
		class TCtlPanel1 *aPanel;
		
		TMyString Str;
	
		int StaII;
		int StaIII;
		
		TPassWord PassWord;
	private:
		void SetListColWidth(int w0, int w1, int w2, int w3, int w4,int w5,int w6, int w7, int w8, int w9);
	public:
		TPasswdChange(){};
		void Init();
	
		void SetAndShowCaption(unsigned char aType);
		
		void RenderBackGround(void);
		void RenderBackGround(unsigned int aClr);
		void DrawSelf(void);

		void Show(void);
		void FullRedraw(int Prm);
		void ReDraw(void);
		void PanelCanvasOut();
		void DrawCaption2(void);
		
		int CheckPrvPasswdOk_II();
		int CheckPrvPasswdOk_III();
			
		void ShowSave_II();
		void ShowSave_III();
		
		void ShowStaII();
		void ShowStaII(int aSta);
		void ShowStaIII();
		void ShowStaIII(int aSta);
		
		void CheckPasswordII();
		void CheckPasswordIII();
		static void sRecoverSetDefault();
		
		TGuiMsgReturn KeyIn(unsigned char aKey);
		
		void InitPanel();
		
		void Check4Selected(void);
		
		int ExtRequst(unsigned char Prm){return 0;}
};



#endif

