⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cpropcommon.h

📁 日本的开源编辑器源码
💻 H
字号:
//	$Id: CPropCommon.h,v 1.18 2005/01/30 14:25:30 Administrator Exp $
/*!	@file
	@brief 共通設定ダイアログボックスの処理

	@author	Norio Nakatani
	@date 1998/12/24 新規作成
*/
/*
	Copyright (C) 1998-2001, Norio Nakatani
	Copyright (C) 2001, genta, jepro

	This source code is designed for sakura editor.
	Please contact the copyright holders to use this code for other purpose.
*/

class CPropCommon;

#ifndef _CPROP1_H_
#define _CPROP1_H_
#include <windows.h>
#include "CShareData.h"
#include "sakura_rc.h"
#include "CFuncLookup.h"
class CImageListMgr;
class CSMacroMgr;
class CMenuDrawer;// 2002/2/10 aroka to here

#define ID_PAGENUM_ZENPAN	0	//Oct. 25, 2000 JEPRO ZENPAN1→ZENPAN に変更
#define ID_PAGENUM_WIN		1	//Oct. 25, 2000 JEPRO  5→ 1 に変更
#define ID_PAGENUM_EDIT		2
#define ID_PAGENUM_FILE		3
#define ID_PAGENUM_BACKUP	4
#define ID_PAGENUM_FORMAT	5	//Oct. 25, 2000 JEPRO  1→ 5 に変更
#define ID_PAGENUM_URL		6
#define ID_PAGENUM_GREP		7
#define ID_PAGENUM_KEYBOARD	8
#define ID_PAGENUM_CUSTMENU	9	//Oct. 25, 2000 JEPRO 11→ 9 に変更
#define ID_PAGENUM_TOOLBAR	10	//Oct. 25, 2000 JEPRO  9→10 に変更
#define ID_PAGENUM_KEYWORD	11	//Oct. 25, 2000 JEPRO 10→11 に変更
#define ID_PAGENUM_HELPER	12
#define ID_PAGENUM_MACRO	13	//Oct. 25, 2000 JEPRO 10→11 に変更
#define ID_PAGENUM_FILENAME	14	// Moca 追加

/*-----------------------------------------------------------------------
クラスの宣言
-----------------------------------------------------------------------*/
/*!
	@brief 共通設定ダイアログボックスクラス

	1つのダイアログボックスに複数のプロパティページが入った構造に
	なっており、Dialog procedureとEvent Dispatcherがページごとにある.

	@date 2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。
*/
class SAKURA_CORE_API CPropCommon
{
public:
	/*
	||  Constructors
	*/
	CPropCommon();
	~CPropCommon();
	//	Sep. 29, 2001 genta マクロクラスを渡すように;
//@@@ 2002.01.03 YAZAKI m_tbMyButtonなどをCShareDataからCMenuDrawerへ移動したことによる修正。
	void Create( HINSTANCE, HWND, CImageListMgr*, CSMacroMgr* , CMenuDrawer* );	/* 初期化 */

	/*
	||  Attributes & Operations
	*/
	int DoPropertySheet( int/*, int*/ );	/* プロパティシートの作成 */

	// 2002.12.11 Moca 追加
	void InitData( void );		//!< DLLSHAREDATAから一時データ領域に設定を複製する
	void ApplyData( void );		//!< 一時データ領域からにDLLSHAREDATA設定をコピーする

	//	Jun. 2, 2001 genta
	//	ここにあったEvent Handlerはprotectedエリアに移動した.

	HINSTANCE		m_hInstance;	/* アプリケーションインスタンスのハンドル */
	HWND			m_hwndParent;	/* オーナーウィンドウのハンドル */
	HWND			m_hwndThis;		/* このダイアログのハンドル */
	int				m_nPageNum;
	DLLSHAREDATA*	m_pShareData;
	int				m_nSettingType;
//	int				m_nActiveItem;

	//	Oct. 16, 2000 genta
	CImageListMgr*	m_pcIcons;	//	Image List
	
	//	Oct. 2, 2001 genta 外部マクロ追加に伴う,対応部分の別クラス化
	//	Oct. 15, 2001 genta Lookupはダイアログボックス内で別インスタンスを作るように
	//	(検索対象として,設定用common領域を指すようにするため.)
	CFuncLookup			m_cLookup;
	CSMacroMgr*			m_pcSMacro;

	CMenuDrawer*		m_pcMenuDrawer;
	/*
	|| ダイアログデータ
	*/
	char			m_szHelpFile[_MAX_PATH + 1];
	Common			m_Common;
	short			m_nKeyNameArrNum;				/* キー割り当て表の有効データ数 */
	KEYDATA			m_pKeyNameArr[100];				/* キー割り当て表 */

	CKeyWordSetMgr	m_CKeyWordSetMgr;
	//2002/04/25 YAZAKI Types全体を保持する必要はない。
	//Types			m_Types[MAX_TYPES];
	// 2005.01.13 MIK セット数増加
	int				m_Types_nKeyWordSetIdx[MAX_TYPES][MAX_KEYWORDSET_PER_TYPE];
	//@@@ 2002.01.03 YAZAKI 共通設定『マクロ』がタブを切り替えるだけで設定が保存されないように。
	MacroRec		m_MacroTable[MAX_CUSTMACRO];	//!< キー割り当て用マクロテーブル
	char			m_szMACROFOLDER[_MAX_PATH];		/* マクロ用フォルダ */

	//! ファイル名簡易表示
	int		m_nTransformFileNameArrNum;
	char	m_szTransformFileNameFrom[MAX_TRANSFORM_FILENAME][_MAX_PATH];
	char	m_szTransformFileNameTo[MAX_TRANSFORM_FILENAME][_MAX_PATH];

protected:
	/*
	||  実装ヘルパ関数
	*/
	void OnHelp( HWND, int );	/* ヘルプ */
	int	SearchIntArr( int , int* , int );
	void DrawToolBarItemList( DRAWITEMSTRUCT* );	/* ツールバーボタンリストのアイテム描画 */
//	void DrawColorButton( DRAWITEMSTRUCT* , COLORREF );	/* 色ボタンの描画 */ // 2002.11.09 Moca 未使用
	BOOL SelectColor( HWND , COLORREF* );	/* 色選択ダイアログ */

	//	Jun. 2, 2001 genta
	//	Event Handler, Dialog Procedureの見直し
	//	Global関数だったDialog procedureをclassのstatic methodとして
	//	組み込んだ.
	//	ここから以下 Macroまで配置の見直しとstatic methodの追加

	//! 汎用ダイアログプロシージャ
	static INT_PTR DlgProc(
		INT_PTR (CPropCommon::*DispatchPage)( HWND, UINT, WPARAM, LPARAM ),
		HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );

	//==============================================================
	//!	全般ページのDialog Procedure
	static INT_PTR CALLBACK DlgProc_PROP_GENERAL(
		HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
	INT_PTR DispatchEvent_p1( HWND, UINT, WPARAM, LPARAM );
	void SetData_p1( HWND );	/* ダイアログデータの設定 p1 */
	int  GetData_p1( HWND );	/* ダイアログデータの取得 p1 */

	//==============================================================
	//!	ファイルページのDialog Procedure
	static INT_PTR CALLBACK DlgProc_PROP_FILE(
		HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
	//! Message Handler for File page
	INT_PTR DispatchEvent_p2( HWND, UINT, WPARAM, LPARAM );
	void SetData_p2( HWND );	/* ダイアログデータの設定 p2 */
	int  GetData_p2( HWND );	/* ダイアログデータの取得 p2 */

	//==============================================================
	//!	キー割り当てページのDialog Procedure
	static INT_PTR CALLBACK DlgProc_PROP_KEYBIND(
		HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
	//! Message Handler for Key Bind page
	INT_PTR DispatchEvent_p5( HWND, UINT, WPARAM, LPARAM );
	void SetData_p5( HWND );	/* ダイアログデータの設定 p5 */
	int  GetData_p5( HWND );	/* ダイアログデータの取得 p5 */
	void p5_ChangeKeyList( HWND ); /* p5: キーリストをチェックボックスの状態に合わせて更新する*/
	void p5_Import_KeySetting( HWND );	/* p5:キー割り当て設定をインポートする */
	void p5_Export_KeySetting( HWND );	/* p5:キー割り当て設定をエクスポートする */

	//==============================================================
	//!	ツールバーページのDialog Procedure
	static INT_PTR CALLBACK DlgProc_PROP_TOOLBAR(
		HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
	//! Message Handler for Toolbar page
	INT_PTR DispatchEvent_p6( HWND, UINT, WPARAM, LPARAM );
	void SetData_p6( HWND );	/* ダイアログデータの設定 p6 */
	int  GetData_p6( HWND );	/* ダイアログデータの取得 p6 */

	//==============================================================
	//!	キーワードページのDialog Procedure
	static INT_PTR CALLBACK DlgProc_PROP_KEYWORD(
		HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
	//! Message Handler for Keyword page
	INT_PTR DispatchEvent_p7( HWND, UINT, WPARAM, LPARAM );
	void SetData_p7( HWND );	/* ダイアログデータの設定 p7 */
	void SetData_p7_KeyWordSet( HWND , int );	/* ダイアログデータの設定 p7 指定キーワードセットの設定 */
	int  GetData_p7( HWND );	/* ダイアログデータの取得 p7 */
	void GetData_p7_KeyWordSet( HWND , int );	/* ダイアログデータの取得 p7 指定キーワードセットの取得 */
	void DispKeywordCount( HWND hwndDlg );

	//==============================================================
	//!	カスタムメニューページのDialog Procedure
	static INT_PTR CALLBACK DlgProc_PROP_CUSTMENU(
		HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
	//! Message Handler for Custom Menu page
	INT_PTR DispatchEvent_p8( HWND, UINT, WPARAM, LPARAM );
	void SetData_p8( HWND );	/* ダイアログデータの設定 p8 */
	int  GetData_p8( HWND );	/* ダイアログデータの取得 p8 */

	//==============================================================
	//!	書式ページのDialog Procedure
	static INT_PTR CALLBACK DlgProc_PROP_FORMAT(
		HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
	//! Message Handler for Format page
	INT_PTR DispatchEvent_p9( HWND, UINT, WPARAM, LPARAM );
	void SetData_p9( HWND );	/* ダイアログデータの設定 p9 */
	int  GetData_p9( HWND );	/* ダイアログデータの取得 p9 */
	void ChangeDateExample( HWND hwndDlg );
	void ChangeTimeExample( HWND hwndDlg );

	//==============================================================
	//!	支援ページのDialog Procedure
	static INT_PTR CALLBACK DlgProc_PROP_HELPER(
		HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
	//! Message Handler for Custom Menu page
	INT_PTR DispatchEvent_p10( HWND, UINT, WPARAM, LPARAM );
	void SetData_p10( HWND );
	int  GetData_p10( HWND );

	//==============================================================
	//!	バックアップページのDialog Procedure
	static INT_PTR CALLBACK DlgProc_PROP_BACKUP(
		HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
	//! Message Handler for Backup page
	INT_PTR DispatchEvent_PROP_BACKUP( HWND, UINT, WPARAM, LPARAM );
	void SetData_PROP_BACKUP( HWND );
	int GetData_PROP_BACKUP( HWND );

	//==============================================================
	//!	ウィンドウページのDialog Procedure
	static INT_PTR CALLBACK DlgProc_PROP_WIN(
		HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
	//! Message Handler for Window page
	INT_PTR DispatchEvent_PROP_WIN( HWND, UINT, WPARAM, LPARAM );
	void SetData_PROP_WIN( HWND );
	int GetData_PROP_WIN( HWND );

	//==============================================================
	//!	クリッカブルURLページのDialog Procedure
	static INT_PTR CALLBACK DlgProc_PROP_URL(
		HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
	//! Message Handler for clickable URL page
	INT_PTR DispatchEvent_PROP_URL( HWND, UINT, WPARAM, LPARAM );
	void SetData_PROP_URL( HWND );
	int GetData_PROP_URL( HWND );

	//==============================================================
	//!	編集ページのDialog Procedure
	static INT_PTR CALLBACK DlgProc_PROP_EDIT(
		HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
	//! Message Handler for edit page
	INT_PTR DispatchEvent_PROP_EDIT( HWND, UINT, WPARAM, LPARAM );
	void SetData_PROP_EDIT( HWND );
	int GetData_PROP_EDIT( HWND );

	//==============================================================
	//!	GREPページのDialog Procedure
	static INT_PTR CALLBACK DlgProc_PROP_GREP(
		HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
	//! Message Handler for Grep page
	INT_PTR DispatchEvent_PROP_GREP( HWND, UINT, WPARAM, LPARAM );
	void SetData_PROP_GREP( HWND );
	int GetData_PROP_GREP( HWND );

	//	From Here Jun. 2, 2001 genta
	//==============================================================
	//!	マクロページのDialog Procedure
	static INT_PTR CALLBACK DlgProc_PROP_MACRO(
		HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
	//! Message Handler for Macro page
	INT_PTR DispatchEvent_PROP_Macro( HWND, UINT, WPARAM, LPARAM );
	void SetData_PROP_Macro( HWND );//!<ダイアログデータの設定 Macro
	int GetData_PROP_Macro( HWND );//!<ダイアログデータの取得 Macro
	void InitDialog_PROP_Macro( HWND hwndDlg );//!< Macroページの初期化
	//	To Here Jun. 2, 2001 genta
	void SetMacro2List_Macro( HWND hwndDlg );//!< Macroデータの設定
	void SelectBaseDir_Macro( HWND hwndDlg );//!< Macroディレクトリの選択
	void OnFileDropdown_Macro( HWND hwndDlg );//!< ファイルドロップダウンが開かれるとき
	void CheckListPosition_Macro( HWND hwndDlg );//!< リストビューのFocus位置確認
	static int CALLBACK DirCallback_Macro( HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData );

	//==============================================================
	//!	ファイル名表示ページのDialog Procedure
	static INT_PTR CALLBACK DlgProc_PROP_FILENAME(
		HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
	//! Message Handler for FileName page
	INT_PTR DispatchEvent_PROP_FILENAME( HWND, UINT, WPARAM, LPARAM );
	void SetData_PROP_FILENAME( HWND );
	int  GetData_PROP_FILENAME( HWND );
	static int SetListViewItem_FILENAME( HWND hListView, int, LPTSTR, LPTSTR, bool );//!<ListViewのアイテムを設定
	static void GetListViewItem_FILENAME( HWND hListView, int, LPTSTR, LPTSTR );//!<ListViewのアイテムを取得
	static int MoveListViewItem_FILENAME( HWND hListView, int, int );//!<ListViewのアイテムを移動する



	int nLastPos_Macro; //!< 前回フォーカスのあった場所
	int m_nLastPos_FILENAME; //!< 前回フォーカスのあった場所 ファイル名タブ用


	void p7_Edit_List_KeyWord( HWND, HWND );	/* p7:リスト中で選択されているキーワードを編集する */
	void p7_Delete_List_KeyWord( HWND , HWND );	/* p7:リスト中で選択されているキーワードを削除する */
	void p7_Import_List_KeyWord( HWND , HWND );	/* p7:リスト中のキーワードをインポートする */
	void p7_Export_List_KeyWord( HWND , HWND );	/* p7:リスト中のキーワードをエクスポートする */
	void p7_Clean_List_KeyWord( HWND , HWND );	//! p7:リスト中のキーワードを整理する 2005.01.26 Moca

	void p8_Import_CustMenuSetting( HWND );	/* p8:カスタムメニュー設定をインポートする */
	void p8_Export_CustMenuSetting( HWND );	/* p8:カスタムメニュー設定をエクスポートする */

	//	Aug. 16, 2000 genta
	void EnableBackupInput(HWND hwndDlg);	//	バックアップ設定のON/OFF
	//	Aug. 21, 2000 genta
	void EnableFilePropInput(HWND hwndDlg);	//	ファイル設定のON/OFF
	//	Sept. 9, 2000 JEPRO		次行を追加
	void EnableWinPropInput( HWND hwndDlg) ;	//	ウィンドウ設定のON/OFF
	//	Sept. 10, 2000 JEPRO	次行を追加
	void CPropCommon::EnableFormatPropInput( HWND hwndDlg );	//	書式設定のON/OFF
};



///////////////////////////////////////////////////////////////////////
#endif /* _CPROP1_H_ */


/*[EOF]*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -