#ifndef GUI_H_
#define GUI_H_

#include "gType.h"
#include "GuiDef.h"
#include "Icon.h"
#include "gvalue.h"
#include "Panel.h"
#include "StaticText.h"
#include "CtlPanel1.h"
#include "CtlPanelLite.h"
#include "ItemList.h"
#include "TMenu.h"
#include "ListViewDevice.h"
#include "ListBox.h"
#include "HistoryMsg.h"
#include "DevProperty.h"
#include "DeviceDymPrm.h"
#include "LiteIconOverView.h"
#include "LiteListViewMask.h"
#include "Register.h"
#include "RegisterManual.h"
#include "DesignPrmSet.h"
//#include "IoPadDefine.h"
#include "PageIdle.h"
#include "QueryMessage.h"
//#include "QueryMessageFire.h"
//#include "QueryMsgLinkage.h"
//#include "QueryMsgSv.h"
//#include "QueryMsgFault.h"
//#include "QueryMsgOperate.h"
#include "DevMask.h"
#include "XBox.h"
#include "PrinterSet.h"
//#include "UserSet.h"
#include "EventShow.h"
#include "PermissionSet.h"
#include "PrintInf.h"
#include "DateTimeSet.h"
#include "ECanNetwork.h"
#include "QueryCfg.h"
#include "PasswdChange.h"
#include "CircuitState.h"
#include "RootDevVoltage.h"
#include "MessageBox.h"
#include "EpDevState.h"
#include "DetectorCurve.h"
#include "RealTimeData.h"
#include "CircuitCfg.h"
#include "EpMonitor.h"
#include "DuplicateCheck.h"
#include "AddrAssign.h"
#include "LiteSelfCheck.h"
#include "ProjectSet.h"
#include "BusPadLnk.h"
#include "LinkageProgram.h"
#include "DirectPadCfg.h"
#include "DisplayPadCfg.h"
#include "fNetworkReg.h"
#include "fNetworkRegManual.h"
#include "fNetworkRegRemove.h"
#include "uInportExport.h"
#include "OnlineCtrl.h"
#include "GraphDevCfg.h"
#include "SimRun.h"
#include "HwInf.h"
#include "FwUpgrade.h"
#include "DevAuthorize.h"
#include "TAuthorizeState.h"
#include "aBefore.h"
#include "Maintain.h"
#include "Allow.h"
#include "BroadcastCfg.h"
#include "ScreenSaveCfg.h"
#include "CleanUp.h"
#include "AboutUs.h"
#include "CnInput.h"
#include "CheckNormal.h"
#include "DescpWrite.h"
#include "PmsIntervene.h"
#include "DevStartStop.h"
//#include "PowerSuplyCfg.h"
#include "PowerSuplyInf.h"
#include "DeviceSetup.h"
#include "LanguageCfg.h"
#include "RunModeCfg.h"
#include "PadInf.h"
#include "LinkageList.h"
#include "LnkFecBus.h"
#include "AreaCfg.h"
#include "UserCodeSet.h"
#include "UserCodeSetByArea.h"
#include "CanNetworkInf.h"
#include "CanNetworkRegister.h"
#include "CanNetworkMask.h"
#include "BlueTooth.h"
#include "WifiConn.h"
#include "TransmiteDeviceCfg.h"
#include "ClearRegistedInf.h"
#include "ClearLinkageCfg.h"
#include "ClearDescp.h"
#include "RecoverAll.h"
//#include "SlaveRegByRemote.h"
#include "DevCount.h"
#include "TipPopup.h"
#include "DevOutputCfg.h"
#include "DevSensitiveCfg.h"
#include "DialogStartup.h"
#include "DisplayPadDescpDownload.h"
#include "DevVaCfg.h"

#define dIcon24_Allow		14
#define dIcon24_NotAllow	5

#define GCaptionColor		clDeepBlue
#define GCaptionTextColor	clNearWhite


extern const unsigned int ContentColor;
extern const unsigned int CaptionColor;
extern const unsigned int ItemColor;
extern const unsigned int PanelColor;
extern const unsigned int SmallPanelColor;
extern const TContentGeometry ContentGeometry;


extern TImageList ImageList;
extern class TItemList	ItemList;

//GUI___________________________________________________________________________________________________________
extern class TMenu 		MainMenu;


//Screen Top Panel _________________
extern class TPanel 		PanelOnTop;
extern class TStaticText 	STextCaption; 
extern class TIcon		IconTop;
//extern class TStaticText 	STextNewMsg; 

//Screen Bottom Panel ______________
extern class TPanel 		PanelOnBottom;
extern class TStaticText 	STextAdjust;
extern class TStaticText 	STextAllowAuto; 
extern class TStaticText 	STextAllowAllAuto;
//extern class TStaticText 	STextAllowManual;
extern class TStaticText 	STextAllowSplash;
extern class TStaticText 	STextAllowPrint;
extern class TStaticText 	STextTimeShow;

extern class TIcon		IconAdjust;
extern class TIcon		IconAllowAuto;
extern class TIcon		IconAllowAllAuto;
//extern class TIcon		IconAllowManual;
extern class TIcon		IconAllowSplash;
extern class TIcon		IconAllowPrint;

//_____________________________________

extern class TCtlPanel1 CommonPanel;
extern class TCtlPanelLite	CtlPanelLite;

//Property Frm
extern class TLiteIconOverView	LiteIconOverViewDev;
extern class TLiteListViewMask	LiteListViewMask;
extern class TRegister			Register;
extern class TRegisterManual		RegisterManual;
extern class TDesignPrmSet		DesignPrmSet;
//extern class TIoPadDefine		IoPadDefine;
extern class TPageIdle			PageIdle;
extern class TQueryMsg			QueryMsg;
extern class TQueryMessageFire	QueryMessageFire;
extern class TQueryMsgLinkage		QueryMsgLinkage;
extern class TQueryMsgSv		QueryMsgSv;
extern class TQueryMsgFault		QueryMsgFault;
extern class TQueryMsgOperate		QueryMsgOperate;
extern class TDevMask			DevMask;
extern class TXBox			aRadioGroup;
extern class TXBox			aRadioGroup2;
extern class TPrinterSet		PrinterSet;
//extern class TUserSet			UserSet;
extern class TEventShow			EventShow; 
extern class TPermissionSet		PermissionSet;
extern class TPrintInf			PrintInf;
extern class TDateTimeCfg		DateTimeCfg;
//extern class TECanNetwork		ECanNetwork;
//extern class TQueryCfg			QueryCfg;
extern class TPasswdChange		PasswdChange;
extern class TCircuitState		CircuitState;
extern class TRootDevVoltage		RootDevVoltage;
extern class TMessageBox		MessageBox;
//extern class TDetectorCurve		DetectorCurve;
extern class TCircuitCfg		CircuitCfg;
//extern class TEpMonitor			EpMonitor;
extern class TDuplicateCheck		DuplicateCheck;
//extern class TAddrAssign		AddrAssign;
extern class TLiteSelfCheck		LiteSelfCheck;
extern class TProjectSet		ProjectSet;
extern class TBusPadLnk			BusPadLnk;
extern class TLinkageProgram		LinkageProgram;
extern class TDirectPadCfg		DirectPadCfg;
//extern class TDisplayPadCfg		DisplayPadCfg;
extern class TfNetworkReg		fNetworkReg;
//extern class TfNetworkRegManual	fNetworkRegManual;
//extern class TfNetworkRegRemove	fNetworkRegRemove;
extern class TuInportExport		uInportExport;
extern class TOnlineCtrl		OnlineCtrl;
extern class TGraphDevCfg		GraphDevCfg;
extern class THwInf			HwInf;
extern class TFwUpgrade			FwUpgrade;
extern class TDevAuthorize		DevAuthorize;
extern class TAuthorizeState		AuthorizeState;
extern class TaBefore			aBefore;
extern class TMaintain			Maintain;
extern class TAllow			Allow;
extern class TBroadcastCfg		BroadcastCfg;
extern class TScreenSaveCfg		ScreenSaveCfg;
extern class TCleanUp			CleanUp;
extern class TAboutUs			AboutUs;
extern class TCheckNormal		CheckNormal;
extern class TDescpWrite		DescpWrite;
extern class TPmsIntervene		PmsIntervene;
extern class TPmsIntervene		PmsIntervene4Gui;
extern class TDevStartStop		DevStartStop;
//extern class TPowerSuplyCfg		PowerSuplyCfg;
extern class TPowerSuplyInf		PowerSuplyInf;
extern class TDeviceSetup		DeviceSetup;
extern class TLanguageCfg		LanguageCfg;
extern class TRunModeCfg		RunModeCfg;
extern class TPadInf			PadInf;
extern class TLinkageList		LinkageList;
extern class TLnkFecBusCfg		LnkFecBusCfg;
extern class TAreaCfg			AreaCfg;
extern class TUserCodeSet		UserCodeSet;
extern class TUserCodeSetByArea	UserCodeSetByArea;
extern class TCanNetworkInf		CanNetworkInf;
extern class TCanNetworkRegister	CanNetworkRegister;
extern class TCanNetworkMask		CanNetworkMask;
extern class TBlueTooth			BlueTooth;
extern class TWifiConn			WifiConn;
extern class TTransmiteDev		TransmiteDev;
extern class TClearRegistedInf	ClearRegistedInf;
extern class TClearLinkageCfg		ClearLinkageCfg;
extern class TClearDescp		ClearDescp;
extern class TRecoverAll		RecoverAll;
//extern class TSlaveRegByRemote	SlaveRegByRemote;
extern class TDevCount			DevCount;
extern class TTipPopup			TipPopup;
extern class TDevOutputCfg		DevOutputCfg;
extern class TDevSensitiveCfg		DevSensitiveCfg;
extern class TDialogStartup		DialogStartup;
extern class TDevVaCfg 			DevVaCfg;
extern class TDisplayPadDescpDownload	 DisplayPadDescpDownload;

extern class TCnInput			CnInput;

extern class TImage			ImageLogo24;
extern class TImage			ImageLogo32;

extern int IsSelfChecking;


//______________________________________________________________________________________________________

extern class TListBoxForm 	ListBoxForm	;
extern class TListViewDevice 	ListViewDevice;
extern class TDevProperty	DevProperty;
extern class THistoryMsg HistoryMsg;


extern class TEdit Edit1;
extern class TButton Button1;

extern void GuiStart(void);
extern void GuiRedrawBase();
extern void GuiRedraw(int Prm);

extern void StateBarUpDateBat(int Ava);
extern void StateBar_Pwr_SelfCheck();

extern void EventShowOnShowCallBack();
extern int CheckIsRemoteRegFeasible();

extern void SlaveDoRemoteReg();

extern void StateBarReflashMaintain(void);

#endif

