/*-----------------------------------------------------------------------------
[名称]	ExeCommon.h
[概要]	したらびあん本体用ユーティリティ関数のヘッダ
[備考]	なし
[履歴]	2003-04-23	NC		コメント付加(moralog)
		2003-12-28  b040111 (3632)キャレット位置の強調(moralog)
		2004-05-10	b031228 (3204)へぼぺとの連携(moralog)
-----------------------------------------------------------------------------*/
#ifndef ExeCommonH
#define ExeCommonH

#ifndef ExeCommon
#define ExeCommon extern
#endif ExeCommon

//-----------------------------------------------------------------------------
// インクルード・不完全定義
//-----------------------------------------------------------------------------
#include <afxtempl.h>
#include "ExeStruct.h"
class CMainFrame;
class CFinder;
class CShitarabianDoc;


//-----------------------------------------------------------------------------
// 関数プロトタイプ
//-----------------------------------------------------------------------------
// 入出力のための文字列変換
	// スクロール量→文字列
	ExeCommon CString	EScrollUnitToString(
		EScrollUnit	eValue
	);

	// 文字列→スクロール量
	ExeCommon EScrollUnit	StringToEScrollUnit(
		CString	strValue
	);

// オブジェクト取得・関連づけ
	ExeCommon CMainFrame*		GetMainFrame();
	ExeCommon CShitarabianDoc*	GetDocument();
	ExeCommon CFinder* GetFinder( BOOL bRegExp );
	ExeCommon void SetMainFrame( CMainFrame* pMainFrame );
	ExeCommon void SetDocument( CShitarabianDoc* pDocument );

// 編集データに関する情報
	// カラム数→バイト数
	ExeCommon long CaretColumnToByteColumn(
		const char*		pstrSrc,	// 文字列 [マルチバイト判別] (-)
		long			idxChar
	);

	// バイト数→カラム数
	ExeCommon long ByteColumnToCaretColumn(
		const char*		pstrSrc,	// 文字列 [マルチバイト判別] (-)
		long			idxByte
	);

	// カラム数取得
	ExeCommon long StringToColumn(
		const char*		pstrSrc		// 文字列 [マルチバイト判別] (-)
	);

// その他
	// エラーログ出力
	ExeCommon void ErrorLog(
		const char*		strReason,
		const char*		strFunction	
	);

	// 未割当コマンドIDの取得
	ExeCommon int UniqueCommandID();

	// 表示色取得
	ExeCommon COLORREF GetBackColor( int idxColor );
	ExeCommon COLORREF GetForeColor( int idxColor );

	// クリップボード出力
// ▼ (3204) BGN 2004.05.12 (moralog) ExeCommon.cppから移動。汎用関数化。
	ExeCommon void EditCopyStringWithHistory(
// ▽ original BGN
//	ExeCommon void EditCopyString(
// △ original END
// ▲ (3204) END
		CString&	strCopySrc
	);

// ▼ (3632) BGN 2003.12.28 (moralog) バージョン管理方法変更
	// バージョン番号取得
	ExeCommon long	StringToVersion( CString& strVersion );
// ▲ (3632) END

// ▼ (3204) BGN 2004.05.10 (moralog) ランチャツールバー追加
	// アイコンの描画
	ExeCommon void DrawIcon(
		CDC*		pDC,
		CRect		rcDst,
		CString		strIconFilePath,
		long		idxIcon
	);
// ▲ (3204) END

#endif ExeCommonH