📄 cpropcomfile.cpp
字号:
// $Id: CPropComFile.cpp,v 1.15 2004/10/09 04:14:55 genta Exp $
/*! @file
@brief 共通設定ダイアログボックス、「書式」ページ
@author Norio Nakatani
$Revision: 1.15 $
*/
/*
Copyright (C) 1998-2001, Norio Nakatani
Copyright (C) 2000-2001, genta, MIK, jepro
This source code is designed for sakura editor.
Please contact the copyright holders to use this code for other purpose.
*/
#include "CPropCommon.h"
#include "debug.h" // 2002/2/10 aroka
//@@@ 2001.02.04 Start by MIK: Popup Help
#if 1 //@@@ 2002.01.03 add MIK
#include "sakura.hh"
static const DWORD p_helpids[] = { //01310
IDC_CHECK_EXCVLUSIVE_NO, HIDC_CHECK_EXCVLUSIVE_NO, //ファイルの排他制御(排他制御しない)
IDC_CHECK_bCheckFileTimeStamp, HIDC_CHECK_bCheckFileTimeStamp, //更新の監視
IDC_CHECK_EXCVLUSIVE_WRITE, HIDC_CHECK_EXCVLUSIVE_WRITE, //ファイルの排他制御(上書き禁止)
IDC_CHECK_EXCVLUSIVE_READWRITE, HIDC_CHECK_EXCVLUSIVE_READWRITE, //ファイルお排他制御(読み書き禁止)
IDC_CHECK_ENABLEUNMODIFIEDOVERWRITE, HIDC_CHECK_ENABLEUNMODIFIEDOVERWRITE, //無変更でも上書き
IDC_CHECK_AUTOSAVE, HIDC_CHECK_AUTOSAVE, //自動的に保存
IDC_CHECK_bDropFileAndClose, HIDC_CHECK_bDropFileAndClose, //閉じて開く
IDC_CHECK_RestoreCurPosition, HIDC_CHECK_RestoreCurPosition, //カーソル位置の復元
IDC_CHECK_AutoMIMEDecode, HIDC_CHECK_AutoMIMEDecode, //MIMEデコード
IDC_EDIT_AUTOBACKUP_INTERVAL, HIDC_EDIT_AUTOBACKUP_INTERVAL, //自動保存間隔
IDC_EDIT_nDropFileNumMax, HIDC_EDIT_nDropFileNumMax, //ファイルドロップ最大数
IDC_SPIN_AUTOBACKUP_INTERVAL, HIDC_EDIT_AUTOBACKUP_INTERVAL,
IDC_SPIN_nDropFileNumMax, HIDC_EDIT_nDropFileNumMax,
IDC_CHECK_RestoreBookmarks, HIDC_CHECK_RestoreBookmarks, // 2002.01.16 hor ブックマークの復元
// IDC_STATIC, -1,
0, 0
};
#else
static const DWORD p_helpids[] = { //01310
IDC_CHECK_EXCVLUSIVE_NO, 10310, //ファイルの排他制御(排他制御しない)
IDC_CHECK_bCheckFileTimeStamp, 10311, //更新の監視
IDC_CHECK_EXCVLUSIVE_WRITE, 10312, //ファイルの排他制御(上書き禁止)
IDC_CHECK_EXCVLUSIVE_READWRITE, 10313, //ファイルお排他制御(読み書き禁止)
IDC_CHECK_ENABLEUNMODIFIEDOVERWRITE, 10314, //無変更でも上書き
IDC_CHECK_AUTOSAVE, 10315, //自動的に保存
IDC_CHECK_bDropFileAndClose, 10316, //閉じて開く
IDC_CHECK_RestoreCurPosition, 10317, //カーソル位置の復元
IDC_CHECK_AutoMIMEDecode, 10318, //MIMEデコード
IDC_EDIT_AUTOBACKUP_INTERVAL, 10340, //自動保存間隔
IDC_EDIT_nDropFileNumMax, 10341, //ファイルドロップ最大数
IDC_CHECK_RestoreBookmarks 10342, // 2002.01.16 hor ブックマークの復元
IDC_SPIN_AUTOBACKUP_INTERVAL, -1,
IDC_SPIN_nDropFileNumMax, -1,
// IDC_STATIC, -1,
0, 0
};
#endif
//@@@ 2001.02.04 End
// From Here Jun. 2, 2001 genta
/*!
@param hwndDlg ダイアログボックスのWindow Handle
@param uMsg メッセージ
@param wParam パラメータ1
@param lParam パラメータ2
*/
INT_PTR CALLBACK CPropCommon::DlgProc_PROP_FILE(
HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
{
return DlgProc( &CPropCommon::DispatchEvent_p2, hwndDlg, uMsg, wParam, lParam );
}
// To Here Jun. 2, 2001 genta
/*! ファイルページ メッセージ処理 */
INT_PTR CPropCommon::DispatchEvent_p2(
HWND hwndDlg, //!< handle to dialog box
UINT uMsg, //!< message
WPARAM wParam, //!< first message parameter
LPARAM lParam //!< second message parameter
)
{
WORD wNotifyCode;
WORD wID;
HWND hwndCtl;
NMHDR* pNMHDR;
NM_UPDOWN* pMNUD;
int idCtrl;
// int nVal;
int nVal; //Sept.21, 2000 JEPRO スピン要素を加えたので復活させた
// char szFolder[_MAX_PATH];
switch( uMsg ){
case WM_INITDIALOG:
/* ダイアログデータの設定 p2 */
SetData_p2( hwndDlg );
::SetWindowLongPtr( hwndDlg, DWLP_USER, lParam );
return TRUE;
//**** From Here Sept. 21, 2000 JEPRO ダイアログ要素にスピンを入れるので以下のWM_NOTIFYをコメントアウトにし下に修正を置いた
// case WM_NOTIFY:
// idCtrl = (int)wParam;
// pNMHDR = (NMHDR*)lParam;
// pMNUD = (NM_UPDOWN*)lParam;
//// switch( idCtrl ){
//// default:
// switch( pNMHDR->code ){
// case PSN_HELP:
// OnHelp( hwndDlg, IDD_PROP_FILE );
// return TRUE;
// case PSN_KILLACTIVE:
//// MYTRACE( "p2 PSN_KILLACTIVE\n" );
// /* ダイアログデータの取得 p2 */
// GetData_p2( hwndDlg );
// return TRUE;
// }
//// }
// break;
case WM_NOTIFY:
idCtrl = (int)wParam;
pNMHDR = (NMHDR*)lParam;
pMNUD = (NM_UPDOWN*)lParam;
switch( idCtrl ){
default:
switch( pNMHDR->code ){
case PSN_HELP:
OnHelp( hwndDlg, IDD_PROP_FILE );
return TRUE;
case PSN_KILLACTIVE:
// MYTRACE( "p2 PSN_KILLACTIVE\n" );
/* ダイアログデータの取得 p2 */
GetData_p2( hwndDlg );
return TRUE;
//@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
case PSN_SETACTIVE:
m_nPageNum = ID_PAGENUM_FILE;
return TRUE;
}
break;
case IDC_SPIN_nDropFileNumMax:
/* 一度にドロップ可能なファイル数 */
nVal = ::GetDlgItemInt( hwndDlg, IDC_EDIT_nDropFileNumMax, NULL, FALSE );
if( pMNUD->iDelta < 0 ){
++nVal;
}else
if( pMNUD->iDelta > 0 ){
--nVal;
}
if( nVal < 1 ){
nVal = 1;
}
if( nVal > 99 ){
nVal = 99;
}
::SetDlgItemInt( hwndDlg, IDC_EDIT_nDropFileNumMax, nVal, FALSE );
return TRUE;
//@@@ 2001.03.21 Start by MIK
/*NOTREACHED*/
// break;
case IDC_SPIN_AUTOBACKUP_INTERVAL:
/* バックアップ間隔 */
nVal = ::GetDlgItemInt( hwndDlg, IDC_EDIT_AUTOBACKUP_INTERVAL, NULL, FALSE );
if( pMNUD->iDelta < 0 ){
++nVal;
}else
if( pMNUD->iDelta > 0 ){
--nVal;
}
if( nVal < 1 ){
nVal = 1;
}
if( nVal > 35791 ){
nVal = 35791;
}
::SetDlgItemInt( hwndDlg, IDC_EDIT_AUTOBACKUP_INTERVAL, nVal, FALSE );
return TRUE;
/*NOTREACHED*/
// break;
//@@@ 2001.03.21 End by MIK
}
//**** To Here Sept. 21, 2000 JEPRO ダイアログ要素にスピンを入れるのでWM_NOTIFYをコメントアウトにしその下に修正を置いた
break;
case WM_COMMAND:
wNotifyCode = HIWORD(wParam); /* 通知コード */
wID = LOWORD(wParam); /* 項目ID? コントロールID? またはアクセラレータID */
hwndCtl = (HWND) lParam; /* コントロールのハンドル */
switch( wNotifyCode ){
/* ボタン/チェックボックスがクリックされた */
case BN_CLICKED:
switch( wID ){
case IDC_CHECK_EXCVLUSIVE_NO:
case IDC_CHECK_EXCVLUSIVE_WRITE:
case IDC_CHECK_EXCVLUSIVE_READWRITE:
case IDC_CHECK_bDropFileAndClose:/* ファイルをドロップしたときは閉じて開く */
case IDC_CHECK_AUTOSAVE:
EnableFilePropInput(hwndDlg);
break;
}
break;
}
break;
//@@@ 2001.02.04 Start by MIK: Popup Help
case WM_HELP:
{
HELPINFO *p = (HELPINFO *)lParam;
::WinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)(LPVOID)p_helpids );
}
return TRUE;
/*NOTREACHED*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -