#ifndef CNINPUT_H_
#define CNINPUT_H_

#include "gType.h" 
#include "gvalue.h"
#include "GraphBase.h"
#include "string.h"
#include "my_string.h"
#include "StaticText.h"
#include "TEdit.h"
#include "Runtime.h"

class TCnInput{
	public:
		u32 Color;
		u32 TextColor;
		u32 SelectedColor;
		u32 SelectedTextColor;
		TRect Bound;	
		TRect Content;
		
		class TEdit	iEdit;
		class TEdit	sEdit;
		int IsShowing;
		
		unsigned char SymbolSelIndex;
		unsigned char PySelIndex;
		unsigned char CnSelIndex;
		unsigned char CnPage;
		unsigned char PyCount;
		unsigned char CnCount;
		unsigned char SelectedCn;
		const char *TheGotEn;
		const char *TheGotSymbol;
		const char *TheGotCn;
		char GotChar[16];
		
		TTextInputMode InputMode;
		char NumChar[4];
	public:
		TCnInput(){};
		TCnInput(int x1, int y1, int aW, int aH, int OwnerX, int OwnerY, u32 aColor){
			Init(x1, y1, aW, aH, OwnerX, OwnerY, aColor);
		}
		void Init(int x1, int y1, int aW, int aH, int OwnerX, int OwnerY, u32 aColor);
		
		void RenderBackGround(void);
		void RenderBackGround(unsigned int aClr);
		void DrawSelf(void);
		
		void Show(void);
		void Hide();
		void FullRedraw();
		
		void DrawInputType();
		void DrawEnList();
		void DrawSymbolList();
		
		void ShowPinyinText();
		void DrawPinyinList();
		void DrawCnList();
		
		void CalcData();
		
		void ClearCnResult();
		
		const char * EnKeyIn(unsigned char aKey);
		const char * SymbolKeyIn(unsigned char aKey);
		const char * CnKeyIn(unsigned char aKey);
		const char * NumKeyIn(unsigned char aKey);
		const char * KeyIn(unsigned char aKey);
		
		const char * TryGetCn(int cInx);
		
		void EnShowTip(int tT);
		void SymbolShowTip(int tT);
		void CnShowTip(int tT);
		void NumShowTip(int tT);
		void OverPrint(unsigned int aClr);
		
		void SetInputMode(TTextInputMode aInputMode = CnInputModeEn);
		
		int ExtRequst(unsigned char Prm);
};

#endif

