/*-----------------------------------------------------------------------------
[名称]	CharPaletteDlg.h
[概要]	文字パレットダイアログクラスのヘッダ
[備考]	なし
[履歴]	2003-02-26	NC		コメント付加(moralog)
-----------------------------------------------------------------------------*/
#if !defined(AFX_CHARPALETTEDLG_H_INCLUDED_)
#define AFX_CHARPALETTEDLG_H_INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000


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

/*-----------------------------------------------------------------------------
[名称]	文字パレットダイアログクラス
[用途]	文字パレットダイアログクラス。
[備考]	Insertで文字編集可能。
		文字の編集時にはエディットボックスを表示して入力させる。
-----------------------------------------------------------------------------*/
class CCharPaletteDlg : public CDialog
{
// コンストラクション
public:
	// 生成
	CCharPaletteDlg(CWnd* pParent = NULL);   // 標準のコンストラクタ
	virtual ~CCharPaletteDlg();

	// 選択文字列取得
	CString	GetChar(){ return( m_strChar ); };

	// データのアタッチ
	void Attach( CMainFrame* pMainFrame ){ m_pMainFrame = pMainFrame; };
	void Attach( CArray< CCharPalette, CCharPalette& >* paCharPalettez );

	// スクロールバー配置変更
	void SetScrollBarAlign(
		EScrollBarAlign eAlign
	);

	// タブ配置変更
	void SetTabAlign(
		EScrollBarAlign eAlign
	);

	// 文字採用
	void ConfirmChar(
		CString&	strChar
	);

	// パレットページのボタンサイズ変更
	void SetButtonSize(
		CSize	sizeButton
	);

	// タブにフォーカスを移す
	void SetTabFocus();

	// メインに帰る
	void ToMainWindow();

// ダイアログ データ
	//{{AFX_DATA(CCharPaletteDlg)
	enum { IDD = IDD_CHARPALETTE };
	//}}AFX_DATA

// オーバーライド
	// ClassWizard は仮想関数のオーバーライドを生成します。
	//{{AFX_VIRTUAL(CCharPaletteDlg)
	public:
	virtual BOOL PreTranslateMessage(MSG* pMsg);
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV サポート
	//}}AFX_VIRTUAL

// インプリメンテーション
protected:
	CString									m_strChar;			// 選択中文字列 [-] (-)
	CArray< CCharPalette, CCharPalette& >*	m_paCharPalettez;	// パレット情報 [-] (-)
	CMainFrame*								m_pMainFrame;		// メインウィンドウ [親] (-)

	COwnerTabCtrl*							m_ptabPalette;		// タブコントロール [-] (-)
	BOOL									m_bFore;			// 常に前面に表示 [-] (TRUE:する、FALSE:しない)
	CCharPaletteCanvasDlg*					m_aCanvas;			// ページとして表示するダイアログ [-] (-)
	CSize									m_sizeButton;		// パレットページのボタンサイズ [-] (-)

	EScrollBarAlign							m_eScrollBarAlign;	// スクロールバー配置情報 [-] (-)
	EScrollBarAlign							m_eTabAlign;		// タブ配置情報 [-] (-)

	// タブコントロール再構築
	void RebuildTab( EScrollBarAlign eAlign );

	// 生成されたメッセージ マップ関数
	//{{AFX_MSG(CCharPaletteDlg)
	virtual BOOL OnInitDialog();
	afx_msg void OnSize(UINT nType, int cx, int cy);
	afx_msg void OnShowWindow(BOOL bShow, UINT nStatus);
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ は前行の直前に追加の宣言を挿入します。

#endif // !defined(AFX_CHARPALETTEDLG_H_INCLUDED_)
