////////////////////////////////////////////////////////////////////////////
// CTxtColorMgr_java クラスのインプリメンテーション
//
////////////////////////////////////////////////////////////////////////////

#include "TxtColorMgr_java.h"

using namespace NLangExt;
using namespace NLangExt_java;

////////////////////////////////////////////////////////////////////////////
// 構築/破棄
////////////////////////////////////////////////////////////////////////////

CTxtColorMgr_java::CTxtColorMgr_java()
{
	int i;
	for ( i = 0; i < 78; i++ ) IndexTable[i] = 0;
	IndexTable[ NLangExt_cpp::CCT_ALPHANUMERIC ] = 0;
	IndexTable[ NLangExt_cpp::CCT_KEYWORD ] = 1;
	IndexTable[ NLangExt_cpp::CCT_COM1_LEFT ] = 2;
	IndexTable[ NLangExt_cpp::CCT_COM1_RIGHT ] = 2;
	IndexTable[ NLangExt_cpp::CCT_COM1_TEXT ] = 2;
	IndexTable[ NLangExt_cpp::CCT_COM2_LEFT ] = 2;
	IndexTable[ NLangExt_cpp::CCT_COM2_RIGHT ] = 2;
	IndexTable[ NLangExt_cpp::CCT_COM2_TEXT ] = 2;
	IndexTable[ NLangExt_cpp::CCT_DQUOTE_LEFT ] = 3;
	IndexTable[ NLangExt_cpp::CCT_DQUOTE_RIGHT ] = 3;
	IndexTable[ NLangExt_cpp::CCT_DQUOTE_TEXT ] = 3;
	IndexTable[ NLangExt_cpp::CCT_SQUOTE_LEFT ] = 3;
	IndexTable[ NLangExt_cpp::CCT_SQUOTE_RIGHT ] = 3;
	IndexTable[ NLangExt_cpp::CCT_SQUOTE_TEXT ] = 3;
	IndexTable[ NLangExt_cpp::CCT_OTHER ] = 0;
	IndexTable[ NLangExt_cpp::CCT_NULL ] = 0;
}

CTxtColorMgr_java::~CTxtColorMgr_java()
{

}

////////////////////////////////////////////////////////////////////////////
// メソッド
////////////////////////////////////////////////////////////////////////////

// 初期化
bool CTxtColorMgr_java::Initialize( VClsPtr< CConfigInfo > pConf )
{
	vColor[0] = pConf->RefJAVA_NormalTextF_Color();
	vColor[1] = pConf->RefJAVA_KeywordF_Color();
	vColor[2] = pConf->RefJAVA_CommentF_Color();
	vColor[3] = pConf->RefJAVA_SringF_Color();
	return true;
}

// 使用する色の数を取得
int CTxtColorMgr_java::GetColorCount() const
{
	return 4;
}

// 色を取得
Pixel CTxtColorMgr_java::GetColor( int idx ) const
{
	assert( idx >= 0 && idx < 4 );
	return vColor[idx];
}

// 色情報から色のインデックスへ変換
int CTxtColorMgr_java::TranseToIdx( unsigned char c ) const
{
	assert( c >= 0 && c < 78 );
	return IndexTable[c];
}

// 初期状態で更新
void CTxtColorMgr_java::InitiUpdate( T_LineData &rData ) const
{
	InitUpdateColorFunc( m_HM, rData );
}

// 文字列の更新に伴う色の更新
void CTxtColorMgr_java::Update( T_LineData &rData, const T_SelRange &range ) const
{
	UpdateColorFunc( m_HM, rData, range );
}
