/*-----------------------------------------------------------------------------
[名称]	SettingDlg.h
[概要]	タイプ別設定ダイアログクラスのヘッダ
[備考]	なし
[履歴]	2003-04-23	NC		コメント付加(moralog)
		2004-05-10	b040111 (3344) 共通設定のユニコード文字で追加のボタンを押すと強制終了 (moralog)
-----------------------------------------------------------------------------*/
#if !defined(AFX_SETTINGDLG_H_INCLUDED_)
#define AFX_SETTINGDLG_H_INCLUDED_

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


//-----------------------------------------------------------------------------
// インクルード・不完全定義
//-----------------------------------------------------------------------------
#include "EmphasisEdit.h"
#include "LogFont.h"
#include "SettingMarginDlg.h"
#include "EmphasisDlg.h"
#include "EmphasisDefine.h"
#include "FlipDlg.h"
#include "BoxCharDlg.h"
// ▼ (3344) BGN 2004.05.10 (moralog) Unicode文字描画自動化
// ▽ original BGN
//#include "UnicoderDlg.h"
// △ original END
// ▲ (3344) END
#include "PrintDlg.h"
#include "BlankDlg.h"
#include "SettingViewDlg.h"
#include "OwnerTabCtrl.h"
#include "RelationDlg.h"
class CGeneralSetting;


/*-----------------------------------------------------------------------------
[名称]	タイプ別設定ダイアログクラス
[用途]	タイプ別設定ダイアログ。
[備考]	なし。
-----------------------------------------------------------------------------*/
class CSettingDlg : public CDialog
{
public:
	// データのセット（ポインタを属性にセットする）
	void Attach( CGeneralSetting* pGeneralSetting ){ m_pGeneralSetting = pGeneralSetting; };
	void Attach( CShitarabianDoc* pDoc ){ m_pDoc = pDoc; };

protected:
	// 設定読み込み
	void					ReadFromGeneral();

	// 設定書き出し
	void					WriteToGeneral();

	// コントロールのEnable制御
	void					VisibleControl();

	// 設定情報反映
	void ReBuildView();

	// ページの生成
	void CreatePagez();

	// ページの破棄
	void DestroyPagez();

// ポインタを保存し、以後外部の実体にアクセスする
	CGeneralSetting*		m_pGeneralSetting;		// 設定情報 [-] (-)
	CShitarabianDoc*		m_pDoc;					// ドキュメント [-] (-)

	CEmphasisDefine			m_EmphasisDefine;		// 強調表示色定義 [-] (-)
	CSettingViewDlg			m_SettingViewDlg;		// 表示設定ダイアログ [-] (-)
	CEmphasisDlg			m_SettingEmphasisDlg;	// 表示色設定ダイアログ [-] (-)
	CBlankDlg				m_SettingWhiteSpaceDlg;	// 空白文字設定ダイアログ [-] (-)
	CBoxCharDlg				m_SettingBoxCharDlg;	// BOX文字定設定ダイアログ [-] (-)
	CPrintDlg				m_SettingPrintDlg;		// 印刷設定ダイアログ [-] (-)

// コンストラクション
public:
	CSettingDlg(CWnd* pParent = NULL);   // 標準のコンストラクタ

// ダイアログ データ
	//{{AFX_DATA(CSettingDlg)
	enum { IDD = IDD_SETTING_TYPESHEET };
	COwnerTabCtrl	m_tabSheet;
	CString	m_strSettingName;
	CString	m_strExt;
	CComboBox	m_comboSettingName;
	CButton	m_btnSave;
	//}}AFX_DATA


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

// インプリメンテーション
protected:

	// 生成されたメッセージ マップ関数
	//{{AFX_MSG(CSettingDlg)
	virtual BOOL OnInitDialog();
	virtual void OnOK();
	afx_msg void OnSettingSave();
	afx_msg void OnEditchangeSettingSettingname();
	afx_msg void OnSelchangeSettingSettingname();
	virtual void OnCancel();
	afx_msg void OnSettingReflect();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

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

#endif // !defined(AFX_SETTINGDLG_H_INCLUDED_)
