// DrawCharPos.h: CDrawCharPos クラスのインターフェイス
//
// 画面上に描画されている、各文字の描画位置を保持する。
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_DRAWCHARINFO_H__FBEA846C_3612_4E1E_871B_4990EC3441D2__INCLUDED_)
#define AFX_DRAWCHARINFO_H__FBEA846C_3612_4E1E_871B_4990EC3441D2__INCLUDED_

#include "TaEdit_std.h"

class CDrawCharPos 
{
public:
	CDrawCharPos();
	virtual ~CDrawCharPos();

	void Clear();	// 初期化

	int GetCharCnt() const;	// 記録されている文字数
	unsigned int GetRightXPos() const;	// 右端のX座標を取得
	unsigned int GetCharPos( int x ) const;	// 各文字ごとの描画位置を取得
	bool GetIsEnable() const;	// 有効か否かを取得
	unsigned int GetCharWidth( unsigned int idx ) const;	// 各文字の描画されている幅を取得する

	// 横方向の位置から列を算出
	int FindPosToRowNum( unsigned int XPos, enumCHARSELTYPE CharSelType ) const;

	void AddChar( unsigned int argXPos );	// 一文字増やす
	void SetRightXPos( unsigned int argRXPos );	// 右端のX座標を設定
	void SetXPos( int x, unsigned int argXPos );	// 各文字の描画位置を設定
	void SetIsEnable( bool f );	// 有効か否かを設定する

protected:

	unsigned int RXPos;	// 描画した右端の位置
	MVPtr< unsigned int > vXPos;	// 各文字ごとの描画した横位置
	bool IsEnable;	// 有効か否かの管理用

};

#endif // !defined(AFX_DRAWCHARINFO_H__FBEA846C_3612_4E1E_871B_4990EC3441D2__INCLUDED_)
